From f83034acf355e6cb4215ee06915b87ed51231594 Mon Sep 17 00:00:00 2001 From: Aniruddha Shamasundar Date: Wed, 26 Apr 2023 14:57:58 -0700 Subject: [PATCH] Add token-log-collector utility Signed-off-by: Aniruddha Shamasundar --- scripts/token-log-collector/Dockerfile | 21 + scripts/token-log-collector/Makefile | 12 + scripts/token-log-collector/README.md | 23 + .../bin/token-log-collector | Bin 0 -> 7861606 bytes scripts/token-log-collector/cmd/main.go | 256 ++ scripts/token-log-collector/go.mod | 20 + scripts/token-log-collector/go.sum | 73 + .../github.com/araddon/dateparse/.travis.yml | 14 + .../github.com/araddon/dateparse/LICENSE | 21 + .../github.com/araddon/dateparse/README.md | 282 ++ .../github.com/araddon/dateparse/parseany.go | 1864 ++++++++++ .../hashicorp/go-version/.travis.yml | 13 + .../github.com/hashicorp/go-version/LICENSE | 354 ++ .../github.com/hashicorp/go-version/README.md | 65 + .../hashicorp/go-version/constraint.go | 204 ++ .../hashicorp/go-version/version.go | 380 +++ .../go-version/version_collection.go | 17 + .../vendor/github.com/kr/pretty/.gitignore | 4 + .../vendor/github.com/kr/pretty/License | 19 + .../vendor/github.com/kr/pretty/Readme | 9 + .../vendor/github.com/kr/pretty/diff.go | 265 ++ .../vendor/github.com/kr/pretty/formatter.go | 327 ++ .../vendor/github.com/kr/pretty/pretty.go | 108 + .../vendor/github.com/kr/pretty/zero.go | 41 + .../vendor/github.com/kr/text/License | 19 + .../vendor/github.com/kr/text/Readme | 3 + .../vendor/github.com/kr/text/doc.go | 3 + .../vendor/github.com/kr/text/indent.go | 74 + .../vendor/github.com/kr/text/wrap.go | 86 + .../github.com/peterhellberg/link/.travis.yml | 7 + .../github.com/peterhellberg/link/LICENSE | 20 + .../github.com/peterhellberg/link/README.md | 82 + .../github.com/peterhellberg/link/doc.go | 40 + .../github.com/peterhellberg/link/link.go | 111 + .../vmware/go-vcloud-director/v2/LICENSE | 182 + .../vmware/go-vcloud-director/v2/NOTICE | 12 + .../v2/govcd/access_control.go | 356 ++ .../v2/govcd/admincatalog.go | 94 + .../go-vcloud-director/v2/govcd/adminorg.go | 777 +++++ .../v2/govcd/adminorg_administration.go | 61 + .../go-vcloud-director/v2/govcd/adminvdc.go | 594 ++++ .../vmware/go-vcloud-director/v2/govcd/api.go | 773 +++++ .../go-vcloud-director/v2/govcd/api_token.go | 111 + .../go-vcloud-director/v2/govcd/api_vcd.go | 310 ++ .../v2/govcd/api_vcd_test_unit.go | 48 + .../v2/govcd/api_vcd_versions.go | 355 ++ .../go-vcloud-director/v2/govcd/catalog.go | 838 +++++ .../v2/govcd/catalogitem.go | 128 + .../v2/govcd/certificate_management.go | 300 ++ .../go-vcloud-director/v2/govcd/disk.go | 431 +++ .../v2/govcd/edgegateway.go | 1433 ++++++++ .../go-vcloud-director/v2/govcd/ejecttask.go | 92 + .../go-vcloud-director/v2/govcd/entity.go | 71 + .../go-vcloud-director/v2/govcd/extension.go | 34 + .../v2/govcd/external_network_v2.go | 192 ++ .../v2/govcd/externalnetwork.go | 83 + .../v2/govcd/filter_condition.go | 186 + .../v2/govcd/filter_engine.go | 388 +++ .../v2/govcd/filter_helpers.go | 541 +++ .../v2/govcd/filter_interface.go | 297 ++ .../v2/govcd/filter_util.go | 204 ++ .../v2/govcd/global_role.go | 383 +++ .../v2/govcd/graph_plan.png | 0 .../go-vcloud-director/v2/govcd/group.go | 185 + .../vmware/go-vcloud-director/v2/govcd/lb.go | 35 + .../v2/govcd/lbappprofile.go | 238 ++ .../go-vcloud-director/v2/govcd/lbapprule.go | 239 ++ .../v2/govcd/lbserverpool.go | 247 ++ .../v2/govcd/lbservicemonitor.go | 254 ++ .../v2/govcd/lbvirtualserver.go | 254 ++ .../go-vcloud-director/v2/govcd/media.go | 697 ++++ .../go-vcloud-director/v2/govcd/metadata.go | 359 ++ .../go-vcloud-director/v2/govcd/monitor.go | 313 ++ .../v2/govcd/nsxt_alb_clouds.go | 188 ++ .../v2/govcd/nsxt_alb_controllers.go | 232 ++ .../v2/govcd/nsxt_alb_importable_clouds.go | 121 + ...xt_alb_importable_service_engine_groups.go | 202 ++ .../v2/govcd/nsxt_alb_pool.go | 215 ++ ...sxt_alb_service_engine_group_assignment.go | 213 ++ .../govcd/nsxt_alb_service_engine_groups.go | 256 ++ .../v2/govcd/nsxt_alb_settings.go | 66 + .../v2/govcd/nsxt_alb_virtual_service.go | 214 ++ .../v2/govcd/nsxt_application_profile.go | 219 ++ .../v2/govcd/nsxt_edge_cluster.go | 115 + .../v2/govcd/nsxt_edgegateway.go | 302 ++ .../v2/govcd/nsxt_firewall.go | 136 + .../v2/govcd/nsxt_firewall_group.go | 376 +++ .../v2/govcd/nsxt_importable_switch.go | 155 + .../v2/govcd/nsxt_ipsec_vpn_tunnel.go | 342 ++ .../v2/govcd/nsxt_nat_rule.go | 294 ++ .../v2/govcd/nsxt_tier0_router.go | 138 + .../v2/govcd/nsxv_dhcplease.go | 69 + .../v2/govcd/nsxv_dhcprelay.go | 77 + .../v2/govcd/nsxv_firewall.go | 225 ++ .../go-vcloud-director/v2/govcd/nsxv_ipset.go | 256 ++ .../go-vcloud-director/v2/govcd/nsxv_nat.go | 201 ++ .../go-vcloud-director/v2/govcd/openapi.go | 813 +++++ .../v2/govcd/openapi_endpoints.go | 179 + .../v2/govcd/openapi_org_network.go | 270 ++ .../v2/govcd/openapi_org_network_dhcp.go | 112 + .../vmware/go-vcloud-director/v2/govcd/org.go | 583 ++++ .../v2/govcd/orgvdcnetwork.go | 352 ++ .../v2/govcd/productsection.go | 53 + .../go-vcloud-director/v2/govcd/query.go | 88 + .../v2/govcd/query_metadata.go | 323 ++ .../go-vcloud-director/v2/govcd/rights.go | 250 ++ .../v2/govcd/rights_bundle.go | 262 ++ .../go-vcloud-director/v2/govcd/roles.go | 454 +++ .../go-vcloud-director/v2/govcd/saml_auth.go | 321 ++ .../v2/govcd/sample_govcd_test_config.yaml | 192 ++ .../v2/govcd/session_info.go | 129 + .../go-vcloud-director/v2/govcd/system.go | 1116 ++++++ .../go-vcloud-director/v2/govcd/task.go | 198 ++ .../v2/govcd/tenant_context.go | 185 + .../v2/govcd/test-resources/cert.pem | 33 + .../v2/govcd/test-resources/key.pem | 54 + .../go-vcloud-director/v2/govcd/upload.go | 271 ++ .../go-vcloud-director/v2/govcd/uploadtask.go | 60 + .../go-vcloud-director/v2/govcd/user.go | 543 +++ .../go-vcloud-director/v2/govcd/vapp.go | 1531 +++++++++ .../v2/govcd/vapp_network.go | 302 ++ .../v2/govcd/vapptemplate.go | 71 + .../vmware/go-vcloud-director/v2/govcd/vdc.go | 1234 +++++++ .../go-vcloud-director/v2/govcd/vdc_group.go | 502 +++ .../v2/govcd/vdccomputepolicy.go | 253 ++ .../vmware/go-vcloud-director/v2/govcd/vm.go | 1815 ++++++++++ .../v2/govcd/vm_affinity_rule.go | 407 +++ .../v2/types/v56/constants.go | 480 +++ .../go-vcloud-director/v2/types/v56/link.go | 215 ++ .../v2/types/v56/nsxt_types.go | 1108 ++++++ .../v2/types/v56/nsxv_types.go | 450 +++ .../v2/types/v56/openapi.go | 367 ++ .../go-vcloud-director/v2/types/v56/saml.go | 74 + .../go-vcloud-director/v2/types/v56/types.go | 3004 +++++++++++++++++ .../v2/types/v56/vm_types.go | 150 + .../go-vcloud-director/v2/util/LOGGING.md | 93 + .../go-vcloud-director/v2/util/logging.go | 471 +++ .../vmware/go-vcloud-director/v2/util/tar.go | 160 + .../vendor/go.uber.org/atomic/.codecov.yml | 19 + .../vendor/go.uber.org/atomic/.gitignore | 12 + .../vendor/go.uber.org/atomic/.travis.yml | 27 + .../vendor/go.uber.org/atomic/CHANGELOG.md | 76 + .../vendor/go.uber.org/atomic/LICENSE.txt | 19 + .../vendor/go.uber.org/atomic/Makefile | 78 + .../vendor/go.uber.org/atomic/README.md | 63 + .../vendor/go.uber.org/atomic/bool.go | 81 + .../vendor/go.uber.org/atomic/bool_ext.go | 53 + .../vendor/go.uber.org/atomic/doc.go | 23 + .../vendor/go.uber.org/atomic/duration.go | 82 + .../vendor/go.uber.org/atomic/duration_ext.go | 40 + .../vendor/go.uber.org/atomic/error.go | 51 + .../vendor/go.uber.org/atomic/error_ext.go | 39 + .../vendor/go.uber.org/atomic/float64.go | 76 + .../vendor/go.uber.org/atomic/float64_ext.go | 47 + .../vendor/go.uber.org/atomic/gen.go | 26 + .../vendor/go.uber.org/atomic/int32.go | 102 + .../vendor/go.uber.org/atomic/int64.go | 102 + .../vendor/go.uber.org/atomic/nocmp.go | 35 + .../vendor/go.uber.org/atomic/string.go | 54 + .../vendor/go.uber.org/atomic/string_ext.go | 43 + .../vendor/go.uber.org/atomic/uint32.go | 102 + .../vendor/go.uber.org/atomic/uint64.go | 102 + .../vendor/go.uber.org/atomic/value.go | 31 + .../vendor/go.uber.org/multierr/.codecov.yml | 15 + .../vendor/go.uber.org/multierr/.gitignore | 4 + .../vendor/go.uber.org/multierr/.travis.yml | 23 + .../vendor/go.uber.org/multierr/CHANGELOG.md | 60 + .../vendor/go.uber.org/multierr/LICENSE.txt | 19 + .../vendor/go.uber.org/multierr/Makefile | 42 + .../vendor/go.uber.org/multierr/README.md | 23 + .../vendor/go.uber.org/multierr/error.go | 449 +++ .../vendor/go.uber.org/multierr/glide.yaml | 8 + .../vendor/go.uber.org/multierr/go113.go | 52 + .../vendor/go.uber.org/zap/.codecov.yml | 17 + .../vendor/go.uber.org/zap/.gitignore | 32 + .../vendor/go.uber.org/zap/.readme.tmpl | 109 + .../vendor/go.uber.org/zap/CHANGELOG.md | 564 ++++ .../vendor/go.uber.org/zap/CODE_OF_CONDUCT.md | 75 + .../vendor/go.uber.org/zap/CONTRIBUTING.md | 75 + .../vendor/go.uber.org/zap/FAQ.md | 164 + .../vendor/go.uber.org/zap/LICENSE.txt | 19 + .../vendor/go.uber.org/zap/Makefile | 73 + .../vendor/go.uber.org/zap/README.md | 134 + .../vendor/go.uber.org/zap/array.go | 320 ++ .../vendor/go.uber.org/zap/buffer/buffer.go | 141 + .../vendor/go.uber.org/zap/buffer/pool.go | 49 + .../vendor/go.uber.org/zap/checklicense.sh | 17 + .../vendor/go.uber.org/zap/config.go | 264 ++ .../vendor/go.uber.org/zap/doc.go | 113 + .../vendor/go.uber.org/zap/encoder.go | 79 + .../vendor/go.uber.org/zap/error.go | 80 + .../vendor/go.uber.org/zap/field.go | 549 +++ .../vendor/go.uber.org/zap/flag.go | 39 + .../vendor/go.uber.org/zap/glide.yaml | 34 + .../vendor/go.uber.org/zap/global.go | 169 + .../vendor/go.uber.org/zap/http_handler.go | 132 + .../zap/internal/bufferpool/bufferpool.go | 31 + .../go.uber.org/zap/internal/color/color.go | 44 + .../go.uber.org/zap/internal/exit/exit.go | 64 + .../vendor/go.uber.org/zap/level.go | 149 + .../vendor/go.uber.org/zap/logger.go | 363 ++ .../vendor/go.uber.org/zap/options.go | 148 + .../vendor/go.uber.org/zap/sink.go | 161 + .../vendor/go.uber.org/zap/stacktrace.go | 176 + .../vendor/go.uber.org/zap/sugar.go | 315 ++ .../vendor/go.uber.org/zap/time.go | 27 + .../vendor/go.uber.org/zap/writer.go | 99 + .../zap/zapcore/buffered_write_syncer.go | 188 ++ .../vendor/go.uber.org/zap/zapcore/clock.go | 48 + .../zap/zapcore/console_encoder.go | 157 + .../vendor/go.uber.org/zap/zapcore/core.go | 113 + .../vendor/go.uber.org/zap/zapcore/doc.go | 24 + .../vendor/go.uber.org/zap/zapcore/encoder.go | 448 +++ .../vendor/go.uber.org/zap/zapcore/entry.go | 262 ++ .../vendor/go.uber.org/zap/zapcore/error.go | 132 + .../vendor/go.uber.org/zap/zapcore/field.go | 233 ++ .../vendor/go.uber.org/zap/zapcore/hook.go | 68 + .../go.uber.org/zap/zapcore/increase_level.go | 66 + .../go.uber.org/zap/zapcore/json_encoder.go | 560 +++ .../vendor/go.uber.org/zap/zapcore/level.go | 187 + .../go.uber.org/zap/zapcore/level_strings.go | 46 + .../go.uber.org/zap/zapcore/marshaler.go | 61 + .../go.uber.org/zap/zapcore/memory_encoder.go | 179 + .../zap/zapcore/reflected_encoder.go | 41 + .../vendor/go.uber.org/zap/zapcore/sampler.go | 221 ++ .../vendor/go.uber.org/zap/zapcore/tee.go | 81 + .../go.uber.org/zap/zapcore/write_syncer.go | 122 + .../token-log-collector/vendor/modules.txt | 38 + 228 files changed, 51250 insertions(+) create mode 100644 scripts/token-log-collector/Dockerfile create mode 100644 scripts/token-log-collector/Makefile create mode 100644 scripts/token-log-collector/README.md create mode 100755 scripts/token-log-collector/bin/token-log-collector create mode 100644 scripts/token-log-collector/cmd/main.go create mode 100644 scripts/token-log-collector/go.mod create mode 100644 scripts/token-log-collector/go.sum create mode 100644 scripts/token-log-collector/vendor/github.com/araddon/dateparse/.travis.yml create mode 100644 scripts/token-log-collector/vendor/github.com/araddon/dateparse/LICENSE create mode 100644 scripts/token-log-collector/vendor/github.com/araddon/dateparse/README.md create mode 100644 scripts/token-log-collector/vendor/github.com/araddon/dateparse/parseany.go create mode 100644 scripts/token-log-collector/vendor/github.com/hashicorp/go-version/.travis.yml create mode 100644 scripts/token-log-collector/vendor/github.com/hashicorp/go-version/LICENSE create mode 100644 scripts/token-log-collector/vendor/github.com/hashicorp/go-version/README.md create mode 100644 scripts/token-log-collector/vendor/github.com/hashicorp/go-version/constraint.go create mode 100644 scripts/token-log-collector/vendor/github.com/hashicorp/go-version/version.go create mode 100644 scripts/token-log-collector/vendor/github.com/hashicorp/go-version/version_collection.go create mode 100644 scripts/token-log-collector/vendor/github.com/kr/pretty/.gitignore create mode 100644 scripts/token-log-collector/vendor/github.com/kr/pretty/License create mode 100644 scripts/token-log-collector/vendor/github.com/kr/pretty/Readme create mode 100644 scripts/token-log-collector/vendor/github.com/kr/pretty/diff.go create mode 100644 scripts/token-log-collector/vendor/github.com/kr/pretty/formatter.go create mode 100644 scripts/token-log-collector/vendor/github.com/kr/pretty/pretty.go create mode 100644 scripts/token-log-collector/vendor/github.com/kr/pretty/zero.go create mode 100644 scripts/token-log-collector/vendor/github.com/kr/text/License create mode 100644 scripts/token-log-collector/vendor/github.com/kr/text/Readme create mode 100644 scripts/token-log-collector/vendor/github.com/kr/text/doc.go create mode 100644 scripts/token-log-collector/vendor/github.com/kr/text/indent.go create mode 100644 scripts/token-log-collector/vendor/github.com/kr/text/wrap.go create mode 100644 scripts/token-log-collector/vendor/github.com/peterhellberg/link/.travis.yml create mode 100644 scripts/token-log-collector/vendor/github.com/peterhellberg/link/LICENSE create mode 100644 scripts/token-log-collector/vendor/github.com/peterhellberg/link/README.md create mode 100644 scripts/token-log-collector/vendor/github.com/peterhellberg/link/doc.go create mode 100644 scripts/token-log-collector/vendor/github.com/peterhellberg/link/link.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/LICENSE create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/NOTICE create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/access_control.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/admincatalog.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminorg.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminorg_administration.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminvdc.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_token.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd_test_unit.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd_versions.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/catalog.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/catalogitem.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/certificate_management.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/disk.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/edgegateway.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/ejecttask.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/entity.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/extension.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/external_network_v2.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/externalnetwork.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_condition.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_engine.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_helpers.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_interface.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_util.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/global_role.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/graph_plan.png create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/group.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lb.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbappprofile.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbapprule.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbserverpool.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbservicemonitor.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbvirtualserver.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/media.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/metadata.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/monitor.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_clouds.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_controllers.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_importable_clouds.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_importable_service_engine_groups.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_pool.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_service_engine_group_assignment.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_service_engine_groups.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_settings.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_virtual_service.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_application_profile.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_edge_cluster.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_edgegateway.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_firewall.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_firewall_group.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_importable_switch.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_ipsec_vpn_tunnel.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_nat_rule.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_tier0_router.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_dhcplease.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_dhcprelay.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_firewall.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_ipset.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_nat.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_endpoints.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_org_network.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_org_network_dhcp.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/org.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/orgvdcnetwork.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/productsection.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/query.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/query_metadata.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/rights.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/rights_bundle.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/roles.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/saml_auth.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/sample_govcd_test_config.yaml create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/session_info.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/system.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/task.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/tenant_context.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/test-resources/cert.pem create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/test-resources/key.pem create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/upload.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/uploadtask.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/user.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapp.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapp_network.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapptemplate.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdc.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdc_group.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdccomputepolicy.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vm.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vm_affinity_rule.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/constants.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/link.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/nsxt_types.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/nsxv_types.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/openapi.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/saml.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/types.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/vm_types.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/LOGGING.md create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/logging.go create mode 100644 scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/tar.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/.codecov.yml create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/.gitignore create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/.travis.yml create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/CHANGELOG.md create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/LICENSE.txt create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/Makefile create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/README.md create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/bool.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/bool_ext.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/doc.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/duration.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/duration_ext.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/error.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/error_ext.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/float64.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/float64_ext.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/gen.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/int32.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/int64.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/nocmp.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/string.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/string_ext.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/uint32.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/uint64.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/atomic/value.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/multierr/.codecov.yml create mode 100644 scripts/token-log-collector/vendor/go.uber.org/multierr/.gitignore create mode 100644 scripts/token-log-collector/vendor/go.uber.org/multierr/.travis.yml create mode 100644 scripts/token-log-collector/vendor/go.uber.org/multierr/CHANGELOG.md create mode 100644 scripts/token-log-collector/vendor/go.uber.org/multierr/LICENSE.txt create mode 100644 scripts/token-log-collector/vendor/go.uber.org/multierr/Makefile create mode 100644 scripts/token-log-collector/vendor/go.uber.org/multierr/README.md create mode 100644 scripts/token-log-collector/vendor/go.uber.org/multierr/error.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/multierr/glide.yaml create mode 100644 scripts/token-log-collector/vendor/go.uber.org/multierr/go113.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/.codecov.yml create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/.gitignore create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/.readme.tmpl create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/CHANGELOG.md create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/CONTRIBUTING.md create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/FAQ.md create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/LICENSE.txt create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/Makefile create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/README.md create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/array.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/buffer/buffer.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/buffer/pool.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/checklicense.sh create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/config.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/doc.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/encoder.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/error.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/field.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/flag.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/glide.yaml create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/global.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/http_handler.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/internal/color/color.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/internal/exit/exit.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/level.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/logger.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/options.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/sink.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/stacktrace.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/sugar.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/time.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/writer.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/clock.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/console_encoder.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/core.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/doc.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/encoder.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/entry.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/error.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/field.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/hook.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/increase_level.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/json_encoder.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/level.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/level_strings.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/marshaler.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/memory_encoder.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/reflected_encoder.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/sampler.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/tee.go create mode 100644 scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/write_syncer.go create mode 100644 scripts/token-log-collector/vendor/modules.txt diff --git a/scripts/token-log-collector/Dockerfile b/scripts/token-log-collector/Dockerfile new file mode 100644 index 000000000..5de63a5cb --- /dev/null +++ b/scripts/token-log-collector/Dockerfile @@ -0,0 +1,21 @@ +FROM golang:1.18 as builder + +ENV GOOS=linux +ENV GOARCH=amd64 + + +RUN apt-get update && \ + apt-get -y install \ + bash \ + git \ + make + +ADD . /go/src/gitlab.eng.vmware.com/shamasundara/token-log-collector +WORKDIR /go/src/gitlab.eng.vmware.com/shamasundara/token-log-collector + +ENV GOPATH /go +ENV CONVERSION_GEN_BIN token-log-collector + +RUN mkdir -p /build/vcloud +RUN go build -o /build/vcloud/token-log-collector cmd/main.go + diff --git a/scripts/token-log-collector/Makefile b/scripts/token-log-collector/Makefile new file mode 100644 index 000000000..fbe296c3e --- /dev/null +++ b/scripts/token-log-collector/Makefile @@ -0,0 +1,12 @@ +GITROOT := $(shell git rev-parse --show-toplevel) +TOKEN_CONTAINER := tokens_logger +TOKEN_BINARY_DIR := $(GITROOT)/scripts/token-log-collector/bin +TOKEN_BINARY := $(TOKEN_BINARY_DIR)/token-log-collector +all: bin-dir generate-binary +bin-dir: + mkdir -p $(TOKEN_BINARY_DIR) +generate-binary: bin-dir + docker build . -t token-loggger + docker create -ti --name $(TOKEN_CONTAINER) token-loggger:latest bash + docker cp $(TOKEN_CONTAINER):/build/vcloud/token-log-collector $(TOKEN_BINARY) + docker rm $(TOKEN_CONTAINER) \ No newline at end of file diff --git a/scripts/token-log-collector/README.md b/scripts/token-log-collector/README.md new file mode 100644 index 000000000..cd02d1bc1 --- /dev/null +++ b/scripts/token-log-collector/README.md @@ -0,0 +1,23 @@ +# token-log-collector + +## Generate linux binary + +To generate the token-log-collector linux binary, execute the following command + +```shell +make generate-binary +``` + +The above make target stores the binary in `./bin` directory. This binary can be used in a linux environment + +## Using the binary to collect debug API token related failure + +Use the token-log-collector binary to create a sample API token and verify authentication to VCD +```shell +token-log-collector default --vcd-host https:// -org -user -password --skip-verify --client-name cseclient +``` + +Use the token-log-collector binary to verify if an API token is valid +```shell +token-log-collector verify-token --vcd-host https:// -org cluster-org -user user --skip-verify --refresh-token +``` \ No newline at end of file diff --git a/scripts/token-log-collector/bin/token-log-collector b/scripts/token-log-collector/bin/token-log-collector new file mode 100755 index 0000000000000000000000000000000000000000..ed8040ae690becd1a6a50ee0d09121ccc00b6902 GIT binary patch literal 7861606 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≥?C^u^(=dnmX?=sHV_$u<5aE2RrKz>|pQyT~N+$MknZy7&?3< ze5Zi^Emr@!S_wZ=FmGsPBs~k*j={gqv`ixhs6Z%oz$KGe;C6#_3)}}c0#{VPUFGt; zrLa#H`==fRIL5%v-&sHjTglmPQxdwxP1RG!!4a4lR=%^fc8IsQtsn&Kx}!t-$O+tI z-4>(|y==NO`@>Vl@E!Z{g?4~6Nkd2Zq@GFS$iTL*{cl>#`k&Z4?~;p!CFT!*HBiMY zvhW}IDw# zZI4^1k`5}YkZtL{-r~KIF+|!_31)#OX@H%zNucXrQ}uU_Ru_x$Bin|3D2lHqa!oo` z^6pO8&ki%GzpTPiTG;g$Q}di&Q?=pN&0autnKxya0vDAao-0~(YGXq%b(17z@;A03 z%Rdm%P{iEVTodSdVR*Ye663FLzl?ns>md?9*NWBnFaU&s?`O@?mM)gXe_9ofZ6#eJt{~@O`M=6L=Q3= zD+77FXrg(C9iG(XL}GwBF=WKQ#y^*+5&Jdj3u?Sni_7x3yG?EDGy0AaL_?t^~H;kN}P!aPJ`HCgB!C~k%xkWrax zON)}jOLgHBn^)q^rN9)1=0}^w7?gU~T$*66E@SP2(?R>H*xB*aQf0WeJaqZ6AG z&n7z93t%#oF&WC&u7u{goEy9QU`{)NZL#eKQI#xzo0-qwl7lCPIjZtpqjRLWXDnJx zL&rbyA05Z{g2rKHDQiS48&G-<6r+cyYwL8J7B?DZYPTPCS>T!;c{c6o~J(_dcmWqbVMB3G)qztc_`wtF5 zeDBCN@3|?dZ=Dz6^4;7o@dlxhie!I4yz)vb_?wdIYeHd*q$n*ueA3R7-C{T)v z{YD4w@xK)V$9B!~a0^>AntqCT)nO0ONUdBH#=6~V>&O4JVH279$fT%sVuy_L>t&qZ zo}qeG!#bMyNe#!_S~|OHDN!w|;APVL)YuxLxTh1MBC+0PQ(TixRFXd7V7i+yg09O3 zH$on;4hi1Z#(fYWcX}yxWaKEW(GIo^OLTm;mgnZzL~-4``6c;K&-wlM{snRjueX=F zZU-()Ho&z#7F^MX4zx{bX7aoU2$)W4*cS#Ck_M7Q02a*In;M73l0!LmT-fkCB8xVx zOg~E=?&Y4|(o&0+x`x0v1w?F>P|chZ-#@o;us-#fJCwHB{}cqn^rbJERDEV7ne=^b zmGlvlN&CbLp(;kY2RJmi39o_w-p1 z=5Hax(PI({pzc@d8=x3^s>hu7C6c%d>6d&Mt`Dd2fzgIqMZ3#mXi;~L@ab3NtLvqQ zTU$^sGIsdCfqv!VUv*V#B1EXn(|ra}J0w=rLYCM7ezZb{RcOP9ka5FNZtFY^A}pJ*U`3W zqwONw_NvGA)_4f%a^L=t7a(|@A0L7l76O4}A$U3dd=ahJ24ib8H)x9)7N2c-4Ox|&WxJO#(2!9ws$4R_sihS*l zZmkQ$ZaI}Zc+QY<1?KrD|B2haW|9TZZXTJ_^FR~Pmt>Y$82;DxA80zT{faKr?5iz3 z+ut6d{qqmj{!>GGqUQh9{;2%+iCV=JAinoO+MlELpa0Fl`v1A@2ba2|toi4Aumef_ zE^2k+x7^07XgqS|cGgo6Vrp>BrNrMbqux?F#!rq#o?}Hc$`7)7h)1Xr4638JRYp^X zPdPi%wOhB-2X^TgqY2pb89ywY_UPu2xo<$7nWyXsGQZ8DkdM0bLG2HY|5+Xsf8P@g zMMOgp>trhZZV_8jy|u97MBs-b2`&czTGD!(&07Rc%MYIQCbHtzc(+2rCD76y>7C7d zm%R$9fE(zQXcy8gRk$$ibQbU{?;-g8;4hZQA_&LjoCcL929=U1mZnk|dSay$obl`( zHp_YgU4m#j7DSeLSHi&pnZu`PO5>>-d3@k!EFPT zCYsBfh?7Xu`k&mMVulfgi?f?;-pXwgo_gudS4W-e?M`D89csPKR~Kyf!I_qDoo0lW zYDMd+R_gf3`$cBBtnxlEi`NOZwTTVMz!`wUbn)=)uD7!pS`Rf*hB}6u(hCkk;UKmY z=#K{J!6hF9BaAwXUGVV(ThR0>r!t0*T|{_KpRP7sJyO0eMFj;l ztI;o+{gXCKO3hfXyM45Kdw!C9bPkv7Pac(=7m9ZkOLk|%Vy@-A2LR1@W~estdTruW zVqq871n*s2Q@OukWKH6u_^v)RiFLJ!m(ddDg`_3KcNJy=e5=@nw$QjvBUWCU@comw z?d1*TrYpBr7CE0W}? zB9H8cFh^D>tD02gq;i}Do||SXnxxS5N9gOy|KP)wf%NdY0`nLgf>t)ltZl8n50EJM z+_X!HftZW=)7Ldsu#$|2tCme?X7v_x+(2KZV83{vJ62iV#PeU^Dm|o%Ow()+6p3#a z3t~9^AWIY>zJ&Pze~k7bfNs8QbE2B+pyMAey7YkuPhMH8y$3th*z?mC;e(%bOA@w9=eF15<#57)H$>yTvP{R;_F;|I>fV{-K0(C-BWnUp_ppv3~ zQpoaW$v<;HBxzQtj-2c;69F0eQFPUVz?Ju1ZFS{mO}t9Xxx!Z>ogXAV zVzr2W^0TW|zxmC0Is3fO4`DW-Cq|rn{?9@>7=NFUzaC)#r9pEX__5A4(PGhqCwi_d z;2)YBt6A_dqI{Tk%BM*)vYsOJSwvq3cM2n zujq%0BW62W4ZzSk9qxA$^;!DbCe;AgBT~vlbP!>#hHVWxlkIi}Ye*CCVyj4xDM zRA4v8@*??~*{87NzyoNg$C=V{U|Xdvfb=WWCwjI}FJ7lkNRO*&N_vgrN9!}%8B1;+{6L&7- z4)pdzw3_hijaUDcSF9~wd*D$$(Tc^qqn|}Wb}!g)V!o;jejuW%PJYInsR|LqgZ&gXAY`Uu?3AkG8%w`yF-MFSw6(8$ z>;`c6N{)%)m>&QaDu%aQ}#yye}S;N3~4d})4*OJHI zR&zd&Eq1!~uut4y=uf=vlkw>{?G$wQ8RGb-Cn}A2DgIayJKhOeCQ@puok+LqM-%B~ zbs{_dJQtW>a}F?X%oz^+AGEOjFVY#RvV^pC7JWjOCHUbgxbGkZvjkrzg8%+OGC=UR zpQGE5uG}ip9&e_-Ua0#G16rNP&T2iNYXNdeN5deg_t~{;_fyZW`Ol^wPGKycC~syK zAab^3*;Q8T=6I+QIc;Da8?q<1 zBm<8P!alHi`x$Q!&MuDfeKXgz zeQ@Jv<4@%6pNaw)PQ{M^+tXo!R}>&8lBZp%AEHbLy0HRmOYToOCvKEr7~O0Af!xIpRB0L>H$m)emR)mp;OXN~e@evkcZe@Wq4B zh3c)h_=TG0&k=hQaWLb68G)?%WZvjq(z_A?sg9LXycE(9eit2(3&I0%^_*<<9PVox z!B98g@Q+d^7lTfqcaFk!C#RGc8oP*hP#`ksRkfgS%V8UK*x4w{7i0Ak6?f+pvG zj99Scn+xOB|AYz(h!>WqsmD%`y15?tgHu3rLA?6SY?4=wzhG)%xp`xZMnUz(+4;9q z+WhICK3tiljt*@5XXdwWzIHb^eqPZVG1~J_4q~7^(BoIj{@E>5nOT`nRo!pY98u5Q zuDs<3CH8NbhFIcdbc>$KVN%#}M+`bsoJgEAHKJ(&NUz%5cw|%c%>E*L`ZeN&GuW&(M^6;P_i3!stUb!VJv zwJhc_8~)x)xnJus!-?|8NlPpaA>h22=2zB(Jd!Rvd!qBnTYWTQ8D6)!pOaK%pC{VtvrHoc;g zUHNTH>YW+oCq>K{r=RSf?21;J9iFZA>1d+gWBO&v=ulvF)r|;2YV@LRW>h3e5Gck-}Pv6$}2EF45l=s8jt9pUa=Mu9hEX zdt>gUeyhTmtm4)?m!e|?!(EoUCI zzjynWYuuN2QHQQxXtnA7rM2Ym)O!NG2O5Ic+t5oeUFXP;&9h9$Sjx@TVgKyPn--Q* z#8PKTv8ePFJR8VIa~3k6l(R2;Rqm?8##6ki`$}J@#YRZD*}qmf!WNtt5Sl8UTUsn~ z?}?^dpTN)eEbM;Yvavgoejl0J%Wb;5ltj0zG}(8*&zwwv2e^*Qk$sMCgH`XE`8}t(#2KGqc+_kU-I9jzi?8v{=58ip`Y|c zF8vct_yH<^9qHz6tUy5Z{$2105P-mt^ufyu)6zrkgGaCBbt=Di&~ zTh9Ey-Yw?8+xBmveb~VDU<~~Yw8`8D?z~k)g;=_Z`hH|T7{9rjMT`~SCD$M<%arOf zjuLh&%kYKu*I;2@$7u|2Id?oi@Ff%aE}A)Rf2qJVd^2A~#`nORsmKF7tveZf{qkRf z?;3Pwqx%a!2R;ifnkPC#7QR;|X5pK2e-^&=d^2q$^WnQ^dr!pvYw&4*D2upRkE#;e8 zOy_%!@05QNzA=Jt(C5R~3xC|?5ZD*V!q;+N7Ju*X&Ad^P58sLp{yqHN@hI?JkGk=% z<4^EinuBlqx3ln_C-`c5!8hdJgzvRSfbWm&)qf6rz3|5gz`*KrviPgd!S^%1nIExj z*>ikv`uo3!zjFlN_|J#0*ZdWHBXjUQes30k{RCfOFZedT|L?)~Uk?M{-Gp2G*YQ^b ze7BsP#a}1~-!*(QUp*`ze--~Gd|lj#ZQjRt_&Mt@z7^@u z!e1@=L0I|$MmGIHAqb-oM3$aZu!=!o|IWrA9PzE=Wz9XZML!r$IGBAA>yl2hKrNXm z)SvlPzWU+pN0DCoPb%%aL*>JO>@MXvtexcZ+wpnk=HXffaUy!wMnUzC{7!;vgXvBXZ!r`*#@qC2DE zuhGzx%vFUdu`pcFI8VwUOUx-{#J~P%Dq80-TocQ%@uFYa{VuNrFPhZCGIO&0LQ*%E znSKNGu#k};gW01uo){tyo?)=0uvcupTHMPVBDvKu$v^UyOqi zJDOfja7%xG*Qbi~kb|hNz2ZOlz4klZIQ^P-8dx8p2ANR>mEdHB>V=qO3oD7?5GDuv zS&?%4o184z`F~;=_a7Yuezw+J5cK7DX2JcwjqE3?99Oi#UNr8I=ux%Rq)XiNmryV z(>VY}wXB=d|Bng?Yr*35g4uOCNP1y%TH78jSLIH~JNCq@BRe#>hn(MD+qOrY%@j|< zR=kZ-ifSh+dGSKUC%BkEJ9BKXg_dMe;1SU$@ohaQ;P%j(rr)nn;fCU9`+1>P<$1@Y z0ztrf;sfUNpYX1YCZ4TXKe5nWN6U!M0%Nn+nvV`)H!xYVFuKvis%qv0Q?FA?EE)Lv zpeY4F8*H}yC**v*`n%f&=#W@q@C77B+an^A0?}Y~H6KhFAQNK)^TLbF?ut$3yNnc0 zL$PFZPE>oE$r-b~&zquUx(A3aW{zXY{+#*wBJHLqR6t_#!g%#@wmo(| zCsGXGy-d*l`0H1!r);xub)UjsaLS8o4A$0h>MoX;GKV`upO06+`=Q_+a6zKz`ScMG zsref4q=P(Zxb8dzkWaJ2rBP%E~$Cl5OnY_66pcCzLszp)I6H~(6q3S`}NMK!_?GL)77LQ*0YU0 zQkPt=@laHu>2-;ny7MkMWg)@i=QIu@V&$f^C`j|!jc&a9tq+8Qk<6+}&8%Ym(MHQc zg@s&L$u)d-;gxzHB6+yPUGE8{ve47vx#>}cPTSE@hAzs`Y1p_NA#mh-$Kk(!bKY<* zv`rOjxY&PTPv(}{rm;xWMQvQf%`UPUvwdcqqKp$U_86ygY(aLfik{B|%tVT`)Ff@c zq5qo1a!ce~)Nl|Y@9wJZfU!W{v=Efc@iu=#A-Hrqh`Atn+2%da22S^y zc-9waT{fT|qmT&yL^1-EFfVP35hmAo2 zdJ%d^zRYm*T^4oX2gtL5UG{nbl4{DF{R7q{DIz<6#H*?=4lem``+9R()51OljZ?kk z^b+VlqcPU3L>j=XxD0g;w?*wC=!Up#V_*3~w2P6`$Q+p56Dn{`i~J^TDofuiwh zzLiXdgFK}I%a1_@p8&Y#&zR;~%*n6!DM)X~+a^A^{sI){3W_K`M5}ZC&I!iY|1dOR zD)sq~t@+QdeU5$x{|KO<5J2?wdxn>8(qrilRIr|YzLd%kjWJC#gxoac#*QI<*4W9NNWl+C0B~31l zR}X(r!wIXH7_uBDWQO5KfwaloMP*<6EtVyj;zU4|W~IFs-Qocbl)hRc=o;XD-i_w_ zu7#bK<+boc+KqqDHhzVJ1Z|{`rUu(-*(Vte4PQM2Ieo1ekGSZ5wN^i~@YSq}^xt`7 zCwb!Zk5@ruuQ_O`OHiWC5|gOIY_ecWP2wVtbKZN1@!U< zeWmjdXh+jR@-~`NT*j(#48JwhjwK`do6YISmI0a$sdkv3UE!EYxM^W|K||Q=I?guo zpXX548gbt)&(e?DH(N+I702@@W~P`ip`CG&0?a6-emi4T*lJGRT*mpn zBYM>yOMVG1$+e+21ksti64uQtBf{_8lN#S_x}y*LDcJlKs%<)_AnQft0P9s#{FXrl z!RE1&5>{1&X+YVM5TLHya&2?U$ILuZ%UDk!p?ALR=C4?OSZF7@MrxtFFVgr*Xl{5q zrFzRE;>_Ieva|xx7qnFSoDeNn7U> z;JG-$(vy-Gz@=`?mWT<+3(9N>D4JJur4NOj;G^Qz6K!6&%}r&QldatU5jk2iN2C9C zS3|E!NBYZuIS@u9^sCQJ3^jIBKh zKK+Y)eb@1)wu8{u)N)+1pUVWKTeJ~HqJOi|h?gI)bn(yZUc_ zr*`c6!u7FKP5)?o&*~CF1-nIarHa5Ts*cQnc=bI`IS+keZ&RZCJ1_f zE!;_AD4TfGT^(BQ+%2C)L6JUEWG661sQ^#0ZLaj+2t!NfYko&ULCxm3Cyo89m)Kjg z`OQgV->fO*_;-Z!-+yZOrBrt0nf3QPzmiC#gemhCH ze^V7gE84X6!#Zc6c-mx5)|UocQgUt>cjtzFO}Cd9G|tsGNEBqT5&~I34*mfo{T9Nj z*SxIdQme#P(ucb7+1C`jQ(?eB*R3&!qiu}OPR0kEyaG;QsTqvVe#R%`ocS{=Z0#JP zzppj(Q}fv0DV+*j{bhu4>d4!#JstZ4Jv8_6-F(X>dM@#+By#>nsq>Y3lS@6`rJhTw z=zo;bFD9uc&A+oHkLC~0r}>_2-qHUG5DJe+nvAzTm>PzV#lO^*FFOXb5vdxlzU2*J z9aT?8n?xb83_y6uH0-8D?i>W4)KbIbrG|KQ%;sj$Ys#d@V7fV989_f1M6PRHohpLX z)Y@=tmXpP+NBE6o*O+2$Wh^ldwS|E(jz4FQIlk-9dHp@ETb{}Psl)j{y@?WwyTeNL z6?ccn^_%j4*+Oo$-+yS`l;nyOOY8!_Ueyyy2rjvR((%<=UGb7(n_c{Qju*G_1Nl_K zr}%0u;dptn$anHth$w%$w26=Qp(Xq9AP;hzXtKXQ^tb;n4$I9)nc%!U-AUOnJ- zAsh@$(O*XSZ11OrGk6=SVon6g!vOuzuil}@-gU#qtyHDyg0SIia|A{r7B44i<|7m5 zhAkuTxbo~Mix+ODea=k745}N>_(ZPE@$Tnn{2v%fQQAV~r8t2z-6D-_j$5GjEEJk7 z^j_7Jvfz@RfZ=%cg|GT(oETQR^gV9r1A{;Rhsc!}$dFJth6W`DS`LgeJ z`Yk1BNK+{T$YW5vz~je%Rn^QZ*5`KFHOri$N-;K1{=oHwoM2P-9-5%~rl+lA4SL20 zR)=?l7O#H9R)zIxN?7pCc3{pn&wi}&m3|eHHV*H-MZEWZD10>|1Q$DU^HxiC@bD>R zKwm^`+DU>BFqqnzDpnzoO^5j|XB2&CYQp9b_z3Y++BH=`gFgcouhYb2QmZJf2Adz@ zz3B{^d{7U!u-5IT$}@k_a8!z8jCaU*7wWgjm|m7SH-=%3fcV(voctI?HwbjC5f$Rr z*t}qV20{R8v3I{`2J5<1y_)ww($L5XE59_*x&Qqf>|oMj$f8p`EFvnYOnbscGKSiEC&9mkbh`G}ky)(#;S0I;ZKb_XbKW%I{}F{)--8u%n5(r|XBdSV^L7sYMXu^Q zb5&nQ)#hz|?TwY~Q>pcQQq0d(X`3s#_v=(@_bntiTDqm8!_T%CM9`ATbUKvQ{%BA6 zFF9TOIZop2XjsWGw&`Y8*`u0nMu!@qg#{r$2CuIv$H-Sh)iXlG#;(|QU`1#Z%%$t4 z&Fhc&oED13fa=^}Ll{36@S@==RyuQ2+JWHm5-e_C`D3ret$Y*XD?e5Z$e)4jO?qUM z3XJ05vsP$V5}j6qalEH{_P6)5UEj{=1tlC=kih9#WCB;n{25w+0KQrUuB|ucy0BWX zc|faql2=P#<^(2Jchk@>;Ag(yyV=~k)4zrSI53n8Q_hneB6btG#ZF>mGlEYlmttE9 zKUL2!m}K=6uXrvYJH1La%_3+}v*^0^lcozJUc8m>An_j?dLdCDIv;kdShlxevz_%5 zo!mHDDV}bfPqB5Zg-?b zJs?@b27Q4Vtu}I$Hm5g|@@UCnD>rcdgQcGvfr83pg3Yy0VnXhzS zr?bZGe4yVmOuY*_X|1rzv1`;@Ley`<&WDx zh*zKcf^?sw%ml;=D4I1Ii@MG(o1>9t(vKfd0%Qi~m{Q(#r_=>K`Ae0S+XlAZsYQ$B z7Px;V?@@3|sb3G0llX9ib(^ib7td~AtQ1I<_`LW8(AYD#F|23+w!gn(XP45HIcrACa9PA6l&rHz8+XWu-hZ?j7Q~*Zae^Q zF+;=t&;kWUEZQ=akgfyb)w}=9!|jKzR2e%yGhd?KEmhfgi8)xzkGUXG@dFORbaJyJ zYu|=NiN5A&e0&=z(|)?hsa~YMFxeu+3$3Toa(rLSTsFU3D|YGr%+!R7*#7$U(t7P6 z?q-}Cb{A{^{B*l25GBqsUmjvHKJqZoA=znat=eH-*x3g#r}1hYCsU>jHZ$HFt%c**bCQ!;d*(!3n9jgJ{XWp+NcTkV9Y z&HlhB$-7kGz2a=*qkdw<*YBL<{C|a{Thh48Pp|a#6PNzVCnx&;-Pe(B-d2+iK;e-o zRi7Nu(ivmRa(;RI_g47d-rt7W$`o@btuPY2w_OZ2_|#LnIFYD!ZSVCVTuN}#7O?)! zE#M4GFgE}!ZRN2h_?@KJ13J6jp61Qc|CxMIJ@MC3<+28N(QL7(7pWo%b^p4aN~D!qY2Cl>`xh;M z_7QZ~lO5iKF=tx?V^&|@v|7qbfe!jxCYkj$;NN8(Ls-+daLrS>H~qBvMM#-tg4Zk!RBLW)As3__9iu0ScraV+Y^zf zAJdahs6AL6hnRKgS=CDo{_Gyed${V;Nbo!DijsNw8Z}`>uPwA}?7)BWzLF@``AGev2Y-wMt4)XZ#gWeZ>pd>GuF>=$fa4%9pq2b+KBk_R*lQRvh`Ex|kQ;!FA#GFY8{ zmF2m)is2~jbK1*XVDr@2a#qNS`|hP>>|tbn;zs*eW7>5mfCsle`jBwK^bWIs9L;6Ib; zK>99^bU-G)73q{7ooKb?M@jh1XHU%BqlQT72BahpkR2!%)bzp`J|M3CZE9bo%oGR7 z4OvKh{Q2n-v%*Qr8CghN`U9j>Tvvy*910W}1`7X8+tjIAP6I#wAF}?Y0*}7O2SyzK z5k4?2B^9dVS4I`Z>2G1l?ZJEX==9?sgK_w;C;l6;D-{*x1Q#(a8mB?AWAt9xl5A2Td~8>euuTg1N7XE?{$7U?mx94VkStV z{9#`r-Hz{M(t)egAKx=EN0|G;r&*zvNa=fz$w87T@*#2Q zR{tTr%xt73Ah}rvNI~M#*HDV&Fys3;OLudKKsnYm^{2Wl(ErG7P%THPU_geLiBJ2& zTA__?0OcX+lMYa}^EC_2qvD$NOMgT2g}8z`ImSM9p!rm6oF}hlEsH;5;KoyU8_S!e zoAph~&vRCX=s`n{etxdxJpW}XSQaX4+CpAefci^a1lvJ zli`JJ-j&Z0_XaUBxV=3_T9a*b@!l|;!riLtRyk(56aWmROTiASngX*xW1I}MP|SQ? zQ*}M~GjF(TyT42}Yu|euQ*?_Nh@?$V%4#(Z{&`|X`RflPtLDE~b!RJ01eYAEEXgN2 zd0{s+*o@m;_kI}mV>VRg_O)7qOYod3h~HjBm_;_(s3OEIT62eZ<2Ksy_o@bO zT^}o$f2hoV!tiXS#~jS~KP+uhQ`{7{^*2`M3pOuPdC)jZnx$2mpSGFIZZ@#vdp->| zUt(K`Nr#$pT+_|R6}BuGL;yZ<@##3soWgVRX2MJiU+twX3M7Zd_jO4|+jLw;<-rjN zKGmgrAGuL=>^{4H5p3SccfwvDv+LQS;F7m_0SKb#uyB$%s%JPkw{Ld9x1|`&qT#*^ z23WsP8a-74xV|=7gVV_HJ85^YZC6esHcMUd9<}Rxj>NbfZtSyC`M#kBunMtEvW(ug z^1Rhtbe31xVf|;;ppg-p>_iTKd)0*DA{6EisE$51Nd=4~WB0Rf8fu9^??>g@xcZvwufCGF`90g{MFL=LyzB@28!k;vE z=kY0b`knc+xT}Ck8C;g6|FP7v0yuPCqRrMgb`R+|JKd=JRCRH2TeRxASn$H{%ti%uHT-4}^K=$pgk9eeVIXMI#{m&!3hrWps+8Yq6|i z!KdyyoF9UNEdRb9m;=_JOWVY|XC^B$f7VQnB=* z`=xr?H&TJ$Rb|~#WfAK!=+{$SW<&Q#d`9{II5t~;QGWUH2P+@RZy!taFv#!19hl7Q za_)=Nf#(yP>LWg(Ho%|qs>N}j*lc{F4+PCq=Fxokf=f@8+|8qpYl0`)^+RyUAE+*P z*E9MX>ev~a-bzwOA%uqawA4!Yc|p8 zkBjossZ-m77%M5oLs$>&I*e2!8ymy79JP};A}^hOdcn@%EAmb)WeHZU6o~07LQN{8C=CL|9dQ6dU|&>Zabdd6`UquZs@P z(B~0XxzC*oG8ND1y_t7qAo22zNUi?2egtkh1?5~mtGbQB&<3m}+>9F>ztKz0Esrd3 z7&Mw9!An~CcKowDgO^c%C=jvTnbBdZ*{IdW=;hN&N70kfCn?In(N~{<&Fr>fK9rtF zxFZ_}{E(L(no~XSrH2%p7+t4rAC3gvgSGb@Z`_9Xv*lE9jJNVn{y=-XKhVv*ZTtF? z8hmQswO!IN+CChVI_sH@??w}yUK8RvJoQmsOoD zl=2VTm^V-=|p`r%4@-Pg6%jJ2Ki0bRUKaHDs3th$N^Q;V|hxSiSh-#&-4N5XoH zjUFw3>cw9~Y@C;}d!vCf{+1n>jSP=8!7wCf*1;mXF|N$TW=^)D%p^1#P2}ix9zxL1caH#rIq_FSfpR(5Quc{M5dl%InB-)^b0<3)N1ku^r&P2;6TI;vdF` z!b|2O-eLXF&3y{oQxQ)-{%8C$i~kS1wKYGZ2Bl#obI_d6^J1kpECR^10 z9<=KBm@hzPm$!!I>U6hoW zrPk*#XDbnPC|}6bWucJJ4rLbm_8Y5U^zszZPAuvnc#+|h(v^CRn8`Y@oCcc2jJ>%{#3|WwB3p0EJ{8*=;sydf&Im^%B5gg`(U(cPjKn2nweBsX14;oM=;40G*0vNH#S?$ zVbpGJVo=Q8dg{*~VXPAQJX7{ft_67AXR78sFkr6sbCkIjvu0~{CFF(5>XtJXTvV}# z^F?w>3_jJtgdHeV_7+K1^+5r6Z_v@l5HS#JCo2s2JsQgzqcV#%q~8eoAl>y zM%TQX%_05aC%*Myw}_ff)(dN%IrlNG`A{?U3IQqsn)1v*6(GUiUmT^nQh{4v%d)Y7 zc7#=s?B!;^>;FZ$^!I#&Z&<^NYkG&Nl+a5B9#R&`9n(%0Gm(nfAD$(!+5@kzm`Vz1 zzxar>e(J?oGGITlebI==*UjqTvup{9{+;>Afh5I^dfAnto!=)iKf|IOxAzY$Cvvz6 zdrNy8#MfmOoGs3*r-NM3UwyChZ912XVcuP9issc6 zku2sPT|4o~Sb+`7*d7?E$NNrOus(48uh@kIkh8}4J{hO}yq6tab+vRgT@S|Wqk>Fv zLn`&^HJVszR6XOy;Ni5F8oc7S_1FSBf=jF;;?XP!4zSDXUY*CMY6mgcJd%p>e}JDC zG>nKQzv(RMgTKwZSs!TTufY4yg1Q1ziDZW~k1e!fyppDl)qG^$@f<5XR!dswQW=`jl7s7HppA-p1QE^p{}s829Cszu0swaLm`v5oQ7%e4_1D zTQSL`0&|IFY;O1yT?zb5aFF4(dujZYf`5v099v*I?_qDRy7QL;a$Hk&hkXc>@4t>@ zkWwSQ$4^&hGBEnTWkqNhQ_;%#<=fR=DzgjkK61y;p7l$P$WQ}wy+pQ?RmBX~GvY{g zi_AO(3fXqyy}$v-6$vnP;AP=9y=nc_zzTMnux_|8Xm+zqQZiu?NtuYJLZd+|ECw-F9~)unw#q ziam5to^6Nc2UilzU+7-ym3E7OE#KjNV)}PhUu>zJem|!2>9yV*Li-)}kC9pL0yHqd z-?cI^f3b|;$_&JQxR;$*;VT}1AdkV0WC8)A%tx!J=s?at(cfl_jpz3pU^Qhr#6^D% zoojUVr<^$qyH)OE5zML@XH|y0g0m-|rL%LDX(xsdyYFxAuW;(Zm-+yhqla4v#iI41 z%o%a>07mHK|5#QX_GIqXZ{SlAj$4|4sRcO^I$Z}MDsJ9-U3~ILFxR|Gr?r$`BLSo} zBb2*uFR19`dqqWQq_snLr=a71%?^M0swr3a%hmaOvc+l{6m*U+%Ke!QRQaerdfe_jHnzI1GvZyx~E8eh=7frYFS z`rQ72wW~etSvG2)-M|zE!fbm#hGwlvUxoqio&el|0z1oB=Ew}-QnLe4?EE>1_S>(2 z+&$I3Q+F=+y*+?zUHnd^wbYu{j!<%g3#yBk>!rRc$3#Lqmo*JvBeh!K4CSvYx=>lNK`j(7zvi5>c(p1n zi(Sw24;)|KEXd^$Wu5|R|7V<{l(X}MM#du$OcaR}{2dZGh<41cxo3?6!SV;q|8ek% za=%7RTGuEwYA}*$CNDbVXj6srj`9}Yqj=yK{~v!8+YRd*WxmCczeFucfBenl(}imfDF3xca>yDpo2UG=A|bELQ8w)N zY@@q)@tLmlbiAb4doLB{`v&I2jvb`TRjbZN%8Ew?weyh@mdtb#Z~ML?8s%V#xyt|9aU@*S=GaOb!nj9GDj@V8;eD6nIjgVwhXMUc>n4midM|qFNy%AkKTc67B`C4JIg(`JX*AFuW�eoFoSdS?lM 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%0Dp+4 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

k=E2Fad;< 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 jW*x`Oo8bF)d#sc3sTkOo&3 zdlNg5u!AJa87zgX{oa3GC%k|@M$n#u!F)+x=tt;Ye~F*6-`$J}N(9f9Usq zdaqp{qbR@N-oQcSg1EK&-`?lSFAw5jVftAC(>ueYRGfb}_MgtraHJlzL6FrV+K4U* z>L&KZ>TJHQoDHlNIFXuAj{UdwRE$^-mb|VayEo_KR0M|=TuO)tu_q=FAUKwN5eS1x z$-C^|r*e$g^NC_|iJM#?HjBXwKCM3y(-;7c@jrTtzef}(Q-98>>$3xO&8{}&kw40yaJiQR%OQGWi2O#zW= zFESD!XC@PU-NiR85*Ga~bo6^HizU$SM*1cCU9T(jYgd$zZ_n=yax^{WHZ+A=@?lFf zh1fpMDY^!!%X+>5fy~u@WWjvlx2POR`IuCjt5v3eJi}scHt=FEO1+4nOj*wGKmO0B z@}jlwPel->%dloQ3u(h{(sd3%7)XY)5a?ljg^=KmjS zkVh+hjC{b+z3hCkg?5X(n#XD*x>t3n?%Umcxz4u3S_#_mA~%o2CGf7DnISC;AyuXw3%)HOvw5NzXz?4_?;CG#`00*tQ%iIUSv|8A==a z8fga_J2@CK`^i8pu*dffcfVa?F^zXGPE#l^NL~g;%gdQ=rk8?Gujm1UTP(#a^JavG zO_kkbvQVN%J`8@E|7GqT;uknmtas#=Pnlhx-Q|;-YR#_owRdf`A6I0C7kTa|W#5ti zevoVL73(|g9oXgLSk7lc1%6a*c|-0p2aGnhplas`8}&xH;^Z~zW@vLXsNH&@dXAXU zIH769Mv4G$(N%|;|6`V27;5JPIZa&T4Lru$u=ta}z@G!y0|48<^tZy$z_ErQygW1h z6=28;*6TnL!w^5A&$;TbKn%c8l@_kEBSZl=1=QpJb(1t(XPA<8ML&D&j~Cf%x(Sza zuSB>+_C~n4@#*VKsqizar5i42#3^AR6fVYsli6tT`}h1kUo8uvC;%0Jx$$3Q=Cb>@ z)7;qM&h&TB{-Wb;YLOk+i6x(6<`uhv0njm}>Zf^T~6TmH+I=j`}KOos~%*OL$_x($rN` zm{}nHx3cD^^wr;Q(Fygk3(bh#p=>Q>R|RF$k?rh%+Rg_U3e_?c@=S!sEy52I0Wzau zQ!BDSxr-r`zILYKFhs#B1dUi$JB|BL}*IrpAe2qyLS99ShIuAvS5o0>j0$74icZU7iU()!@qxCf8G?HBgvxOd^;<7R>d0Vm zm`qQq#t=%J*oLq#El8Y$CMoo%y}Sis{qy%Fy`rw%%9?5*)d58|00`{S>-@(fL0vhU zD0E@;ll?tYZ*yig`g59zq25<%haCAiigse=jD2S(X3pw-JevHN2<{*UO@ZJKqcSMU z9AHp~zrG&|6q!`!59kmfz9k=<=~uUMUG2ZBqxS%^(-~H1lMc~KiNEyi9YkFAra+Rp z@zeHz?l9#1Z`4sQnK?x=bE-^gVw^CV4&@{K3(ORh4BkDbM2T7k{5ZCq`zq)N)Jq?v z_DeNbyAxG%#ZQ?~Mc9QgdR?tK5=ri(#mI#W66)x!Eg<;y#WHurDpJ=QHs#bcZRD%Z zn7@Wd5S66e7>jmZ&e6ka&?E8hgcl^-P;HKlFQ?C6X_ z@jXJCy0bVc!}}*(0;6NcPaIajG40M;XMRo;KO1H(+TVR7x!fSRY~zzBoCg<*d^rD* zI;Ut9*bfBh>TV9x#-E<$4mfNS9ucQ9IE!@;ZrkkYf-fj~<}g=up&nCo5!b#}B+T!~ znY8-t4SalG3F#nzAVpX4m~jk*bVE)^AM;Bmq|N?oTA@M4&!jp3>u-hvdUFr+C&%Au zHP+R~V56>KLBk>riSNeAN%Xd!P%q;acxF=n@{ikH3s}j~W(12X_(*Se^mzJlwbUst zDT{!wp(xJd&c^~=4Zx`qQ2U2nP_-tTOY;3A#5ahvyUEC&Maqq87?}31kcC}1VoKUZE7h3(h?y7D!0HSkZBl=ib|_* z#n%3{tyOC+uNT@k0fYoZ0*C|x8g6>V!4g5a>wLf8+ULwAnFOT%zxVyV=gsqE&OZC> z%i3$Nwf5R;ue~=Mm|>q$(>r8GE9alMG-uHBGwuo<9|8G2|3uASOU~0OZek6--hG#X z#qAAh$2C8Qzbx&6Ufr~h=7qJT$$lTjWqZex8cmLlYWy(8)X*VB)BWGxgvD&9_T6!C@{1Mf1b){dcr5Vrw+L0Tg z0aJWdIl#%GA*-qY;-XP}{f{e~nk0+#uM%1jIca>_6k9sVX{u2=x}yL6M1bc2unyN6 zj(8_P1o;D3SYc&f_vX9EkF;|vC_!_)-2?UXCLQ-FhaGrSC+@{NhlfEs z5P*JgADtz9iC+zZarXw46pV|G*DWtM~)S6EYF>39$;1m;p`cTB=*JPf&IYVjRK{NY7ggW5Q9Q z{l)?BMlt9W6``V-w{GL_+{cf8@ z7^m&O)0dytmOci5pXFz?Eq@P`e#MxlgI`<7sUK)CjWmwsF8*-r9tP5ekD$FLJorc= zL^i~51AGIGD>_;Jy`!jnffr!crv)9FA99aLwfuXBrj%wGz2iBEm0WElg|JsikqA--s9~pb^H1^&IP3!hA`RuPzNGCqIG z$5I3@niRJ+D^|wR8`{Qtj`b+P{J?YU{1W)*AM06ionXM2RB!ju8tXlw@48$s}g~!!f3BO24`jv>Bzl7T{px z6FsLv+;*SVlUCH;lmSOXeR>se z`Fs!Q(`r8KwbNVmsqr$sqHh%wxZKP`kdU94#8jeCP2)}X6m(<`zdQIHiC8C8 z#6qJ9Qctn=A4_TUFb7VG`?NcRz%LpN0`GOil36j)vUPn&XgS&jEg>9nqgUj5Qs{#j zi15#ShDt&^{<-FMEb9UnS5=X@|Bdsz@_U%myAqCbPVZ*@*UqD-LMA9!OSOv2@!f@k z+7@>~0Oy9|t~LANlALO%cjs{5wO!o4pX0{IT~lpN@7E)I0~6f7c|d+S`V>dD+K+0U z6<{xycdyI)uRv#c;s957)dQ*Ss!7<4^+-lwsLQ)e$5}3!8)$SoY93Gt_kS9Ab1%8T60t_G16n1{b%Z9g{_eRRB#Z--}vZ-e#1a0{P&wf2J+C0rk7> zyR`+E2q54QD%hZ>5-tX#C{h+^Y%FTS**4yzsK@QC!>LMc@8@os!5TT`z>PH^06Bd2 z4*2kZPR3WunY$}kWfjEGV9d=&VM>95a1stiXWUwnOF9c>!W`LYU#BgYCt1eX3Z3@% zr%rN#tcuWjXXg8E??LC$UC!EXaH=mF*Ua`7yWw9?hZOmwfw5uFDL`xBU-)U-IqbF-yL^P~1ws zIr0TJzZ?PF-1KETxRH6M@%5SxI?w<8$hRr<3^`NzRuGbJo3-*AnA4PRTPWX7M9a5R zm=lS7+lc_>o0G1zT@b1c+}c{orAJ6P@;~I;6Dpf2;*yaML1ll?%KuB`QH?9J!RcL% zU$?zkTW}X^1ewmXuF~Rh)ip@Tt+rwfF|XQkRt?K>dsn(Mn*pFx8&T)3dML~7{mh;D zzO(k!ZSM3_&iJp~_WfEp*SKkegX9r~1q)9uuR)P8)AU-$h-Ma!!?Ry!Wu`kGFE(T4 zw5CC}0xSyHBC)TF?XQ(QaiJWhcV@0~de_O3!#kZvo18d6#hJd!h14v4gwKU#G|EEq zF$C?$v^^BLy?Y_Bae9lXzu-7&snRLinxS<$F|WyNpfeHca8r*UM5Mz2b5Y|GM zH-NQfm-jQAh3>}X#E(A995@7Tfgh5d@Vo6Nv<2@|{(BqTna5n2FbaNSjxert7z}L# z+&E%u!Ea?`fL1_>1QbFZyS$LR)O2)bRZnNt5D2DGY3@u6LiNt0+nu$?f&JsdeSL5S z!9l0D9xW0A_?YsZ$|IyzA@vh&A#Z#3i+?&ny8=~(=uhD55)I#}FnoIaNda#=+od2I zM-30oSJ6PZ(GM0-8(s0=3N)X&u|G(SJ}zv=cL9DE&0PSm*z6e57del_NM#(nkTij@ z3MpY)9Rthi0}fZ!B;oJzn#m^v?Mo$>;BGxz}pCr|v zL#Y(~G^tNaS}nn5G~IX)K}h$x4v}D2-vJ3W^?;0852>hfM3Fv>`&9I375yWo)DdOu zZR|+kMT}b~YC8~pVr^67){QY8wZ7x{^_Qq=9a{L@ZPLQ`oPfJJ&<@DP-R;15rsLNG z5LXyuL3op)Hu?BNViY>mefNBY*?xky=mn55{Vg7SfC0E-mw{@jT0zQ*x1da^psrDQ zzG8k~bO8Jhu^7Td(2DNNq?B(pV=4|pKcV?Vt9X|M`4S()CI@5EV`{bqX(pOFuH5ym z`Y%}?BNZRx>4ZYyUM|%665pART5e`0NzX~uE$huml{f>!W039?U~jw{!^9bd`kI&P z&P&Wj6r@&HGXZM7Q5N|%Y$JoER@c_im%yQWUtcDzt$rDgw>#lS=+iH|<}g3m2EYE- z9t9Lw%e$5-aS3x5IT;4~#C+Y~#4H&G9eNfKyPnlWaFLYhCK+`mofyiHi`*Rg?o0gk zBb0itS?V}d>SsR>mwJDUQhkYa%yosC>uQzjkRj`e0!v1WT(x@=(B2fVeqKt3(|1QF z^ZY%Ybg%h3Nr$h~YyG$BzMIbBnT(sh<^2@3dpddcBvUxm9`BUv+1=UMja=;9v>Pwy z=$lS>_9VKxA>*f=Jf9{zYmar#^)w?85`(@ z#XGU6pkM_I0F*E^;M&v>3<}Vd@W%!+pt}I60U=@@Jj6 z#1w1XFtYF@Tml3AYsYMKz`3A_}B71qDEPCSr!_%)|{U@HUFPU}2Mv3l>Z#Mt4PhsYb|Z2*nWL zf6Sjt&k4odV1+OTEV&$-<@=aFpReZ68>aRc;k!1OFK+u*&9jBL^d&y)g3O!#E6O}` zkBcvH5#t^(X;tfRRn34!Tc;oiBV)? zVWupl7_BDUjLWUMBU!5t)@t>+-aC@5Vwt@fUnybHS5!YyMh#+k!aw_1uFl2NIMB`9 zWl)AUg3GTItVKNObdl&eD6J8(E^i+jHO*!TkF_Q7#V}tWnoaWZJ!dOJWC(Nu0%Zo$ zhd?jG8_&)hEe%(|C@}4HGbS=LlOpV$6sFTgtW%)C9}602?J*pZ49~13s&T%A8+EfX z&L`FR`^F_uRS3&c7NBU#MeWLDtof_o!iQDHP0dha4t|2PzC`1PGG;%X%ku@A_ChV8 zvkmSqKpH$TFE`#(DgUWb-h-6J8%*d+{IiO>2~ncIJd0?N964kRhq94j22jA^sgP_` zBrIf%dRqySm}V}@vm#*t|GFqWh4!TeB|rW{&A(n3jJ~4i4f2CzL0QluPqnY5wfq>) ztQ^ifCz7?r*WoS92%ELVi6UOC%`7WS@v_(yNvddy8Im-`jM|8)s_Ia@kXmF*dOR-g zR9jA{kT04-aRKMl%tpC?;2Ei(3JuPmbAq?JEK>ZojQM?u7c%b9LKUYv+Pau%v66}4 zH^p~vntZ1k1N%o42%dDVK#AfwmJ}jeRu#!{%)_{qm)V2!9C2;Z*VHPSR!XHwn59&jx77`=-8nZmbdh7>j5qKmED{RppVF1glW3e^J zr)OdmKZY3|V$^lN5XW7riP&TO>>CIZ3ujP>ps?0xe|6fAQ9fSRpPh9eP7Fzm;)MX#ZHw|A8@ zv&QXR?L6A3;I0|w!`c(}O6Ka=g*Oo5_dSaLoT>huItv_(8Zh1dO6qe)Ktw$gKXdV5W^|6h2| z-W<3CJ1vS{lqIO2;2|z(uw0^;mx+Vx?cL7a_y4gV=u98bIG8*y+4{bg!A(@?Jf2 z(MG6A=vTHHQ!v#p_7k(WRp;Xdqg>xT!P?I+^WVWW9`A7xvc{k2P~}V9d!q=!#RDPQ zwtY+)c-+wFHb*P(N@F!riF`Y$lE0~v|D4HRW^!NR3o7adjCu-DXCwt(Z=RVHOfaQj z^vW0=!EsP`XFUjQ@_45?=j&Cok`Rh7?W|V~Kz|4Fb#G7II}N;OEpe8|IXyKA&f3ot za<%{LH4SQJmJ9CW-V>hBG`;q-1ijzroHSQIS55}gxMKC!Pm%eA zX9@@=fFs{5_sh3Z&;X+a9$~!c5tO#cxFY;=+_(TQ(*58F8jn#Uv~e1bQEi5C&l{@K zQDs}xvVS}3ZiTh*tFqsItngP9Isb*`0Li1*1{0(g?cZt({w%P;iHE~(2BE+#(mc{1 za21F#$(U%i6}aS@p}n@`K@sdZQz!BSaA+g{WOH@R^(93w+Z z0rIN-O&wt`>iig4WoplUYx$^~`-3sqFB4>%KI;&yb$GX|q*MYplv(RpkOtFoF=`B- z$1xhZJV#GSV2xcEKqz53axIgms)%D1hrhr*v?mrgeUG$+Z*=v12KtBj((Owap!*(f z;Y*RzcPEl;36U|9z)Xl!+Iulj=mh$OQ)arnJGiQ)gs!QNfpf%cBEz4{R!I8>=Ff}e zKonDq%0kkc(%kYcFv6)NCGRTpGE!W40NobW#zrhGVenOm$*UTboU5(N4X(s*o_AC- zzOW`h3_37ZJd0&TGonx(XF&F{0fkN;v&LlFI;WTO z?#Y-HczCK5s)#KgfB2UUu;Ra{qZKaI{=4I){Szo3i)bIjoWoQaVKrDr?0}=mXw>?I zjPOndB_|7GLQaY%1Rx6q1v;B3#0$C=wf9Y18FCmC#nS`H%mj;7MktULhqGW~uq2}) z&qN%`Qs)I&5e3AgD#hr?;}%j3njeRGZUM_g=MO#8Fy!!#0A2ALUz!o*lZcaSi2Qg(qXoA`%@gtqFx zmk3Lge_@CoQ9R8e_Cpw8u-JTv2U55(kn^6z=^`Jdk9JpVo({zap4qxL!A2O9m@7pF zeZvmo$k*-(j&oJrbS2OXJd10%Dzp2`m+yN2ff+u`$-T_gNw450rPU4FM4SqKV3 zVp4G{R;RX$^?BpIKXpLctvH?nUibS$$N`TNKht^sQYvXXv^S%omey;`Z;Ymy7;<3K zy^<*Ob?^V4wLfFeU|Mv$KeUwlGgiMzi!=9U{1or9KVu96fbZRPgwIkIjaU8%N3CCl z#SD8hiG2vBrcwhEP1BFAq!SvBhgn;LXWU_JNB*%}}4%Qyl<|TC2JvAx1eP!uB z_#b{A@A%cg3x1W*!;!VtQ8}g_Wegm?g%7HkUBcX?$jm074 zfthnobqqtJ;O7D02VFmz8XkYbzT41Gd#VEyK)+$h}UBCx{Klm3j-YWAocL*o%oe&I-qI%WGwRatZqnLJNE+dq69d-Hl_Zw^D3x zJ|5W&H+F9_ScB7aFbY@$yQgIQ%52RYzQmUvp!pbEEySD*;xL_*q6N63zgaIuVnc`| za(|6pRYo9U^qiuxi2a#Af}3x<`!k;l*>)cj1AT*&Sh>0SOchbzSE3OA&tU* zyjfeclk>}v-Nq_PnT=^y&Oix}`AQ{|0EY@`pA+7=rK4RwCFEW94@&xD-yFPgAWoJ2 zOPt+Jn-FBTGIuIC^eVG1h;Y`irrh?QC^+6hZgp^^R zXl40i*QFWP{h)PkVGK|?A^3cz8BqEOFV=ttGBWGJmsD<^PeWyBpab#)NAI_ij%U^w z(v%C1nH5LiA5IOa_FtG03Sd3}8e`9BG3^fyN|En^s7)=ubJy_8(OTcq?2!?bTvKf)UDW zJSKCCx}tn|UN|#bXh~8wBv<+xSNsPq`wneU6CgqPrhQ*+Uk(f-jLm3`)810r1>dRz z^pg7uR{l=P%K!D$bS!PTeb@Hl`}k_N{XMKn5tkLP3ADiREWmtpbOUlRi4dEOGPhZ? zAFW(9211&vmJUooOk zE}&E^G@iYtP5)WU)dA%TDIq`P9L)-VPtgl30fxUd@e%C?>ZkCU0Q>BW2brOaF|AGW z#oQ_#Wtyk1r<mWa|KAR@ysBbc1 zOw!+{IST8PJ1{;E;CCKMecULPpqQtwL=bul=G@P&mHfR_{=YDP67$3VSw;PdQD3h= zL;KV#FDP-20jRArD%BOR0kGuHgLX>^9wEO6VGH-!%kO~5?`q*VvC^+a1WkMF87HLp z;x{10o$p$b-5D?Yr~f<0d?*q+KCrngRc8G%ueYki$nhFJ#QQ(u=QAHUmLWM=Ak8=&i|Xs-vl=JO`Gx`{)3eNIPS6+ z;9ExdUxO!^<#oX@C%>2;*Wg7fuV560 zT(#VU114rc3mAqWz_O5GQ3xU&Lja^NB|4NF&KVHOAap|ah=HbUt&U;~EngI#Vfdhe zs)hh+K!rx5y%pL+SXcB5y%zjeM!=+Iyr{Bd3P=c|<$vEc#aXngGyziSfUpt}y^5UtEYZPq9gk1r zV3y+egjp9#n@kGh4{8v~Dk5dg1b;d`Cp2xL3j;_s{&K5&KknrPdS%|{dOb6^-{@t@xwS?LmbhvL_v^JNxAu!9gx^DWVIFW}Ge3CTzC0To zmB!gJ@-T_(1NTtQ3vi|m}7nuxT z4HKnb4DFZvDsh*Zt1aJ}*Dv`=Ct!pr6|N%VV5WipVh!~O@1ERRSZI8Guj`W=Hxye8 zugI-!PR;lFQ4YIlEB8lL zg0iU2m}Wj7GM_({XN_?mp0Mv3cbf6T7xcco z^uh~;-*)31MiT&75+T1&z6+xvB~k3Z|6j-_GAMdEQaUNJ2kSpW7EVJ7(#B>)Jk1D- zD82~KcOar5Vj!Z(w~$d#8bn6`?NV5w9Yp zAJ0F#F&ruR;Lh?Z=@aL%A1KG6JlEp|Of&@Zy zWrR#d^yI#AkU}WxbBMXmRYZO_H5&EmiBbRcjeh&{7vEwPRDu^JpC&OnET8VfYsc~l3VdkgfdeR28Z2ju{|0<1 z0?;690^PNBgT1|;cN1maJx+V$oS`&Z)iwiXE3pFxKsmi1x-wU~z3(|Q>*x^WPJfU3 z(+Q|c%kX({Rj&+}{o@(S{fqDx=sMKfXOS~lg9FR8N4dV|^f|ERvqoE3B#B2aIz{}; zt<+A$0Eh7R_M8lsbk%>YA3YgJ)Q>je96tEJ&e5@XytXze*Sj9$smpieqF%xU*QTq% z@Dr0-nr;UvW8~fof(zt(zcC3Wi0FY==hl7(dOHc?`2z2guZ+v@wu|~9{jWVdUlu2P z1z&JbryiRUL?Nm9*#YQp#ek{H+$-o;H%MS$w$H1`2a7kU!O(9<)Rn4xc)UrTurRraQXV43n#y7y6?`?)|#ld4AKH09orbm#me6}LBdPNv~hSlPjdlC34JM(QUweHoNp7dK*U zA+!U;N?|Q}aYB}AJmxc@psa*x2yv&|e@gqHq5O9X$t3d+ER`m|qNeCR^9hUAGKn|+ z$SvE0FL6LBj@&+SpYp3I$xmWEy|gQo4=a)Z0%cN?5}FuQx8Y3D_c|~ek|>- z&Z+fhZQ)AP0U86YCKKiS5jz)VxHFyHA+>n1q&S{3dm6XqUx~T=4wrAd2K&;^slBiQ z;qpz=oc6D$IdHBi7a2P9IOr-Mpa_VVkOB>yyG*_7Wg+BCb%w8OXY?C(IWwPidR7;3 z>sCfLu|xFeN&odr{w~IZUMlX3^I=R#Qc>|LY8|7#e$%usBoS~_2h!y@mc~hXhD?7s zqU9K`{HhJ&I9*QT#2HH%mV=IepNUNJ-}i~1+$j7Mqyj-{Ku|_U2zu);78uSB};&nctpJLkQ z%Rn<_gN{E2rqaqgF-gcJTYW@dKle=EIOFI&iv3~qQLJdOe;QJZVPnDmQ!iEQpG77? zzmolL#W&+#d=SQW$ZvuCf`93ufY01AkOLcSL9XM$%?<&)(4bTT^9!dPi? zeSzY7$O2*c%TV9Ho>n`KVQoUevi|t&JBsbYu*1Aqn)DV=lM19mJ|9ml?fOfgOXicZav4w4D(qC@6&7GNi+ew^7pTQ3?kwf87pyb={ zB?WyY7cvAHX9FBNbl+S}w|_DfH=Z4J`36J8wM@H09MX%t{a*zUVwKtnGDS>%J=LNOwf_ zP*LZos4a-1esc1)Gvw?yD%xN%rsTsF@e%IIO8%W5e=mmcx9D{EyE__xpmJ>7IUNE^ zIz-@fI$`+|4|Wm+HYNjGdtVgyLHv@d11cYyHL(9-N%p=KQenT5)|)Thol= zE)K57b1|QE1JioI32aq|X9rOSVg9>f=Fj+C%Q!S%oAylt(liE9<`(>K)iUa|H7$_g z{j@dfhHE{BrJ$O$b~Tue%8yZa8=(D{bm-nC@c&6$vxn{f5Kp%ML;P>jdO)0?zWo%O zkPuiaqnu5Zu}e!y(o)2Q4h6v>-=AD^;nW`>cD$CevsO#dQ5gc5r{N-_Gl@i&G%IhG z6>wOA0xM8t1&Yl;Wf|zw3Uk2-;a%w2PGNL^SNK1+;Qu%R{?kR8@JlknF9E_Y0m3f< z!Y={B&wvHLgiZKAX&-+251|u)R4DO6y})3hjABz{tW={ur`-R&j?`4utQsdopAq_8B8#KWd)OrPpn{yQDOztjCw2R zFz&a4WyaqS4E(}uXBRWRu9I;R{^1gvV6<4lBxAo7Ofhy?!8Bu|6?7P@tzen)wiUd@ zc-0EtV*DOK-4lSWajw?m96eaCr3`C9zc!)&;H!x*x@Tny;!8i(QiilJGE9}$>;~(9 zP~O2`;=d~VMFSRiF5_^XHl-7PuIJC7yu=^GF>rHLH;C2R=FWQU?#|3?}` z{PU!W&+&CP+2OG!dATnNgUZwv=~U)8xEfx|i=+^(xNbPuz77$ONe63F8i1Vb@OAErN?7C${_NpTK)Sq9 z^?WmXzJH!yx;wyLIdC{vo3bCn%qi*ZT}dR0o&2(&Up_+3AP?#7CLx#|F`@z87J~R8 zAbO?-AYe$_K@fK!;(6jh57x8fa-D7UU^q6 zKch3c!v|shi82(fEjSOVRUnJaeW@7{47^6n0E8Ndn=at~%ZDa)!Xs^Hae(ul0&v*xZeo=s*=|%XNiwWX#rbeULll)ssDl zsSOAh?;g(5-)F%OW<@0YP+}b6{Cgtue;&@iNAj!G1(IJSR53;2{Cgwv2g3RHO8%Wv zTe0L<2_^qag4<9N_C*wNAY8;gDPkXsc&VD`C9$fss+47j3XncqsIR5XB z7P@bGivLcC2rzod<>X%7S8@Rc?`g-daif1)7g$xN2QfO79`N6aWN78Q_*UX1G_F{I z(54!f??u~8abn0=VLFd35qCJc#bqI$PQ*F#eX&iK z_i|f-yqDW(I;JaR5uVQ4FFHAc8`uYf9{na$IQZtR@epJ{t`JH+JAX4eAwCbM7cgOJ zUR9CoPt=J0gNPb4#qxr}$Z$qKrleEEcOg z0?IWH0kv%vffsExDzS25M$DVGW)-7OP9UBOP3?iizjM9(a_q|4*(ASv=e0sJ;ka5qd?iyq) znR-@P$?j*BvDwV1bm3h>@VkT!cL^Kr5;oi=Y`9CouEMoAm1W85*PeMcOgn&}xs4dRBBSqdfA~=dg=frJ8a14vi ziTeb>2Uv7Y+-C?*V$nHq2N9ggqI2SoBKQc4&WQ^mm|(+?%ZBlG9;WU1g$DNW;Q97woJ@Ku7 z-YSk*{qxrMAlBL!pZsd6sc8Mq7?PApu(Tz`Sz4q8L;pObOUm3shR!Kjl5m#{m|M<5 z3JXLIj=2ZeAMHbwcBT*&bO_ON=rzHSkjl;&`yWS9-PuoyfT6P+gF$04>{^7SmT3Rq z@fmXAf5+$O@!5YL4r(BE^s(``)#zyrtinF46c??hUBI&FU>syNYsBP-Fh^R0;Ra+d zOHziF$ZPfRrNQv~I6$^_`1Q;MN_PMImKd5x`ca%0(o2Wi9b z_?bz~yJIR}Sn1eV%OChz!W_>ZEUV`1e2+hC__LN+T3Uv3MgJ1TJwias*JV=cH&Leb zrP71cMO2m=q=_`GFO^OSe{aTj*04*Go0EiAdOfi99(4&(EoEKgzthO2`$nbsAA_5M z^wdn?JA`W@?tda$8}IOyoEN13TkT$Wn)m)0HfbYN)}$d*AqoOU8ShP|Rl`%DPybhF{HHgazVhFgKG=8PaK`fiZP@J`Na zuQw?^zL&}H7*fr5z*!5LiyZAkM)?(~^0Z}1iHX67Z6zKmI(zMqU{n)Y(sB$_RC{2M z%>H*SEZ7l~^U`J$iQm;$eKE>VwrWUx1jSYjL5rZ+s>PtJY}I2Nj1?m+m>5B^RgWoR zP;Av8Qv_+NhI7I^Iw#DdbHY42C(NUB!aO=B%%gL{ypVH(X-D?2!aVit<^kiv^8oQf zY6cV`LwQUU?!U#y2*Z6s3}xqkq9V<1q%z!vE8Q{)c*2?l%m=c=+I81UL)tZ(N8K4p zG(7olm5@#u|snX!as17$!f&PSnwzsl%;4`u^j zV+)JrQV{i&{cU%_H$RJeM>4o~B*VHNcm(%f;ccTm!rekd(*y-`>~`Yy{NYPK3=tNO`cKP0Fb6 zkF_mH+BX*M!*(QYumlM31nyqpz_~Kmev*W3tja?e8#Lvvl+@s6?Vg%Ly7q&bLt0Ar zK07kw4r%w+BHX(M;qlt_D@!}g!l|(=$g?_im9hOU9O?N?6jsA8%76cJc1WxJ54G7f z?|^IKTC~6R(3Y$$-&}e=Ap)Fr##KBhA8^56b|kzjvG;Q>wl(y}VeE6x(dVzZpDthC z8@bC(eR(8_pUw?^LOkv&mHjP)evHJ^egYRwcynTB-29+K4ADE6oJhe2jFl^lAEpyAnEp>m1i_83I;zy5RfoEdV?cMRV!}l9j0LMMo7I1>L z_yx(oBmecMgM)8pA9Es#4^0{Y=md zF3=LHO2*u{R)avW~Q7{w9adPbHv1a+aGR|8Zx^WJ##zib29E1{zk@VM+6gNvirXdFWo_KTs z_LN+VJL6GbG#SJPGS=QPWTAl-_LHr1s!qaH6_D| zwG0Rp!vSIwm)`FRI7pdEAwW^Q-4h#`(k_%^lB+yLRfCTPQN@A467rjO#7ru(w0FY7VaG zCvXweAw9mqow<@{5xUYLT6+CZ4aBLx}`uB|R!`sbz{l9{r&*pr8_?b2Q-@=cs z{bQ59b`3}gchcp3gi9WMQ)_vD;n9y>zB}S^|G|-xAs`qym^$=}HscT^hx?+v*;@TRlkgaL92dXa z6>sQ0aCu|{c4<0~?sI0or(XmL{oI|oAG_^vb>UXsH!B`NUCW0kpB3-4f2eCiKOqSE zMMrQPp(_&yeVjtv30%I*d(gKW)YFera(Yi%BAxv|eQs;rLiSdQ%=$z>+63JIG=Ea@ zdm*@(2O_r^>4PB@z}k>YV^VbQ9jTr{-`qnnb{_6?1rKt^X+?dYhwghM$@uE$>;@I3 zJ=clN3K4#o){PCW$le0~`|l$cxBsW;_jgLZ7m~jV$lnDlvq)RsvvRa;L{5)V=r0A> z$X|F#qHBN4tA+_)FlpaV4H(_GcGqHxnLm!@@L)8wk!BqJS7 z(w4hyBmC#EddR*BRKSXLxeEAB6gdo4{Ss9@jBqY+hMo2G#-E%>Tv0Q75^+~VJquzH zNaaZb<8YEbH^expFu5VhB(B&E#Ni%|(Tu|;DC740HsE>gCgvl-TQJ!KFYt?)HQ|Eb zHZ@IXRTK9o@(>Y$G}Ox%N?l!vifR)Vy{*bTU&ia6N3cQbsa5IgD=#+txd8fJVT7m_ zMODeKraK~gT;!Mk>aeUjv;Hmlj{V!k(WX&@?`n;}+=tGpf7hX$f3trd9MT57-;Zt$ z-tQ)TFa3Mc7%1{@bs6Q~ zOv=BRJgR{fP#%&Z3voElK`q#s_pMOr#wPb-5sEm@asnlzy4SpF9z@a%$gJBTeuhCj zQkLBZSvC^kpCCLDvaA;lksrr{@MS_Abz!*68#Gqe5=H8Es&KdL8X4}E^K~CiOyGI! z8;y@1L|ZWxs(Q}0On`=P_71^-@`{yVR#HIIeNZ-eSIS1?56nP0Q-b>;lvljA+|DD+ z+1T8i9EbMQTHX+*zTpT1jMIte0_u;B%Knw-nz)~dp|7m9WD;%5$Q|0I17yR!zcQj1 z6#mNzwC4Z_Fmn9K(3bbW_;d9djHH;MVupZZIDiT#-8gjLY|(Fx0Vu2t;kc51xHr#s zb@^sYpsTvCm^B3WQ)e_77vj)`0H~<@|A~y<&2wiY2}aU(BrNp*{5Gxd-yR-QdHzqM zTGq|MR2+LkUS?acth~Zrv4ayA;HOtSgul7GB2}BFQVGvNm;!B5MmNo93OX6fk$D>D%ZvP6HG7AF_ zqA;e#_?IOn6kMN{`!*^B##K85gF&1)WXr|bLSib)qT2p?`^DgHLli=tKFumaw~SSv zkySX~7zXqJ*lv~a_>pi*y~-qv`Kw7Utr^Hj9MYER9>>nCHj13$pSi?+^!`3FZ1|BS^@l<=2_> ztt{v!IS~yooP#4__m2rPOB?8|^OqiN3%{DMxu}WCX;)-rUt;&);aqYF`%R8=Ao%kTal_;|6gcv@tpxwPTt*hNYrQ zoDdN>%egwZ2{%$c)(_TFd*3oVN-vc82gYrj&IZ-em^E3h`Z-UI=LYyV7;SYH&Z|Mm ziho0Ktx}+FkR>Mi5e@zoOSdR`&uDK-6cxfx; z31to~s8ypNm}Ya1emuJgd>32=)4`l>uBwEONx(m%X|-#1kYCp7_KkD2X+Ollf;k}Q ze?dR6Z=8{)XX2v8^*U@0wZ~ye*r>;2ki+G#1jd6SW-#a(J;$SIcn%?Kc zxIPf~8yruXv)F};RB_4H>>fCsdAcpHGOueeutV^h535Q8;9l|%$S_~uzpT%UGb$$@ z#yNWp3jZg^g)FWGx0%@Ue;OL$qVR(zhHT)#Jnx@FpO@TZ(gAN116hDdXz7xh>~MY` zv}ox~5(W^)Prz0VxfY`cdasV>Q+CEtl8}>gx(%;NUYQS@j1wgTZS_Q3Esj2)d(QMr zfwpsrHo2H`rPP2!$}B^=?nP7`#p%^(lM_Z9oI8zaFOCpTnzPL1yB8>Gnth(j-Z(uy zuhMlLa9I+=h5&n^R{1+K+0rI7wL2xE7pj_fq z%&L2!;eG0=dN37-;qWe%PkA3Q4qFH2mBvc-a;8#IaXm;S>f!x1W%8U1broY<5p-7c z@IgFM+`M#|8tg!IcoVaOxQ@Aap|PJ=IV@#X$dw7k)un(P%4q{)Eaj9|3eTW{w<}pJ zvwV@i1Ac^Fh7y0BtLjBTL~hwY8yqq@S;zS4uGm*{K0lSAEO!-7F8Az<4|L{n@s*c@ zKl01>l}wVQc5XoQ>`KcF4bb+;a)sUMnde~v`<_yP7rTem-SXVvXg&PvYH zJ##^x6{ixAu3|GMBE-B7RfVv!dzZ-*^3zo{9AtnyBwST@C*fq)%knD6+HOGLs=Uf^ zw(EgEt>PspW)PEWwDPAAvTk&BRXL!1PDpa&QUs8|Mt?oZBu(JFLtM991eX5E>k%s8 zR~wZIC{-)bZNddl#n%ZBgc86&0X!jAfB*!z0$k}DxpFiU6(u$zaKF>%6#dYFijKW@ z394RiRG)PnPF!k@PRF>Z%6Hn2yS*D-+K7#A`__{2)EEm~&?t&H-73Z+4s=IDh^F3n zX9D}uL@sp4)3p#qMYhld`C05j<5BiZbcO@7u3Pei$XwnDNjwwQkwo~sYu(;;Zm-{{ zzmLbXZqt_E;;78>zl=^H{+Fq4TC0`&q?^=bZIJNjCP;ewN3&7NR{vUHkIlin3!3`< zz}`ErMs$<=gUD{OdPtQ;49%o2jQc;sJw*7koZgk9$o~^nqbIFSvXpq9e0L|Rp%Ne1 zaJDtT_DV*^$fe46**|yUDsFAWRyU0N=p@16Xj%bzKZ+>$4G=#Zk$Q8!+NP7N_AxnF z`DNmU?IRiDp4V2540RG$eLRC6AB;|_F74vNC9Z+qx{vdDEaGi*!y?jU465@U)s|ma znS!C!yA`mblhyz^6-`?CYs3-`Ue2>jl~~3}rR3dWxUMAvmzXSTnNzN0T~XFWTcJpt z>cFt-$U^>0IsoM)#4Kl5Zn&ItC~+~q!o5ISUShk!QHcfV)?^Hx1RlVM&<3>fUkltp zOz>o_o!2jp6u37TOK=St;a$m0xoqr*`23k=Bh$K2XKb~x9r<}AXk7H?sp#D>GYh! z%Edl67ZQ$s0!7N@J?`AHhu3PsEbc4%w%TQH))sOB95Eq-_U zb~mn{w>OlgJF7<5VB9^fZ`q@#?|>P*Mx`;_>8o7bb_8%n^e7zM-cXu49)<4F7Cym3 zk*P)B^0_O02W&K(Mcm4qJi96T2=8CPbboUoo3m_hqtm-7d$aTCmridJR^c1<`1MZh zwHiIX#d9>?$y<`J_VN|)(epL~q8S%(btQ9?%V+E2w(p+Wm9)P+a4~dXb?>hC1enG9 zQCO8U5{FSmZYJyQxR<;HZLrzch@i0!Kj8zVm3|zgY8O3!g*1R5fZfj(vcy64>#|SZbRXv3mk3d!WG}Q};@Cl}f zG}R>2{N{oN$3e^KT`fXVv~jmL*``J|w^vWWMbMBax7{k->Gl>u?Bmj6ihU6%8{FRA z#%8#wK-bc%?uJAk4p5s2Y7?%eCa8A+#Fm#MK=jmg2%?FG5NNfLpk0(J8l}s7KQy?z z0ofl031lws@Fd)<>bo1FZkv${fM_y9*mEepa<^_ynP}0akuCb`TGgTnq4eH03Tp4IN;~l80^X5; z_v?YCoO@Uni+-78j23SeS@4+({0)Zohj}vf$9ky~N05ITKj%8s`KOn{Sj7BeK)6;> zc##V{AOoG-n`G9DrFHLA)H_Gj>!SK<%GZ;3D*38ADzhnPFQc60vNJZ%LBBF)845op zDFHtd&6qT%nMpD$HlEt2Qe`j>2mt9B^Cd3Q;DGrdN+s0;(J-!&wsXYXMI}$CdRD;e z`wETySxVXg|IC5%P%?9HfE87U_|Z8K7Vx&cLjRLE(k_MsjIdu0q{127eo3}7zyf)d z&zTpTtuSw8U92WD;L*46o&07gtD+QgO4;J{?v%B=-Oz!ID#4DrZH&`@3{Rb)%|qOd zLciX}_bV`M!}}~~_S?yPED1JoH?Lwd^?w|VKOnDiw(V*}rikW%Kx%$vXSa74rZRV; zFaO#fG=%Zp>7AAoI3E``m|B?8Z4?=CBjy(_?<92mBS>7%#2ldSuvRBM@Zk`Ha%E4N zDvES3h6e8}q%D-R=W(>8SipxQF4A&MRK*w%N?vsrTsaOM+YIrB@$xx^Go&IeE&q)z zTKO=HF4XTS*?<$1zIo}~ok>pnm-EonSeaEhud!p^ki|Bn@v-iJZmH#2DDfvKk!tzzRi`fuckq$)K!2(gPJ2DZ3@G6B zZhJ$CE*c#v7t$P}L@D4krUGu~4AIQj8eSF(Dn=esF>+I*BByT2F(q1PIe8SkSG48* zggs%`Q!5$JkA%z0P1HZ9$Q5cn$&~!tv?mDr1kh502%gm>=&~Qu%GIr4gV7s2nfiY8 z#@*iR~ zK4Bt~Cqz`C#J_1PmM4zilIIHB1bHsD@#Ym+fYR^~3s43F_!A3I7GB`JvP3?IF6h?n z+qCjZ@-HniRU_2;3U0B4wuRBXS`ICxSWFQfH*F@IyNyK`f4eM9F2>_Eq!a}O`Bk7r z*9f#2VhJTz=o$bK_XDy-89y<5Qv*J!o^1-;XU*J-QOU1S38yC6XHmWj7c_fUlJ|^%|8&$+ zhy3hEZt;}4H~a6_=Og-W(?8Fw|D+`JA4@u2|4l$8+kdP2@8Pp3Kiq#4EY!#BKMT8R z%p!Kn(BA0&dmM8%tB^D4zZPN){l}7M;cMm-6v7T*4XN^6Vq@=U%P&Cxu}4Dv2Ag45 zK@Tr%t=FDf2@Ul}@X}6FE0=+Lkg^#llpZ!1z@PMR3%kgtzADq|-8+IoB(JfO*F`38 zz>5pX`4vK$ot(xf49GcnBHuDRlu4KY{3(;L`dDUttc?6vtv(i6A16e9ELI;K)<-?^ zV*y@>W|B3<0Lh)`Cb?5{Cb}rGiAIWXq7m}Oc*2JFikdl>v*{FJ%#wk z*ULt|@5dlFj7>l#bE8y2Ks%*c;8@$Vsb;YeB!4!-=pCxnUyISI4YZ-IT4C1nra;ef z3B3#T7RhsoG}~%`BhDD`mDL{qgB%Ad_G#sUKhLa``0>?q$H3h~_nk>`kkPUPgg)A0 z?2|iJI__j~X!Oj46Uks0O&~poVOCqCE&LA{y4_Xrdetp}(`EY+)`+z7J3Gh4iJ1s% zdbz^a7#?$1piy!D-{2cbdID$?S-KF7MF>MblOqm(#`wxS+gReY7%$Lpw2IZpi~Dz0 zYUTeRYN`sMslfzLH3?pRkHD}UpkdqZ=iUz&lz|#~u8=c2aa>+}=|hmMbABBmz*F8< z0-PyH4pz@Ax(b0Oa3}yRcwFGiH~;|?K`w!b3y;UbFB6?Ux9D|6sIwdDba?~D3vYc7 z)j7QzL^HM+(rMqo1s!dK-)%otGL?A8f!q)(B&f5L3e>c0lCxIX19ZXiN-0iiR za;F(N(K#_&k4h-vS-37%@It7LS=X7WBg`RiR+^cV=Y_4T+4y7Lkzg+Fe$|%ucU0yC z07?UyU%1vwcMdG*7`E+@5n#iySg*tc%%q3q*`6cun25un!i??p@Wc0QM&=R%#bkWgX`1^c=1;VUapDudDp3NQfW-#g-6}8*~nCz?j zb&UJqg@siZ6d<`}S>&}kXZ&$k{8oZg+`el&=X$=1$5J1P?=6-iZIuBi7$_EF%mbu5PP0Jsy`PTYvzPy_2wx!}FH&g%fO*bu?jBnl#z_cCP`q#9AossWOK0Avt^JnyGOcV6X-BFP<$(>azPDmKsS4uYkLyWTGs&0vy= zX*mqU7(YZ+ABui{^2vyPzUps^0u`pL0^!rT^#+}i}5o)w~H#g%l|mM@VGfUM$z0n~3v z0Ai9SiYP0cS5SFfLU;uy8Rpd~TDZd(D3T>)v5WmP|Fd=;vTNuEfWIBcb zK2|b~=A+GL3hQOf(ebSOkM@qhV`KPvkaUZJi71Fs+LjAxQ1GA&^F#?YPUdB!})B zV!r`ll)wflTc9BOw_{n)+&TV6KYKjW(Ee*X9&=(pZI<0q=3!x=(`1vP&(sETp(C;;@d02Rh-Kz z0RKsQ*fk|oKIjrwNXvK6*p}KB*S}XzRK)M}yMf!R2;aksn$q*$g_6#Z`K^1>;{w+x zZ!)zvNm~xOYxpNtUwOaQN%)r1u86DdYK(s!Ak|L>y^50|!7#>Hl?R?|)wg`*_`vpKWwEgFeRuJ(_Y*lF`pJ;5oZ-QGb}fIo1pCpfL-96zs6_5`PwYVWXJfeWnp zrzbd5tGE^)-$_9{1&PcisE}3*IBFtC&)yy~(7SwzUES$%{sl~4b!RHnv3IfP9T(gT z-S1K|&obttV8PSMvc&}~kK$Lxa@n11$CU4;oi=mUe`LnNL!njC*+*aqp;(yU05q>jMe=CFer|hK&tG9GB?SzN}I7Fn}KRItmmuc9ZeaY?KY4 zMSg&c9bED%2mw2Sqi}KV+pN#6@QB@ zt4XWyLcqsWAQPZNF;MRrqk)bew!=X151+-hn*8&s|EnOTQtT6JstqS!nio?LC2$v6 zfno&Uulnx0fX>%_w3qsZvH}owY%WQN`Dj7cjVD$}!oU+MA+s~#Og`bi`WdbUG>Ot! z`;W*LcmJ=))8qcDhxE5nMsuaB-QHU8|FaLpXn&ZF(=0j;ZiZR^w(_Qu5gZmB@S2#@ zUC*qe9-0IY0{wCMXM8C}8}(k+KdY4Mr$i-qp%s43MAC>o~B z32U2R!OE{l`;XVDognVaFPaCTXA`CCH?oeXpg=Ey--_zQ;Kiy z^NzCMMKkt$)-*dRZ%PTkZy-w3!R#o_@M~?f9W*k{|M<~1+NHI>bAV}HL}3n zfP~h~!YUc_lDTo$eK>10_GCrY_|ti9(8p$^`8O$zF&%5N5ZX2KL$Rd(-Nb`gBCdBtNpXWutZ}{y{Y+40LTE080ja2;DAF1 zaZ*U^6sak{pwyT6^Bb_g$!Oy6ET4G0G6y$r0ZuOYbj5 z_`&8TRD&tCBMmTdlhb2=r?yi|{R=&26t52kF+hj53ORsseHFBh+3ZOfW61>+^Txh6 zsZI3WRY+|@b_ZhnCG?2v##|ovE(b~72b+eaCKhym5+C@_OE`adc1L8dzD=b~x;9q7 zK6b7NVxTgr{##K$2!1j=t^%pdTJ(#exK#4El_L;EvU8C}pMqC>sL zM8_3YU9J2d0zRv1c}n~5NByXkj1lHPakkqWxVf5&)f{jdWtlJW&t+jN1@s?dz%qz> z;Mt)zXnJ!@>y~W%QA`&TKF>Mrbl0RPf~WtOp(b}Tl<`l7PVXzqp5il~&{md_XrRz= ztfA)KfaiFu-yG5&`#m&$7_zYt&j1XjHD+24E7+H%mA?XU;zA*Hh~S!kBNO=U$FzGa zxWm4EcGqd+{QHrcChBHMq-xN8!(q_D>;kB%o(C?!=6T|SxiBZGVKGq1Sr2VMQar{k z!p5~7RznMPGoGZ_0;heQwn#Q2NtxiB-~7LMqM`;mKF& z>uJ=O>59jh>>Z!<+6 zU^iGLsveNZvXE&2>4(dLSs^ku&Y=)GY!t`H!*vhMXXY*!J9qd25f z^PnN_mjBYIyM?4}Y2i!=dMMVbOj@14nk2l63>_VV1s9CW;u($gk@wu zE3CM*Ngu4o`b_;?&PzTx#_d~QP@1DdH_f<+C%M7+$F->FT8zx=03HlPFVI7ZYqC3x z3nU5?-c822Du|I@=?^E7syY@2lL$e7=ui?N=nsxmBtqSIxl3%;=2((JMJ9_RrChJL zxTyOti0wQI2^GQre>!XaAIqHN|83ylnEZb#2LDU@Noe4_L;knXXO>v8gaGH4q&_nL zld~eI@2Y3pQlG^wG&IEGe<4gE(E!R*)X9STqhM0!=HGnxGDW6yyZEvhBQqVo&%%nx8CRTAb)9MQzX z@$~c$#9z@Bj}^z8Y_3cU@6g&vRM6kld@*+E@bw+=7%T!uuH}x~ zItT^h8h+s(BaQ--Ae5NZKZcW3H4r2dW~qqGy-$hjEg0lM8%-r5%#dzGypnhS=* z$;boEC52s|#*rom=fIWr5c^M43C^>PGe(0{xF^Qb@!Juh)TfjMV zLCw}#!+bUPe}~;ZXhn)SK!Rc)y}xifN5b!RtdD2N=Rl|4QNyYgaMl3<>R*GBHNx1z;$BAKn9CMOtF43BquRgqJ0kx!lAY1 z_!5ws<7)oio@}&WXn2+Si?(&8u-KRgZtuFRneQ@AD4>e7iAaC+cfaKTKL@MH z)l{aW&@P?MXwT4Sqd&JBf9#C)r#euxbvAH!v;Hd5@R>#a3Sf$I?-d8=m&W%d`^8Zn z2cx$5b$9e@UYj+BAR%5x5hlt9)0)xjUY)LcYSf?G+HVW6qo2)=ex{0k&>8yUhGQ<4 z8>6qWoRl5?jug^(zK((sMcF{dqc%g(<@1`^D{?U*3yn2U0l^LRwcM{lK+WE$@&k@x z>%^KFtOQ*YP$Wl;bGLHOR0H=QzH+eHYejPu{y-wKt7!R}0Uw3k*2-CFe^n z+y1jf8&#{bFQ$pUbVTgwK^2?Gw&o9I*cxPqmjs#Nj`U=W@M{3+;ZcY_@Z&+K4&xJ} zQzXaWx6i`GZ0?#OVkJ6!2eEEWy_dO>njk|ve!UKB>%;F6)wHG9sTJ8PB6OeTkMWP) zQ8Ta2r%E(tYEk~qIAd!|Apyz0^5+YcGj~17{u~*(9X1H=u42)Ya{+q4Y0cBg zdmb$!V1~KGJsWrt_pPCXCH$NONva+aL{;YdML2caZ&#JJ3bsEd@ijcz_z)j*w^9oJ zW_4U<(1&j;;O|X;BZ1{A)cndSg5p%MWR+lxA<+D)jrvSDIP0Hn{>}k@eRlY$!0!}S zBin988vgkoP`L~h;}r=;aSyC$GX%HpkC@q8f4!F1qb~G;CI?~)kroW(1+TDks-3aJ z7`krI=IZHT_D>VK+`E70U8fZ|SXi%XF>^STdD9ML@Pm}u7=skbUpgD~rJF8kpOhVc zVXEe6a{gXS$5hR+Jbb4Sml3|3E^w(2f|rGtA!uV z{DqEM`9T~TVjmY()cvEA0R|LW%Sj-FMze24{xj+|f~a{jxp0<|qZ{)uGrC6;w4nj# zoSbcL%-lzC=ZtO1eTav}*WO37$%`BK3;#TlT%_=Yux4*^(K~sOdNmB1dQDYf0dGSJ zrZUe+HtU3%RK@Nfo_bd?BfZ(H9jR8=@z`mglonc1Rkcy`4^HS`KRR7&eAIQb!8DIz z=s&=k{g=4O*%(Ug|5H`q&-)@I)?fwd=f{^EHo# zpjQa8{N^82?9u3(1dXx3SUUa(iXXGR#L?&aQkV3lPO#S=Y32tnQeLU-=*RYo96p+K z@fC4_qfv=_RpmqV%Kn*|X4QUb0aopy3UAd`3!~!4I^FqnA|P9GfWrk&%SWmE@bH1I*u9V2EBO!0m)tQ($2W_h>X=Did6s z*WP{{jfz3#mUYk!r znMTK6J0%60yKPW6^8f4c`KJ?*p*gt1O8$QvpA$)@aD0v{PK)t5%rp9_{jl-*7hX?k ze7^A8KW2OsA5@Dm=3L0D&y++tP;1=sfZw&^pV%dVrLT2cAuw^~@Owh?p=XEOmQ2-L zu&(#&A$Om_X;r7)c|o**Z4r`D<5XncM%Bo!_U&Q&u@pPL=3h-i>CDD-6@mswL#hgg z-jg9#tM`(oE80-5XX<=~my+|(Ah)&5AieRo#=b!!MQ`n8Lf}XC28!SDm4fuy@}+hX{wR=8*dhJ7LYE z$@%{-E0*B=_D+-UI$dM_-&k6#{9IgcShZ2M3zGT;PS?ORD+<^B4%PXbi~y~NrxG}# zmOJZ7_5}SyP+>pFz;uHn&y(bz`i}9ST?&XZT%7lNtWT40m2)0S(Rk>1pxS5*`n|tI zYeXRoi5E5Js*h&0q3NZet)GZ;oFga+Rfr9<+y&^;9^yQOh9|`hIS}ZFK$LVf#WO>1 zXdgh-TWxgzKMsV!IYv~{@S7celW=TQC-EN0hL0_$nuE#tmzq)UY^1ysT%w(_zL^O?Q z!n6b{DS8NVB<4EyN5I5bxDHDB*Ti4%H2Ag!Rhu-j4xc{gN5SY^wv##}wh}RE$7ofH zW`WHHENAC;q%)7QWq+uakJ1&bB0&f5c*Mn8o6ISE;ZsITnI0K*eea?a!9Y76D4}p)eub4DJPkis@SgUX~5tEBvQEl{JP|*3HiUu3Xgf4@J@Nbq1rpiA3gh;np|4hzz=z`uI|g>i~5|xhZ}R}+!G`#D5T*Q zKB8sR#96KR27b@tN3HMuRbff#ywNPqV6CzW|N`rr0t zchqjbBN^$N?6plJ{V=c1r(nlPCe%t61ksoSr(`jR%xj%XWanU^J?5)*_T9}weB%LR z?=5hCR)0|I2vtAHlV4Vs3{1+7;QY$=jCSfz(3LrrgEk!FjP%z| zY*R>T+&CSps8chl!zCK+RxL3`yt*X>`M>yaD&rg7@X{%bYVNvzcDn4pIeGi<+rUtg|R!i)2tCTB0%txujl_T$Umq8(E%6j73K9M#FRo1$ug zr`srFskcv8JM*OJz16Q>%}&*4=MHPe@*KN2cOTiW!^>OXL~G8?R2{Js?UgSUIML?a z<(z1ewUQCm3PQkIM>fa=kw^;oE*UCl%ztK{w644pEzAyQCyG06QBJfBjYO4yK;=&H z(voQqXA}@N4H!~etvsW1>})9aLn2ZiyS|)mI*a2lqE#6C6PGQY&lk;~{Va!kY^$(7wOwNBmO@We5YK(^=U4`Vthm)>i7cEn( zH2yu!$vQFXj$~+b?uf4@-^gJO~&j0IZXI?nm>bl0uks6T2Gg|3VDwrYKu^|N%-El<$lm+KG2(C7OnfAaiw zW*^39ayc9e{QeThonP$cD4@5&+S#1@Yw#B@fNFl(Vd?S0sH{QG)nqS$_8QAl+8!03 zQkPe%9>%xDo>F$|ax{$oD%tP_CQz4gM82B}Yv`LPBQt81J>z%|O@JveJzB(l5QF0! zJgQycQ7BJmhmVlpH(26LWP<=T3;U#S3`C@T2wdyD5P6_Y$1ksJpaB7E4PvI!_8Loa zl%MA8WiQqHhP7L!fO@UjzM-II-Cci?oPSIOp(51s8WUajb=_;r2sLtanC z>M5{lZ`gNA_D`QxYy6)(j&*)Q)IncDDw~h5d|Xm!-T~32j3d!_fN^9`hJJ;md+CXB zq9K-XVl>6~#rE4dS!Bet>UaAK^8M{9QC17ML4G2Hrbvi7GZ&!>12mA?7RgLzBf_E$ zKAg9J|6~r5|kSd0t zTw~54gHAU;f9mbTO0MI?ZPj@JBKgtmH{Z(qoOhtxQ2v0^9>|Z#e#ah7=ZZ)^^umza z&Nu$8`N)?e`PB)eJWWyNhg}pva{hMgJo)7RW;~oPH@*hEeFn@D}iWEaP!Yix1Wv!LOGvsaHcZbbcw3@ zy^o^5x!u6|eI{j#h6#zQs5m9oG&YGH-zH*3OVTs+(H!5dqvni=@gh+I?|9$0aO-^E zmn;~-K7skZ>k;$*dL=a(n_M&mhkBPti6HD$caaLvvUhsB!S+sXr;Nn5NMAVCoZj&` z$nX6?*TwVEnd$M4K!n=@e-L zp;5Hdz*DLM#N*$xXl}m{(dSdmxBU|%VCPV+$B#nQi&alQZ>oqW_NL;!b>!L4m5S5Q zjp=pS@z`H$&DJG$uzo^;EA>JdFfj$k{q^P4fffTiwrw@OB0bS&gPzWbx`NjeoT$r` zSh4-O>)zZM^feh1b}5 z>Y6BUp0@E({anE_`eCPQ$tC)z5&u!0cB7}2IED;k*qP|jxg6#?P#8rc-+Zk%8lgW) z{W+UIDC=lFfmz6}YkILn+fOtczN zk>t=A!9%mg=QSVsz_V8mNq*-!eQY}Cef&t(Y{LVFO27j)5qR<{WbV1(C)tR(FeG=O zKFABEJ!aAM1+I}h{=&g+)id(eEHtQQ3%p&Q)bh$IszTOcsq}ff?xV8kinpl5+f4DP zgSNI5M^U)hXEfUuljEtV`FgEZW_)li%%{)?r&hS^!SIhC?gQqBJA_=6{52+W z4X(~RBvuM8wI@+4R*dHta>d>IGZO(l(RU0gEP?_roUo;Us_9{-N6vu9na|&KE-tt? zaj@6otbe}#B~97H&tc7Rj76)=8Gq@_Q{K-u$HhFP*~ixBVw*&OliV|H2HjEvEM3JW zEv8y|Hye=(c$DRc#EqGK5p06zPC*4lG}zN`R*4-vniMk9J`f^iC=!DxyWjDRVX*Lv z2%}S#*jsg8_v8;(T*Wac+OY zrZ@+h%T0@RP_yyhsGFVnaKf;572%m-PTzlj+6k_iLiUdCeO!YvgwYQaJE%VH8@Sb_%%5eRlc{(h5->bJ++K83cMPn%XcFOnp$3?Ag z6_TI(KAu9qe`A{A6#tL>_&XqwO(kdMHi1GUB0Jl; zId|xe@0JgVCjAq;qOse#(Kl%Nu();{)7iVvob~nGcQlkX9hL<76G~KETOdJJPm=_( z+43e67q;C2{}@+RIPZNKMP8Yh7Z{BN1zbb$WLc289!32bHiK{9{YlNgX5zg2FvnqL zo{7dD)Zla|tle#FxAEVr@GR6+_MG;|P#~Aw*6nc{eSe!rVQyEyCAoe^itG~~fA079 zN)*UGS)nKPi9KN{BQWfOR{Or%m{NAaGJb16%sr(Vgqp)MFO={9f}o~nCP?(<<0w+h zj&~`RfQ7mdEY#h=I^Ag2>26}3j(ZXwSJmtUJ6k)!{=(#Ues}4AUQ>YWPkvR{b|$Sj zQ!os+9Zbt%e@#IU6rDFn8NVHDO8?!ZH4^luTpI)seQ(yYZ-eRAe<#fPFnsSwzv@Tg4-pb6+^VtPiQ9h44F;B$@mhR>rl&2(UG5h zq5uOEzv8ToHbLewpjosEnA1yo2XTWtyugZ@EDEk;!H`x%C<~EC#Z##`I{f8Ru2AHP zN~0#l&#|MWLjBW5!*fIeRx9n)3UiWxT6eeW37ntNt--rM=`9v0J)B8yy|x@G`p9|1 z>g5e%gY|^QXRj7Es-qibpD=S2ivvro^e4N-@jEfQH4$xsm(9w}wi!lSb1#xHj6`oB zNA!XP1zSlMFVpo-XB(~HYd++;cZ^MgJ@0_gGW=~Qg1;TA;$=Q>62RBuce{TldCwUdRyOp-oW0p`ww0W>Q5AAzR?OJ} zoUO~PiN%1kZ|KnuqXip$r>`y`>07_#n0k%!Lec`DfT>yIcAIiV zvOlCCOfCCqkW!wl8K@IBjZYB=%n)TZsF^;V{@WhM)0PY(rwGk6B)|&0X1GjJep;b9!?i%(byZ)NrC;y(qI#|DSQdp{7dN+1 zmqvAJ0S{jt_){lqsqK5z7L7ZlDvVRO?}Zscs%l$o-|2jY`D+biu>&C2X<9r7r!7or z&R{kXhE?5Kb;A3GrU7T}pn**s#U;iqOIPg?kHWEpw8OCKesz@KB$gB6VCD#nx_By5 zh}yn&r25vrW&T<*8>{XzvIh=^(|<2BZaUbwJt}$S6j^D}=2K!N)t`H~A3OEao%*5p zmNwL@W3jqnjQzX=t4s_&;Ld@A#a7yH0%z^X41=faT05g3#(BR~;>CT8Qwie`!=m=X znkVYt3v*#wld(cO^hU=S2~Qx9g^XmHd4_^mB*d25MF(~+ZiT!>@=b@0<0}(0FLW}_ zpqaN(K(dJKGFVK_e-$YwSC>o=8*36XzvAe7d;RC*T&YZ@cSq7nt96Ezg8ZyAzoKn` z`1#@9TCqcqI7UHq9vN}-AVJDe>&v?LKt5Z$_ds@q)xWy3+rHz!)^D8^qByPm`nI+{ z+`CTnE5QF3Eb;A+_c0jqVbo1dsf*4LeAQoqKCzx@L`Qy@~Q z--%Q;bOR01di2ug3p@0OwPCB+nk*w{rwB&I+36YQh{a3{lBvVUKb_|B{sJ*P{IFPa z@K(7g{f#8Epr((!$piOOuYTzYV>YdDuV-uYm+P3mu^HpuN*h%-nzrz{MXy(|OuvaQp3IA4|xLV3XH0dA|!NT{fR}$J-H_PFuHRfLS%3Tu-1YM^DkY zoWeMe2mUWN`Ehw22eKVpFMjAM(ITp&c$X4$!sMo#+jSRaSGajI>od9w^Hl|Z)KV&) zy%SaNOqiXVz?(ueRd2ZCIW{P0BY%t!zb*ovgs=PsmAyI-(ZwKeT0KlZRbPpGbWSa; zoH_r7d#mH?N$YG$%72t&Lyo+p>_UGRM4bI-AGg@|Xw>I^+iUzAY#u^&evkTK2;pPc zyD?~gHV*%iG!lU7xQr3)3R$UV9%&9CAr7bvfyx_n_Ji0i z&Wq(PtdAO3P@}rtqMB(@=9Dd;w_0co!TMB9RMDmTS}nQbZF!ro{fR3&L{MMYU+<~7G#F);0fn!P^@Od0jcby;ha+*_rU4urSdwH5|+Y8@` zdr}0@N_CT)hU3O`(>ccr&NOr>xd+K2|ISwCCw6{9{SGskUe?hGSW6w=`La@wdR^-r zX82~JmCrLVk>aP8nBv{9lTyC#Ngw4qFk|u)sBMOYHjyiAuU}?tvf9}L_VQ`qR_*5P z&&Ff5$?Wqs)K#c)n-mUeo3evd!mNyxxnA_P~fpU8MheZ^uI)qGSp=}qa${4!&~xGOszi;6X4IItNkBMmiutFHs|3Gsk!L87p|0g_fScHIECc^rgkafRxm;6| zF_Nd%@)wNLETmTcg21n>+uAsD8RFX?cD8=GWY`#4TGbMg<0LL?HEj+w!J6Wh)8*61 zRk0eBxASG+cZ#3w{);DyfpOk}71)MykuB2``(96ZYa&Z0Owpd~?6D`J-M%lW?6xO2 z-&s0-ZF?RIvVPSM8P*+S`4bI$PEdanq`mj-GiB?1aF{)=9Igi;$)YQ9M7cfJdLg;g z$zE3L###CTQ`ojjsQWYaUOV>rYsbEPEoUPlVI8rJ?ajIK?%XIL@t;uL@aq$*8ybFM z4A1MD)>`^?O{*<^68V%Kje5@M0}V0K+7-&ULJYDM5;?B4zH|5hl2wp}hig*6XLmh2<-(4r-}Dl38urSfkw{o*S2Wxl z`Ty!f+$N(MkC)tOtG?Fwx-Ry@I?EBq(l8?WnF3<}VceG_8~=pRr^(q7H(Z|`5r)0% zxHPvUIll_FZO)y>Cubj~u@Arb!GZSS@sy@J0>y(E_es9fI_V52#5|njoKt8{hS?in zC9h|oX6t-r=Y%z2atJ}Uy;~(y)kQS*T-NU$O{SYhaHxf|MVx+LtSn${1<%}9Dcw~R z_O^2WHR~(aHPyE`{jPoc=W{uTEc#_a;=GL#Mnq)cTwE7zBbdxk*~bkqf&^ooEGYpO zu6t=bJ78{@)U@P48O=;;T6#c?KB?(}17c`}D@vUn#W*zL-mBveKk}%v$%c?aHMLNa zw8BimB52{_&hM30nMdr|E3pXz@ zExD*1PkCw#XcRkY&@mVWttWf)K|BtUv|I`qH!E*UeUw!*TpNcm5}+|t9j#U=Cvo({VRYm-4tv%^=VJ5nsSj@~%o?hQxDo|A zyeSTo{s;oWEQtC9BR9*q7QKutCYQ-bXMH*G7~OQKdf{}b!Z=zC#0B06|oRUBzpKm4nBt))d00lk2XGa zss#5|U|FZUg)YRYQwAL9A4Icwl#Ll2q_G~PKMqrlCjB@7(wb8O>F++Mk!R-Uh}{N; zf)XbUJVo?2a1gx%4~Ls4_FNYcoUB9qqJ)gmB^{CwZT7?PKZ=Ck&!&okpZ~rl)q^Ju zf|q@@DsNxCGMqlmJ0OiA`>It>>??a}8elUdCTaF$lEzb#&S@6>srn5H%5?yZ6-+5`LV{(J(`z}#MzGAqnuwscH1Aw{>fSSX1)uLL?d%yf= z2czq*l|p&zGMw*=jL`HuZiHj#7w(t$IEJ|CycAPNwj7~C+%=j^AK8PJ{EzLa>^BnW z?Nx8#I|cUyXnYYlIM<63t#2Sv8)sM987sAX)8Jq_rx46}@bFZ(lF9 zzB0;&!)KyNS7?LjaCamjL!fSVO>`^uKGZWibOJT`=$@SuHKr$2k_Q<`7YiK#Sz|Pm zOl=Elo?**817Kz&h;xkT7p++jwQ2hC=)$MPO%4Wixy|tEi;?b%VJ$q}HJSz#ajLLB zPH2k9z|UplF@Xl$7`eJc8?6T1a^LyQplMpAI)__ncXafc6G%Zbk^trUip9sxq;wBeLA9=4fTgS#D$|bteEd8BpgXm=$XcRc|t8 zqpj$PRgU_sVURk-#(s%+?!>+rH^UTWW*C44+|THlSkOZA005m{5I|)j-txH7fq5txil8~!2qy$jD;8d z)qj9m>JvOLxPylYiowGK#leI3!eIXdPT!uA-EmH5EW;kb=A4^13v)4 z9j@r(%V^<*-}c%rX2OB`GvSBa>gJNl25W8TT8c%VBYR%1YZb}6m*wY*Uu{))iTCE* zZ}h>geryi5={_Z~FEn$mW&Nd!hBIdv1o<5I2NbfOs~~Q`_8zIMBu=WP^X^g$4s!fu zo9O6YPh#c-`geX||9(^}fcsY#cfcxj5}n|_H9$3_3;hukdH3)JD%(^}ufP0um86=c z$)AiK>Cl)<8HMbtLo%)r@<=k0fJ$x9fyXET>`8wyaqb$XavFEarSIvT`+?ZmHo0j$ zA$15PDsuA^XI{9JoI4O@yw|C)bBX7kn=8xhxQsn^%Pi9p7G__u$q8YayTn-IXe~P9 zCxyBsj>e7UnRlRgjun>)?&xp+l|o#Aevwi%BI;oo)kzRF^E>x~C3+PFXDBf*Ci|lQ zPBKw1{g>Y#DB|;ea%Jh{e1l2!5>{*rABR<=axjmbuSjZ9SI91M(RibmDdczLJXx(orHG0D++Ox;*3L) zxq2z`w}OqmO#EJDsb2!6Tc7}v7$a4)M{~a3t z!C;~idWxn0KnluRz*0w!m2xYMe%um`8TRTZd?v2d?+%{1MlwmF?vB1sK-cd%^V)X5 zlof{4sXDWpbNBg+obw*-{x9x)ou3OOgT&85QBzXcNoR(fYD)Ctl|EkaOwOn|T``Nr z&9~3Z{kc(&?YJ{P6J>0N#HA>*H%1m{{pK2JMKa3YhR2=UW(2tKiVw?kTOJ2DDO$FL z!qH797E8 zH&1FRI+INTw-LUj_2U&998QfW=C)1Mb+dxlPdIR-=8@T)KN1Jtnvh}p1LdQew!GFG zHult}NA68$>x#L?>z1pKBHQF?+Oa=f@tgEn99)Imh3Pxh(6ChYv%RUB?X$OZarW`; zy~IMyIunz)qo-?uL?@K7sMRLvggil?_KrhtcQk`n*L1X>SEHR`VXZ`_1IWOjlL0$M z%D6iE{tq0npk|cC@CD+*oU(v@HlPm49cS|0pCtPIN@b^2u5gPVe^Csk<{ju1!jOZa zW=+oRi99v7V(uZSIdO5URs3;ha6v3Ldnl)Pr;i){u3fNY=J{cE%A3URjGy&>eiANA z$O0%mt-g%&{~LRX>r421cKzA>ElJ)pUjYpR+6$T{)BSGUI_4G)`{IL$7`o@LM4?2{ z7LBj2zhJ_zbVKa_;N#(*Fcw5|)Abd3;N*h4xmBI$-LCi)006cwgmbIx_&I}SnPXW>l;zSs*pd%EM=ZdEwblCiOa5?^>b3hP{7O|>JE`QgI^?+i z)3N{jch&V1q%{I5#Z_b*92fn8l<66Oh**Jgto%?z$N#8don++)0^ZE*>O;0^Qr*ur zffagp;$fI+AG`Y~10b2~Pqh>(f#`aJZXyk`W|I-#NGLo+`Mp#k@`3!tCI zH@}ozx-R+P&6S@xYd2glfs2yGRP=YES_iuhBT}6!)Qq5)kOGU2+a!NB;!1b5(!!T! zUW*w!v$pZg>g3L&fM)(cx`r0o1^au4ZUa0KI7WtgS}lhlKRj59y$Ah zYqL}TjWm`vo{5R5>mz*rm3@9MvZ(Uzv-!Qn3XUTCa|5%VG2vHN160WADUISYV!Pe& zB>!ViI>BkJU?A+>%=r=Z=MBU}7X%S0aRmj13`czV@B-GO)0sUcAETS@lYJ6Xh#Mdg zg(D8Q!4HX6bf0F4H_ZIHZ=7w3z-X#>Gx?yq32Vfl6HyQoT|({}6hPQ?eYu3EKaD)! zoTHOM8uG*yueDtC#Jz;z)m-#z9y7mT9xYCk;{J`zul90J?)ziNPg=#;z3AMrZ<|fX zGLnr!M4G>g4nTa@F4#MBD8xAP+@R^AE5D=oz;mwBgA4Q~qCb#tD8Gw7?7m#iqw9m9 z-{hIaLgI|&)^^3l`hk!yMFTT$VS~mfc|IPYq8u z-S`^QvF-J*X#e!4*&j9LWkwuU9iyHwnTAc(CbKjgARM10a*)jI->}7ht&fhjU}0pQ z!1KE^JhB1)9TFt3J%j`J`LLbaM4zR~yPt`9Ip*!b35;oFh%KUp1gOQ$KbD$#Y81l~2*FNd;*9Hi4QQde&7HLmuY* zF5ca@_*O}4|Ko>_^+pe>0#-G%Lx-1P^PRcz(A!xz6A|O%kRO~c`*v0iWTJf$mkoNx zr0knD&c695Y6<(MRgfYPTMT0V%=cyzhRV_L$wjXhx%fKC#|76iD7A}mdRo!t-Xw~b z2Z;$)dJ`6&u(LuxlE1{E>)hMP&$Vzs>z{0j4z_D2pIZSYLyO*x<~I}7${=x5y2ims zGyCaYj>O<%rJ|A`TboFJZj0(@J(T=nD=(L<3$j!3)3uzId=L)<4JIEvgzX94bcjGq z8Dxjnfos{7Js))LH3O3wJ8KRVk6_-TGudxZ}m3;)osO z&Q5ojPxT~O`iPd zz+ZJz(}sc?&eVP+Or{=HidZ77*;s#tnHn*(3Zhkl$aYCR7oE9DH0{%Gg0;sm8 z5IO$WjHrPx{#6*~HFx>xf?&0=3S)crOeW!na+j$pcDId0C36{!n9e|fbz3MXKR9zq zc3`?lde?QECSKKBjpyI?m)}TzK*p38z=t@e)Q)@)$Aa6k$%6a#Ep;*Cp9>fIC(GB zc$Ab)%-&u7sl{_gsE-!@&4!QzY}X@bCwcE3*1_kK_ui(L>@AgWdP}h8G4JYN3K|@F z5tsMrsqFaga{61UsyAKJHT%a{QDTrI4~hpKs9XWmlGPms{esE{`#m6LhS}2`P4z@A zlG7ruX3L1jUl0$`ph{ZnhX^oTbs$~E;hFn5H(qDPrz_ZJ>UtU`p3nrP#mZwo$g6KF zqnx;DD+G?j9Acx#<$$DQkD8|PZhLyTy~vP~Y9L)sA)+7MghHZBdc_=}JSAUN`QHxV zj#c`Iy8lq7GyA2YT#;Dk9!zI`r)dz{%O6@(bJ5V{oF0??6>w@wJSUaC1H$W_dj*SP z9old5vY%|Hk`rHI1>lV9vo~G|m)~F)Y^ghv(7uOVryE~tp4D!wD&3Z|o22P`vvtF9 za|$K0@CcZWxps1P{Qa@JV{+5nH_EgqSC_7N^-kP?FX#SMU1ywI?HOAMYF9ms)v03m z((IEd4x4UlNA3F7!{7lsO5?B*ddY5yc$+L>Gdx-O*XbL-d(AfA|V!| zjJ3`f@nEV0_kKpoD?7Im|LCze?#_G7@f_`Gz@fxCZ^dzYz67!w^&e8+0> zW~ap5l>apCv}KrSr^_y^B7Pxy_`fB8?0YrekyOh1US6BE(Y5?kBgvy1vQCkeYv{(v zomwqF_Q?aulhU8Lk8{>XKaXnvAI|^&8)5gv`$y@YX0d0C-9EOri`jLoIhI#8r~t}N zBp>^gY~QW|eHNcqV7!icw+z!*1Thniw`loFAVG;xw+gR-ByIk^=k=MzV_(N3-rO~^ zIpFBWIs@C$OTIi_bA`Sv`@D@Ry+MZx^>R!oN9(K)+Sy*a?oQ4}JXSmR1>wBg8u06A2>KQF z+eZL39zT2LSDQIbK6}o-A6+xVc{IDPP5!KO0^TxtyEzbK=q5fz-`6qx-Za+;*;pb) zBh?4Xsb1m>*dMd#lbV`lhyDY_{->7Yu8;6*->)yCqu_gYbVa$FeHdsbsfuw)Wv_#? zIP0{F*{epA>5q#*Ol60EcT!WTRjbG|hcWP7Uvu^`D>-M+{8;m^(3@DVL(c(%?g`0t zzFl2?eX#}r@Sv=cehAj&qJfSu8EQ*rf65$$vsfD@HQm@+ zuG?jwk!{w@XN3%jJXtW9$?B*e33)v~1h z8UdP-q|c<abYVR5veVBH_ruz0C&fE<%_3aR_YmF=Ag%Q<- zejD7xrDSd+oa%SG!tc z4}-%+th@!e8i)gJ94(5$XLJz@f4v2qOrhqf)EphY=+tYJ1e}5AN{*x{iax>IZt#F( z`*<&64R?m`4U&^PQaa9EDycB?Wfqij(knPw&KKbJ2x|2~WXI zsWxysqAi{MJT}GNx$mCbl-eqrVoT^8`03=tt=xZj29!2Zr~b-**uuhFTiMCEP!#N0 zQD_xO=B~zJDzkoXuG~BzaE>%vXpZ(IX3ZJ5klcxz|sIT+N2NIa{NntKODgYZ%q}zbl}Z z3r6=JUDbeoH`17}2Fr*MK=4bhIJ(dw8@1FB?Hx5}N!Kc60$L4f=8#f4P%fOjF4ixtPH{-wq09{k&&C;V$qZ;pt6)qSj_ zWR$ zaH@GW@hxl}i=T(})Q2w*EFf?JyWm(St*>n+qL)sKAoKS2u2bP`n@5yAq6A1H;0%*b}t&c=1l8Ml+uMm- zN;baCcuTD#vdqG#C3Od$T^Gl69O2+CCfD*i=X82>&~$|sM6U>$*I!~XiDl33kZkwt zomCQK6087dwm6R2V(kVOA2;t`(9qHGrH6W>zvquxPS-V!-pTF4cEV&2OQys}T`Hw- zMwLhdV?3oTnWUfz>VZ*{NsD%}uvoMpfD5I7`;5*v+dlV9Zh)G-q6;Iurw;~ZfB4#H zpD3zmmVhYbPqVrOKlig328^lzt&QGu=P8Y=Oz7I&6(^nKNvWYZAk^tkbu{Mv1MO&F zU7>oipHB!S>W}s+ocFcnRO{z@nIb~!*#WA`K*e%5 zh-4{Ka=B967?{#Cd3Q4%{^E_Mv#` zV{&%xe$M#0yGNXY`QAAx>(3*@)j#u{ijsU;2M4*2aVeP-BBwBWb0x=FcFZkx{)1%W zJW_K9T`P9-a_-eW)WW|>;Z_iOz^rB>5DdpQHR+lV+eTqFRSBjg$g@MgPd(TdCoA7) zA=#n-518WaTX7{Z<_>%;)9$?3=Ce+_T7ZO2HCX_Nb_07C$44^V9qjY5Vkt<@@19G{ zN%o@aYs$f~^BKtha7U5u0fFdNicm0{mht33SB39SBt;jNG50!z+G(lJX%;p`_th*~ zt?aSK5AyV5#&Uv*IT49bl~D>T;VFclm_spTp#Scu96%cY<7-n*idu2^Hz5Tg>wJq$56lA9w7A*-pN~6sKqb{%o+7M#)$2KYaKMIy&!wlRo|ZhZ+bI zdN69I;lsJE&wtSpDb&Fi|k~sJ>h0NtftMMN@u@{Hh)TcLAl$oIqc=46av8> zWB!-U>~gmpO4B75Y{D8>Akq{2V~B91RF#%IR;ZGi=kB`L%b$fCPDp`}Arl50| zqlw3Zg5fz`w}6a+| zqC5OPH?*c(vY&p_ppD5{)uU%hFXHB3|hySr6sT2?rjkHTL72orv{O8=Z5}Kt#B! z;osed3nvLQYL3`Jb?!B47I{0Lj#ImC{B%C${9BCL7gRPVn=VxOtWOZUfyODuv?+fo zQiq%o0D#y*@x0z7r1u~iHSw8FFqg=47rm~HemH7iKNwI{Y~O&^L78_FpBZ<@`8n7> zmR$G~8jt&TeWGYxS4m&CxYsxf+3o;iyIyJVB|Qiin)x1aYs3#1zq5YkDC~=w?+{&g zlIqSQ@L7l-T0d)C{3)HO+>m>e;|iot=g%~KdVFj-gSIdFFgLbn2G&Lu1UGc>;DXNf z=%#t8J?|8g<(%5i?t(AKEKAsXe;TUXMlJwdV!` z0qn3h4)fyxR)%ZGZD-CLks{0~sms$QWs5$5vvt;!U8k#6x?$bM(JhhXMVgb7vG8KA zn>uJB(NCJS?k;I(XHXy-a})4R*o8J#z08}>DFT2SEtF~#UO;2PA1-b1yZvTY; zq(3{|{Nx!CHHTwqfRLg_!dd@>`_y0QQAhJJH^%dmzU8zQ%jXOznQIQe&UGms*T{#- zUs`Pb9Ct%+XY|@XyJ<&*3Pa_cdMd~g(KRP<^WGpiaYvB-Lc%T!!DkMQ{nMr8z_dGh zy$B=JD+KH#*J#q&XIkZw&(ZT>^zZixbMZC+AM~)f2s2AfFRg6QQ}Raxf<8ApoZ_8O=+T5tLN_;Jh-X(wOC zl~}DdpN7qTjm8Xr(Wt-teF^Q~3OyaEEZt;w>`3gE3+Vm413jWNNUU2=NX(uL-x$*g zY|`f`QklxrZYUjiFRvHSFDrX>`}wL>gdN>DFNB-1#q!aQ-=Y^2VW4IcREH za!HxqGQUk#?Tqz1-g-wP_I*mHZ>{*r2&qgrXbgj72521}{8yn*o5C~9h#T=382 z;Ev$Rl5|sLWjg!U#Q(i9x5UOL*{HiAb1$5)tlMY)6~queTR1=4n{abq!6NcD*x?X^ z5$bg|jmJ4uY_LH?!o8^2LFZsc+_~GWC%6b=va8Fvg#fB>9B(Q!!*fSF0?gWd7xL+N zbmRY7FodsWwTd8iO51@V^Uu;5t!0K+;YSZtF5*qpz6)$lTM13cy&W^BE!=3z= z3qiO(GjYG>qqL*~(L)4K49ugZRJ)k@|HQzlej{EQEe9PrJMkVI8s~Al3vF$PRaOf;&)F60+My%$=(dJ$t8GTY3VajiZp@ zb%f}KO~WGi)tKNHUTW>R+?_WLA&a?$REKMvUi_9gF1Gak_#~iFTEg*wqkTVH5!qw7 z`T!@_)@pY|N6pUUy`zUxY1K}Af+VF0^^CpW>m>|0GC4OWP9s(vfMF@`L} zQx_b)ujaCqAJxZ|D$f<%O?UEeNaG#L*R3_Co4$!D?4m+7U83(@W0 z!@*cxm=T7AISq%P5{3q2b&Y@l#&~zyuz6^*mz<~3Q0JU|_-bt#Z)E1h^zTpSPgDk@CZ>`%^r^<1F?FQQ5y9_s{U z_G<|(bO|brr=~w}@cr(TcYdI!?{_24k23wx&?#GaI{Rmdbkz#-UoRP0Y!3)BkdPLx{8bE4p0fA&TdIc@B*>{w^_- z0Fa?|PxT4<=h^Mknaxg$$B=e?MPxWc8M%?oUC!qhWV1t$ z@09?5F8bS3s9%7q8d}iM%Djo&fO6S$DC{cLPjHdILP6#^ku#Bf(YfDslGS0pe|; zhRuJrCKnxK$FvApAO%$fbUm#-LPX+nD=$X@Tpd)HI5hAQoK}uQzY4#Ie3a(X2hteG zdadtbD@M-^1SNL}>PL=gXe4P&6vl!qqUBh?wE$Tx)MP80P@C5MVHP%$AA|g*>4akejqu265G;6o+||@m-6+tNQN)tSGaCJ#QA{9 zdA}(pT@g*njz1G2p00X=oi5^^a%$@;A(U55%-~1z;)zss&+~Vk2P$5~G<~@q)^^_{ z;8qwoE)GF%szohw6H?Q3`+)qVafJiVU#<`0Ejnziow6j<_?7obzdF^N+3f{jx}uAd zMA`2EO7wvhre6G7sAPT#v4W6kv_B3~V<>iRv9ErYoD{F+%CW#0oy*b7CIAcbXnx}k zWPpW<5|@cCN>zRE2Lf?5T2(ArMosFcM10=f6+MmP!}ZzWcZW5P%{?dCs5=94vnd3B z>D)L@x*7VJT?NAMh1VqvT@xaFRctHOc?&k~NY|fA2J}!Ny5Mg7gGAN&IUwubJGB;M z_d_lnq(;%EN>ZuDwSm{TTHQNU|EI#NrNT-xG_s3ooZ>%EFRktdega+(L-T z<(n8x-WjRn4z{LTE-6||-Y|Qst+mxM z7BTavcUBL1TzOv~caJBt8gtC#+-l}nl9*!0=5$SGa{f9}WGSg$Cpx1A|4T7UwTfT5 zYe|f?L0xGglLA*7s4Umdf*b9pBHji_MIRCboWhJb@jfab;tt4X_f|q!CXqyL?3?rE zrTG~Dt@woIyl-xe$EjZ-OYJ&$6#3 zcbY}oy`UMjwjr09lCUng|A$c8#5$Yyzr1bkV)yE=wZG`vs|WcxlBC~nZ8OUJI`u;G?lM@3(CFM z;KAcxQV0egKZdXK8a^)||Wcgl@9CC+s$8fveR9KRn^MpFREdtXC8 zC6)*e@t|p&-u0zT}Q2;Gxp;38%)0OMz^coshLLk(Z;EH z`IWr)Dc?@3o)RszRc-Gwp#a28|H14%VuzJ+NVF7fHh{9@qePJlqF*gU{M0wJCT{2t zm0|l4h69@OGOWdT#ks|ef7+AxHu$s{e{KIBM39E^JPo<&g4nagU~|)k+#`prU9D?eL#1k8@nN2Iy5rZEqW!!&{@rVdov7=m zL{KVhDHjdpl_zKFL=Rb3JPP}wS1m6KATLGt+ba{BTr|>NS<~GU-D`Od>VDrwUTsYQ z6?U`Y$x@0FoQt$XiA|BecdGoob@KO4m%n#LR6UjUwRE601s0@Kf;9z}om7GkED@`O zmJ_w6FoXW(M!huHvO<2H!Ns?276COLK!M@J46^)bxN`p2Id8#W-I{JLj9Pl*3%bye;k?!`nF(*IzTF@yc&}g=%J= z6=a5vq;$y2!X>L+Z z>S|c^NQ}Ay5chi!D?NyA`LD4nG53>3dwmEDn~FNvjcX*B{2}u?)|J@-Fyt=6Vb_OE z6FJR<}wmvl^ek;ZEIYxbml;|Kt$D%D)eY13FXK4=*#)8KQumf0JIFcKc~v zf99JCPp30<%J)r>(!IEE;pytsfX|k+;WQ#?=04PQ(EyMWzB=ogf&H{2D}$&HO06`G z^N98U0$K6xNyaj{ zVoTg?iJxE}-Y1Hcbxuh^-rKnU?Y0ujT~?U8jNE0GySy-WIl0R%_n5-mW5_+ma#t7T zt|oW2<#ynCNXC(S+}8x@76WYy2Ts<8jqBl*4aKRNuH=&UBkB7vA|gJ+by{tV?+6mx zg2r7#!o=l_&@S+CG^T`ST(&`Ix-e-#)HmFPy1iMkjVVQ3u{quX6U25i!~t{q8A;gx z$9vzzXjo9$pwU1}xd`lh6MuC54-b(^bJF^qe!owRHy)TS{az>iUMHi2qs>a^R$gv@ zYlG~~m6u0p%tHAOr|5f0vwbSFzZlIJ7|K-^yDQNkIWndkZk8zxnkM4fHxi>FZG#-GeZV`>>5B-z<2~eYF7IA##M=={;orbY@-Dqbv8bH}|F1^?r zdl!BB1(}WO90g4U#<~r1#?-Xm_4VX~m!BUrUHPj}SG5go;Sukj;6S8g<3YMXZ{Jxv z?#S$q-@cWW?xCfm&9C>4>epP$yW-}aWtK6pIp}b@4aaEvOQ8CVm7^K`dcqk!wjQ~| zVQ0F1V>Hf(RwiCPngfJ}kLF;W%SUT8G!!F(?5+EQBTsW2&+yUg*%^J?lU-L@z2odJ zW2@k}%#P@tm%8Dd4iPZkk?D3rw&_-YaA!I_%xiNW14*c%6CtQ5 zkt!TV@v93#%IN~8cmPwxf9UuK7ynVj@)hwPEzCX@|FK5TtbZb7S}mOg4?UY0ky~ks zy;+vbW`0g^V(Bd`QB1{364~BQ1QiF7hetYP-^@uheVMh=`zu%2M;7xiX?EF1HcMD7 zCSRE?;1lDw4$x5$=RP@ot1Sbr1wC!vli&<}oXDr)_$rOkrMu#D&zJ^UCY2-Z$7I_2 zHPCS{@t`Uq2ZTPY($huR%7?0);gRQ+W0}vfLQnau5VM@)=sqs?ADel~FQ`m5nZ`4% zPdMGJd=t@2`dy0pUhN_^68q$Q5XeDkt3a5pvZdH(ekHY(E8m?1P}NwUxdonA;U`s! zW2zoJmhRM%arj*XN-Dt)co!EDls*%T+#6PLjtzlL9+s7QRv8R4EQw`S!{sxn#B%{a zsvjY;p_G8r<<^Ce6NO6Iy6N1asnX*q*M}*-e4CBIO$hA{E#s}?XL#f}bz+=y(63s{ z$(ovSx=&;Lr)qmzK_dkBwakAl_XRcnzF@KcRAQgJ+f`K zNorQkc|nva?b1RU9RM8j48I(xaO1@Jry!o2#Cs5*z`t)~}>2FmO|)mgK;6h*Q!?h?V&M zCGKJkijSjsScOXgXQV;4)`EjXfa(W_(|SS}qIODORXaV(2xIW7J_n^o!qQgNU|w&3 z@S$Uq7QR1Jz$0?%2r^uFUo!IxsJ_^{Ys(UG{Pc@0W;r%JI{@UAGy(R^5< z9*f|upEqg=!o+y1NX1b*GUi6Df=tw25xkXsnNjXqP$tolHv)>a1k$i~B%eKgR6zEX z%*rvTQq~!Oh(tfTLq&w89U8_tmh)yJV-p=h_H_Rn#2938YTuoV9kD?a>6C%7@u z?U0bmPUN00NPZG^2*Ob0okxvR-66g4(6Z@4%cubcb)2r~9F5RQo242OV zZE@0#vXkAK0a?-`x2Kv$+gXcc=>%6`VC^W7U`)Eyew6FSIDT;adw66|x{7NUnJ3HA zu1;6&mZF(Kr&Nxq?=)>{_>I-WUNF)n3202H3z1>G3SnXCVf9a}rC;v!icp#X?jxm; z3&!wU>ErZd*!119vbn^6Dlhz`C=jnIOw$zmOeH*p4`ogz>~8iUmW1e17Pvr70Gf#| z=?A!Ax_w%1tpu zR;eN9L_YD8Lmf!3g3N?hwJ$|`hY`MoTY8UpSF(pl*43bAl-99Ps zNm3_Jv!$Z%^-Neb>a>W%uvuzJ>a3F1=t+EmvJzqmcn%%Bq2Pt-l^t#8tQL_9B)Hl|XCfII zUt#4Ac|a~*k2lgzuNKY}tkk#{2fXVcW@KvQj-YWjb~RQ88T210Yz`_oA^4HtNPAGx z8k}VUOrMpl#b;{{D>{OTt*Nuj99F8nu8F?}6}0NGMy}v28$x|;RFa%7aCIwZUo_%NA%Gpage=F{}TLReJ# z>GXkY2<4cnr!2lgV=+)7BxE0*WnW8@1i6*tlWO)>&p74AvB&*|r5&oXT6s%N;f~Qa z23XLCrES7uxxP}9nJx*!U0+R?KE`yBgN?;mYFo^pw$lmD{#{~ihT?q82Y!K{bQNL* zF{xUSn7|`k2ML0Y4r^`%;TgcCFX+_(EafDHH^Hc4$;v1v(Wik>o3%W{BRFc7y6||Q zG=AkgRA6sbE3!vq8!oVrO*TsFU}QJkGRyR#N6&<@QYWt}I)tLBQnN2Qe3B|om)cea zSz&5k_(~@tA*aQX7PwhbX^X1W;N<5kZfd%UBpG+WyVAY_x4M8aS&A-L;yZ7XTkE_R z2WCQVGdtW*$ehBm9!Q=DFU+gRE--_p@s)XHB`zsZcj#6z&#=mbd@JoMzZ=aiy>=Q% zex@gQkfcg-Gg#|%>G9ARE-Uz;k!ax=I<;j6i<_tvs;vg)1Raa@q{K3n5G`ZE%4DCD zPs~q!{O3A-W(gK|u(<_p#DBvNCLjKY0!Rx#%@k2o3$+T_syz*HN@Xj_O?1Xd-V6DD z!c#2)ZX-|%ASosXO?X?4YN@}EWE&_F%09L=Vz&xz>YO<}vjryfdQP>$!<(JLz?Ma9 zXCTDJuJa3cMJxrQULm^>Bb`D5Vig~zY(^Xw)lfsgtQA@xqgOta_&G?q|4m=qkr=52 zA+FvGB44%qBiIlWmAUC{uO1_ZI7D!*k!*m&hdMgxoaC0VdZ{I8xRq3H^khjIb|o3> zxm=EP*1A14B#qpjPH>yYTphM?p1z$Zonc8{Cz88Pzn!5O*e4?PC3{K<*mSmLSZd+K zoV{+7KL=Vf4EkNA@(yCz@V$`Gdjt*XLsT0j^xcc9$UY(HeCq%7(YVboJABbjJ)N!5 z#;XWTMJ0h%Yr513uGNwpNK&0@NUD?C%Xv*XmD!@Ys6d13hkT6{bc38O-6#56Wl7HX z3~8BRu@-H5CL&U=P;>eq6lkM#!f7~_^y-XP@2NG|aFpO+_qti%8a2l_6gKW=j^TXM z6Mi9)ksfI?_hqWe6KpzRmm37?2yHg=^nM!~8j=?GCD{;>)X-&SQ2iLYQm0#cb{o^MS`SsE(gjd6BO3%+R^ws7VRvFYf6$bQk46DJb_R`mK<~uLF>Zibm;_=XtPhT~1r?iuvsmiTeibs5D+5E*7FMiFpJjb0S9+PH z2f}APhJp%VZq!$nF&sC`yIQZM>UZf!d64;{nIz13zE~1gY-gUCI;$Lv>6+r;PQ+b_}p-2X?~ z`v=K-oppXQVA#1}xP6T=BW&!x?68^1vh1*N)ehy|P21LPb>o>-gA{g%R8)H{s7~yv z^kNYv(OqcmRd#3g>Q;5K%GOj?fAm(}Whco^)g)2Guw0<8C9Jk(pk*7}mOyITfZMh< zZu3iH0aiZW@AJI#cHb+L0JrMSIsJW}bKdjwIp;j*Ip<7Zk_Z=b?!{>aXsM1X!Lp?A zG=02^s=jOiqa@a28L9bUE+Yqc(ZK9nc!~*~BwAa6S-f0+#)4jDRrp;}!ehHf5 z<%ZH$rDgLI#uk^BOi}K5WoP39jg1fUYMItm3ML`xq|ry0twx%V4w_vm1eGIB`)ptM zRH|WBml~B030$1z>fmp%&6G8DtT6aFxz%{;m(?o0@I*rjVZJ5~`K_Ah%cZzQ&o%0P zl6v!`U*Jcox>?BH&3cHyT`(m`oZHK6qgmfyoHdM{nZ^ZfPI@1E7UWhRNj;hp>P=By zXsjiymrYT_igK1wB3Y;M0;xu~FMM8-X_=j^G4mhQu4@2wWlU&P9-5g96@Tod4&;?V zBC=dXXn$;|p6VyFcNY0Ei-~%PbuXLs+pz}eiVZUh6vY_7bl9arf2{rczG^xY!ri za@t--X~01gO&-^^{;Z({l0-+IZEMNGr9U^fFHF6z@CuG<(~>f(>(d&wRM&#~a?z=< zLqoH_@T*MLRbf#atRdATLm?dnd_TK!>QO8!>z6-9(Xy_zCu+g1YvVVx564!tQp5e8 z+siCb*+>1HxEYzoni}9`Q2CN~&EKklL^B%YXr*zsT-mwfPb7JERkfF&e?^j~>1w`T zhQ5qo+si0o7+mzDwvASXy^m$~v_FSz_A(iLtx6cduRWz_8kaxMhK_cFS z>V+xEbFcioy9{c&JD#<68q8CMI^WYjS{cI{1N4Zs<0CtVnVQ84Xq*L1s)g zF|o`+%M(=1a=fDQtU2bwW97M2UpiE%FONkjM#?Y<=^H}k%?IL;g?=u6T%p!Mj;%a}>UDmS@yZkxe6&6d50l^fCG zuiUeeWy{*=k!TfswF%pN!J4=w5Mu3&sC4I2X+4RXCh{kB0S>vE#Hw6`nVDjyP)SJP zwU$ui+w24(=2jBYcO^!YsGSR+_7)5A3v$kuCrXuNIuS$;t+teGmlzm#jk*>(9pn3#Q0*7rB|N4>)boiyh&^2qZnd+eh zRRw{^4B!K~Bt@f_S&NZ~hBr?-6OGAqC?eteW=bQ7*eaE< zSL%*%HHr@8Vp)U`4dEYSZ82t|k`b5cMMDR1cJW%dr$Jx4!w4*wMx#>pd0A<D9j} zq`Nv3_B+wEaT#!Q{hEH)>nD^|Hb1j%3f_v5LJAp;ej3sAV!OlCofgxssWsD@?CC98%|>8eSpo_3apf}+UdKe74WjV|68D<3o*&XHb$UBWgR_8#lL?xyZR_sGd%ILi!HIJ&drKue>a8 zRgbf=8;W;TnI?eskfD9yo><#;g+_9|eO6TAv<2y&)IOz?N)xc9B(2Po&USW_X-eNy z_*3;kicrjH7%@pm@kn0i6DdN*CS42tsO(POhvqdJ<;bM(UekOKp*Z9xD*w5*xmvbO zx))@9ejr!nRSrgUup}PiGDUMc4Go`y^c{pUFIy{iE*YdJmntw*=n^eGA$`z25m%eM$i8+$Be`Ls)-r_cjNGvA*|pcT*2Jq0vZ<;>El(Szx9G>N8#DV2 z`oX;I8O__4U)a%1h($&;U(dkQshLZY$f;vPf~gK;q2y{sY`Df#U5IWl1>dOyTv8un z0sWZO#Ic>@pJS76#O44TnrvS}LTvn+C);Q%Q;p2Fvlg92vt`FXAvN#*ypp=-U%#R3 z^GoHYqt2RohoYU_oh^8u@;Z{K7+mvBcgvv|66Ml#Mb9N?HA$O-!f3@*w-61SInY;< zZxuIJn=A5?3q_$;tJqWTx0H~gN@KQNL1D&oN>kE|plK)+{uV9PSx@nL0(^(J4<@3d zYH#F#g<3moYEVO{C=UHaM33X77eu30`UVMUUjGHQF1KYK7&>RwTN|==)w8avtRqgh~TKPng9XkBrYIn~WKeWme)bjDu9nGnJY%&?=$+>64?fBq{bPQI61~uBI=96hv`(m9>8!KbL=Iw`qGDkg2h#pSt*s6D|$!4za&Jx8jkLcuBRRA@J) zpxU`OM8ViN#}0@TR5^)$@W~p%=H}?rx4n6Be$L6+LU$z>{a{u4!By!8SL>+ED#}Uy z%7yxszwMW%IjW8XV`cKJEhg?>tB7kQxPE{%{p89vdbKk$$0J{}medMVw3%nr*E4jY z47>6V`LAt(1BA`}S~KZ#<+rk8>Y#W-xA*k+Ir6XzmlAdP$*NRculf&j2)ORzLsGxJ zv3{`X$PSv7gSr%C+gI-^-Vgax73{0OA9DWjcM+8B*7J|w_3d6xoPYfNcSup#KL7Xw zM2V=uO#hwV=5w|9-t`8lNt^iY`c_#Kaunn7dtR?&wl#e3`4+92vC@D1y|0s|f)gc= zKX5_Qi*-C?`_fvK51c3THxt)40lro&-{={Lf_;O6=@iL(&RO}2?;iAiZ(751*I#Me z{Inu}*Vi|0eoAq_^XnQnC+p&Q4G(Bl@x1428#jNOgEx=A_iMP`MiD)*%zK?H=O2F~ zt8sN)j3t+!+h%IJ{IvH|SGl}wiwlD`c>`*_e)F@{5a>5QgED|d!3V4ZSmBc>i(kLC zgT9hE$?_92A!E-Dxq-&%piV7pGh*EQ)RsnzrekD&Rp(BWbyaqa?-2JTre-%k>$o?I zxYr|Y<`hNbPf2DldNAuC{)0NzOeGOHbBEoW2!y#oUEU+@gDZe-9xnxxVn7o_G8E<~n#n=ilE3 zJ*xcb+c{->`n8wFB}+zx4tV;pU(p9p%_(+;pDv%p{3gZRB$&ttPfS1iY{c2DN1R`O z>G`v?p@6=+z1EsuCO*A?`4)w(m!Bl~Q3mILjFa>=m(Z|~w?1Fh76V1p#e4oOcan;? zIbCJO`%tDoMhwn$#$Q{Azn<~eGXAg4_y+{NE&k^|a(lr}zy6l^w-(}`eloJZmGOV` zpOyXxZi(ON{~2PKPygmZ{QDXIX2yTv&r1IrZ;4--oc@Db;$L5ge?8;p_>;?j^UsR^ z=bwI+^7-BIV*0BK@eiS@$yGD{w_JMeRjPOTZer&4T{jT+d&&kd{pT40gPs%k?%NZn zVs!g|Be9&XM3>WKZzjS8`g3&P^A~D}pp*jfruUqj(fdYkSdcW=|9DZ-XndN5@!t(% zM!u-aOTI{CNxs-czI6E==f3=R*MB)hhHRbszH<7(o)1CxOhWo2F&Gv2i!3f$IC|1o zJ%739^OqYsJ(u5n@JS`*|Mw|OHs+WXI04fSe(OS}zm19StBco<`26KhE$&h}$&6V# z*66=9RCK!24#}xs`KBL!-8+}g?x*KC<`3}OZ}6TSAFX+>?$37^bNad>&7W(}B{$9| z{yTm7mYr1e)VC*e;S{FZ&jSdV`V|xwk%!mbpFjUUPGYY9lQ(b@lQFM2iOE6C%^x3e z5OY&$L0QbyDD%nDLV?rS_bnXdOZoQtg{t`OxxA@LB7cu)YIOO@u4aOJnhDa7!lHze zh?{5UFaPVm&iTs^fBK8QwjmM#l*Qx*WmYTk)}A8`B(Aw$}XkZspp~9>3{jU`5KiVWTrz``P}B*xy+)w zN&mk8Qej{GM{gks+|Rv&gNT{QMa0;p?3VO&I2FGl*XJ|WrPQ06eH7<2H9Kx;o}(o# zRs&TTiA><|Va-9VgHIfUjeCp;*uA>8Ha5rNiOss1*p`-i<-cWKd}D27>@=6jQ!e4s zw^oA#>B2VL0>^H09Lc@ngP#K!77l*Sv@1?5Rr9cCC^vK~Ly@%RBn&${T6gQ4TIVWN zxhpXHI&nR=rUa*=vkQa?uxxYJMfGS)GluWc_)yp#^=6Je51AJot=MQ(jC%)SB5ksSKpGy-N#R@x_|@Sp`w@1SzPrWr}y_ zg3k=JO$t4UbVy26n)|Mr6be0*=(_H(qHj=O;*tiD{I3XN9YFLh&d@ArVwo0eGkdMV zpW4z00UK0*b*+eEYR2}t=e(Fsbs3C zbGzL|%jr8%7bP~gcwK~Haj2q070m{wdeO+mzz)8XBT8kNRBd9(zeTOp?1h8T@IalohJX`&CRg zTuiCy?2=SLuA5MPM&ZO8B+1oJu7TW8o9T{U`dkv+He_uZ$N5K zi3NBb0^jn^i%OTW(J@#y4^%vU*NyClIV8If0^^KhZe@0b&eK6qNz^lT03D83IZRG>)HfsF&I z7B|rv5D&PgRj0Cz6}}=?HnV{`doqb&Ofth4($I4(kp&u}<{pOLv6|piLDSq@98~hq zuBnrfdYse~$5V(J*ZpCV`endT8E`+Ty$m=s$pQD0)J@W$B(;;&F^RR1+-M3dLpRnO znjAUeXwJ>#);A?0l%hPqUr$Jhl{7lR&DyIabc`zzFvPWhy0NyE(27#FJX7(kC$uCe z4h60XilMP$Dg&D#>v>lUp(Dn{q)+W-32)9NPMMEr$FZ&SO61ud_I;AC#G>CcF+^=$ zzo+Hznto5p-&^`E8JPTtQ07+U@2Y+e#7C$~HOGG^DE>$A0@>LOmCPx8U~^>X*=ALMJ7p z`cYiNfY`9-^6s6D={B`8O4>lQ4V&I?8bU7Ey|$)0+*#(rZfy2}*vXQ&X|HVq>h}8Z zXU$%xZ3{1*GiNqas;i+9L}H&Ili>+VLd_``1m;+Xk|mcS6bCP)N?_(h_ar$6^BgC{ z8MZ5N*5D|aj^~)(o)bX6%&tu`^l?>HV%%Q#zE95(Rb-c=jkrFtgVez*S>QCNndo;I zP;^aVzu1sxdwYf+OD>P99U!%!brn+_L0ZM@P4h?ATBcrGtGMKB$G&Um`r3-Qe4|Fw z(PCo>l%rAI(2ccIxr}&>-!(&zIiqRu;tYkg#0gYoTN%IxWBcHPvKwb~V~c46-89y& z8Qv-77-|^J^gtU2zqcJ@uZlw=p02O#d$h#lLm}gwp0Z1Nwqpx+OTXX^Ny%(l|+zBn?W^ zFi9hm*khF&HXQ@J{(O=Yab6~Hl90biH9I*`AIB!KDd!YEy5@X@@I5l=(KTgJ!b}B_ z!nY4eP)ks3P4@)Fq4|9Wd}OT&74rz~W$!t_qic1?;qzi0b7hN&t3TR;7*Gk&G8LOi zwI(H5We_I^)!79t35uanonFwX+nz^Db$&s!5|R)QG$|no13}{w+DvGakhVdYSSc^d zr<{P)uYG63d!1c*slVt6n2R%zC8VB^SG%aiiR;t>&DBn5nvf1U(F|NrG%?(rI3K3w zpcS7gROhAOnkKYD*o0Jp;!*`B6czV~D-NhQm*$D$CTyNmDA>jmD)K`|N+Z>G;(UwR zR1O*^cy*eVudB^)&Q0DUqceHcCfr*+Nbd5h?l-7nB5Dh#roaWcS`$JqsLLgi;CLz~ zqJ&|ooE%&89A~CZIn`NBrs^EiFU3UEk*p-WV)~6W^MzI35|EPbC>THV9UZ|_*VGCC z!Js6lXDN|+3(^dd1g6rzBfBHUazhU%gyAJh6+_t8D$Zq|AV8DjI4n9wree_GID8In zXz2P{$6U6@IssB5+KNM~tQ%{`=DOiNl4q2T46*POSJ)9bLrh}GlQST*_edQpT|^(3 z5@-t^^9!OJ`zxqS6kewryyR8cgt57TsyK=hb@pPj%bH#xV=e6LvaHXgNJg1!;c6*X zG45gtFEWL^Z+Cc$SnVWr&yf_fQwMA%shy;dsU|g(w40=msV3EuR8LaKRFgK7v}Mx6 zYi0@M(t1J;O$%_uF=|vzVm*MXmZ0S5P%Ry4H6f>zs@vmtR$T?JYO`Y&);4m(@NOlc zk=&4}r&iH;^q=8X8J$2)Bdw_+rg4TWH7ABR>IYmC#{Ak~)e@wv{*5DxjXPa?wvTFU@E0&Qt_s zwj+jsrU|JVBs58=RYK#0b_22rC?dot{TFu!6L4Zyg{n*M3W|G*nhCW_NEIk9RbX;; z650=l^KN=acjHUy?uTG1%&vGabZ5G=WcEkaw#2^td3}0aUTz%0TgBVBfTbW}+g>ha zdStC)uamiA@5{L`9#Ve|Kavu2Ra!4f9aZXrOg$C?<;2w;9F3=L#$44czMmXN^Bjvu z3D71c)8QOb93xB(aW@(EaaC(#OiQReLm3A(tqLy+#Vk|fNv!S@-E9L*H z0x&dmanpLUhZilgX9P(-k$ZtVC7x0OF>$)%mBt2#=x&7l54k^8AdFq(;-_c-QvMpD!|C8v+0;}J%cm-nT?ep@dDB#6gNxUF zwQdM=ZbM#e)C{5fHDnRH1(bS*b-YT4I=7NKQg7wtHC}ack%n?fB9J<}ppz0(rx$cw zLhAg2j!H;EKv2JgLacD;D>Qo35`o=l+dh%RAGv1$zS+n=l~k=n)nKs zO72uV+`Gik+BQ3jU|i-o7CU%zMA#P^<3-nAYXtV}wML+0Ui#h>i);RnpWYseRULe4 zFjZV_L@h|q6~z}<@|?{>)8zgX!R*c#;eJk2(DM4ynW%K$CB+^cVG5L2DU9)|78Sh* z2i(+gj!a?!Zs_CMjT<^H#!zwVycyO?=3-0(YUsoRlM_>|a6L8^q2xF$NskPL73|Ih zKdjg{M3Xkxi~7=`p=)_mg6TAxe;{=&XDF2L%DILq$tHi)ryrC$jwz$JM*4dZZ;icE z$oZ~VysHenct^?oSX_V=GZ1GxE(cI{a~Ih~Si7AsZBNf(4%(+Z#*Yp>lvvFoRgPJnO$7*V(%b3unfj9-TB}hv} z4%3;7{i+gD+f?yYOGs^0PzV|a>?Bkvx!MW2W2its+E~8HD5sEPQsp~LQ2*HLMP`(n zH_W2kJ}VUnOImgwcxI6F9mD*KUMgWot3%LPdYCOxZ1iIn*TIK5Y|l)QQ67HT*JK z3$8rc-xPlFnff`)B~euz&INJAKKwTba*_|eAL~XImts5k{)+tm{K5C5Zpx1we1BDb zM|JT1>$2jRX?W)GUmTX`g>jB838rhmr)Q&uv8zCg7!iDK^uq0CI5b)CwaBm@vSNPFOXd)N#OCWiVxc z&Ar_o-bEt;e;|wmPSr_oH4+%8yONNp+`>ozJr2BifoLl^EF|WX#U6w_Ob~n%rqmG| zKXxM`T3ihjqUX7p{e%?MGXmVS1W?lxq)*yN!ld8P?!}ajq#47&kdOXP3^B1ZKs&;#b)PDzvHX&}szjwm6|!@I=Y|oK zt|Qv4E5wj1gk!wie&gTK0I%hq&u4v$+qJw~<+{sbXW6%NE|!C#$Um8O&R*O(c#)xR z=faa*&gp~MI~(2sTvx?!Ow`1+>7q2My15*oP~=da4KCJzprYk^2bZdIYjlEFWdMVU z4nq{KC|7)aerfKl<}B(2H?I}%i3Cdw2PKPpS=>CXshC*yZ;8d-Oe}ZH^y{Iu?k#k6 zuRKGJMF3mA?XZsdaCzh8@LXn zyebN>x^aD(4MV7*Yq>+rq=VlnUbakPnk6?5FK*(M+!vQDCQ!qyo9mJ+0=QrA5=YjU zJuy^N%z8KX3Q%}7q!sgNqts`~mmGsF4^G`(qN!;^ib!XM9t%S!-J8tv!~wjy@8Zf- zXfI!vL~>|t&LUvdAHP>dfzPL4tpjmb$CvXx>TK6_yp%TVh`G0v0n1)5DU~huOH$7< zb$W8YAI6EOakKtNBx-kj3(L4<86?Z_7M4-TvL&%kEXVUKG3NF&^pQz4V7YA9Flz4` z;^af#S-t1qXnEvDHFOfv2i!0Ct$X;G6}06gGfp0@LpjK+*jf&SH5Mt9JgUlFc5OA2 zr25ParJ5qTFj4xqOl4guH*DQD4ROBAke5^Ic+30Y*lsuOt6j9HX^iBQlm%pp}Z81RpwI#$>nDfOQ)To`31x=+%gzgjt%)X0ksfyrlS&4vlG-$D9*X}oJFSh%5|PpHiR_G9iV=)9E&9^3Fa$o zM+&g9=MiQ^yJp6?5Apf>hWCFbU@F3qcs8C=74Mq;q1axIeJ8aUDd9-w9^N!#=os}U z)GTs0s%3_e?z=clipoJsJL?adgutQM` z9I=a-H#~IAg-Xi-eU7vaS+7a7d_@=< zn~I@Fa`zK;jedtfS~00uo-n@gJ8w-r)m((u&^5P9e`bi;7Es=FIRVme+5yV>_t+3J zRdL0|BO^g^ZSv4@6k}qnk@C7#bw_11#HqCt>Xw3*l=skdbP_sst1y?kskmk(r0yzc zT0*-CO%l@ibJl~(i+0=@>KHAQW-3!{HTTqyfPBj(Ca3bkweA?aqvf^$6m8T{FS#no z73Y?_628Q&TFkduj`a~HPJ8*KEq}=h71f@&)dp;C9(&j7)2h9l1J)8}63=swU4Iqb zlqP)});uf$DUwZvh)w==ym<+1)m{s~RWXDdtk`?1U@P`c(pYWadZTaQ-X`%*L|l+~ zM?z@V#~Dl{SVueTAUGfPV!A9 zeW?CfinWk<6HSK4Nt&1xOF2o96L$>fc>qa}7A{(y4e2OZLMI6g)OWZ$8Hsl+D6Zx> zG8KiEAz#nYPiRY7@Zz4^JPxkMD_0Cusu-JtlM+}}232SALlUfAhh}HSTw&K{E~WrL zIoIrnEAB6En~JuC&ZADWFBi)?T7&wYpsrlK=)}%!LVG2oz9_Cv38_yCYL}4url3{{ zEhQvDP+kqQM=H6ONVjUzJEEdJ)sKq)eW9vowat-pWJnb*XjnqEgwy~EgZ1JbA9}BA z&y&HZH6|ghB10n=BZ`I+QuQkbbtl(cY8ir}_VU(W>5rLpEcxr4M}bFA6re(;EgkYp z$#mt$y-035dc6#doTxEpJyz7=Ju+%Zt+pX~?uN`}K=j_0QP!w(&*pYs;>5P_qNJ;f zO@n*}+m#!0yIdA+B}Z+Z<4n>e(|R&(&N0m|X;+h8HJuS#ZY*glhFE^u&8ah zQcrRcaFxg$xtC13?(O630H;?>dt)!5W)(M_~jLL&lF z;qNH`wz71hp}7!Y4(J|!VlGzU=JLx0$L3-JBPialafU)e5*di3+2)jo;=ZUYPg%ZO z88~s2tO*IP8}&jeR}>q!8^>k+E{-sMSN7BR-PsNUdu2E8JZ>pu=oyb3H9Opzg~a5n zCx}`-?2E6Op&T3mx#M2Q5Wv8Okmw9Tr5pUsxA%Usg$S-igz+< zrm~x47r860Wj`vjo}`i7c$J}wS2AWOm*qX3Xw^{csODyO#Sqp#xY;mP@TNRHMZM+b zL+_LBZGC6?bNW4?Y&6T4@RZ&f=p>wCdY2xr8-u< zARbk9US`w!TxD!FxXPRkRh77APLH9(gr*7UfxYLq^)4J!NYiK!xOqBk3$L=#5h;u} z+VbkU9G0!3hPP?2KT)?At2=tTyi~wZK)z{--6s9|MXGN}|7ClT)3bvQ=HZ+P1P{@6 zXZ5G%%^}AISvSw-_BZ1g*f7J5B3#HQw(&v*Gys))T~ys*ijY1LV~C?8Q?KXqL+C;H zotw{nlTcF|^5*lQA-bI*TQ2qtVfaAyQXEzBra0 z*YjCS#oC6h`5GWC8R^(9LkwBCJIkIBE9YsIqw>iLQtB|f;g_CilvR%HcAUb4m(vSJS<_ekEh${W&1ZcJm;Mg*oHvu76^?URl(4xQJD|^88dG=|-pgsk+b8nXR&FMx03AeV!wc~gz&S?XHmtqQgSh4LnUV}HlJbe3NGD; zgdB3s=DkQvo097^(x;oxDG~aQ<6=|X2E?K&u35pg&86mWRn7Iu`Z*gmi0a-Ylwvv6 zXn5ewXD2x~pPjJWeD>#a^VuKC&1XlIo6l24^Wc*+oVm^C>GhAz?>qB8_rLzs?VHZU z;dR{YtM{#q<9>`ErU|k6EcK@julMC%O_#QP?0kHSZeu^Y+P;1J)%K`Nx!Rsl(`wR% zEAA_7CbQ{$BhRM39o2g5l;vYOE6}UkSALkS>tcfjx@%KwV)x^L+1GnqfY-i+JwRS8NQJ5};(=SQunCpUB@ zUA%eyVkb_Pg6Hk}>@Ue$kn5)z^ENeO(mM#+<7c1X@^f^Ad)cr!;5BNzApQSJ~7io z)u85@s4})Xea$oT?KJEoIL4{2CWOyu&*j%O7p%9+)`xb@3y`V{D&6xuAy^E`RDPjpbkGU=F9-QR!p9Z$oVw zbPFSgI&O^?T&IQZt^3Y2*>4>Gabdr4{#%se7ri2+3waqx7qUxRA2Tu2gmNPH$~Q_+ zaU|~vqQL^m3edC53}iFG-YT^s+qXQ=hCmG)j4mN{`S!_KcGQG;F5t;9N6>3zEc8>E zz$J{jdz?!MnO*JZg*9)}YJHGr?Iv{pGymV- z1e*4L3_nw4`$zagT>Ij7EvUe`eo$|K)76ypZQWkR=)Zly1b|n{^p;T0>;^6#Ot|Fg zqWrkh-)oulE3pOc)F$qf;&1R@YbZ<7G*CHlbe_?lQf5W+B~%++h_2*M?T_S7@E6G+ z8;>YQ!a2_S@5xeD8U@QJE_^|mH!vrIxm=C&=CG-EYP!`m6xKbg;5ak&PNu_T>dQ?g z+b$-3Kj}TwQMt>F6B6Bo6osaj`c7UFu&3YpzBENjp{zGJ+m67)Sdrh>)8D6)vdl&O zn`aR2=57*Jh+OxnTU_tfMZcEBbsl0+=$e&uNFu*~aJQ}&z%0Pkea&SGfEm~ywHQxGB3~;r`!mnzS z-&Q7^A0xMtdwu0PuFJT!0JU&{sxnmBP^Q}lh>BO@QjEq+zqzyFxwxBh9O7~FBiyNC zWu~*tMgJ(z8P@WZw~mjR->Vy7J)*QYy>4CICEcuCNDZAOe>C*N%d}+)ae5MW=BQ&L zwWX}9#mgV}>2_t=9=J1X%NFf^hAh3SaPU@Mm*I^I2IIcE1@9c3386e@dnkONJ@1;j+Z=OR1G=I#tl}zn9riEj+&1Bfc)%;bAdCaz+kmArpQ6JL2CVi-u zkkX)fQ7U)hY1b{hs!(MhFRj=#7y3*?zIkL_TvC7B%MccdnkrB(Y*y{{QRj-o_^{WC zy|zhO!mGu-x?vtB>EabM6T}OTR21DVOuF)SN53Z}o$kguul(K8?@{rao|s=5;1Y%V zK$@ttf4#e-yTIRv`H5sR9$G?pXawQeEIjM->1|qsZ=_Y%O={rvnHtrf_DJdWHN3htS`xrsAFtUo z!|w@IeaLuCmyXbFkP<>C;=S^NjKWyQieves@=9sY;2j*bgb9Al>?)9p0c-5wtX>sF zMZv%|G9QW%^F?nM3e#Z1CkG0{dS*c%K>R1-S?C!@LL|rK(qe<-gK@E1b<14}dxtAh z`KlU&?0r_%P5G@BVf&x_t!AO$EBRY(WBbbA!T!hWY9ETRkDE}mIL5DlXqaM9Gtp2` z6}pU#BBKJ{Li($j6#i%)F73RDF32P1R+&fjYzJ%jyxX9!;TaXHbDK*H5ZN zKT)n#ZyJDUk1KeK+0BxJT#Jg!H=|A&a3wOU=8OI?Gj=1);B)kt3e$5k3`%4C^q0mj zFr0d3ln)t6<+0db214jBL%H-9aq#$&`b%*WQ*xZlbNmAF=1AhFdHcz9G{+PVdu1%W zWH`i?AQhuuJ!09Hkm67y(TDQnP&c7tyOB!IZ&KMvu_yyMS#FyPb3sEMAX<2%!{jdT zu4&#tYl;>ZC)Mpe_26aibDD#0;Z<)?E70h-hnr7iv<)#65ERxtt%SxUq*kH`MkS=y zB4}7b^@Ii`6zva#DVk*LlPgU0p4cAAj=M=1PnjXF&-v9@3Ve0WuQn+>`=e^5s14u0 z!cx&tSqs!vls=XQkf@k={aO!0-|-(BFFm)j@q`M?N!_s6iPWS2;bUy{bGwjCWauBN z&Kzhuc=gUOsH#n)3tm^(g=b|Biul@uFxP?Biw=|nO%<{Rm!{lY4Xru|0u5LBlt`_a zF8>Wzsis>o5gXOdPKkO3&q_(W@eEwf>6e7iL00UtXB|vDMiqSoOX5%ii|JI;SG_rv zOt+qUnm`xdRBkf8{g-sAB+dE95Yz|6klN=_LJI4Z0Tp40X*_P)cMkAM$L8e5Jx!WM zs@W>#Jm;dueXIa6{=1}NqvZ%R59c3>A%>qGUQME@hpMmskj1Cg^O!eLhXd6CDcl2Ttd;Bu4iAE`fOdyvm_OFVQeh(>J8gbc#D;2 zea>H-^KZ@hHw(WWz$sMv*U~te2QxyIFOsTNigq9sxu6vS17Q}AQl6z23l=}q$o z-}STS6&rW3hR19PP;ID(+qnF~SA?|^Q%!>T*zIm&s#0Nk9t@*>=_BY>kvPu}BXQ`N z*?5CDt-zJIywywjCG~k;iccRYO6lf&t-_%Kq0*5$h_Tqe&dy0WMdiULCx$gyo|96B zW%Qw+x4kCzA=GulI#j8uuf?-*D3Z?kWJX<|K_y(n)j#R&ROoHRcyZV`7t%htwn{GY z8Rcb#woP0`Ra~0|SA%ECD5G8B7eBlm>Sa;IwO(>P+qn2^JLg<0LPf0>)a{GU)h~YO ztDK7(Q=+MwRt7i=#gdU-@bIJVLpp{Zjo(*47d2Eg4?a1<>CGwrrj=iq*ZF- z6`Kw~=~&c>O2q<|eTjIytVz%YinQ2+o3L?7KPuE>{L0fbGD=AqC`mD=!9yA<4$tV> z4s(f~Y4qZ$GL2A{+j2v#r&ey>*bY3BkRZb&xo7L=!Y(3-d$?BhB|df4u(csN@rj<> z>PI30SrAckjyI0=yEOsnla@LpDwkXRPM_NdSoz5Sqdf% zSf}FUjp4BSpYSVJ9a`REpsmS8m!gu6g0n+Dd!g#VIJ4A2aj1iBU>lq7QIj1 z=S2?3FsLn@$km@{v9YV%7YI?xsJZ4G#9k5)<&rDM5Dj}D$O*Q~nh;lyl{2O48bU>f z>(-9a!Y3~7)5#fT5uz^-q?c}4O(HFzY98FTG2Y8A0tGjAc;0T5c8Xr1Vo&X0O@dRY zYb^U*mQpY2AF24bsC{$)32MZm0kH9+>QrX*kTU8sekmV22OnWkrC(kBl3fLddh!5H zN5(X=rp37bmfJb*L>D%*XJVaZPzpbUK7MBSr4zhzn%2ys7ndyBTm5ED!`=;M7 ztt_@++60R`5)Z+1KHGB;Hj~oMc;CNK)mjlu^XGSQDT7JOsnq64qJ?2hbJViS{_S03 zwQxaUg=a`DU6911ga~n*QYV5up$cf0kUMljeA%-oJ>d2M=7N$|UGt&Ok*mX>(v{Kz z)w1%pTclc6p*!^qCx2`8&wR(3(t|3V{zS3gtzzf*ojS)R4ORSDwXh$tTJUvToWl0` zVfFBx4G-{BC6o%Gz->vY+DyYwS0L(eGJULXVu*^@H5Q`8m8BgeFZ|n%DLOuzRh6>i z=Nh0U2KshO?g@Ev$4_ECiMu9J?DNFUByP#2ARR*(SgjjkHHRxnr|@ZQUN!WvPg1Hw z(I!_7v6#Wlb3GM9*Yk?NsS>yZq#oXr8}08@4S*iKFYYj>pBXBSjQC{W)DRYKaP6S% zmJY!X`|&_ryv#9w6z?cGj^{Z_i<21P50j}s$24!Z zxS#Z%>5qmDeNRm&Ou`0e0 zv8RIK>cA#mTM@F} zLT(nc-A)Oqjj1`e6Vj&T8Zk%w?hZRHa)=WjB87iDw#;V*nx<4`L(YO*X zHgL51@C4ynm{cR3n)=}KsrwsL39P!~u!US`rZ|9V$d;f-=3=4?l>0(`L(u?tbV|B7 zzreEEq)75k+yLk-l4K>73BJ~sjJ#*UW=IG%`%}3(7|Jn2Isw1RgQ3b=eyu8^;dd>7l z!?-=<&1OQ1LL<4plNUR!C!{2(M<|hLSx_}p?9lm=?NvjFdvke!sU+6`Hw_by1;zH; z3SO;vkK~3e?vf$;9B!H!&$MD8U57x@jw5WQnyGUF8?inyH6)sn*i*|`_R64(SJ0`T zxR|Ju(5!^iy~H℘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 z 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%0D~>|0A{Z(UKe06m;(<4 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%0A%rqH!Q(Kn;#8vYv!_9!RqLA( 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

Df7-hH4kPAgii0{nxl)O;VByc^pMV()s67>C+h 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%0DHAavp!U+ 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�r{4fMoj^v5~ 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 T2XXSYGE3QUQT^x8&e(H|2Ap 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

    7Ghjr8gF;4<@;jUjY=Q8S9ueoSxF_*HMlaG8t{f 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

    %V6f^ zK6aQ$&${&8hy&<%`xAEAgYiQH@pZl*?~q#j#9I9PTKrn#v!ko?J!mmrDdI6+$++*o zbG%ZMuD_mDBmEQZ zpXB>5=-S@BoAUPbPfiGP_n-fPh6kj)^{Hg|e_`7GS*DA%oNG{!4qW##$>5|$Tjlr8 z{yBrHc;zoUDfzE8Ce7-4{CToJL-uD3zgM+>#_21+f98#90k$Rm6eS(o1h8Gl6M4Q+&o_H#Iurqm_4M;D~)a(vU+Z`-r>4Nf-26tBBZrB() zbF6R7HbakKhq2Dy3gn>kiX%8ncaY{3w9nvHknPo?9ql>T=&?jUxMVxe_c*8Ux;fao zFwZmADA@8a-y3*8j9`!V2L7~=^L*`E^J(ld>w!(|-*%JCU%vI&!`v za2wdPS@%xDz9aCsLe6_tbHX@nZt2#UReN!t>Rnm~5Y~q5a+uFWFCk2lJ)VnRTFBjt zobSF`E8A7~Dwt!2_AKP?hRs4pwQM1GKg{Q%o_}y?N;bSl;aHZF3%NUUdb8znXydx9 z>;1xhHQljUZWw$968>yx^}Y+DX?uKy?-+}D1uO&`vH?x5>+!7vb!SA^ce%|?*#1Si zcJk%B+?F8hcJmk&?{Zs`Fxg7%8a9mYt67_PnV#=*vwsUV7#of~*{a6OpZ9g#4YYAL zWpeDv4q0vi{PE;vBpG=T-}Ger5O%w*N0?xb?Y2Jgkozest^4C)mTfy+)cpyC9G6ll zy{RzErkwkLW18N@kMxep>3NSdc+$ZeU^ zdy8#QFWcL>t!a1LoSxUl(I%s={#D2|NkqH0A(ygF7bhO&7>=Cf*a(Jtk8+GHq zd>CODnd|*V@)3jyCN=@zZFwYq=zhgY$K71kS&SLFm2l`@ zimr9_5v*RekF(rL_`|619gnQ$J`zpOnpTA!4YQt2Pr3PE=J`p&^)~rbAvb?c&*QXZ zQ#aCcE?=a_w5?>r`vk!jfSKpRVD;^Gcp>L|B$Rs$RxjIcvz+zi*k0d9G(6`|wjpfl zL)Ew??FMt~$?Aoi-~RIbRa+Kpo2+|ojj3C*t&yAO;c9N1>FdVOeoPP1R9@LGIlVUu zwsY3~0A|@r-S4s-#cv#q++`?UT`-^f{Xg9OXS^jv6}JuVb4UXMGvpx1nL(mt5g6hj z3^_+h!yp;Sh-4U0qC`b9I)G$QKr#X&IY<%&l$=4yNK%C7x_Ym5&f5FNTi)mQe0qDP zPgh_2Uuji!b#+w-8Pl O`}sy9}219?Oml-8n^fR50&l&@SqZ4p!$ePlPSW;P!q9 zQg<2bHsV;20#9~1>?m{x!0dw<-XpAM!48C(H`$Y{JHXB?e%B;j5B{@#p3d;rhK>HX z{a)T=>%p8~o0+Y3k|+nh=g|+VI>S?!%&}y{>nr)SKP=m-q{Vj6F`Ofc&UsG5JE1Vo zld^orlX=@X!uvFAMX=3#6un2qdqGT#%>L_r6z*NPlR3`jeK6l*i?qdN;2xhj3R@5E z{XA#D(l1jM&3!QTceROrJ)e3n%QgnaQklo1`yO+9v3_A%N}5lN@Kz(SmRt2($CxhT zH^7ZAFD3?UV+>CVjF9nH13>_eFt~yZ1O$oVp(Li^AEu8!!53CUI0-y>|wTkV>QP()p4jb z;e8L0?VK!idq$dNUK6~5-|=x=%Ivqu=BE;5njHt0ofORau`1zMUv|drqOG#NjK-~B zbzbv5%Ega!g2|Z1XvSq9{~v72(0Tu8`u!^AoVDY;Ka6}Bug9azYu@zxQ`m~TFz3eg zTCyWy){UhmZ!?nA-2c4I;e+21mLX}4gMG?YzcP;j{hlBBkX_BX1s7BI6!v@A-(YXU zY?p|#xn7;&h@RG$MRzTH!=sopN04z`7wojcICPu$i7|{lpt}KP`kpB4ESTx@yq@8G zKiC+y$t#xHG)%ai5OvXyV}KMmKxtb}aE8&2NVH zSAMhHYIxsaC&T+y=zPzl$6M9y088Dk`OSEJm)nrgWxVGX-6i~XDhKDv5r<)}$oj-h zybr6ewPCNorVqdB)(v)A)O*>+tRJCUh!c@%k!dU0v6Bw6AHXK&;`{;nRH@rW-PJv< zI|}odSGQmsM~3&q&@EBe9-+(QP2HZM^L-`8;rZ(i*w?Z=9e1)jqdZ1Ld8oTPbU!KV ze%M5Gu2zF#nkKxDLicphT^np=wi(BtanFq3mGEfVjN=lR^<|>4v+UXMJA2qv_Ea$Y zl^O5n!5rH%js?&i%W8OTlbwQlStcyKK1y~nZf%g~GW{MG%>GmAjtX{WVR`QHeu>oW z7rGfqQ?k8-Z308u)cyT%dq2P-MR!{0^8996vMt#p>|*`(+z^Zh}SvrT5?zI({FTl?wvBHX@vXnbK8@%I=cxBG&kK9No{BP( zc@8iwM@7AtZ5!deQ`kbVv+(;c0@Ft_n|ao)H}4%7Kb1L#=lw=w&{y3_UAiOD-3EK1 z9MkqYWu6q%uj4rH!j>pZo$*$k<3fE~^tLXJdc|(@9bDtBI^)%EjaQ~Fne}{b)_;xe zZLPs?rbT8OF?_4``?``X1zQO=d6c=je%4)KBTJjJRxrmo((gJj<2a{Vu<~hu@v>Xx-mu*CC~00vg2z66w_A+-OH^`9q|q8_|0R?b?vv}{)+s4Sl51E+&?iRVR%19f7kw)uKlrH z`{TOy$Ftv0SWB>O*hj3CPu=hD+8^7sKfY^!IN^McwR>qFWNjMm3EM|r?D0v__OG#N zcC>;^Zv&gR`*<8R%doy?Gp_lY2UTDExI#nw$G3ls&E4(2JKLL;V$;)X`^O&YcEX6g zy;-$^JJ*2S1f}K&Azxxd1jfMRr*h_^S zjoa_jO-Yii%GQBj)37*~I2A18HEidt?E~7TI$qL`TixiQvw!9s^)iH!e$RtBAH5@t z?tA0+di*#aeP!rI!@tG46N4!~X6rIN>uqjf_CXC#-E6Gp?WDqn<30%84Ta4Sx?2kK za5@9sV}*SOx9|J-3tJB`<9(FXIG$pg@y>_)v01p!iL_gb)cuuJonshPC(C}OXA=J)HA zuYSABSJqv=vhMPgb(gQ~>y)p$uT#FMtK}=}F5f1+*gmkd!M+5d4K6B-ORFZ$ zzlG7vbfo!rMRzbdzZrXPVV;M~@4sN(`Tcj%ollv2f6u}&7teXU*edVu!P%5^-ruvB zzX!|vdps61AI_t_M+MowuxnrkQYU|2nD;YzAJFNA-30SKpjy5%@0HOm+Q2%O_W@mA z{QeQ0-*n9L`EY)F5a#z`a~xE^{~+-%Qa7^hy7he;9>12M`H(q}>+$g{21w?ZllNSV zFS=fI-mj6i*YBjTrIzFvDY~g))+>*viQ%F{fNSx^R|4w z?(8n#TZ`_GMAn_RdtjzzchZ5hBQ5)tG(U>YIPQTFT}S<^`Ta9GZS`33`#fy=%CK{dl8-SI#-zN1uDta%MZ?ZTONN8 zc5O-DYcOqa5zP8r%j4prb3DQDMwK|e4CWj|#_N0HO!KM)MzT6=dIvHvLYOIloHd$Zoa@wRDUKZ1Eb;+BQ&3-g?3Kh;IQ zmcK0T5tCiY>bts3ABR*k4l*xW-_>S54pV!msm6=68P9)aCOb?q3-?zeQ($ zt1iE9K-18iH%?iueO}WBvW-~%t}lmmV;7m{Zoj2#*s0qBx8Lx+gRS-1JZw+i{a)|5 zF6MWAW!3LCE4BSvzQ(mPeh-DcUvyjHHjYL3&HQE@hL?TJWX7BQNz=S7t2WK{%J%3x zMCS23CvMXs^F8|K^|fu3Yyp_{c?o{U)E)JCP4-i_20H7XbD|T5Zg;lcZ))3=y6w@O zKM(dLuw?s09KKtfD$)^$=daZ58*wjt{&t_eP z2)B*&sk7l4Mw-7%K^m{jwqM38kq6jPuytU2AxPaa!8RiPWV^wR`62h{k>F%|1e=2P zDcPT3I}+aBtd=j?X|7>CW)6p??)RZviar8a?9h#Zsq2TEzoU0;_urGP0NZG{cHJSE z=3VX9nb&q1tk3=Iug3ZYI_nKtZo;!)Wq4$zDc|MTdQGBV`@*U7n3<4*_jtz)O&p7| zRkuIe)NPD=Hgrd@HNS@UT~>8RvduKFiCf(nY|U@gjbmS(eZylg*pdge&ppYGgjsjj z;CJ&|+hW6Y(XZ{T-=W+Cclz~S0oi4R`Hm#nqlNtv=JzU}EzGvn?^VuBxEY>pm*1D% zrs&26JFDo}AM#DUkyi5iA9Q}F@S4IrPwx8}#}dC~c=i*$cj-(R z%~8`P=DkbK_a)1FmtKRJU(HGFqc{>SO{V57-frtdnK^S$pD_WNM=qf=)a zqAurM3AP!NUH+8L_YZ6i?|%OPr}CD%71Ph^E_^N zzhdjLW?C}58*pcMBXO&Hm96b_)p1A;=$6L489JXYu)R{}Il%W6+|G{SVT$J6wKrYa z{(c#|4SS01T`=4IuhN-c{ie>guIMyQkB z`W38OM>T8w_LJERPp02)rr*jg4Zm5hj8~@L%6?g!k9#{q2|WV?AL#yY+x?quuY ze(-PHm%vty>knD?U9_h;r=@N^n7S+3YR{@0$A0SUgQ$Cot!+!y-B)xQgsumHZBx~~ zUv$>f*9dPr1h!4;c3|}#Qsdakc-MlNw^s`DoP6uk+^fYlb+*CJ!B#1{Q$qJbX(LVz z_F|N|@!C!r-iuM@GLKPNmXYj|VD?)x-pgU{quXN0AUhXkS}u!vpx^Vt@4}_rPJm7I zOi%0Zl0KP!lg-5bzX`x|z*yWaE3@V~;FyNAS)K!)fe~b*GjE;)9HUEiI?Qu`=V9|< z924-P_xpJsPBtZO<2?hrkd=;jKgWK_GTv3tVTO))k1Q`v|cWZ+uRzqP~=U&zsBu7M7tJd9W%Vs3-dlY*-UuK zIL?FVchkZy4&51rT^j85!Y&WCaMU$^YM!q*j@Jr%H*~X>e7qmbvd*-;2Rmc)p5{AY zhP41I%|r9Pnazss!|;1SVIRPJSIu)Uk6-;d#_YRlZY;Ww!f&>d#`8~@@2^>wt>vrV zm%?w}m#Xe#nD4JSgRSkex_3hNBev#a9+>yJT=(1d`xujbN}br|KePw@jP{I;cAeX8QgeY(C;Rj`gugdk3DmvX8M2tM9KF!PYp`9nb1}ZVto-1k>>j znuB2c?|28zzU(KP3y1MO3B%MKx;yzTS?Xpbf{gbB^u~KD3^R1ZdmD@5N1FKqluy-oX;;XMF*9LBAD19AK*{O(=Y zgXy=hmqYhalp9eseOBY}`H_s{HMntj&XY~c{=Bo$A7HTI7~IL`fN3jEqs^jjo^Q6> z(*;W^p&kFlV=uV6_$M7x)-Imekl3g0Q8w$G-HvHV))|D6_<2^b2 z9`TJqc2wwYia0QLYYzTc9zVeCBFpmdTEg&B_dN#3k0@+?ewh0A+>6XMbsONeZk#s3 zAlnMILtjs87V^s>(2S+or`Q)ZYuJF@=APSy32*rl$B+17HP|CzQ+50B=SMWs6Ne3C zC-Y}ZbW_t1WLmC(t$=RP$nPk0r;{$r=-P-w_7H6H+k0ELN1A0%;a&{p_udUp=J?Ut zunk~18@4L;-5s`0VXMP_20IWo5jxw7V_7eO`4yuK?{WgU2X;Y}n{iwLdlfcC7>I*?vswUWOURvM{pT z5r@x@rq1?H-SaTA+@X6RbkoD_TX@gThPYj1x4DJw%+~N^z7x%~>{gi90p7!6|2=h6 zht6|avT0!6vy=78@a*4T2D_)|W`cPik8P(mQ1>XS@jk;g!y6uPc+O2W0`@H7^%v$? zpMDQ0Y%bX6=$Kla{EoE4eqK|i?hAC*7t4y`Y;;*)jw`w^ z(K+Aa^>q4mKG`^Kg;Di8;;;--=a`&va0%SB^!Ip-3 zU9AmF%M+}=E8zmR8Sgw1?=^+Z0n>gSJKe{^--_;==x&~iF~P#V6)eZw=jXRgVVA7# zoyqM*wkYdoE4JqXrO7PIJJ>gUvd!@8yy;|YwSmlf;2h~c*`{ub(0Prm4b;ucYIt)N zmVW1krC-O!jAH|~G>aW^tXXuMgzh%BmU)fi<-#(KSHtf}wBv@gZ8{rn7wf_9tj-zs zu{AB~PD1CsJ&XLmU?=0(y0$5PwLz_G+n4apN7pm7JqKiaV7w>KKsy58v*^xY-|ym( zw5A@Y`zgBR$-I5cO!F@zJnK@j(}LxAqWQ5Le5VJ^M6<~9ogOn5=KP@V;22)m!!X~$ zVVSzFI;q&!OlcCj)N$5j^V1ycX=9*@5MKc^-6eGhc4f_$Zqrg7Q;K7ik9JN ztD9gmW6)$*1e-eg8~Qzfh|Z%SdB3E^`+}T5vW}_oSnr29e>8+fD8qB^)A_ACCvR)i zS-#G1Z8!U%&g*1#6L36uEL7d7;e)!Lqq~wg#!uPF#s{-K(69B_IKDgEpzfsby9UQn zrcb6{nf-(6cf_o1ond-??DPM&Ir^2&0`pn_rC|JT)-~Dsy#B7SFSl;{tpDw7U1SHa zs@ssA46iTZ@E(F>jyE2QZm}+%-?H$&0&P{pqkB8x*S>(d4aro7Co>;1+r;YEXKhkv zpFzKlS<1AF=P2K!{}bH*H+CbsN&4IKGpVy)`HuVdir?SCe8;_g|J2!5&x+q1&oN$^ zek~8exnTUiC`O-d^{6uR2&QXeJR+n#qXQ2c}dHa<@i_;?NaOV ztT0;_B+a?-{s% zQf8a}E^+L})^ynRa`?3R*6A4-7f8RShF|k5TavYB^`6#rcuclbFx!e`O9xvImTB1} z*x`{6!~1@)94nBSH`8}d*r2BGvEp|$I&Cnfa@MO-NFX4ZGznq`H*cJ?A5}y zgPFb@uk-lN^i5Opwlln5pBtX-ne5TfnZFNNr=qhsG}0pbl+|yBFx1u9fanLl8FCHG zee>z#gIE6l#KI#P71#-7M)DLmD%@@ zmz!FSK-Y2I~_><2K%Ks{e3+a?%QVSrh8)h$z)byv1*VcQ4eG%(?mua@$HNUSEb_ezI!Ke7H3%{lA5t!%D7mMz0 z*x%4Or;xe_V4jon-Xr9#dtsjUJy=qAA8x;OH8ESNYBRPnhOPYwkLlDsh}$?;M1-@^ z9T2*gi|$Xj4exr68IN%`tudjyp&UnsXZn1Pmi0hghPMUGcxQrrmpnN?vk&fMBVqHr z!83^ z4^zkKyU{sDq3$;&&6~j%A-q1e+JH@SAG~vr-s?Xk*k6c4_5%Qif1^wGO+1=rBu)Fg z=VHCB-=j;mF8plRQEZcKj{ADprGq~bE8ePOq{2fj)r7) z+~z~(Sj@2$sOOAiww->jfFfz^$)>rt+3z2GQP?tYzke`_!b!ijVYd<9{e>L~TMeD} zgr)8r*u@+6w%(`GS`XN5o^v-m6P7x!>DDB?Zx{A!*eRLgD>`-?<~U%c`GR2chn@9%Ua+lTbK?Fk>%cNr*O2yZY-Vil&Dh>$k36(y zoUp&yG^3Y1J~5`*>ur8xP}Duzfc9os^BWUt`fFaZ;PV#lo!)+Ue#YEb)tldV7#E3G z2eY(#+nd84Dnkv zxr~V4`c{>gGE1txN2z>pdhtBaW`=|OF$(rL^`xf1S=$w-{wJ?um{W>ns;oRYOHdw}CUrWE97m}R| zb9{AI>b6!eeY>+d7Pwm+1Ez=5Lo*h*e_;#;jNMQ z^%^77@>Ve8PsS}9jr~4@8Gf~2_RZxJ@W*`2hu)&D`IsM;;Z2548#p$SY&zV|%UsBo zW2K45^N{ljmlmDl3&xT6)Ydrix)Mpt`3H4Aw_rP3b*mK{EQQWFqI|dG^k~l`twsQkZi!e=6*^Fz0HXDU2>|>t@)S zgTSDi#C;i@v+xeTv3ws{-*RjhB z=(_Fl60F-UuZ6DK<#kxMUH$>IlpDzKEiGKwkqsn+}h>Gh5ajZ zmR0)wH*W3Xu_GIf-G50Px^cetd7s_Z?5u0^yU#@0mrtEzA+|${!f5^?hJnP zS=;RjI}_$RgtJ~5@0Bp0mwgL2-J_<>$>(K<5P!0KUUsU&@_E_WU>WcAgl9e$fK5ht zH6P0so&8{st?$DoM^}$6E^`OMdjg%`fnO6%#_=A^hWP5jo(kPRi{FJgMrTHMa2%_{ z(JzjBIoO|RTr#|V*tW1Ii*9w?N5Gyh%zHR4f!$mDZVY<__G)3iYh5-6jd;c}I@qR# z{Q&k6x?>A_Hu7;_VSf&m&qd*-H3|8&9#}VAwBLfPo{u(QYrN|0f;b0wUtyPr-vtPl zBy{-A`{nd&TVfflh>qlRlo7Yr48-BJylL^-W)6vt@OCP?T_P<97v}Zz8dT<&Vb&Mp z-H~++?3totNT_+HzJ~;7-ntBNIs6&=l>bz&g?_LZqaa;v6Ek~f!F137*EPgKu-MO$lj&{dwAMQN1n6gDv z-5lqBlj1|%8Sfv$@0`Tzaa7}&tEAxYTrR8Qp%kwM#$iJghz^xdU6N@*fRJp>~xs* zWp=jR^~KAW^lLxS=k~J?V)_n+8L$1Z?&HWYjP!dLZsV}e(p_J?S15Hy@cZR^(=He0 zu_xQ4uyq`Yt2_vecowsN}=+sq-0R>q`yq)RJa~%vycq<5xtQX^}Z6QJL+J z-?m(huu?Y?=Cii85y`w3SC@4|TP+Rq`J^vNNb1%Po!4E-7+P&~f99l+Y)hEW5j&2k zU2Ko@IpPIMe!V}yZvu=hZ2R#027V^(@|)kaHGO+VyuU3rST)#gc+9leH#Z-5<3~nR zt;J!^QCdfmX&3KVIKD7#;C&HS7Pcq;@@Bltht6yK)U6mg zukDg)Q}2~nq4<@V=E^pPd9Q@uiB7-U!HoBmu#53-9xT5_F8cw@dmu)Ijv$)*KOVn| z@3!MMJlQW<|Md=iDD=s0g1wE-XD*W67dpq|lRXXVy_#pQs2hgmO43@xVBg?CNS){L zIba(VrY%>3T>~SDO&ywz?WVA^qI?bSc~--Ffs>5&Wo6cth~rS$yfhkL#jKB2cMiI* zVy4f!*2nrFC%g^WNj4ld)q6by?>A95B6Lp{-NLYU-fDmAJN+&a?D4Rvem!4Ygl@tp zbD4cE*&>B;8PtS#TwxZ1`O}%1E|cu%8sBZA|m`FiM8E3Tz|t zyIrvP*x#M>`#h0paxo7ZviiJ}@n^p5e>HOwh1tKBO~}?b49{bFHg4Fyt1zDdFb>a= zmQjtvw%fWP%Q&_zEaSKrmT~NZ+h?>q_gFXdyAG>q{xSBm-L2u>Sy+ZQSJ=ulA4oWU zWBmQFy=)T_x=UYgYZKfV@0PG@VYkD`N|WCe*s43f=tiSkYuet{OND9ki|7!nL0r~( z)4Le!O8fUT{gaGi`|!Inx@6uDaVp_CkIZ4%_~mk>@tbXqY4)8mrq8il?IO$c<$EY( zJ|kuN4lnsV81@KkD2baq{969%J`Ej7YTDLcZQVO?PrU3n*3Z7+dX24V{%_27`Qa|V zKM&@0g?7>JA*}yF=U7^@!-8!A%Q*CFTJ)=3^m`HOJT#22>UY|(pX_}6zII`6YeVc}`y$(uczv#Hzp$0;P;`@A#Pg#= z2IIXb;`P2=?V>Kz>^s?QUu2o)-NVkZpGCZmnR*<_GTtfiI5qn&kMO=|uN7Ud+eH&e{|jN z>)KzUYk%FYecvZu{bwEcGj{Yka(U`NvS(pC%+UUpXtGHuE5{-{Xp>D7Z0f?M3pR6M zKEvj9nr(CX9Rb^)I36p^`?*hmjVtwRv0&ailzvCT&PDez%=%-#`UvNG*e6A2pU*h* z+eOxuHDO+_zeIbS;hhUJePc?!y%qKxy49oJj>hi@Y~&o%k8!(bj@#VA4rgn4>KtF$ z@SB70Hi-H` zy&it&MRz@J=LeR+ZFrT9EbKmX&JX+(Mvxuz1LM1x^8>OB?{DGv9JW;b0l(@lg{98x zF5|G@NYV#%&OyAuZsY5c`_q*fNA|I` z#Yr5Gjw?}po28E5*$$W%b-zI8xY9znwN)Lz^Lit7zd`4F4_7P9F(myu#%n&R-;Imz z)JRJ|OuN*y>{)c@hVF2f?N!zNr07mZ_iqlevkN;j(sBh%yVSIdFS@hC@9l-nOJr+O z5vyGmggGx^J}`N!k9BD>dBEJQ)>z!ha<1YRu(Z`k{A&AeBC@@z`CzDJK-Z5>`#F~A zF<8@V`;p;oif(t(w>kxsZ2j;%5e#RC--(NE^U!SuqubP>^IAT`TO)Lb!AN?C&c0&m zRvpT`1f9Ue(YRQLeuu%Ig3X7UWH)(U9Eb1B_E>dMcO|+v(JhCY(@(oCN4Gq>71_@? zRwEAWw-zkx)q=PkyI;HLd>&`btq1QVHI8**qo-=$r$JFS@$NZYdyf5D_O+F|oMZn> zVL8YCTwyuK{uV6Lw*_%nZdby(Z8bUhQHRM|pOSdr8#HJ5l}%1T%f=M8AnZH0F{cJo z<9a@Sd}ixsMYjmL3vVXvC5}ad9aGr%V86b#ecsBnd=*;^-CF1zH%i?y5#AAnO%?2T z3N3Zh1iPcKX<^3u#Q$K^p)=kbCqUkMfCI&AluaVPGQXdF6azn=XZYXLnMc_AomsEH zw3E6gS-n^Iz_5YrP5iD8bNs|(P-c0ld#>pI9&!8|MzT8Mn2rc+uWB5Q?P&v<-}2s% z@bVftnQ7ja9jbLlc>BRT2GwPn&t@mX^SK0Vkk|j}?hZCP+tmG?w66ClW61oT>>-%n zsC}of$6$W*_7b+Kb8K22m(v66nb2`bGQi$}`Q9q8*F6S_e&Bss&S@me_g3u$(^l$E zW3`T-SJ>$=-M={bKfHK_?l0+oi5B3At4s6w!zJC6Ap1BEt_lD)U z@n)E1p)SuewyPQ5f$*!JWo){{dl1ZcS1C-J%Z`t_VccVbZ8F(lct->~u$1{xsiU8i z@g5Uwj$woBxM1I7Kq_@IpBtB1ubTXlF30{B3Ei~tzj3X<<7vIEk0Nif=V6ZNG1S-C zN|xhe(?xm6UPAW^{Mwcouk2;mIM}a>?sb^&9J(0hF|-`(rugxlLo<=E^!paNFS#K1 z9Bv&@=Q?yQ=C<&N37h?qY-fip2}{2p;P)ot9f`+e6H$p|Z-(tn-{dgU_sOJ#x}mVw zVTVy3+DhGbzt!$X93EvPd#8_amdgh36PJAnyNrfxc(Gs4aIUdoB(bSi`=Ij~HNQD} zV$t=Y)34{|O!F|v1@;!uKiWJ_Q!PX@7J|| zQrG^)UHjwN@52@u{|m9tq1<{8`)GH6vkmf{BQvs1_8jijxF*}auorQA9eF8R%irT7 zuOqEDRH5d$&+AC4?tm_@Bd>;04I16_l&#m1*Rh}RzJ%NB$nk8gXIru^$m(_EAK9kv zW!zpfKE#$otK*u{ehQ}ZGtK+E`u|?X9CEn&1rfpNVH*UvM|6bUIxV`Uw?h?n3VUFKDSafIO*6%_^ zC;M`yHq(C7vo1~hX1x7fx?Q^bo{ZM9(^JuDKm9(+YP@+pV%`pA{TY78m+(AKsQa?8 zi-YY(Wy$>hF4zpgwqn2AezLD)KXu*qlXcrq)@?soxBZg+FZ-pg+E4a%?5FNf)@nal zxBX<@_LF^;{qBX=`ls$stpBV2sk1)S`X{r(*7_&2ji~ic_AzU%f64xv{c;{Ab=~&+ z2jN-&&iab__uHsf`u!`b_Pe_<+XK_**qU`sT`#}O_9@J3K$+K*>c*gZmR0-xh;6bL zacjTJ+2W<+_-xV4|>t_<&0nDN@TOEwL^>vyf9lW9L0@{Z$oOqWjk zRlh^{UHduS+U7Oj|jomu$s|qEw&PNpuI z^Bl6r3fls=@!IeHMpwMmR=b4m!D1K3wwxoOd)4&wYMQ+kG~NXW)BE6j?-^CFS?1^O zysW-6O}C5N1zCOHn%ng2HMi%e&taZ_Jzwt5>izHEh}ymcyOwIhg4?3Pz9}={u$9-b1&_oQ!`(yoUE7tce%Ksk0;A zZx-Db5eJupjjgH;)+o9j3~6}V!G?5&r!6wgj@g=)g9^Jh;&>LO{c0RJCTf}=h%|qK zj%;_N`O^~KpU|C1Aj69NULsM>lh1*_Ov}qK?Kd9`?;Y_{Oar%^HYmDx(V3Q?7UugO7Q|NCJo7eNr1{OFyMsQl?+T>o26T7AdWN>|(@MYhz@FH) zJzkFaoBXaYL%R#)hYblHElJRU`-?dQQ(Y&z=XykWmZ;Py97->kS@ zw0EX&ZrtWWo$bp0>$K-CwV&(^R^Ju48QWxM1=B9c&cwYjx_#JYc)upR<<@TZZ8-Fr z@NColF6M98Pc}Eq?_%Cv{EiF16SJjCbohOS{bcFa_BrFd1V7rvHc|VT-`!blvoD0D z?lRnGkYC4!lGzWEy&BATK4Ep-dIh#F){h*wULLo8)p_o8+emTA_n-`&u!$1lMSe0Rg=KGjVFTYwBOtuD=n6Ld0mplf#jX8jVby+)_on>}ZxpL>Ume)i$I?U#LE{Z?JK z{Y+fuZ4I=hc`6d8{c4&WeY#gq^X}JVKI1X%-n?U~=$3>n44b{g@fyGT&AS^Aq#U%e>LUtl=>%IsI2#o+M*xZQVMl0Sa$W6Q#phB^Oz zDJ=cY3Oj&0l-G#*^<1$s;l0P!eb;{ec|vVcP0!7*ThG_rt<6yzJkbmNBe` z$FTfBcs~p_2eul5yQc4V=#pi4*A&0|qBkuclzO^Xu+u0o+k+aO&p#&1@TMe!wCUgZ z-S^dbZgeq!V_1Fvo#T(GbB@Ai-144W<=zu}?H3%cWHfcY@5u1hBh7|Y!&^V{q2CGl z!RPI!Ck(RE=ni0OyfeTuyvZUw@8{4iHN0=Lle#H!o4(Tu`;2hTg)LUn_b-^~TMcIY ztKqF)bYGw|eUHOz|I}srW((WT2lE+=PY&v7-i5$!^NhzFY<)iD?`%zZ_e9Z6gwE$-j^?+?3CHvqujyN?_?;M?etpJr zve0FI^Bvlz#e1l=pU0bv;idf+DEZw5oq0RBFuxyT9CsDA56tvAzJjwOec3-S-XDkG z`%2yp3zqGgx)XwVZ%*3ftYGgHHV&qpeaEBu)o3wf=~p%}%so8g)EbzJHugdKQx@4)xK)J++F z9b-z}RIo*U#W!~fn;PcxFrODTO|W^xE{6AQ*ckkNtFSp?C&SXF>XwE*3i~2#C0iY4 zn(r<7T@&_Cbh8(>L9nA~|1!;+2Ro#&tzgssy0^7-w0|2C$2Fw?@f#>N-1?PW02_92 z@4$DdWe)|rD(ozK686Ufc_$-Vve!K8W54Myur*-(Zym&XDC=m#y8*w+4iEMY0NkNF zp8aI0+cE5CyjS4IczwsIZTm3RjQ3AP_gi!eFi2?|W&ckdCTOhyvpvfEdaRh=_pm+P zm5#JbNu5lVX*nV4=_s^skpS!86Sxge_Abo&H)GgJ_5tjiNBE9WVgH6%hkjSs=fUi& zXL#S>fYR^Mq_Z-gv)UU*Rp@xmYN5!R@ealBJ^0P%=w#DJc;Ah>mdx;MQ#^jP)!eK; zw{<|#EzXb5#cxc#^7tkCfw_3cn=^eohi(oG@9|r8qoVIki!dmF)xD z9=00w6lcQ@W~=VxsJrUCo=|6hjVyQQmMZKJe)|nN@7Ljfqf2&43GZZnG`u%SJ6Y)n zZ(-7$Ed8!l^5Joz-%Bux_A`B%=JyLrzmrm_GQW<===Wv}WnHU&|5I4{oo*=aLPh6z zQukt+3@*K0yUPy#gsXRfj@_=E$vS_XY`2czC)=fSmt>Y@W>Q#|nWr4MK9bJdnX1XO z*WfbcWMd~9+-ptNx%-XI-D5jubLg$1;)mO?Jlx zy*A^2$GG4h0IAyxo#SbLhgk>hKkv@!c$(KwsXGGQnp-os9LKP6920R|7RRuD7i4v8 z^zx!RHvHaG*oiRT1NRJ!CZkDn-lP6`VR^rS?*d3&-fxiaXE!Y;6Q21Pj?Ow*^DzRJ z`8YmwBViVD)h$_cGZTpSYpjmO#W?bQjpcA-nx=n}_iL=dzKgoNUt@jT1lj1O$AkB4 zY|MV9<(tG|8I6HiWvcx!^?+^`G~TbV8_Z+aIPxBU%gS0KOZ%NzSlaLO!qR@{!!j+i z5{LG?3WkX~>~eL{O^39iyd6a2s;ySQjkF`b>lK#y#rr^b3q*MKdpK=&glGG0J+1aTzOW4M zJXogB`xnpaYu{^>Y;l-2eGXl>P2Vbhmk8YlFl}0GU*}4eMW?N}g!w;?{R4`vmJ6MI zm~NXM8M;M?=dY}$ZvnP0HD2>>KGgk<)%lK5g_$SW=)zvXz0tbuexx?l@42kby^Lj> z%;QmZWMSIUxtE`^&3IqKeeS&NcaJA~GuS;vr!AfHd4Vm5SQGCVY>ng9!p;gtwgz-( z;x^vT*k&AW33rG_hX&>g~9Iu$_@=SSNN6P6m0GZ z+VRRB4YosJj|a;!1a(gaI}d|qyq1yiu1&>F_H3}H3VSiw_X#L<+DO087p6_uh54@Y z)J;tKw}s75WwxH07RR;pyDKbp&cUj4{D$h)q04(*_3M1he(0tteLJQhT1Ue+qv9GK zyUnx3&ogd05AI|q^|qgBu+FMsci@?ZD~s;r&^-;qtR1?k@R;HKJakLLFjt3eyQ2F= z=$zxiG#$Ddi|&-ry$ZuL9lC}1E#vjs9G}hDoUJxxGmww*MR#iG{=rt8R^3cdUx=!C zr@P^ef?>iA-QKWSVOy})g(i4lsXa5}$i-v#D;Fb;r8rw-`8T+XA9NO1f6??6cdLKw zpsKI9TjK|LN205yZ&1@aZqVI&VbDF{f8k@t4r-c~D0dG}2iwDn`{?36X~1pSPS4)s z7|?s34v1f5x3PMk<&kVt_ZM{D^Yrt={s!}&r>6>g3g*2>R}^*^tovQd_BFj9X=)0@ zfUXIDgUW56r<)7g<)Ax3;XA866V|dlIx>e2d<*&@v?sKx+%vJiltM5o0$-d#K zTNmcL4}Q_buEB3*9*fSKc)gl_H-nwm*S_x|ne$LPp!Ynk zd=vNGutnHrc#frxqOovHCfV+|KS5_Z#-{OmJz-BVIp^=98;#pI?AvSS8b^+I%Eq8G zj#Y~NwuKqT2{7%fF5`GKbbYXEXc+A;d}FWgZ-h~8I?mD872Pf9?#J(4h20J_9}L+w z{eYT}XN&I6h~py|=I)5&a!m}@){e=bj-Rr|4u*}EP5#ACo?QFcevw96WGIYzc z|2*po97j*Eb=i(p{RtGzIJPdbsaa(&3s__`vihEqym!X%US%~rrkR^Qn7RzldzmI= zzlL{5VHsZDGi!KnuN|Yo8f62?>jZ#4cV%xx+{y$`5Sdlv$cJ$y1f6{ z@D>c+5+rW2F5Q^0i@JqEXCF{I*YIvCy6>TLjx_I`rg}Et`!Fp_U_bkB)$iD_DM2*f zAJy-D!ECeN#2 zIPlW1*D$j8No+FDImXdPrjjil;SIsa$?T`<_ld$b4&Ce+Idz+aZq>r<7wGo`&Rwb7 z6lS~&WB6p7MR=bS=63`1`yh==>b&lfJ&ECy*=Lq55%FTO=DwhPPVH&tGT3d}h##^2 z(L;mZ2vD~gtGdnET4u7;?SR`jWUI5P+n=rVx$2H!KXq$_?q;^ui>iC7=++F~LPhTRU{Wgjt{24CLeLqFX0)Uh{BD>(KRLfQ)y2emjZ$-U9PH zWO%!=eh>TIAG$vFeO~#91AAI~MZJ>w?#ui>o8iemMdz__3sZHkZm4i zDYL&TJFT!G#336R^-7&%u%_kW!e)-Nyj|EV!KRJ6rr#MNyxF6!$-GyrNlRf<1Us#; z$0B_vMxE5J&kyMLp2F@8_GMwthnwaNF>>1F>CpXTsy3US@aASUyfJLm$rfk*^y9(z zyvi13RX2N-xy-uuCbjz`!cD){_o3Wu^!7x9Y-IR7F3M8Bwn+=4bMDysOc1T@`Lj0c zuA=)P{P54Yw=voh{mS0oxRcQ(X>=0}8H`t^uCkxNO!F>L=7#5SX5Q{C>?oM=de3*} z&Er?y$S7a^?i%c_!WIbj4GskTVv3gMuq}Dv@%mvu8CAZu2W%qBK6QVF-G!0&E$lC_ z!_h6w7Tg-n>i0RmO-E!{^m7c)KCN@9XTaPa!8#kObE&Tv-SaT#H19{0@xBPt?>R6` z*x`4BC=bJYEp$UE4@}dcTQHxJv(j)ZAb`*k=wY$`~<-jibbj$>>4Jc2cC z>UDbRyhc-Z8RcSquDbl*jqy6xq|P$xw(}KHM(P~%QFk_(@3!-mu#A^m1sdJeUt#CF zqdW}n{Lmdlq}_J*yOS?HW&{xg|KJI{@O=a|REvCtgP^a0M^p6hIM`j!0@b|Y+E z+{uoH`E8Nx1FJg)<~5joW$UxoLJP8b&E)uD`n?>T*LhcxChI`GX1WTNy6e!5rv2ZJ zz>?hrJFky^bYb_wd}jHR!d`)ymSw}vH7&jeEW>*PU6U4=^|>Q0MfU+ZpD|gy*ySUb z&%orpoZ3L=?lBa zrlUToTZ^64Z3y!nF*`@yQ0IHP|L__8&ZvK~#lvsfK;}Co)eVa@%e*(rc(V@4ybsEF z&y9K|+aG4Ur^I<$wtMJiiFzg5E7*O7`92%_#XG{ZJ?0*`hBztO2>q%vUUivY@3k`C zpWzW_V=Lz~&n6#JP`6UIYWSTNruhvob(^^Fb>63%I?7E!r0>Ut4I%Hc>7s7vccx&^ zMj7F)xnI3^r=He0+%B^FSnWHW&({3P&Sq72nOoMXyMg`GofEqI*;+TM?#ZJ2Rp`9u z*}746^RScQ{W^4BbCSId-CjjEE_4^bsHz>hJBsey&}m2OJ)432P9F6|c3$WfhheS` z-9|-sLFm3iy|Qhu;Vl()O?C#W{hS92`#ji+QEuuCKwW*8OmDC!i*ABovq$;rm*I)V zZ_XXbyk;@H>x<5LC)osXOsjLOO}18Hj@AXEaT`QY~%GD`oEa> zHRrk3IL1UAcNf3b19g6*0&_KKNnQ3gkTmr`o$n{N-q-M!j1r~_YSMNtucIt_jj1#-CNi{Lf23K zOkE%QCt|mg=4y`}Ci^+e{^U{op6nEu&nMeXC%X%_z&vP4Q?jSRFJ0LI=KH>1B#yfa z`xneU;fWN6?fsUl3$ofj&3Ab9vG2X-_6dK7PCKjHoz*e@D`6S$5ZqJGPM?o0$!x|# z&t&U83U?J|`ZtC>Rs1fDdj;}w7skx+)`x9JnqP==>%-p$!F=XCbsNLHejOU;ZguOx z)+fB*;}=sm?{Zz2t@(Hm=DD}#w5B$F_ZMz$o;SbosR&R;FKB`kgiWF3Q&OFdrFje;3oQ zEd9=g`?3`{=dqv~&ZV11Qd-A`-@7Ti9@7b`7 z_Yb(Yq9Zjqg=Sbr<$R0pww;P?>TW@ICT!ipZVh%@VSj_^cPj!*zh2|Wb||b5KkJZ> zbt&A`dCj73XtZmlXJoJ$3i~j^JAwjFzyF4f#eS1T9oO#*q5EZ=r)6)#eu?f8n8ydj z*!qk=7sFmFy7OT7z0e-}$T-f2c|Meu$x^t~DF zknFwiyJRW1zlYzw3j0Us#ufHfusly2-alc+F=g}`i$?L62jVS9F)dl#J_JgP9~&(-C8k2;3x8g_b= zk?eK;IEOYWY$bc2KYs6KRMa>fxWV65?>+5MS^v6Uh%e<-^CU^7r@GkpsO+oZ7X1ao{mb#n*vJ+{ea z3HHaR8>V^2VE-x1YXa@!d+gKiO4!JL(=7N&<~=O-8S)%&c#dKCJrEC=)U6!4qrf;@ zeXR52m|-rC%c9!?whZiy!n|L_@I2l}Ht#&T~pVaK7q%*h_^y0@Hpol=6KJX1t>ddmg4u zcQ4HQuWm-?JujJ$*TZjK3(bpdu7hp0BImuZi_C8k*=P6w#{Z5!gKc+Z_8DZxpEmxTL6&|=EZB!Tg#aA%DDO;CWLn;W z8OP~`eH`KCyXE!kH_Ht#@5xPOc-_qKDl@#hU^To+BD@#l_%J+~;dL{^OGZ$wzoPR! zto^vnhipRX$pJ7fCkNO9ux&VqSB>&eXa7a!v5ut|-G0$V z7~VUiW&gQ)TAvi%r!eF2dE)f@QRtjsNM_$hzj>ZEJfAg_ogZz9Y){xXxp>^UFvo4x zy;hjdLmTgjlMTi(2h6-pQ<&E?vfJVuWgK3+7~Z$y93@)~c0PkE&gI(=BZ%f%NNxXo zVc&;qdpq9dP2GyDK0j!CS=l6W_6&UMS=}n3yQJvWgw2EBSxH3tT?e)j%>1|<#Cj;J z&rr^eUl-Zotg>0Lt$C=r8_^|8o%i7xq-nX6-}lF_*RmP!rf~ByDdnc7hSyhEhPQZ> zui9-`P4nI`Ow$p^1yP68oy5BNbMyz|SdjfZ*dB$Q4)Yz>e}#GNV!HeJ<2$V1hgn9l zM_B#7gU?q^6YNR0ez#$20{0y7T@CU7%|Z?Q|6(Dr|6eQ`;QtR7>*Ms~%eK#ZeD{hx z${uBP-Z%RYGUv0s&-pam>DOz^k6{gT1Dmr9IBA>GZofj)P|AniY4l(Kx)9 z`YBk3cQAn%@56;10y_iU-wQh|bZ-@QL@@i58Qw84sbgG=v7b8oh(2F)G7M+O^EIay-BSGM7}6~;%czba z-CA^OMR?O-1CM*tat5noVfI@yUi6tMb#2)HEGRw%Nhhw+B z^vp;!&2m@?kL)$e@`LR3K&|0}Y``_qfNPTKieO*^uCW8Iz7Cfun`Fj5PAK7;?kike zJ;blGwq2Q~#&0k}2`fzU{W0O1Va9Y#GU!?&+0a2YKZwJplIqrY!Z#ZF(JLDa$g-vXuQK;?1&@S#G8;%TjhEtd^xL%P7lI_OtMt zWhpx@SeB*C^7vn6sV?oDWhpy3!ppLh-5+dww%S?d_@epPvoOm@mTkMbuVSa5t7WO~ zY*;Nz*<}&lEv4Kp50>*kW6&Ai|1V|vHh#>9et(JIdR)p(i}}d1lsPsj%d(XHD%eH1 zGrVyy^KorqzX{#-g|@tk0HZKilr(azR-7%{sn%VQIfL3i~VWT5e;A z>zQB&64Z4&+42NCT#L1`(?0W z3bQZcn98wi@!m0}GOmj`rXtf;hIa<5^Ii9KvDH^@Gy5C!v3i{E2>WZ%osRp4Z!->5 z*qON1yugyHqrysRES&Xq0F#Y~?p(|0&p)5k3~1MFy+>C?_r;;!jCt>}*8 zH`8aiWOy>ikSf!brunI&8wWGqFAF;t_EU6k!aS`Sujih>&ceLE+B7?#u8ts@zTgUEdWW#7>}gi#AkHZ4AGpV$%eGG42f?fl8Q!}v z?^(Y((x>h{)}vuHUcZnoa%?6r34K82Y+ z@7+lD32YuJi|1y~q5Rak3b*4~53*C4-#3$`-&xV^wRBJGd*#@dO-yB|Y&Mv2Y=>@G zR~*-MG2@VB9FyQzJAYV?>Aw($<*|G@exHD;+qbYsLU(3i_9@i;DVX71iQ*HcYrl(3 zTfM@1IqW@7zM1B2Vfwvs`ZgQI{(M6?PcYb&=TO;#FyEv1WR#oidobUlm+gUU37GGn zyPV^fL#gRcZG<1o{GK?bQ|Gtf)R`99x)F!(d`-3?Z2AZJ##>?QN4)(}U-Wwl%r@f6 zs4vO>b5$o>37vU+m~FVba!#<}k>yp{u+B5sbub=msv#6QB)?`fg)Sul#T zL)R1a#qfTQPP_CH7{%FPmk*2X+R$BwZkjIL-BH&J?`m|5j_++vPoyNfdDn#c*{<$w zUGQHRKexW+AC|t)zx>j+#ntb=SMC{k$<<`+IclkL}t&scU~+*Z!4V z`{TRzAL-hEp=)KzaYrns1f8DPAFFw`>0e_WSrP^V8ycf(wQI;@yU|_G5ot_FZ=!O?k3ii?wT^rnOpQ z{X=^c3$?0Uhnkaj8*;?9`;u)ok-LpfM=TtI= z67;2`Ik~iV%zCqoZFe(t4{OIUX5mA|yUY3ddx!Klj@Fowhl~vuzqUO$x?$2Wt=Y!M zudSH|UAGT1EvRm$@e4Ip!}Z63U&ju(+75J0#@HJZ1pEDQzi>~~b4YR7*Ynryll?J| z%83Ys|MT)|+ocZI@&j!7$p?OIT((1FP#J>Xw$klFbKYEQdQJR&+^Jgtx4J#qT7Xrz zUD2(F+c}5x*wV~)%sJdpbe>m@;}3;xh}&!SR|+!?>fS7DQ{0Z1Oh^theV*fe|IM_8 zjfOdHF)_^km1%yI)$np|e+>Iuv6?sM2&`~5Z{IE9snf5zjMu!&ZZ1q)$+T7KmJPNH z#{0i9E`1xn8y4NF!R)`M-_?U%QJ7_Eykpp=ZmwXl)r%p_?=8BAYjKI~TTYq{Z=^jCa#u&S@n(J($8|&0yY-lYVCnHngxmM1J=v>|YV@p)_FW_rqXk7j{kf&F3x5ug|M%m;8Q* zY>)KIsVc+UJJ_X#9Te=@!VVAS_ukU)I+2fs3tKsuc2u_r@j8CqJg17=WlPotS$!s9 zHMXf+6P@?CU0;}EuFm0FmYAjq?+muixy}bmzboT*&UGucB)enIbxiT=n6-W#&&=@7 zggKXL{2AUZxL-M{JuaJUyI_w+`ISs?1(5g{q7rn^Z9le zLlI3re0CL6bmXHy%0r#wDb5pbRG4!ZvI7b`2IhS2lQ8?&`n7I5Cwy^XIbZu=@q1+W z{U&AUxv2Vm7hSUS>o@+iK_6P*t>gW&Z-=d9KZJR$ws_b@=KQ|w;YkPm-V|(7E(|if zYl5v<*j2#}E=-#@;T7in|FYq6-DAAo%PiZxFrUSdomQClQOI5{Y;3T_IleM|9=Ga# zQkY|rvL_4MI@nay{q*a5W7Mrt*m}W^C~S>jw-vT(u+IuxDcIs14;e>)ussVK8SJvc zz8CD(!tMw**;Iq!{UzAHf{ntab5Q;eA-x4`7br%^hW~?lD*o6FWP{xP{DT=N-d)Yu3T*?z!QP;k^yZ zd>n!9B|2QI(-5=gYB;n04|Z=Ce}gIZC!Tebl)KdwbUIWnyeGuuS-k7DettX?5&OH1JFN$3~QY!cXot z+rGNj*I)Mdh4PH0uWxMGX?5(xHI&M}Va3mgj-49Xh*n<-ZAkIcS7m*zVMW&RHBqq) z@7yT?3~x<1C^NM8Z0%k8YS8Qt%KAHZ#{QRII{aMR+dCNa#Z1u*#B*_Lg2A1ICMv%y z)Khm3D?0>T7VCxQfGs%Q{l@e`xRZ^6*%!YB#%ZL{-R2f1NZr=xyti)h!nT9ipU$~+ zG$ODyKC_)^BdDLeG#_Ih}OV) zR@O67TlZ1Xd5z$^Wc`j!3-DWGeP>5sq-Cr)*so8q``O7ejk>8{r1;VOLEQ& zW}7rOtLF**sFTeT>?eiI8|=Ztz7uSQu&I9M3${&R^9Q@4F#D&*`$;h4cWh5~eX)W0 zkxfu+;PsJgt-|y#%Ws~!PxH{QmqSOe%{xAwmza-=W`1R!8)e58wnMPD3fnQ*nnMQt zz5^Tca8K*kg}oc>?ZVy*wp{d6tZ!$MchkHgJEleE{W`Ma3mX^g$->SJHam4X{k{V` z?gPH-4AVxoi(ZG^_8jeV(T$;Q7{~8|jY9Vse*K=M{Sd>G{R`$i!f$coY>xk&U-@;> z{hJ@{OWsgeFL5{z_&a{f@Fs|OJuZ`dfmwZqv6Q`qa&cd&F(M%{#}F%?;cB zn%>r2QNE_xcHZ!|ENuQ@9~QO%%sA%3J{jH|q1!9!pW!**^!~NIt-QXLZ3esI%HGyH zQ8#3(hTjXLd}WT?nU;KpN9G)|Y!cd!jCWGlGn`QFpup@8YTE}`r#P{=Wj6&&ze6LuUC`0wHSghI6AOW~r)-+C@1V_2 zPpkj`Veh@8v?#i^-=08D0}>_O3`0&slBnF|EI|eoM29R0Vn9(5<_1B6qGZgBA_Aj; z2^AF`lwbhGh+-N*P%z@7qKI&=t84F>-Ocd$z26__th3hJi>B}X)wTDos;;WeJqocb zkoP+Rx10*Qg*ed_oP%)6O+*v*f&bq;`H2n1DT*1#&2IAZ;|!HWTuPJ+Vg7Hd`u>G! zEPqv)ENCfHgiFExZ?1Ea%xE>l$VBJ==DO<~TuL_iGuM(8q5&l{ejN$(f2&-W2K9ZY ztzGKxC=5A8Fe{7UH>a5Yzx>iDj&<=D5x2tsbCY8}V;jM#i1(jle9wO!{#F@&D?0_& z8>|D$s_ZW?_NQ-*?ss9+3`?wuV+z>n{*^J3!LrxJduZ-{J0gpqALY!6_m7!0Mt$h+ zfi167pzHbh%ffNjRsE&bI6WBxWISIld! zwBsi4kD2$1cbgc)MfWEd#{jDaf!ILhJz;N zGePjG3!S>OJ`}<>Br!~M>S8Ojl#^5&*MDR zB}2!$;=2hv9%tFKt_p*(O_6C`oiA;JtR`$(SC@ft8{6|P9y4i-6zEu2;|$|9IMxA% zN?(VC$9pb(ulFhZrY%`TFut$Ldk4zshwtX(@gH@UV5z!(!u~PrQenKttU5fh zR5A?LevChi?jkVeS^rKebv*y(d&l=F#F1SrR`%7!L@(xcrWU*9~kdfD!U)-N-(~!fX(jfR$|F-A@P2YvU|b!Eu?$EG=|L| znnECkKF^M9_-(E07MB-pTNFF@IqNO(r?#4xN-)AE4&;UHTAAjB{gM;?Y1tMSrv5r2 zoyQB*Y1s;(0+gx0f?!%UUUySx!!N zOk}wT4zeDiHd#BGBc3ARK65E&iBbyg? zb+!Fo^1|z$;r-EEqdO`7_JEEibf=(OT@S~6h9yWj`hsyRvE?X_3edb1gpT!> z2p!vo&2uZGD*_$M+tskrV3lC7#IUkpJU;l+u#RB-hRfyBULuIY^Lc*%h4EjjlU%+?L;gVTcLT!BNqn*xm+g=*6GG z9vg!($estQg9DHu@Tu$sY|22F37^VZh%SOymQiQfN6@u}zw3}s)tvL!4xj^B(K2$osZjT_WGg_+NgF9B0sP3Ue0D_Jeb=7QZ^-L)aw?#0Y+Eb#A) zb9^D&hnfB!1XF+K!yj#nMqC@RwsBx+4guT7U}{@f^4ztCJ3q2{ZUm;fQj+H?$$6}( z#C;JuRI49D^SlX6_feYXFGBv9=R0ee1*GPT_Vrg^y#+k@NfTJ$Al=Yu^1 ze{Z0@R)$?1X1=#VUG4f#$2_JY4?G{V=fuh?N?)MvD(HU2PNXRqC$i3%dEPjm8N(E2 zjA_~X(B;RNXX;u=UU>h2xEs&G)V8Qvc&*z#V%i$*sZ z=@U`udLBxD|3F8^^AEM<^9KC8Zri1uQfC?45E;*bcpSRX=-v_AqF8cYW_3K?&=|du zXU5=to%|TbA!~c5(eXYB^ZbcnmkYZJOZ7KaV(`1BY(v)HA)_0E-}JZJFl(#+CLkWm zn~rU%jNkbpD{QtK%S1NZFn)7~Y`tOMh)%!F$Nc>*OrM(|`%KtLV_Qx94V8Tqb;-h( z8`fED^*tR7Q68U_Y1=aIy;ibm!bajZ%SLtw7~g+gl@H4_Y%X+sSM!m4*rSHs4ISS@ zJrC`M`!~iIi{E??H3z>f<9n!Nnit=;i?daBr}!HQA4Q?H{`elbW%Q@-mQ&~3!XItb z-|ga$_hGP05BQsDbhDsiz1$MgF^1LApI4nA*nR{eH_BgDhZ+ z7_=pWdv84ctBM<7SK_xamW?dku&afQFpSUpQ8&`CNy0`Mc8##nhD{bW#;|LJjWz5# zVdD(DUf5NJ-5_kdVXQyqZ-QZSz|K4n=WQ~K&nWVmbOokKy|9gu^*4;)@3;}R@z@5c zV|yYiXxOd7m?zau6UIC#aUPnWpFgtNnCF2l zHmnYQzXGP?6?Jt*x7FzCiB9uJ9os(r6=i&EH!}7cveJe%24jpChBXo0Xv3NcV_R2$ z&BZp;Fbu9mRI8 z(RC7CwqfY@ex7$3)=g}`HLSbnB5nW^`VZFt+yJ3Aq7c=Z)Vcg%Szy4yo&9H%@ zd(*H%qT{)r+71R|yW%z_Lv{OqV{6o`IB%L^mmq;muU%6&NZ3xJ<9+l@=#CgRSQz(t z8e@pq@>ovUrJ~b&4p{Z?Q!wrlqZ@|bWZE{U8;<`N_jjYaLUhTpJ*Z0;HrTL{V6^44 zSDF{*fia#njN=;FH-?Q9+cHw8SoN+FU3yd<8r*Gj>nqHIJT4V zTw58(aoXy)sIlsC9H)-=_*BR7k!-eM91CgtjA0xLspE4!YRj>hjOVS&rim?|xlwkT z=tdbfUDzFlaeQXn&4$%LnQHy*?)9Mv{`I9>vE<*)7=We5NQRDogM!y&Q2o9xU33M& zR98#<@!fkACE#zp(eXMfDOg8n+RCGk-l1w5aIPv1B=V znL14se@DTJhy49vbbJPy{z@WqJPt#WmyVhK^zRX%I9@05x2aHGUU;o?0d)EvFLiw9 ziQnbmGrF2*{tZ0V!5J_fhcU*jm>Gj7$vj`M>?sqYD{Ps+U8t1uqD#k;wtSCRV|0@k z=i_*s$6?lATQJr26o1`OdFO}xl?78>FY&ho47d6M{x%t1AL#hENc1^+?#G%VcnMsL z=!V~%xG&Olgm>2rvbuRkjF)Pbu{cQw8GY|MXVVL^U z<4OACGotiY0eNRzv;KI02-OwvH^wma$8%53AFtie-}P9styzCJFfHV7t6}OdMfxi9 z7Zrb>g0XE_f1iQjR!Ja#wb8DWsXzX0HqBp0_#0O&-Wy~X`--1uv^5^z+ZZ>1v8|Em zHrj5O#;7apk9p?b<6(^B&}rO35~DOKlx@w%C<9hG6l1hu8skkc^_M0w77N2>_C{b% zj7#v37xB|?TkEl0<0bgtJ)kXhynavJrxP{VBFJ=0*KQWP6asFn2=Sh0vjU`MPJZWZe6tPN};cb2@b8 zO&!bvqiuaKwl(V1_98I0NwOW7x5M9F(|>1xvAn!qz_v!6=I?W(yH#|f5CFI30=gEk z)$-mZIzAi7>si)c47RGf3u)XQL9S!R!%pRL{5~kxM zR{d)j^mo0n?IOCEVO@nSGYp5ieqMNAPxI147+(F!Wj%$lU#hN`upbPo1;)CsZ~7MN zoa|35)wZ56ey?0vePKLiP}V@$aKloCu|un_sW5#P6080<%NRG_=$ea;Jtqrs`S?(`N&)>VJ=tF$x$R_n}?4xNBAT>5pUj{j86$uKot&H@}rt6OQs@Xj;DQ zRP0MGg+Cr|t1caB{PxxW6W1~n#kYMG;|gtgPg-rKAdTPIvd7An!Nj*smAKrmTif$K zaJINq>-WKTv1|%Ft!{MX`2aFHe|cZFtvT$*lvWL&kJ0I3axPH$CFw%8-vGiHpZpUDbpBp!K#T)V{9`_W4tagxIJrPegcEr1z0jJ zS#8W;fNeLd4t^(H9Ot3Ba&>h@7ccFPw)KS-F{~jNZEG9WNOU}3*0{Vj!ni{XYbv%p z?^0be(LH8Z3t>+f#xgPPn})R#ou2m$0hhV>O)f5R>o z-ED^T7agxnYm9-S%QkF~=yn-4SajbSb}1O!Ut=uk51YVSfti0FC(AIlXFlh_zDNy< zo%@`}F-Jr^aAkAmcL$=+*&$SAwBy;z%pc-&8ORV*%Y!2zX3r zb#V}Bj0cg%a?Cd4#zSC?yB>^VqAkZ;U^o;D_&Z>1SBdSH2&yq27S;-VTE|IVBjfWg z1Hh6({>Foq1ha9E!e5z?E)ES(V{AYg%Mp*vDdX5gR>QET!8YOI)M&$A5#5CdsUxMjy>CEWSFp^L@!k=m>n!YL!-j&5%!>CONX+w>2F7yeu>k$`24gvHNyyU; z0Ao3R0xKc;n~wV9GyW?~jEc~){@zJ+ZIb@9{IVwTNxW5>d1V&q4U*kEkwY^OG z5m{-mz0I)SYq~t2H0%Tz^UU|tHEtqoS+>UwD*(p&+hJHiFxu+=oN)__Z4~8Jf5k+1 zr(q`%m*v-$JC+dk2R9WsD^^@I9KAp+O!Dm2PgH;8E+e_W^an@Y;FOphTsLbm z?x*}Irpvf!T9A025|Lmbe*0#O z+c5LmcmykK^JLS7bvA5MQr zw$QM7V!P9@1)}@gu)BmcLGd-u?3c{*Si=^H?qS202>ZaWWnx<}G0z{5g;;+V7{+54 zvXO?}FSbh!V_2rx^1M!UkBUy8kzxHkCQSd97un;OSzi4X4cR); z{bT&`SdMY^8>`ekiJ7)TW!xm&D7poPZ4&m3VNVJB*s!OC@tr3v$1}qCZ6{^VfiZ3` z!`M#O{&03XB@4GxvT!^72`t=B$-?cFw&8Y4UAUc67jCCy;dV;fa66?g+)l~D?Uc6R zc1m5iosxyyDQ&~;l)7*`B@4Gx+J@UHb>VhO7H+4s4YyP3!tInS+)im5Zl~0R+bLPN zozgbkPN@sGQ?hV7B@4GxvT!>k3%66o)ppAB)E{wN{%FK~tAOp9tZ-5H>~jJ-5c|+@ z%uO)!-5$LULtRnm_)K#nh%oE~o@s6jrv55G$7i#7-&$EkFg}~j`<2T04cn$E?(Z<5 zD|r#j?a}9Nt&6`Gjd4;LzmL@yy4z*!WM25UW9v7=yPJmbZ|d?HZtjwKZe+{RQN~Hy zPKJ)<;5}jC3@3bl?RKO4PIQlBV^j(0*2?%t+drUV9Xx63U zVEH2odKygg*At1%%LQ^CiOuXk8^d=x8sj&oikS6XoYDAATk6W9jq%!AODwrw33KkX zHT+hl*S$UiL$-Y#uM_av+WD|m#{DI)twq3W3|@<647O9o&}*@MjE?uunCE0Hc`e4~ z`9Y(rhTqI{S!9lF*XFsMVVdXLz}R-F(>y&5M3}1}^+()>z)6sN@Qvyl@|&EH?%i z{o5EX8KyC^!L%IQhK%tE`V8AHZM7Zrlzyanse|$|FFdcO?rtgXF)+2&yexoiM08sB zZy2U|(LRlA_}3cRfiZvYLC5}!MQ;8INE@QAE@tZZ zd<8D&1auROu7T*D1mjR<{ps^l^w&^yrBPV6KdaO4xKPKjgmG_&j&0ZKbbO{RRdjql zgl*UA_`I{$OLL^HgTKoSYawhQ7~3grZ^nPw(A{Trt-zTV-p6N~vN7zvqt>Eph7H7P zQdW1ljK$1zTg)H8AHOH3`Rfn%E*_rw4DD6frNTaz@sze#3A;zeQ?jdtb-;#H+v&o} zV-O-^d;JFD=g=@m;J30L!P+51JZ4swfQ*j-J7riQFn(Kz_Z(G+OIiN+i*iu+$`ZkD zfo*Z4& z${K^ML|i>CVR`F;JqNbJ*p>#{5B9TR&B0ECHNlc?w<6{zkx`bH?<*_Y0LJ$t^m}29 z(FW-iagzX-!*cW27Qfqoy=~Z=_L zyVbP&x4`-QE${izA2zf1wlE&ID0@fP0>gIWH=l!j!LU8}{Wcou5yRdU-3i0q6CLkw zYmB|3;tjA*02wS-EG)MV!Ot$k43lDuus5Pjt>pnC+vt}pNj2Y zhJ7Zilxz2pUc8`~fK z@wrru!S+X8nqh2z)ZJv*_o7>17~3S{t}%>llKx&ajBS$sJ~ZrSVYZzf2aAL4A4d19 zuri5xdH#uDIb zIoTM)ei1gqFt!8gRvN~3z!-Wi$vm?iFn@0u-EU&6?TWhJMfbPS{UN$4(yplE{+a$# z4f_*}arGH8>i!bll}2|GjCr1J*x$nV?I^9Qf57Y=VCkb zyB2@14ZrD+44>Qb4o&v_cdpRfyeQ^+nA5It$Gb@OzqL{y%Oex<+?=#Y+AbD0kh^skKve?^+;#g z(y>&3WDmlhWiNqsEQ-Epbi9tuxMi??OTt$av&MZJtQ6L5Tz!U{acRrAwAHx##os5W z`!di(F{{6?z|OeMtqL4E&Of4fLji_7MR(;8Dj>R#uy_pz6PrRO%$`nco&T4 z6gI|tA=^_ZFKy2k+lE-qo8j~H(?z<$86pTM5$iR*oa{RviLfai6`Ih)!R!gg4OJU=W9axVol z_X|3Co88)}SJz5xDFVT%KtdB5#cZ;?ci|rjo z*H3iM8iwZMZ?~5WyF_gH%!t-in&^HvY>4ReID&C66P@0VA{!>UYo(u)4Hw;1!>$zF z(}s-@-HV2e65XeUjR9jDZ;B=JjArBUS-ux1#^wIqVX|#tKY}fg?LoE+ze`TSeK0KX z&$rD%0^hOOV{}Y!2we$@OWQZVdV*!i_(I0*KNc+8u!~V|%*z`k^71zrjDK@i|1Je> zuK;6=A{ZpK9K254bqf;9x@(76&An!R#OU}=9?SMiN}etE?JV1R*dlbGY#YHe#t!IM zj;jpY1;%njFc7QmJz<9odk&1(i?1#3#(S*hUN2r~m|h2d7Yt!M>Q-XreS<<3^4Ps# zyl+q#Oylw$lG~A&eHhr4EeE^1WSp0QL01{?p)xP^BJSEDW9YT(HHK+kz5%NY4RtFq zGcPr2=Z#(xhWf6tq`=RTHsd8wA?MWC^HX=Rw^Whxk4 z2J-ThVVakx!5GuV{l2!#AIEFPJ#kx{SBe5m?DsJ7x?s@F!II^mE(f}`=f(T)0O6;v zy8uh-QekU#Tj6gm7@EGXyHj-AjP3xO9E88xSh9~Z2K^Pl4Uzg_>hBQZV*Kr@k{2e#`e#Gy-(A@x?#`q14F~%XoZ1*+>?^meqcd?ys z7~`=VZ-XVl)|P|c`A}P)FEZ}90(q=}uuX;)0b?DUFsvw86CCL2J#fZo4#qqe#l9O| zB#`GURH(+SBDyD`Lw5-1+JULAuIRo4J3pj5YIJ;ulyRTN#;6j~^#)Uae1~)|%E7;L z%Htg7nfq1N!5*VKgF0pXl`Z1hy{*3pnEH!|zn);pA%B+|T{+PeD&~%5Y}}vFFnFwR zJ?8L)rWwm+@$4=!{}~xFe|2_n^^V}`+`wuqxSDNNlY)Wz2UnSznU{?+xXus@tlCV* z2W`E$IGgIt43sD-E@D$Fxz%;3IZW|Map_FeRj*^v7Htu!GC`aaSS=k~Jx^9+88C?V zY6NUu#pb&Dx7C;}KE#ojn&J;G1Xn|;SgmWsN%)qXU5yK`CI(Wg1XrttSLb;;p*E@| zaB2nSy7uwFRrj%P11_>4dStCD<`RRQhY4W6;cb^)r6!X z{;Jz3ixQIJ>}s*Vs^90Lo*U2Jn~3)w@tacz%-GHP=e9gHXWxusSsL?c=s3>DW2TN{ z4bOq6VW~Qv-<6w$Z}?%Eh?%-dn5lacOV!~p1;;fw$46~(-#{J5Bp1-IhC;U(;vq;>Z*fj{#XaApqmWFeFJsXMaOee)v*pXL$?WxbwphRGyUl~Llo<*gLk0& z89J7ox*C|NJ8b;14h}-cXUSM5>XJoQ3ryp(4*p{Pz?fI+YKm@*(XkGau0j65m>}uRE24gv?YbZMXmS_~~OuGX*UX)M4g1SbS>F;~vuO`@o(D9pQ%olZyMb{2Y^G6@g zKzA=#UC}iW-8?YXDTeU>(+PX5{HM%@JoEC3cZxr!L=B_*|LUdn_(b#`m%L zy=@*BtL}ENba}12p z%`jf~AiJ+*o^G$$?m$qD!Fy|mp*xP9p)#I-()O@nUkGc3ouTU97dBO{VX*#qJ(;$@ zVgOSe&lAZyW5=iLHDS}S<5u>Hu-zD>mGN6SwEY1)WM#h!>xrGJGG1S0yLuiwIc497 zZVq;q$~FsIi=CXZ$A#^#p2r>$b|R9;mJ8#vAZj}ejP2kq?4W9+{I(7K3TAaI2X)Fu zz?Rpj*22&->Xh-==vn%m9`F06j_f7ONB(htUyl2L8JPQE=J#f6H(LDynzQuacvgtGD^!E|wJ;)3DbZPu1 z==a?syP*dFx9V^PMv6f?I`e;HqxKV;X>AHSJh8NY4*E(KG6 z`;kU}d%$??X#KU6@rC}rz|8VSP|4^H0e{^v(5b(#Mb`ql8X;XvFx4Ft-ElB9{eZt; zjqaG}Zp22b71F&eV;J-IgXsEVY^oE|Es$}Iy6;4HIdtrkwqAzIxJKPinE4$i{m#lT ztT)EYztu7pOO}JI5$1+y0K>6FGw~UDE3hlDR2^-pqb-_rKsVCp>Wl6wEYVa0y75L= z7r&X81%|QQ{Sae1mS`Tn?GP-7g0Y;M7ur%sTb7miRozVdR$U5yQ+F4Z*u(+dLZeH@ zZ|3D$!@A)2^{}1vFYH33vtIthlKqW&(fX^33e~(=9pnKWpU<{B#-%@H7vVSaSHL zCNG)b{I-t%O;EbG@j!H4GMQE+}+=fF8wMX}Xy>okWWwH<}D3CPO?RPyy-yn}dN^V}u!+u(t#= zpX=<1C3R#=g`=eutj}ULmX^9I3yRVyj~;W85n`9qY*M!_4PNZ!)&r zmW*+iVGjt)GVDPx|9Mx#9unQRhCK|%7zNN*HGiu_r_ZfH?zel!ZE19mfHQ_Zw?-Y? zJ#~6djBGV##^7^H8sjlA+O9Hejp%qjrMkz#=ue+Tpue@kc>bfhbz)mU`Z;y$MOW1@ zjuDK@`&MepZO9ls4SQ197{fMzu^jr`8e?n}w#?`@iEWl)PYK&$*wey3H|!Zhlg{ zFALjYY+nImogOyqRWLr!{I_AR39BIEB>iOzYat8^|2{XLG3|)oEE^g74B0J)vCoig zHH>|R&!QH9bG2okA=5rcf9x}~onv(DGt@n782b#Lfqlg=_8ICvHY`)vABH^w#u&V2 zuX%Y?bX^Tw4aOK_40}v;JpWePHNx&SjD3bN_>73^*k_nOKIf*4eTFf9H;jFTwuPnr zv0m6`sB38$`wac{GK_tOY`9_UGqkvGOqRoGPYCd1{odODcK~$*iISa4#U_^$sRN;TWp^(Y@4t* z4SQV}pU2hudqda>!?uGlMv`f#JHS|udWP*3*440G!p0c(CK$^$-LSVrx74t=!5H^R z!`>0y4#Rc}``oZSV2tsXVef(QxpDnAIqQC}u*L=R>fn80y@jDm`0rA!!lMb(@SAl- z#{0iKw|WjMTt^ehJxA2{aL9R`pSI1VJ(JDG?_*%)rCpKnc|@M4#0=y8g;UV+IX8_v z2aNt^$Tp%aj}Q5r8TXBavCh2cGjH8c2g>w0vpHZzMaSc3KJ&KCFdhr=`McMp{upB< zV(_CDWlX)S6UOJ2G=Evbsu;%SFnJEK&e(nr#&V=$L#S;6GEO!Q0hN^oV_g+3k;f{6 zvAli2$|75~yyFei@~#IfFFGynLBq7Xhrl#$Z8+t-{CDD9sFK*~yZldssjd!m%yZ#V zd91$V?-X=ZLisxmoifc|YLdHW&T?q}#v7*jn*gS9t3k|n?>_~rAu;sb`_o2OUGg`$ zbe?UpWfv{N!Zi%-V>sd4|pZL1j_yayW$TV7a4X^Y$r;e zroRUGkL4&KeUOar2Qfx%!x{-0ESS@^egI=pzE?rO13HH^>wF)w;w z6081uQ;hMAv@5bNrT)fCA0#^Funq+A~3{cGC3 zZ5W>=r|tOidAgyZ`^T^=g^j70ryC_~f?+(aV!gDlGl(j_<1Y+Y$q!`r|thWM!*5hNkY1moKHp``44GI~S`CZLPntjj+UK z@aJ2xp&|h98glJA}L| zL(zTPqhLJNU<}R6X``zPzUNbX<4XE8^EVnZ?pAze2ahp4*(Gvgk_IFu~9bS&Afn#kBh z-3ZK#`z=@se%rQ@C}R_KBQeuoI>r+2e{DIwGP*8ETaG&DfboUxiESF$!g+R_7nL!G z{<>ji+_qr#@!Q7TV01l^#<=$-*f4e7o# zx{Hy<{LM!LY9>0}9*=`DFRx+#FH>B8Y0>;3Sj_E`&XIaH?sPWt$#(z$K`d%uIv1bq ztIpP={!kldPpsGcrufACsJ|WZt%vw?I7&Vz&p$wXr*p&wPtPZEeB>PZ2uGu{r!tYq z*$|{mBspIme-3?o>N)C@jWC}no`X|96a3^;D%A72{4_mBTn?uBO!53<8Tm{JPkXVm z8WnWl`A+dq<%_-eMd#ue!1I}kE{f(uan86X{|z614!xI@zaO6u%BRfd)aRQW!hD># z@ren1N0R4e7Hc@Q#TMx8-7L3QT#c(jdo}9YOIETAV_M_CjD!Kx)|0d(NAeiR`Ax3|ey#*c5i&tR(h~1Z;KfMmX zzdfc*&+GX7Aomk=zY;UA1JuF(QQ5s~)xj2~S<(TBJSBNox zmc^kXZ$%y4fb)%(5`*8z{|sz_oP)4l{CzEK-wHAMQ-&eMyAa}doWu;pZ%$;%U_7pA zhdQ7ybmQD}f%Z}_YFl4yS&nnD4sb$UeJoXXF2=lAU02wUm4tJ(?JWMf{vR;fS{Q z3p-cUkx^$EE+KpE!JdGw0%Bq~^1uJz7yI9jj4gG{A9d=FjQ+^5i39DRGTIlKbf6vZ zdMUbGKsOot1vIyS?piR8ovZ_GS1+SMRS)T20mHBp&?REbt`X7|0K-rj(2c^5qGm{^ ze_MocaarE4mqF0g!n&=O*JQj`9qWL)I-wX#G2Yh=#n8V?LR)^5khY)6K7fqR%(0$} z%h;}rI#_Xmc-92C^NO{m)3c2&(BE2}M^t*;TXeF!W$WV^}O z#!GoQo~DFs8-vvf*+#)M&uYte=<9@RUjyUVWb^!fKDHO4qjD^<u_5c`4D%g+|gEnxc@ zbZ80z+uzP%%kj$Qna}K@x&pRq!89%oIsNi-%;9)tZKGfuub3Y#?=TrRs8icd!8l%7 zTRyA6@ygnklD=lr%v;ngnn5g zWZMudIb_>i`Y&y{Ph@-E4we$K%>k7?xvQkn9715YEURi&97l`AP z_16zfZRwBow;PP(m9_m2jAN3u{RfO=6LoDd^SP`;=vd0y37d}mDQhommB}-oH|E&% zDLR(srKYed=vZXz>&)NELGB$^ton>&;;k5)W?+eAzyGuUJ^}UwmigJDy9R8B!w_9A zV7mY;KUgk2Zf)mdrA8?33t$|ttnD{onrH5(*`BY2ASGnG5Uf_n_9d{eE#D2S6S5rz#_`I= zT_ocM^Q>`;p;6Tj*|q^|5V9Q$7LI!WtWn6e6dEMQD;u{xnA-Bauk9%BN2X8nzA@{d zB^s%o`)S`A1;+8p`dcJp1j|8xv@HgI9IwdKwhb7^D{DIzELC*fu;lY<1>jFvcVWkj zu7|MVrSr;>g18^Gz;mSN99p&}!sZKW2s^yK>Xj%O@86%ps(;Qp2+MKP(98q=8i27r zd7iELn{Jr;Im4;NPU=c*XqbHrfTo@yh180xC+G#+VJJG47Ta zeGOYFG44Qx@>-RRF&B*Em5s5_Fpbd#4OwIG`FWP3gkh^CMtAgcj#oBD53oom#!AC9 zMj|$v#&}F(?14@hpUL3%D1;4}5{kj^9dNv|93RvR z#n=T_KNO<^`mZvLFtI=4m2u`SGKO^f;9=n*k_o==py3*W4t6W zN*K0HVsyuNK>s#I4=|2bwysthrZE!F%d4x`CB_~zzVMw1mg67jT8Cns25S?F!H?D` z(-<#+>Gt4vAhPwtzZ-Z0OV#mP1^n*aMl9hb z@Etu~f3!M&|ByNi3BK-5@%N+ArQ$QZ^v)0TN2ZpN@1B}OM?1Wi8>gV&5SMux<=&#*fr#$1eHXsUtoHZ>-k zJtwxW8^-OxI!!g>+B?E#8MX_I+wwCoj%zH3Zp-6FS0CGp{tjZS)BODdTW-t7W?U-* z9lwcq2^hyU=9%XZv>j=5ylz1DyRG|#_6$9C{u`5@!>JT2QI{(i)@dY*q;f2DB( zq5hUb$G)`!ClG8q)HT4&vRwwIx)so|Y;POJYvqjlv0Tr=dXJf7nCjTZFR2yhT`KiVf4Bta-=F3&8itsF?XAX^I>x0={qa5y z<2D9E7Y^9!yQz$ULucPs-=8BJ3dU!--k!ZPt5+WFtk#@4sr?7#QPna7L33 z#MN)J(sq*Aa-3A#SztT{PBQ*p1>-a1#bKnn*T8shdp*VyG*v%_-rH^roie?*eGM3z zps!nrC7;1qYuLSDd`kO!GDcxxgJnD*Ybopt)7B~pOO-xI zT^ZG(^3W9g{r3j^;J2-MB2DvL7r*(=Az*9=6|n>0n261s`y5IoFtu$bF>XU8 zTgLWh8OIlvx0dv2=C703+Ve6pwo}WxfYIM4#+LWj=`XEPUflj*%=1yO)KH#}8Qmc0 z*#7#W?>7^jw!aC6Y1`Nc#xap~uo5%d-?xTo+xQMl>ww>GVvJp=msX(|yHJ11G)6&O z+-MVu(a|uC(Fsgre2X^3_R<#@XqEB(CbC-$I|atEX%Ke47a<0+=4m^)1Wavz5ZlGZ z_PDU?gkjbHPAL0%J^ZFEx|25p3D4m|+6}^rWBD;=>fS&ab!49jD}hWXHH<&BB$2r#9EH^ zHEfcwm4?j%+kp$%Ri)iCF4?4y;(b;d>+3Q1#a!@~c<(#0#SrR$3yOWAr`UD@!%x4B z&qaS@zp-sR1C04Y6ZXei*2^KoR-ylpCDh2%Rfm{tr7$!p?{>^&Q?DSZ6dQ<^|dG@89rR#sK{0)EqOn39pq7#1hRoaJ}Rq!|F&Ix7SKDXp3tZ?_sGi z7T~vk{R-Ovn=255$4WSC4aDGaj53X}9Zdb*2|Z(6jk-{_RATV?R}?c4BNMDxD8>oH zG{$JOIrXx|uE-`qYq-H3_IIxsZ zj28^k7%3(4V(gF@KSHN*_ec!BBULvPqYhZTP>iXDX$*a*vmvzaV&*pA0G-Cz55{eN z1dR$^Jy2JCm#VQaZC9<((3EM6$H3Iz=i)C7=Ne5z{`kIhvyi{X3{!t4v4c^6UyDCp z18o`d_bwRsL$=*lJui=`zdOLxUk>!F1Abdk*)cHI!CW-@w&G9Q{X8)4*KCY^hG~p0 zavsHc{vI=9lrZc+V2sfX*Ec$dKaJ5HEGkUvd8J_*BTqGL%r*?*9+tqlfyz_3$bH^X+UjQ7-a$A8rA zFl;m!brWUGrf!1h4j497bbVyJr|xTE`ps*yi;#!a@V7fHFV9247~?e=PpKO(ECJ)B zmMsRx{53V~cF~nWqf;HPQTb&vy4hf?mu$m$-;cVt4dZzmV?<=!WnRi--?}3Al zk$M@1F;R7V|DU#h88!iob#FjOS-+`y=>C=y_rX-h_Y4?gM>4Jxg>)5b=IQwNEvfq% ztZ7L1jnRD%T|IR6zanlw!MIN&ll*>k8V&@w?@*Su-!aY0FR)FHBzUu+yFhf8pwG{R z?GCV3!uDdxZ&bem)>_y;EE!`znEKUhtN z{bP?|BgD2*YMySCunC6oTWQS8PQ&;-I9X9_aE)=JuuBZf0At*JhRqdrakD(zm16s{ zVf;2BWBh8^+h9%54${$BG;X%AZHB!I#<&->$kTlY#(LRc82|n&S@V{8x}s=nWDU{K zG)4rBd3npQwxYWVjZbxHqI=sgK8wmcmqLS7-IZcH*|4ic7uP0FcZ2xrYS@ip`=DX` zt`f`JyKSB=|BejvT&!IlyI)vS!2rQTLi* z{F`)Sl`qV*eOg#o!(JA4n_+y0j%1t-VxMTj}CCl%Bc-{J} zXI|R#>6Zr&pYh`2q6vvb;)*OO)-CC=(s5-H%EgsWs8zadT-}m&uc#N-;NnK{O)EC- z*(|Ab(~j}o5_`t?Ejpn7z-?)9X$ffs(u$>(OG`^zp7!zJxJ%28TrwtpLfnM-8w$^f zo0B*{enH|rg%-sxPF!4gNy4&1%j1?8T7KU0vMVBww0mUTV|&-cuTRX1&nlgDeOA_n z`p*>EQfg1a-nfr1%IWZHso&#%Px!mgsY0h~oQXS=aHbRreLA5?nMjc?@kL^Z<%boo z(<4@|S%HpaQhF{)>Aj=Dz$Gbz(h>$CL&XcE^}Hc%K#??L5Ub2wV%nPc(I3Q(nIAuA zank&r@$(lXEJ-PnnN@#XR?+qACuC(MW@SY-4~*M7q0i2gxG#J5{r<|h({b^q&m?$t zqxd7FS@97>Nyb#CXG)QJJx9j%T=H0%L1}UEgVN3Y20~hYW9U)6}U`3uI-XxLKIuH{Lw1 zTY*=8D|KyT>xr+X{d{^U9B}vOm8p8)l#|OxBIo#*wqa2D`f=AL#>b*#r+<9{|FW_e ziY~nP4O!)vUe)>C4)vlPQ_^ZR>Y06}>f#?vY$1E9=&u5glVcr)vk4sqgH(_#TTQ9cLvLDU-4kr!}#ZdUMKWWu1KW z=f7Y5Il*NN|6^0hRL;-l)oZer7xmPzM||nT*i8S*O{}!|WzOdeaM9dFP#4zAj$g1O z<-VlkId_!3KWUbGzAet1c_srVMq-=nN*0eJO0PtAv6-`C1xj^{qE`hc&5~K7Unb=l zC3TF>jK#rk&n1~?4#?6#G>us)JD&lgG|JSgZ8rPlg^iwKTqK-Fb<3N4=ysi_eVoK*^IjdKC-zpINg|&6!Wc zXT;T*oz$st-hUZ(g?MsqGAbmq#>`I(#K+D2u@JgsaLR}eO&N)yDWh;`%18=L8IjPG z5e-clvEbzWf0U2$foym)7ezDTQhM5UCfh%+Rs1i=s|)`6-}?C9`Y<){zs(`9GD>$% zjVqiHErX%g{L4s+%ntm^h!(C9_?MB?DHiybG25$Q|0QO`bt)YAmoYmj-u_F>sF7GW z@GryWfxk0C*@$F>vQaoAl#Naq!EDU-u$u{FqfHadA3f!aXLWQ4L&I3rLSs2LP4m=k0@n3LdkNgdrIrAFsFD#m*mc6V^@0Wah6 zw5-S14^2y3zaIPh20TwmZtVY$|1x;sZl??$4VbBL29E~pl%ck|%!qawc=)~Dmk${5 z{s2xRGFCs@y><;VWpoNn8MA{^Vn&hBlu;%$Wu%0rj2@vWV^MHQ$}m~*fBwIhkN#=P zFDp=WZyf*i&q!#S8TgkmC0fY;*F9}eTF)+NT{E&4@PKR`7bnl0;f5NJd)RjMhH|e= z$*7(ar6en>zWYA|rv4-wt3}4=&ria?JN;zpc=%VYsF^a#a^m@({L9cEBt7t705CDb z*XCv=EiLa5(#7$kAiZn7HOmI};(r;k^jGj-*$hqbN%sHMj`{k$!Hd6eD!H}Q9W7%k zD)z3k@6wSta*W~kJHzl}8s_PkarxKd87FR2c>m-c!t)HxpW5Hl{+5gHZD4d?U zXyK2WGf(V%>Y`KYkAKj2Wd9D+%5Lm_;MUn4?!S-ImJVG8Ui5XD`BSPab2|6``QRttoZq_(aL$=CKX-Q< z;^z#f`$d*sOv?M(&uvb!T(610H$;EN^Y3^$EB;?we&Uv(Kk?c&r{QkljgVzUS(cY2 zZY}szX<6bng-mYSG9CfWMEtY%ey?~xWxe_S?vxRGMv-ymlzp8P(XDzBS(cFHm9o?m z;c=6jHg4LwaZ_9h_NOK{-f(@BiIYc-nAl|8WbgVLubDD_(wHWr#!YS;5rtcnDp{g< zv7$u^7b;jFF#+f82a8?rC#WiYm|Mr?cz-%}r(4HmS$`VZ(yiB$^}EZu^%}B%OMkas zPu3p|t#{aSou8uhIJ!d6zU?-buJ!xFZ7#j3`0Mk4OD`?!av~@%HQs>E*+Qj z{b}nMXOBlb{HewZZe6$I%QKz6nWX>O%dO+KjXw>)z^!ZfTZh(17I*0p(H{@h&-`jG zJz3JbEOqO=Z^G%C#%?{ut$LB(Ze8PVJK*wLS<*{{>}Q4ImnrA$b^AOKihpm&|Fbzk z|J7$X`(_gF&q_gmH7B@rt=}ojoxP517rgA!dx`y5H@S6fw|_k2*4d#s?Fr@Y<7=Eh zj+>myPH}qP2jleMc(<i(p& z$1O>J+PTH0<1)5C9S?2)A4BaYE>xa(+7m!k<2R%jqk~dU!GTBbTn@+)o*9y|@UU3Hf_*;VpiOj#G0BxOiGW z%EkQkM@Kn-+P~(#=k$+@plYT|FC**EEphAGUS7Z5t?RfqbDmqr?QVZsc#~VlZFhgl z>FNAy|EMxIXn)CVZk-oUIbHdp(|32PUiODBUF&0OsJDoTGUgpwqdDovhUFX)d ze{`Sd^td(YPaniwx^CZ#Uv=v`z9xqH>)IP#y4LT@&$xAMueZ(&`g?4hTi5=vaGG1! z`o4I8Ti5;8&K53zI)2{1(WR^ZW#7B?Dw6*Kce-`m{`Errd3C6~cVFfF>v%AKva{Fv z`Q)@)*X-OFIo6~FmyDHS)ejnuY^(4O!Mcuk?&yN~(;VVquigMrV z6Od)Uj`O_N@s{4Kl3#nbU>|H)u}7lq=-hxXr<2D|w6=^WEtTitqJx9Z*A zFPPuY*17eIB>m!BT|C`>USF54^;0*r-gLA}*YT?J47c7?{4EKM$HOMMbZwt^Kj+qU z{C_8OypS5|e|_pXeNFNIQ6aakx32x8Qb^xFbo|wMi_4E5A8ibce@io+zjjjo-WA=t z*2luodi7+NuJy5JyIW5a`@{(@USV1P`w6$M<4f<*c=vZfXRq7;y->WeC!D?Z-@~Et zWb-#JUB~PDL+i&52GcV_=~J>@x{jx%Li_gy+g-ZukH@xg`PJ>!DYSnWbE!+${=4OR zXRqV&w$T2fW5Me_=XlbweB22x@4ngD>;9!;Xnflo>OT)p4eGB5jeiHGyY!~AJ?so(BLg`0C~(xe4joUQ+V8f9?(eJL<@9>IxqO;i*Ydm-Iv<%o z)1^0){ErUln}?1E*M-hMN`%VCZEmM~o_6`u{pqOIE}qu+s;7eK?}oPjjL`86o_Fxw zcaR{Zu6OHt{Jr&Rx31%Pp<&K{0nxt@IzAXP(CKyjIv6_sJn^2h*YiW1&`ykuy?(@` zF_9^gCr2iZxPIIiTVDPBVoC9s6!p=yQ?9yx%!tufj>7*_#ze-B7(a2$=(dqsH>iOu zc@E5TVV)E7+&H`*lAm?wUC*QSyt+d9a%ImeQ#z@7wW?JrpI@nB*k5?vJ2ue|k<wMoFE;T<`d+ukj(wkhdd_Z1|IwwVubAxH-&6JtJne(&%bacUhDK4dG@JcTzIiVj%Uu8=z9r& zM4k_(XSZ;=goMfCnI4@uh>KkNSWA~aDyPu%_j=rss(L zn{_|&cQx6)r2Zv;(F>gYmyz>dr+s8d&^}YrD^L7#o}V7_@3nIFH5!)lGal1)-F~y( z_PzhvO1o+AEf2+S@9gI^Ik=X|nJ-+-MQ-^rC4K+CX8zC?dp4M!exb9^dUf`Fw9Dxs z=@LIS$;H3u=tRGvL@M;7EZ2YJB4=Orx4m=8v*&f=A~!wyf=fSf=Xd_0W~5v1KzfeY z_d2lcWj~>w8wPayM>{zC_kJ7MpXrgt!Sw7GU3!BW8>Fx$7Q5loMibLnG$o^g=rp8A*k zXZCX2Z{TNxeE-pXVlUe_oSv=eVjsKC+0Re@&ac?a{lWN|6g{G3pFtYWbL zMt8XUe{}VO-_!oA`mOHb7eDmEKTOX~3fjj8JNxBpR(JB#X9xRl^gWl}aWKEwfa%8I z{we(-S3irUKUBg`KP3L8eCZFn^ywArcJ$M~lXNLxw)o%l?uFknJ@SuB_kMSAW0$*S zhk=jy4I_GePv4EE=SccX>p#4g37Mhv=x}Gh<>2iLm># zpws;>|B|lbW4fewyYxbT;7R}4`Oj@1S33J*U-AtUl<&si{xc@&+wPpp1y z;@Veh_z9u(*t^cYY~L5QGd;U+aQmd6boMP*&pE^NoI%0#oZ8NQZJ8-<{0XH;i#YoR zFY&K3VE>gCw2zi?_I*G3)a8FbFg-`&|NZcXDYQ=yrAOa$_IKYh|30SY3=GJOA_KUZ$sq(!HWC|I`1t=@8R1D@ps-`j_+%y1mrZx33)B{@HK1 z_^qm?{J`|cN!dS3|Bvl*=^buWbrH?;ph?c%@tRKrz%`uoBCf4cvd6!2})EAI0B zXMY&nKjujK!f_KD(>{7g(j|W8N*Di!&j$PBN915|e2(7h(mQ^z)ne>gp{ZnRTSN>wxkN?W|e@OOk zQvcBp-1a}(a_lxgJuWzY#|FCb_wCrXQ~dY`g7%s9o&D^gFHiN;4+hgCRbBjPnHT!P z^uJxY?*AiYo&8hIn-|5Uv3 zVy0)m6O5nU$L&8i-?z0G(=&gO;}5N$YA*j*92)hZpMFx}>;C6Mm;c+#Ug00VN4;SE zWy|(?r3k;Yf~mNqi+y@IXJ2IH{12EM?HVj!`U5WiEss8&9GRA_?aKM^j0@*&i3s~2GhOrF8-{WzTC|89L=AUKU2!zeT}=Ikn>z{eDtcj`bq3I zZ@q8d+CNOs9Y510{qq@9eqnlg8%dY^M;~(e+uxgS&mjLDW&f_@gV^7?v)U=9=hPg> zMXvuy#Kmt`=*%{$t0}x$t6=9$DqmKRQ^a8hP}G zbS`q!qaVBN^G@B)Zs7ebn4Z(Xr9TsQdNJ)Xf0cBtKk=W{;NDhDkGvI3kJNVgFTZW> z0j6h%(z7#NdaIMS)MR?jZRuQiasL1AKlkj0`=1Y+kq)Re>eTCRZ~4#chbyezaPr72 zs$m*`dvWmzg^Ls|mdiuy=i+MT4kqc%P2qLry0rNv8*}ruBd!@8Y2K{S$Xjq7>gw=1 z;+HyQX3dW-Yv~0QZ)#}!7(6CYC zCaF!EHE-Xod;h^hM^CzD^0n7pf5ViUCFALTxcU!YhtlgzdOa%Vl+&GcJ?LV0ydCN1 zmg)b9?p`;p7usIhA8?`*uJj}3jC0HM6HezfcJ1reQxgtTkXfgn(=~8Q)n$t=`{^kq zDM;_+(xVrM?oa10v#@LLjT$y_elBt8-k_i^QpD-%*WO;n7xr`M5n1N^<@`k-cgxG3 zPVzu!4e^390abthE^z1W1UAE{NAFl8BvuGKKTQL|neY&fciv~R4 z59FB#FQ;2C{lcKX=z14-($}pzGhL6nGvk8(vPC!l+Ph0p7kS9}iL43v%X0os9O+Zv z`paGy)MbmV&9D~xsmqLa@w`I8xX~w^zy2pTZnyr@D+hJiqMJQslRv)ZNWAoo!MM>U zoxeptemvRwi=H3yC%T6Q|MHI2SE#g6Wz9bg`c1<`%>p8b5Y3O zM(3~HdBs*)f0=(eUHacHJ^ML{`&TXhd?`B14g1+M-7;PJc`WAI!Pl?VTSI@|s=odr z@`ziiE>hg-hODT%jsk55x>Q}J==$E>p~-*KMM^k-aj$I1_;0#Q(d|CnBlExMA|;)_ z12w*0=<6i^-lKiF>gDE7bmLbZ%^}zP>r!=*QqEud-k<-FukMVi-)Mpx*9wPIb|(u6|yszR_=gUg`+nU#ziP=IUN`x+|-`PnV+07JsFO^6UGUK9;zjgyObvaYs}b>i0MALy7lM zP#0<7>hHb@x49F6{i6F^mJ;_Y-OG|cU26W`bpEaw{L9;Z{=RU2yqsX%Y{}o%FEsc2 zWzG?a_ia!YYw60dr{ydD{>}SY{QVNr?QpssZ$3JnadS?HzdwVzNCBs-`sP0mQy2Z! zrAPl0)TQ6=%F&_Y(UQLI8_^vO>Y^7oe>Jc5KMUohAC>fDL0z`QeSiG)kLb_)!KHgY zx@AtBYcJ8A&R?gYN&dhc8!7cXCDi`1UHePCy0zPGKe_X^>>u1x+iCdvZH`>O)$6$0 z-=c3gf484J*^k-Fxy1D!Z;as=G@fiP7Ehcw5lRFNoE|TK>Ho0w)s~7(ZNhpsj zRrmj}_a5R(W+CIfgurE>oiUM^uYZ+%YWKC;(^ zTyNR?WWEaS*Lh3lH}70Y_l2{UyhZ6&?vQv-_l=xA?-`LROncwEB$vBW zXas`_{8$NusP+4JvJIV~U8PD9GFsoz^)|JZnv z3m=gFlYLP8o38JD-S=q!)kioVK|L=Qz0if)-zsaQpHFSw>teE3SttE0_*dFqRrhHQ z*?Z>oobE5BpLx}Ef6M(^{A<1AfhLmkn<3kNA=LqlQ zz4ao$Xu^gMk)VH;#OE{&HT0*7T+l4xA2!_e8p(%e@bKdK8zl73R9@wMy+7J&_TAiG zs^@6@c@l<>SNZTHvA^rJuS>(yb&RiJ*743Cy{}q-(T9J@{#>w<0T+DVCihQV{w@CH1{DTQ%|4UQf_kEJD%#r<- zK*QWz;a&L$+l&01>ic=W)BomC>{bv+n05Rzkqf>c;VsX-{{XgsSC-`~OJyD9##v|I z-$~>T?LR{Xw7*FEuKra*UwMC#$mNMC6}4cM`YH?60)k zHS`}A-pTumMSkM%PP&Qhx2XMA2?GtCe70AL@ywmhf0pIPc8Nb4dgGMW_U7*?@=qM| z=r>6)`!Ok(iiWwYwzoF%!|s20bEF@-eGqS|@Sg6A_^Oxtr|9o?z`>VNI>BxtSJg1o z(A!;br)T$3f>{#p_ERdluM%kJ^t^vbdY>v?%Kf_P;^&EeMZ@qQ;RE%v@@dg~t>KmX z$xqk5{PiN2Eo=H3Mta2}iF@D9+_yJ{POs7~^8Tk(UqgR|mgmV5-nZ?7kCL9huZ#zg zzP9J=UV;azS1HPJruyYGzr=b)Y5$&vVZZhV<^7eCj{gyvZ)P8N*N&uT)3JP1o;q&a z+J4okq!&Cb?bLfl!kmV|KjePU*Lm4LP161Gu8%xeE4^T<_*vD^m1nrUl;`ixp1C%u z=NFD7)(i6zdYuxw^33YQ+DjytTT{C{y|sdS`n)RpuK0Pyw|3u)^eTbQ0~%&E z^e<8TQk@@EKb#=`{`w;NiXi&YJYEia)q^GUl@I3&pHtqYUpZ0qr@ZflKXUrl>%4QF zggNEIA1JQ8)2~hx{qO(ysLMG0w?!`etAxJe-%)$YJN;mi=ue$|^PQw0KG;TqSN(;A zf%3VBh4&uP(B)st@22A?_pstO<+*8A!|KJthsswp%$+6WUU^T#p~qkRHR(s~@Ep;r zo+Y7wwuGLBPT%)r99#P6kJcph!}B%Wb0y54r*J*A=Y zRShdo2=4Sl)o=XM;72Ka{~3v|XqeS7=fbDc`ju8m|9h9rtFr%_BtCdtL*+f?!^Z^A zJ|yL~#eJE3q+fb>OPIY^LRZet&X)FVyi=sVXHV9Cue`Oh#eJP~Mc+R|?VTr~wX>yt zAMX;iqx(R<^3INbx0cWTQoeKdd-DV?UmaJ&gLM4Su%cn0q4yDq556OI{29_uKD@e4 z)^qzvKXB;PDE+c%fuZGUf%i3RW{}kV6ct1&R~P@pL;3 zmG|_VpzqELYWvA5pL3!5YtJG2?i`}iQ$FW#7ixT{0+|%e?R-xlXoS5J>##h zd{)DpiLWRhxOi8-=3HdOZd!OxjB0DwvKx@NAGcN;(z3+ zZ<0?-&~wu`R-OST0eP+(OXzdf2v9y!al8W}UV)ewAi*<`?HxVp8%LoNC+PT%140X9T4#f#Jm6ro`ED!K#B*D=EVlNJ1XJx|9=^mKwLtC zrE8nZGZw}bm2VQ@@=gF!{xKkYtfG7bINkvfuRzQTkl-0e@&u%K0BK%q#NOd=i5P+L z1{h}m9EnItj4=SdLz|MoQIQltXGfAivjLh6&}aZ0%}7bq8=%erIG&P{@OG4OKDblD zNAH>WTPhDXp1Uyo=prtraE^rjkrKN2++5+S^U}CCKg~P&>`K9N3)1nqh01?SLT^zz z-s$`5M@8ekLq#r|Re8rBCVZfHRrBF%7-%}d!6NrYo7`vf&0w-&==ED$h_73*dHrLK zlK6%iwh8LrLVRfp@egkye$OrVcZGRh+`9SaocP~lBb0Ay-+cT7M{hp=7k^UX8%MBz z*%soj+(NwUPU75@+V9d(cI7@E02XS;N0* zNPmZse*Drg!nc+GyN2&*_zw-~Z#2^HT@CT^X#P!G`(I(xdcn-9e z%7xZ7(=zyP-x<@Ue|XyL88fEOo^`;i1NNQP)iJGo*8a0Pr+@fEt=7ou_VVhUe6ciu z&nE4=rcf&P6#HA(OwY{7OdBS9LTSH&Qekj#JtZ_FGrg9;U}4=LMNhAxKTsGflvWpd zdpioH?){Lt6DXxxl56_bwwDU*Qogr1)VXhGPpOa}ESC0LGoy74lAeWZmhzdIt)n}J zdU`us_eFsW;1$=>!QFX<<}F;hYW@*(<}RLp$idSS*t`Xc=PYbHIEgG8O@07U{ z=4`j=O{xEl`+a5ZS%>U@;)DOF{^;9J{^(`PAA9?eAO6$CKYikgQ$BX~Z;spLdzRmL zb@QfC$9`ebt*1`k>ldFLyVCN5pSrd5?)A@9zSH#7MT393=r+sW)^pJdr!Bnok9U6a zwyo~JZ0uf^FYfd5zE^*7@UW-8d)+6WIQ{QyEWiBYAKln@=k%-Y{y_b8cYW>?Kezl_ zW5PQZp7ovId^~?|Q}>i9+gSe8(KmhIfcNd3`DfogOST?&K%3=Plt&kSGWz&6nR{;k z{Hgnt&bItzFa7-T!@G96YT&Df-~O$S_uggs9bY>8S9>*mP<&1z4zi{-zsKSTmJP^&KxY}zrAjob$5TU zrS7h;S^k~(Zr$)|@3JfY_N~9)`sTV5@3j0R^L?6snD23%_Z69M#!GYYiWdq$QTd?_ z!f&Pggd2t5R{55T(((tI@2ebluf%V!@&}vm58P|sU!P^Z2Q}5$-|g>WPc{)e@3B*b zAE)*={Z#nvl>giP!tdbHzf5>JjEcXTWxiK)`Sr=KDdvH{bi&<1R_xmH$hh65g#}_W!c* zuKvIDb>UropKtj6zbNspyiYLvt;;0doeOx*d|%^L!=HP$$h-2IZ~U44D~aDx%dhTa z;m0aJ_c-BQer`Wfc(=Z6GxqK@@%g;SH>>-{Uv5P8==7MSl#EI0fFlmDH+FZ$bP{ukXYylbCd`K<7+ejnHV;QH&6S4jNU zs-N2^{6yt1T3O<&smf0`_FsKSU-@(ZL^d-^XMdPpBB)l9B!{6d+GxNhuW_}5miM$)XXPEiy8e@OjpG4k`cV9L3-)GiS ztIc?Snwg(E&G>SfNq^QklAfF24>t4Xq+=xB?RR{uPxw~t&zG3=UN!Oi1tLGmjR%*e z`5{wY2b%e5h4Jt0-gNqXCcR6I{b$YkVu>l=(@gojVCv&h(;wdZx}@*s*W<4g-nEB6 z-Y2|U&;I25!n^r&-A{yf^Vid6{GMt2|EMY7=_b9IW<7cTabn-CM_$?}{6sDPTTOZ0 zVaoSCGygqm+QY5J-)BsDo^SNWoAN#0)b}4vejYaEJNI$%-_5r-|3Y}T9y!63Z)nyt zXPfe?82|sD-cNmCmE_0OmsV30j5ptFjw1BpDYM?R@vm(m{?A*8|K}FsAK60u3tNc) z*P!Izt*@>B6V3NnZTtZziN0H3+xRogcw*x}Xzqt?eCN4h-;Iwpe&;Rt_tqBj*SrP& zeYcRm3%8KJm$#7q|8_tBhAr&p|8MvE!!5M`|LyaDcee1n!25ss^MZSimiFoHr{nf1 z8_Y+V_;bwn2`@4Ax7a+Nc+-qeSFDiq-1DbLO#H1Ty^Dz~lb-(~n|Mn7lxV+`M7%J*KA-c?5aa>MU!^q)8SN42Hf z>nle8uZDla@JAc_b*8FsUopJwF0Z{&Yu(!bHjUt#zs zjQ;H={z#MlTSoo`!#`p4w=?Z=wBbK&`-e%d)5srZ_%n=t#`LFMP5-~a=-+GjTMfUL zDbJ@&e7{NWU6cPujr>(+KDpfRzc=YMY5#KL`zuEN4kN#vl{e-2sOhganEtZ8sn5R~ z`A?er$BeOmjOlMbHTIq{>3z_|-(vd9qvrnk8N*L7`=c)z|6Vup*Bbw>GU-=M{B4~w zez^VEZ=3kT4S$v4JB_k3CF#{iU)08Pi^m zGv(W5_(8)zZu~pm#Gh#Vn`_$h>Bir$8Tq@q()H0{;>Q?%wc%$P`?F3Edv1T{uO_}= z^iMMNb+jq3j~o3{O?_ufe7h{zhZ}UBhQgd7fnS7n$@wYWQtUdF*ZUcQ^4JrhR_J$e(8FzscyIVf;PP z#Gh^KU1R)x&x{xUH2iAgU!(D7yx~7&_zk8#eb&TZZOZ>&roHA&`tywcN1OP=4F3g_ z-j@x3j47W-4gaFy4>0BXyea=vjQlNzf6(|}F!oL{_9mI~TVU*6V)!{We@1_2lm2p( z-YgS;zOnyz(>{(d<-OSOZKgh_nEdWz)+>7%f2W%Eai!t!G4>uX@%I}3d}Dt%Gk<-@ zl;0tSA2j??;rBB9-iDuS_^F29$M6}$Pc!@s!_PAOY{Snr{9%S)Z1^J# zzs&H<4Zp(hM;iWU!yjY#Pa6I>!{-d&VfaqNcNu=Q;g2_bui^U*KVbNh;Rg-B#_;P5 zf0E%pWB8K|UoreChX11BPc!`KhX0D;zh?L|48OtfXB+-p!=G>XjfTI_@E05Y62k|E zzufRw82(DbUuF2K4S$W{uQmL2hJV1UAAe=|#|;03;eTuR7Y+YM!@p+uHx2(6!@q6# ze;EEFe}Eak4mA8n4F6HXXAOUd;TITwli6Q*((un1{yD?H zVEEq~{uRStXU4N182(1X|Jd+9HT=&Ff4kv-Y52Phf1lwWG5php4-Nma;kmLK8e7MX zn>1;gop#%ue!hE1U*FKu+B$ml=yBu6PiL&Yv8k!4b?jCX@zL@fc063<>Jd-K_B-sj z)6T0^x2~a~k$+81%>#su!h5rgjm<5vI0nB@v)rgUmTH#Y7X_pDYnz)X-O*#moyEEk zL&8lhgpD43G0WkfQTnT^tGiTmVX&bAg7~$L`5s|)4Nb5$cKrAW6Ss!fw^4cav^?eHC|Qca?^%``MVIv?N@jmAawGzE%3)K}A4CqX50e~z zK;Kl11sQ8<{s&#gYaW2xXQMUa7js zjLUN4vCbY9mzZqHGseZKskgNB5(ceCt|5A%d(7DNgi*1RrWA9_DWWS7YMILF>x@BG zeykzye2$`;MY|e<);eLr6>Lv@qtc`1cCG3n6{$32y#Hby^+_-V*4|7>p8w^~gVmLzV zQ4XZSQDR3sd(dZXIMc%zWffW|J9O!>>j@)|(N0hs0LP9!mF1|J!X6w!hR2^Pa?}J! z6#k4J6A;EP*Q3&@-2=NuFzCvU6s}hcmBIc|&HY3$G6!XpD!vGCkFy8!sB-+qkAI9Y zPNY?kt+skm?MVt^;dPOtwj%`#C;vl#OSIiqG48); zYSf&^jr%-fTvnU}x%ef)*lW%$%IX}#$VD2+Q7q`MV*{~=9z)Gce&16$k(PfQ#;K6! zQ2znRQ3{+D>T{z<-^%vLXEY)BOa9%*7`F}7Hh##>!>Kf+5Pze(Y_PF;%=oRgn)ni7 zbV;7CvCm;VX9lFeH=|;{4s>_V9LWGH;>hX zaptIJ$!~x$!sFln6w`iy8Xr6EWKNg52K}f_w~juYutZy?{G2Tq^;{Z%&D`{PyTWdqm&TgEjO?n>q_~-!cB^ySh?*}hxkd1F-%4M^B9u` z41;$G#(H89^9*C`j^Ie+p$MbeliBN0!MHXlY0`h($y!`bzb*TVJuMRwZf^OQlS4+xIZ|HiQZ@f!$eNS{l8dVw3`B56xqL!pL9lev-qFi9Pa5Ea2Zc5k{g?_6r$vxsvn_O=0LHD4ivu z3oD#5H<3>f#??)$Ep&xRleQiZxlyAUXqdx@k6Wx$8Ixu}4U$^X8HB+Nv|1S{QArny z9Fl-@t*tz@d|%|EJdgu7FotGJgB8|cXslb^M%XA)B(QZXlAiFe>QeioRIwZy|Gdai z_DPio@;?$rLk5+Vbm7LoFcw!Os-@MV14%L%P(Oe=(q@e6TpBqw>Pd2NNezla)iM- zVvjP*ZX=22MJh)^n(KzeB1h^xa8Lt0%Go1OC68gbQPdo{jiNDZb-ZBIcqkG6^(#j1 zxL=VmmwWcL?nH|Lu7Qmzt3AmUC(*dxrGb_OXK3|3_B6sMLH2|O=%(hcGbS0Jf})Y) zJl3U=SANvNE^_v`I=HnqeM@vHTQaVp0KX@4PL;#&i#^U97d8_9fnd~NsO)LsFy`lk zk%rhKUz+c7_9ziv&yN}R8^xs3cmf#{5{9f%P9Vs6euXhi=i?`Cz3q0}?Xc6%yYAk~ zF9(t-YPqtW+=emdiuBB#*f6NTg<&-tk^|M76?zk4z&~Tt) zTnPNns8I(E!@N-+A&jhXxlmm;HqH^bs6Hs2c}|xkx!PJsFHt!v1^Lz2FLQEn!ro>v zq)o}wZ#nBaW8_eM{mRH*oXSy(k)*bT#!p6ak{>d9oYgzcg2 zZxK0EITbr4)6#M~W1I#LL)0ekB@7%%uq*K9VbSHf;}S!gew;8cWDMT%8tE04iwXc2 zuR2{4*WYW3)ge7zmB7t^G6sX(7i5TOb}y%Kb#P%djByz3@eek~5*C*!j|$r{hDfSx zuDGVAT~wD+(O-k_8eFDw5TP!~zm-W{ zO*)0CjU#KwB{5`!i~1A8FQe5b-vMZ?}yG_q6}^nEJkp3Q!IzhK%-krYn3o=eCQpt;J`xo0m0B? zV4R%6MEaOuY|jlaPe%6Ypo;BIOxJG_#+uZYY1P_1dX&6K3tePDJ7JSxaiQSq{|M6@ zHplj8xZ(BCR*XsA5<c{IM97_f90o8dMV~Jj_UYvu+)xDEyFF0;jVa zuf(+onwt+`xn!!NMtyiVR(BBVLJqBn_I&9P$Wp?hJ06)>juBm2nsXu3yxPIKG|;(1 zZf-eVF!+mN5sO=WTIIAJxvajx_B4NpAPZks40)$%m2%f|7VB!60;R+^I$bV3^1Y$q zVy8<5$BnJA@iNw>vWt80w-sXG!J+2re>l!GtF!{UTa^C+DCaaT%S0a0qij?Y~7<2w{=`{RB zFy5$gWiU!Vki?R%SlvgH5_xX?4`9w43Y%)!`wwBdb$N@2_J#=#gAd$jkms!# zBLFQ%x?J;4go%u_H8kGc8H0jL0qt~el~Z#pJC*Ilg@=CExS!}E1-jdyo9uDpJ`(BD zNJ4F6^yq~~m)4AjMY^=qpqw=|ElbKFar%8+Fv%9W1KIpUBquWHM~%m^y(s%!I_)f{ zG8*JX*A*1oEr=Yh(VFq2b~GSzafWdv7}DTzgGHOyCgrpzelCSkA8Bd%QiPEsWRKFNEH*U$ zm@sC@4FD+npGR_(E;X9Q#ybe(0TB%M^D$!{VvLs8qsL>@eW#sw*>%@H#JWg;8d7u1 zUl~J!NP>OFOzqK!@yHEM7OA43TO3BXmc z{BOPWnUOBJOhwq(be>{SCQuF+vMvqm@$V9mBQgBA`PBt1$3>?*1>?tGtGd*Qs6o>2 zM%EQgQLk^fMeK38aw_QTRmDUG$)k>cDOjuw_#VR42d*dxKH%(eMTz)>5hm3~=tBw2 zp}$IDWV*io5yp^HX=yxBJ*60<+|n8wpHp4x%kK9gVd}AzR9*eckuF6@E?nv#7CT=O`?Fpmmpn_wMTUvd>#9^**N@Ox))ZA(C z!%g>AleRgS?U5pIvDmsmb+P(^7&a&ITfuU1{wOyq71O+OaFmmSsQX!r3inu+lg20` zQ*&!4VUaOugWW6#1u7^Wbz54Bq6<(;o*r6%S}<}e`hA8l$B_yAKF4x|OG1?MFF4FO zjF2(XRezw`@FkT?f?r{ba-^jXA2&qyA_Mj3h@5)EM(fXaa$=BLLes^9Ny20lze}B5 z!oL*8t+lc7N=bto0uO+w<{KPF10?E~)?7a$OxgxlIxUFqtdT|v)1tUr>}ftExF@Mg zsUxKaH4Wl0aMA!c_DR7Kx^;EW2qwKs=dza~dsHw|2Cq7d^2#}BX?e?GRLLk(NH+Y9 z?TMCa(H?(*O9~kshZ|BeW2_?03Tcm*4|PeR5JT^3-9dF-JD>?^msk!7QO9X+*^4lC zqCq$C$Bvu9m}ru3w4^^!!6(#doY0c0yhWa@qoH5!s1GI7#ASjN1%R>i{zwD zk>L(aLuMHnBaV;coV`(_dQ+H8!Y48&<%!IpNj5jHBTVaoOAlpL5jieE&IbNDRplH{ z)pQ17QH@J+oh!OrFjDbN%@;8yvRajmfnZW`Qh=@BBTTc3ba+I#p0Fqlu7vs@3I_i~ zhQ^qmGKSR+Mm2pbw9P|=QD=}J6<_0{s>@kMhN;&)D;VT>wC@tesl-mcrA$M$9k)sr-7|;xw znijG>(k5jpn$ct0A`I;wkJadyL#OJx>Y%k~AItFspi8MSW7dhT%NY6Ha57;K<3^$X zd{O0e5l8+seU&iDhhz-@p6TpqxlpjdVJr>+)p`MAR8Ev*B!YHz31Q?gp(qtJuJPBf z92BUSFo_~_6MsgSHWqS^+T~{*L7| z6LkB5w*HprA_*G$FcjmA&8Ug6ML*OL?GIsniU-#MP)@0xQwFysjJ(qyCA|yF(b|?q zARI73#qA@y>;{z#jXJX!Bb)ef7V8=g5R6J8`W+;g+(~P_%}LsWBuq9gB#g3#oU#~F zUoN_wgrtIJB591>KRUvY5l#76vBxcjXGZKZtQL%N%Y$DF28#8JK}(uEQXM_|3v7>? z1mzSR0l%*?Ca%zZ3*9iB8(~zS7$YF}O~G&*K%GN=mq&6gE8eIp2xC9AP|#woadMgo zvT(h#M^#2YU^hl`T#*dlBKDjn#G0CJV>u+Eig3C0KE}AhxIt3tzjF5A5!D8zv57ER z07s`(M~{A9$^q^^EDmZM(8;~WhXqkYk(B6#Doj_diM)HG6ggy%M=Q!pU)8 z5GUK%9%n52C&tJP$<5IzId*Ti2$U{^Jj}XQt1)_f+Q%qvy z-~TkWiPM08lzSNznx9n+d=pKebWi-c_#*X24~vk$cVdimX+hN5pda+*98>lX)8anz zs~Mp(9m5!1X~CmhCI|+AN=bg(3MS^H9X0Hj#6-GjcgCbZSsguYvXe_ZUzo<2RJ)j~ ztD7O1YY7zA%_59a75^|RG&di_a!!kjtTCIg$BhNf&sR*w7|vhgVQfzgqEM(SE*DJ7 z6zR}!CF{}-Zu~n&>?Qphb*x}iqLeKCxODH{YXgUL)Q*p;Fo(Y7H+TbG`Or@u^LCbQ zjMzHw0~$|ir5!20-rHX>k#F$ksXWP~f0V)~^z}OPUjwWNH6&u`nq<@RX)c)*^@k6F zsBKbtQX8W3pfaRMk0EP`ACDW6~>?7i*aToqPw$WRXJbk z85l$nsJ#>>Vx{)}?m{f#*z#(ZogOO10WU*;h>!A(y1+k~fnHp6uJ3Q}>w#amKru)- zSn@KZLN6+c{uM!%?(QGT=wI-IjhI@^Im&Lu{7vuf~)$5&_v1p z2@#Yp_IIvY+umb^hWdw#b(D(jo%!~1ESpC@kZ6B;L>gi9ozzA~BC06b^sgRcKEWmDYy;tt(?&|67Ef->k0QI$(Pw?

    8T*CG~)^x^xkwW z`FSJYpBe!#jevi41f1S;u9Ysm>s$+`zh7Gm4@SW0@6Xnf|IrBe&qu)T83CvFpljI= zN5Eel0jIxnTg%QUEN*Jyts~%QRyBV){6XLlEJ;;Hw6~y5W{^mel zL%o*+Wv_rP@a*Rif&#>apzJB&5nn}^{Q^Qz_KVQR9}2D_tjullD#suVdWrEZsHBe2<0 z=YHY22mbk&Bb~n??uKf-$bT9k$bSYQ$bS~TzJqoG^6^KebD-)%q)#sgABwyZhL-?ytDC$4eC4B9q5q@K z%MrcOJD_?-U1T3XIpBi~!SCVsbfotg-{-)O-y#i=cLdt;%dq`B=pyvCLwf^NK>^~kUxzM*E0FhJBmM2`J^uyd z0b!Nm5N6MS4lw@}=zk7*#&vcFT%U{fLWKALd`NnaAWu8O#xm3|Lazb7`~xx@ktbYN z8gUK0avt#CGvcgWMD(AgR3fvV6A z;kSnm2ILTz-GC6+RZsxle--fvtH85o!IukQ3om`a0Mz9GoApdd5fc%NT5QcR91Tatl3PJvp;6VW>1o>#+708F6>Q|t5J^Fhi?9(`U zD)RRv{67uxz_Lw<2Oc2wnjr%U5MQP1zoX6&ms`>7`S_qn4itd=7T5=cplmDTLDh#) z4x^z13P}ck)ICT231dmM1o_5huku^85A?y1D8!gO3A!Nv8QA?TbP@V5z-B$#Ij+5} zfq}9wqTQi?`tL_Qeib^9sUplRM|&ro-@*4Ul6~myg!*~`ZKNGMUVyL6L0d<>|1A6g z1)vb*hu}f}i?9dse~%DUIUjBJ9r%X+=)Z(?kbVHU5ajis9G-*DHjo2(Z5YGA2Sm6I zfrS*0ejMJ=Q+kAzPsd;e;r1qwjnQj9_M(80C; z9Q1ETnIQBq7Up`8Cj9Xqh1?5B_i2Qn?7uKxgR(T9{1$1IA^$G?*%SVOsz@h9nB5C> zKGJ>_b&cKO0KE5pr12u^0GR(8`~Y9s2tO}FK5?A`7Jx#K{|Cf_!gJu$`5?LmRbkVA z9dXnz;9C`8fG|4)V>UwnF&Al-(ElATI;|>g&Ahw_pch^*+=UmlJ%) z{1j5#p}L1$_)GLN$W?J2KsE&V4X}^?TSeQhBFqj!4(;9lHtOkK%nv_=ukRsUPzcHa z&w9|Oc*q904hdTWeNc8SLQr-cLXdwY;x-`tCCLAJ_y|74TF5&BWryo3u7QR02G4!TOk7qKq1Kg zIe1V23PFAqJSYH#ApbT{2pb3kP)PjkkO2jt5aj;?JSZSSdLcsp4q%`F6oRU!*L(gi zfq?>02=ea)4+=mb$iE9bC;){Z|8DT002G3J+_dIE0Vo9d_ksrnpb+HW2OboFLXdwy zcu)WeLH>V(2L+%I`XDD7X>x)a&RI&6s0e#+bJU${JJ!`L9486o5jI z|0;M;74v5BEM&ff_JeW_N==@BBkaD7HhUfJH%7q*$iE7*6xM;qbpWd1x{5ZJ{T%8E z*V%f6!2R#SHYfmv6#f@bxAN3i8(?9u$JI z>ktp}@L{tYs0#8=LOdu0Wj~F0koOtHgQ_6^vxoD&2Zf;Q`G^O37a$%~1^F8h4+=rqZy+AzU5I#4735z8erw2#LHv%uaP4h_ zYfuGL1$oZwK(8>Lg$k5>Ill;f=*Lr~;~j zym8<`6;KuAjRy~^fT|#GEAXHSs0#A%A-*iA0;+=Op<)(P0aZaB(#%r2Adm7zc|f`q zTxWMe2&#fSqMdO~IKm2DgS=h9gDRjZ$lDV`)$O5yemP!g&q;)D#%lSyj5}SAB6b} z@l}%P2LBz%AgqG2p8`&Kx(adM1rG9G07l`}NC)wiW5I*GPa-`~g$Obsr~;V~l>HuT zfV^v915^c7kZ$&Oz(F4L{qF+4a9l> z1szZo5l7!vXbkk%qqNRn`8Y zN5xJ~{r7&Tb`^j75#c94C}H(S5PsoZMi ztLm4h;oTZPS;NY0VkhVPck)_q)&G|G@L>r9EeBuarl}vH^5JzN=V`eIn$LBrcejQ| ztKM~LH}`YV%WC+B%H>@BYM9e<54GH{Qad?K$5TA(c&(3zRL)nts&c+-M~Y_^uc*AI z{sbCU9Pjj%KVALWq~Qc@U!j&msB*aZ;2s)ieyW;&pkYx@ekx%_Lr+8h$AX70eXW;@>lYgODxX!ps`c$Fzv*%HPs1Ia z5Pq8WhnA;=U#8(k4R=uaqcxoTn8jez_=bjohIeb2Re4YSt2+NQKbtf^Z~RL9sA?Ff zTu${C{X*gcZAV!x|7BV~6STc~TE2nCSG9c|pz$y1cv{u)rKiPiR@=n}IhpOiDCFQ66 zM*LZ=VO9ItM$KoS<6FhqQQp(gcjKRiSq-b2-%!J>mPe@lG^c)S+$8B&)&D^K@U{Lt zt=F7}(=d+!B$PU~IHFJ@wJw~Z?d_5ylypXM zRS73$d-@7|T5wfo5eG`wv7P?nU{BZj5uP`LQDMHbTr`Y5gj9 zLQ#)7N?JJHw@MChu2NjMLO)d0A3n{<2_&R(nh|F)#R#8I)Jr*~sK({2qA<~kMUBH* zMR8qtI%-PChJ{m?B$4PS>Z&e^l11gFpVaOa0+bac$_pt|L1TQyJ5VzRF_1gKs| z)b3l)XCmcz&Qx+=7rCwj4>w9l{(b-W|^5!@~XTz5C?{hBAlZ@M%wb zFC8>Z;RB^&zECbN9iRqNPRI51cNW&oU60eRDV5G5*L@1>DYxOMX$nHBJ)LQ29SXB! zjYp@sGnvAPnUp-vl+%geDDv1$CiAIU652!di{jb`i#Yh4nLM?>IIlRceoAIB9sk|3 z*h)D7JWLP;m|5CiD9@u)>u6e$OL2-FJ(=Z&?m4CIM3Hr%q}qGCQPe258AhmhEU;=# zd#Sh34|^#8+6i*i3{Q~ZDCeY&O52PDspr|-9wg4$~(0P7`cg>tZc+BIRJl;|0jDgv+QUZC) zBk_~~cc?T{KBT8q$PXUc)t--AQ-2TM`9Nu=M5$Y*fXP$g&rp7_tEbT0IVDr<>Y`Kc z&U;Mo(Y0$s(}p3b!YNQUOcxkP-jiO`CNT_S}tTceKG63|`2y&MO zxJ=TJE2%VEpwcXy7^U80cnn)Srn@We`OELtRrccnf0z zy)ogGMY23tEa7bl2jXp!mF2iXd2!(4h{@1oJv|cF_ZlJzUO*Tbda*$k3r;LTj3g4L z?h;v7o*H*|1k%eOOWRiPdn*yxS*!_9p4vTx!pB=sQ!>dmHhF4aO+1<4^xDp`GjRb7 z*O(bOH9RhEk3;=yG5+;MvhDd3htQ#70Pg`6+RF(5*5<7)$L!JHE(5d` z&GexysrBK8G99oMnQ`VbJ!R`p6xB~}vAIMrE~JY6(EjE08demKOdeWZShU7?^~LW$ zVW}Lfn48>mQD`KuDgdJJE(4ST(PdkRXBDb99rranq zkqj|11x66&!!-uV_ZG{xyt)^o_0Vvfn4&RI3Cgd7MHVA?pqS{*@RpKF^ae#Dy|fj| z4k?)I5EN;U3>JnbT?lWErDSez3p8WL?0N0bO`H#mQ4~U$LxI#9MKNDH*hj z$Rxd?M|aKAbcG>ZF%R=V2n@J~aYt3WKJ# zL-DR_W({t>VrL^*ZmC`Fq7;rQ>693c>~6-%VAhG#E)@sj;TcoWk|T;o&5fb~EKC8Z z1R}8%YBG?DvvU^;EMHhyY{O6y=dHW9*nte4h;>1f0vg=Msb@*^oSR%#rW1%XQgB=f zY1sJMUBnG0y$I>b6W50q*3aj=DThs-N(0ZFa=B2V8_xOkhUt_H2eBT3Z9In8ikXAq z2sh0&1qOQCd&H>G?7-b*XPMJ6G3^5b==6v3Jx}C9&tNfbjQqlDdw)E9J0L%VbynYC zawO$BX)W4MWQv+>Vx|$cynx<&j>l=NT4^yoY|&qeSH$#2?@HXz^mO+ZXv@WwXen`- z6iF_Vd)7tbn$pY}!_v~2*|UblpkC?C@5sjFsjDc{Q!?0eDJ<=ZhuFzeNp1yR5-(6S zPswy)ITWc;+#<>)dSwbkjYj-16Uk9VBBx;MA~Bjp-jGj8Z^%0=MCPv>z&px`E<%1_ z3QU;bTI(zhl7;z^D@pXw2*p0%niXk|-^foxiTf5-NYn=Ni3((1mMm!-Wm-3+phIWG zezbERs)@uMR)ppcQv(tUVLepBTh^<%T%z=bFuULtYpTm7g~8RuWEJ(wyXI!PQ*>E! zd{JyArlG_lr?;!W*jYG|24#A^+cjlc9>i|Rd>`|eUAVb3! zhH+e!VhqLOIC((}l#Glpk*w@wrrHheIA~dm+mQ9;^sB`vC$y2*})?p+l=Fur= z&(k>!&E*A*hKY4!49$_=9tk78JnDpc9v0CHl6J(q?zm&2(=M4u!jZPqN!>4Y_N-Y> zV`IWsS`D_L@z3i;^NF-OipAa;SZqfCoT0_)luQTiXd<*bzoOLB-CZbUP&KhI2A6zq z>4@SY6qmb~n74YUKe@!k!kwnF?xFTlXQI3I7uFU#j>m!}N&^Vi@9oI}nU^G7z6q&y zgKh171HG|xUAR*&tQ$ygo9I4Dy!a)l-ePy$^16D9?bwP;-RTTO_Y3J%4Q}R06B{q~ zX!~^V(0(eO^ulWLRBXN!+DqKL5S6+)!7?3p@6;OB;>M!{Ki5XtpFFjL<3^0Y@}x$b z80_iK<4Y04O-ighmRM?|sofySRb^_6kspdiJXu|g?>sEP4Jy7a;rcw{+gA5< z#q~_8a~YqLs_qgs*r5UbaD&rF!tHt5OpnV{OfI3%H8?3(U}a1VZP<=qSW1*wVNH8} z2;)&a(&4ijW{(TW$ka#plAi9>gUk3U9B~4X1g1XTOgo_vH&pZ)XTU{cEgtU=M7f9? zUj!W<<$|Cxwp-#R>+;o&{Lr?qb7!zvT!NL0t12nXxKCqpqz_d@;tBWq3x!U2J~WUT zp^vW<#;HZcjuk})aIk`XD_k`dJ7J28W$c6Ycf<_BqOlX15XwI7~6 z;b|CdD6n^j$5hylK?bH|7AAJX*&r|PQd?9m9n6$*=6T}8vf0g=QA{-d!V`R@h9`*h zgpd2aJZ%SIipGPHqOdInqt-8_uC^%HdI6#S&Ho@wgr7XvEUeT$(c4 z@%-G4I2}X1C+IHVvQmLJ1*14TJLT==)Xjbkg|(UI({`u4jHCAFL7PprY8_5(& z+db{QSb$@LvTbc)Aa263s_xLEH$`d2kpp`T<}YGr?USg9n-Y;*Cr zr>C2Z5i?GsuFF$~50T8H9qv9%yz!KYjhGr}cb=wan$hR1Y47Q!JJQG!mdEa1G`&5F z)oo-dlBU$C8)8?0OeW^`VK;C9R`w5-6C!*|cL<)eMCM2)DFJ@bP+z#3x-+8%_ypi#w2XI z7YF74$WAggZikrCVx?kYb1|6$_u_czIxH$4W|H^AskLJ=g1d3#S9d-sxS0muMh`zD zHJSwH;cQl^Nc(U+gP9GaZuH$$qjG@BP702*G62Ka&f|xn?Y-1Y3#Iw%61z*?d8Aqz zG(()C&d(b8!4krDb3E_t(}#*qF(cc+^EizNgq)6K5#;1n9A!lZF|K139hVuF4c*j1 zFf-D47nxWncjytH%voIRlc&;?fJJy7QtZYyCmtdd^2NmLEdBWqoUW51$;4%8qY^2R zKatMN8WA-hQ-RbJsD7qo(qo0Bx}s3(Lsy|~X`@#=-uhtmXAR5OFbU&wB0h@ITBDpt z80}6U(i3mA^M17H__cjbmb6qcw*_gm@iU)=CKyfnIqxG7Cn*ZE+cb8v9Eo|ZwY=m6EzAG z!y1)&a?{^wnFJi1enRe0npPL0Z1af)1R78L95&f*;#QUJ`py`wTjE@F=jY(AvYb8& zP$Me~WMlB(T8dGglPfkiZZAQJNow2`UBL~HP7MJm4^6S9;*w47D6A?_D3V&7+qi7- zK$?m#@}WDwEb=Y^F6hNm?z!FbN`=nEG?y|HN#m$oKiWuQ^B<>GS7X13x<&qkw)U=g zT%#jogh2(7gIJyL*NW{OqZPs`$liadCAll*Q$owrb5Ke^;&4-&=MNscUQts9OG0xO zR8tJ2Maotu=Iy}|Zlj_iGWAG!7dJ(;wi#0U`zm}y zBu!R3=ov=}F+1$>Z5BSf3x!BFPRkxVBQdPA=urmd(8S{m+-Q(FEV|MwVKSw=6Fr0R z=0tgQduQAvx=V%i#<$2G^<6T6+p%;LaS?PnjJj815kG*nISVh1pIV}bhWZAitwb5^ z&Xbkl&mLr`T+!3N9zCg;k9!d+gm0hG|4McgdqN z|F$91pK9vy5@B(&z4D5S9>j13yNarvQ9LFhpI4+$zSJlYvyWcW6>~}l<0P#vQp5h_ zsj2l%PuaxQNEv+q16H9#8x$@xH5!55Y^0k2&F~ACE}ZA|GB{n@liK$l=!qM-Je7=O zd&)R^li-eMj|U+P1=L@nZh+EFTS~3mFfikxa-l8XzNUb~f$^%8w$7I0eI7g^i*`b2 zRfc

    >^?cnUcW_9Y@h^b!>(1Qm_?K9H8opjbb3M%x)B#dW# z=RhU0g3b~}_G)^E@+=MFHHOVgEjJIdYnob#vjypA-ZjPW8c38_o*ov@P2QxYR5&^@ zrZazN=ekU9ya0-^_%8oQhMeYXs1b`ZKyBP*B+m_87Yy}M9tpO z)=}DGOxI}=z^KW7(K9ubxZ+&w;=JPN7qX*;#PTBN-Rq}?-?$DrwyAIK)smx8!rH1yT1+h zu=&+1k_RQQe4t@N1}j?j*VxTX-qxiCkT@b!9_URie&eVqnPH=SYShLYny8`v9{hy~ z8t7NWkAclF&(ZWIo?Dq>Kry$y%yWytaXKsm=g7(PNQ2{}9hYIS1L6vdUhATJWWM*s z(Bs4~#-?&aOC?^DCfXy-9qXxVwPD5mCR)H1`pZM5LYvuhjwO$-Tmia8W&W6jg+v??}Ra0i1e^&^sp*@v$?ap-jpzaJMlK}%sg z%{!v#T#RC(VsU0rcxJ%Ug*5lvnk!%0ZEhdJA0%-tB{IsdKk-?S|3PhHMbrcv3Yc1*h)c|@H;UNMXtJsQK%wXgTm){fIwBz&?b8!gL2y+DW)Rr z5fG~Jwqjr5sFb}FYVsnxyVS0u6ngj|(^A@PPu^!jWN8HJGYW zafH>5!10_i&8)*U#Vl8UdWDcqm;@5av{vNP19o#f(xO>~mJCabrn|dO9;k&9NzoEq z&I=$rQDSApuqAq^jfGO}0!TeDjGW+xnD$&-kc%0qv?+e1!gji5NtH^KvprmZvMJpR z?|I>DTa-&J0*ULPeUZ2Xuw2pkBoe1W!MreRRuHRJ8V0ZsGY<_#bU2Q($C&_nXG2al zMQKX5d8UjoOrA@0R){bfl4-i((-*S5poS2|Lx<~=WD?*y-h2Vbdh-X0iCunDp|c!I z+Sjj4y$Fu+KXKb)dVeCuG>=4#S$v_WO63(rtjRI2uIH6=Vj;MRBRzdfHS{?*OGrlYBB=(cMJR?W=t&B$1o;RNG1$ zO)p2pZ7F?f%aM1a6juyI#dm>XP?XY-Y=&zkYXx`u-34hy$yHBWbVKPg?sVXN8G8Yx zlxOjM|9WhZq;4V-#ek*ULY$c}Wym|XbLd$3mK(HM7%}b0{ERJ&%rqi8Rn)4hWYiIn z8np)$I`^;C%^+o2Rl4Z8LZp$Zc}{3Wkp)u{aW#{n^nE5FQqf#&CfQh%jW64bIz~`_ z24yTb>)ebsCjkB71B=s6PL0DF=g4Z<5zY74FdJv9%tK!CES+iL$zfx7RJzN=W~nCI z=!kb*xx2$S9-gx}i5dc!Fy!=dqV{Dvo092EE+`$?5rgGHtd8k;c@15} zMQGu~^eZ=g^s3`3y2VTHc?-@@!6MxRHhhs#=#xiGY$koaU-Xu6j*T$^%>bb3Bu6`L z+!(9l{oM>hIOL9(AL5yzj2)gDvfXrqHMzUM8{lb&7)pJPA{H_Zaztu0j*wcCi8og0 zxIayD>6StBHzOH$G%+fsI7*g23$f>b8-6>tL}Hkv&4MBs#qD}1A1`a7$V?vRhp@>U zFK)2^;oO2z(wqbS-$);7k^62w#B0x~JAkBV$=G5XHy@^k;)t-cKmT@V;4Z%(`;CLi zy9io{wiU2*ZeC@M@x)upxFhLYfiroB(pO*1mRLHDxP-f@NV7|imjRMyaVOp$mpnC+ zMak%dQFW0=;yE;$n0Kvci$^oZ+xH1olcJ5TVL9DFhWU&)XsBSKB&gwKW<@MqNj#)T zwhFvBji;!1e1`svj1JH}6s<1JhTaHb_Rv@Kose{n_~RiwfSEoSMK~f?$4^oZkLV9?gs*@Mala_~~4Z)_Dks-rI`I zS|L7gz8NVR&GELf)8E_%N9t6s=CxDP@4*bV5FGL8x~aaP5GgfZ0Hu*G{Qyih&9AHlTWiTuB+br+YB zF3*3FU=mzuQT`gt9Qst68(CC5iWos9pV&7|sUV`ZO8hB`r2O34!ZSzoiDO1m8p*4f zwG*E?FUmF-dO7vNCqwckP+E*$8cn_3+F9tr-(pYpt_Z<|nP__Gh8z>wqowHx2q!;W zuq&=ARxA|;he|O<`|vo=HYoWq%{v_#*-j`#7#0C|@VpdXqd0^z$6tupY@|u5mcEE2 zjwR74)YQQ=G{O;*q*(wT^+V3^-beD79v1?A$D$246p@GY`T_kt`lwaoTt=xoz6qmg zB~SGjN#Kj3iFZPnGg(rNcrM}(wx;!B$S89J`@|7(pN%6TSMnviL>h6ifHBFtW^6L? zu(ne&o*% z^P_l#?8FH+dlnZMMMRXw+EEWhLFx_d2sbt|&PTw-~XVU2R!SeWmRmoCiH7YHH~j9^G;k8g|^ z!rBivy@^4a8t@P(tvL)>ZFL5UkV&*wwoZodR4Hu>uZkwugY>RtJcF}ZdRqZWQFY;= zU1u!Uhx<#@+6anLisDVp&5k6xia6udjRkFQ@+qsl6%+~C#hvmdWxd&G8|qBFSE#oZ zX%O#<;!VB8p11>IH-TUtrH@Mu6U30f3x)1!k%Ock!LklW#^nc-ACK$p?M~i0p#(Pjckqw`Sj(p{Or9{mG zp@b27o4iElZjzRfciOOt40adsJ*Bw4@QsUEJz|%MPgNayNTdY`ytdq*vWzx7dlsHG z#RFb?!A~>fN%-UoojdN0Z`yGe-c>60ty+k?KswT$Job+`yzEmu!VXK2RmikDL@dOM zt1>|0*ht*?DP{rE*0|)J79HPPO%K2mp7NPK1x*?}f;)xH#YH8UG?q9CnKG2ZV~6Nl zb!|BKov?)?bT0K_v3gHKb(P2=?re0_;oFqR7EdV)=e4akDs=|5j~$EqlkoAfR`|Yz z03GpY*B9@N#1B1$HKk1-n21H>?IrBACO!g( zr5gjW6n3kQD6E}NQt>3ziLbE5B7NvLG^$_>iM*t#C~bO3J`vPkT-6;(70c`C)3vKo zAbf~z6BC!Dv;a(|z1Vb=+mFZ=o$jasyYG{xUM!~u7N>!y={^1Eud!d8PC@|pZBaTX z{}X9CkH;N7B{C3+^cOqiW0&;y2c2P!V(9)hmLoT~pc1vhNn5ZxpZ2)0u8_ywb!3)y zL*ZBYl}g%qpi?T56!y2|WyuJcJe9`4V&77H{fEBnntDR%BIoxH;e|qTHcRv*suOKw zm`RDk5g>eq9bY+jYn=glJ05Q*CUz!ySY3`%#R;vrnKR1ge}}_|cJ|_pkfbz~>k&Ay zh%6`84``IQGq#o6(@$SE>c(D7T&W4n^cns>629je<$!_tT-1qynhq|Bw~=7{YVfLf ziB4c**{a`PIyAXwq}XsN{Yq0RVnBxO1SW%&8`EQNL@+h-bQh)j#Vs8(9tNYh!>O_P ziHF@HGA%M(^ISca2sE2;DYd0;4pS2>e4+&(HY8H(lr(HAB&o3qnwV-MUs7@1dHTp{ z&A9)Iw|84^BT2Re>r?tslG%Yo>QX8@PZTdz+%1vZ1Xa~%kB!MdAW5PHBH2hl5_{YE zu6ds?o3-5I;t?5{NKnV7txH7uEj;cX5gs10W!a696r(j|r3z<{MuPv6`;EC`#8wH{ za4}(&waYv0kuG?iT*~zYok=&UV{>FB8o`ESi>!w^x>iY#Sl>8?j02^Fg^DFbT$Ta` z@MO=xeV3_X!(%f!fR`X=m1u$8-eeAnCdOva`u4^S*YcI6Mlm)}h0cV9SlAs17|e>P z8!U|NSoQ@~jEN}d@&yy8#Kb>D@VyBA2*xtTm^EKWH9q|vFoE--iq@j(L7`iB(Q9<134X#?QWt%T7DV~77UxYj`ND#^hYl_1)T4pLjP>fZ8-`if| zYsq#B_1BX5>LLkOBmLiU3&66{{ILWW{)4TIHAB$B(KR+co`a>A&k4*Em?f7jg<@rb zp%Ng*Oh|23pW1~SnmIbc2XQH$EagZU*te#j-H!q?h6vcWdihiCLayd1Jzw}@hPFeyuRngiS@WT=6Y z#l#$Zq(x%u(x|BiG_o8BYGThZ=JmGDKDmVcvRRr<@Ao`=LKF;k@=iq7^(>zb?|~E1yAw(HZd1^-%Z@=c z>i2Ct@5=+Pb7v>+iFk5R?6pmu25T+gIN5UIdE|o;!OH64^cRwm|T8-2+rk0DX++^s6p#=tPY z<+c=q<;Q(T3+^JnE|X8o;8_QF9(1#5Hf6B!ib|;CjAX&@i=uxkLib*k!Lk0VSiRgv|p|h%3$%VRDURPb!3gG2_qt7B&e^ zHR6CJQT&||+L6}Onzn8q=y%Oiw)9i`G<}r-gq)!SXpUbdvwtGeI|=|LlS#ql>Y{Yq z-VkzB2Lf7L1Z_dg^_Z<1Qzkdr-7Qe-$bui3Fr!h0@AS+FqiPC}FT|`ouxuU})Db{> ziZYv5+-e<*`hgHOP*Y*4frL>A0lZ|hXqU?T_N-o?FSD`|N?kmh*sY+pSfq0EeP(JN zfOMJc+keJ&U&4oh;l!jD#AO$RW zXoDVXav+q%{?w}RDC-^&=!3+RHaUUEiE4V-#D{pkSF7_In1Vq-J9$x=VTWX|HW1!U zdCw6iUfGT%8a0U%H%}2UWe~tTW+VH6L&)<-L40KSk}mNCk*Xq~BrLZ;5*4(gx|6$D z@d@e1R57av)P^Y(Muf3VTnFGfjnFK~ z0RdbWr*K!4#bT7G-*hv|#{^3sEdmRD9kO7d(H^kSXbwmN=RxcmC6t`bt|ll`Le|D> z+(GKV77|S`Sn3(umaj7q(n4{HV8v{=Pqe&bualbL7 z!Ez>P0*JY>24;k69&uADa6L?6vX~dG+_$(s{@sLyXHtBvBrr}}5CR^)V%A^BV_Q$e z`IR66G)i;p(a^d4@6BLyD($PFAzDQz_oo_hTISX47%!&cDp_1xat@TNm|X?lDZQc| zvB&B3A>u7?b|7;|HOt6d@x=TCaK2QbL0_4EQLVVYp7S#yDd^A8Et-A}UTWCnp>qJ6 zAwsTb5M*PFN&)G;k*2CzzvxAc3A>_>-OX6pW3ji_ACn23QIqO^vrYey`0cs$of79KyTeDhb1Mi!D?Fl8aX`&kk0%oZXV}K^5LoLKu7A z6kc(w!Fmvg4;q-_Xb~XU?p_Ly19A$Fqjyv$%_231nQ@4FQ<(MxPQ+ku7!@$PjUe8M6$Gi7(d=$*J&{GX=n%+hp`EUXWKGcIlxh(;=2|U3z*yvf;mtxzEw1Vto7x* z4gqR7+6OrX{yB|3-~=%)g%uPMW@EMp+HCR&UXU#iH1OPF5qPqC5(o};QdVT`!kTzO zHODAoUrc4>c69KssliTYcCUU0|6DXNyKJdYsu}3ptdSEd+4gya(3|@B&TKXje}W0* zPqa$wK0`Q$$fnXdk5!u^vZnXt_~Xf!@zs~B|8;R3a_@m3PS1`4kb;uSF3DmO%XIFS zA=DqH6PmM^9N4*9e~CrY{d_ta(+$kOWnvMB@Dj#`?Sa0D;3-_gK;)mvQs1)I^YWJt zfq-9CKw4tif>9sWk-Y9LFYY z)P~5rKj>NsMxM%PLrSzTY2}%xkg|Q}CzFd}!HSyhEs>fqb<;{=@^VuOLP~H_h_KG0 zM|Ndn%#pIehi7@jSsQzANnIrrJ_P}q9k5KAJig;#>eGw8OnsRRwv03{UOA#w3|E$0 zUesJ&U@we^m`l7($YwUG&`;7`YdGc z_1>#rQ)Tww?eD!w)p@)BX8(Pfr9HH$x4)*@+JE)iuX}G(X>ay^d-M8LD(?O3_wV1m z%H+NK_19nb^HP5O_U)TDd0GFu_X_-}$i3HZ_V*wl6}tcK{hQZs-{htL`rZ3qU;Wmq zgI{0&`eyIFsR_<=;%FV}MnVDL)CQ)#dk`<6(B!drV{HeJ`%bnb*y#hogm)LimkbW6 zI~6Wft>^a94h%&cDh$sm`F40yWDa7>izDR0_)`#~mvmqK@&yWi!PSOZp9u?i^&AhM z975^65qEGAJCt`8^CC&XhyMr?Qp8ag;zJi=eA*%EGS+{Z#$|NG2}9(cv84vs1v6$t zMN3Xklc)j_6fb%UY|Im?(K&R?^y?SAd^s#_TsIXXuiM>+x!SzY=YkT#BJmS9Btd= zBfD=T%YrZl(%!#``@OQ=9yiOlI}v0hb^||R`_Vg6ff8GN>v?1phme4jFAgmM0&=+P zhR^lwSIkuLlP4NqbSE$aVlbiYkwN`()E)I;CdSRYtZg65SH`mG#@p-Yx z>dU}lxhrrTt6Bib-rFOq~UB1#2ZeX?*r# zzMfpmvDOv#jwBG@|G2sTg*!r{QS~ps`W}gcK^si&HdGw|#A0a)x}LAU!Ce~7wS^KF zj0pa}Mx)XH?Ta(Rc`%j6<6Vd(jNwarK}+lxnb4wK&+8)yw-_XRbDRE}4<F)Pu6!C-G+4RiF#3>6t zktnTNm%1Fs99)KwdM>Mwy4oAw!4Ni2YUypAX zBcjNSyBMtM=cB*#6un3yoBpt<=N$zg+V$|$H+}TAQ@pZYL5XtmK|_fER@Bf|!Ea?L zxF$Y%JTP0mZjhBdJ#5~Uxvb##+ev=iPV#O$$=mHDZ?==XE|bWa8~^D+(}@04f+O`1 z$$4L~HrSH<7*iw&H5yJq`^nsJ(@(@aaqG383QmGp!B?|S2mw+fLQMy?SB$L^Zw3rw zavkYxbFb37giD(2kt%&Fy_0+4PER{j_NjMPZ76lj=4acfj(KoZOlw^a=&T>@QI73v zK@H^lgfS_~i3Bno&*cg0qBd?SkjdQ7A4NhPXFBy#v=59_ln`_ZPS_n}>;dhWv`B1Q zTAaa)q@tl3Ei&IW2zn_$w14=_JKSkU<7VAqDsfbwm*2Tsa9?6-%Rc_I7jSPu9^@Rr zLAXaCOAbb`P@_1Z#d49?Clc6)75ou#!*T7wOZd$^Jo2?zzv=(%g@-wZ1t;JW-?5Sh zP6+UmcbNGD2Bjd!AgN3TN=4G;2x%j*mOJl$ZwG|Ul~%E?&pnodPG$Oj9Gd8SX2>7!%L@~16MLM z2gkfK>@;v-y=`d`=Wsp3mGrs`CWen1Q>Y3{?Mxz<0MC)1k1pWLmjH17mjbXtk4d2; zRX>ou*sfGeIBIj$(wEPXA5NuGOM&cpsh5AbhH;s8r2taU(mV?T-+aB)(x0HHAxxF))?(%^(&Md z)8Zg2AeOVVuTy8+ci}U5Nb;9?J(A6IZ>7|uOSGAT^+))-!rrV$9PrNghGm3qimyofz z0{5_##U6_EO1qXcb18Zad0rSHD zq&MhvvEg%=A92#Q3xB2;zm-xc>m~p+UlNy$x=az;hSBlVTw5tU3 zDhJcR%VC$|1e8PNm8BerS(8u4e0T(p++WHGwEY&Lt}t^PyNz@NMbKqP4xU^e&7dvi zCBdt@4F5o%{ZfK0phi+Fk#@?E#+P&OdE3d%@MvRHvQtji?KUe-%}5h6BSO9pmXA(p zajF_0o}P|j8~F4m&2&Bo0H&vZutHH+tNFczF`&=0BPT5TWFQ0s62roLFVKHQ4Fe03 zomA{YX-Y=*06U<w*hZc2hlXqVH>$nzf3_Vrs-a_su_M_3w=fKi|hH)~v@ zSvewnxnIv-`0?6y2@jLa6ip)%64~M=@Pln;UPP-Uq=HN?BO-0g(y#B~58Tb;HMDgdF=QL3jBNZ^nUH;bU4Epy;`Fwa2WQyW3#o>u>v|G6(H7X`QwmX^U*(o?nzA|DThH^^86yC zr!lw%_8E@5?N+r7b%eWaoqQFy&?`Py?>2eK*M(i578c>3y2f}b%vbhDC1A!z$v}8Wm8cu>k#P$fU z;W;mm$;<6QB#&^GGZ}tn$%tbSoY4x%V>y7C$$aOt!Ry<k=D)!Y8*g}B!+QId981$--faoPp7#iG=5QmZ z$706Ecohr{7iqV~(gIvD*<3o3#<+lf)H=EWxnFE5~7Nj){!$GC-Y$)Dh%H zj(TM~`}wHGoh%rxUCe07krms92iJ4nB{1~pHGj&%I!a60rNQ06$mJF;gG&Z5&#z)~ zkpwr!4czCN7tkB@Gucm$6$vzI1KOc_E~{JgrF+>MHCaIob0Gt4&IS-Yb)S#GufMUI zW9nzQzCy6RSnV_1d6o3VsC6qLp9MkafuaY+Gei$jqSNM#*S4MCcPcf2Jt_XuYpX~s zD!|RfA(h3S2Bc7(o>CZ3Ddc5_gdc^GNt8j$vmT)k)Ts9mNfx{F{@b7J`fq!j>tS3i z>4B4Q2i|)*;u6>)oxrfs!8<;I4U2|PVC8xTRRDjYIPZ#>EKT8S81k4zw7^9B6lmgrz8nzI! zJZeE@erZ8kjxv^{dF~)G2)Bw5ICj9 z7TmFGM*&`t*;#~eTfyFuml#Ts6T4jYbxFBfO_%zaw2YhOH+VqiCC)(V5(YJn8bLS* z!wJI3G6sv|lRZ5~O||4{H_-7a;@#St1-`5nI!|Mcg2M(b*E_K|{lY}Kc=TA4;vFvW zoX(Kq9EV3N{lJu9K66R8c*N+C(6D@(4>-F^#tmr?w%9n;ew;koc{YNwSq+mklSsyp z=$zwoR65S~I4z;1aw2H_mBAEUxyW>RkGOsxaJNuLAvvHa;A7Dx6gmMWlemID;J~Dm zPJlTw>=?zmRM-mkbA+kth~QhzxqanT3#};JM|XLm)9@#m(*muWg(ZgI4L3Brjp9WL zFttCp(IfNt>-`j=njX@F)}^bEWRR2Mr3ZaNl6G!oO9wXZgyi|Y(TNR4f{x^wI6J1P zFdX=%@&XuxVk}rW)INn!ICU`&lT*@wg|CD-lYkb1;f@!bHH`UOHs9jd6q1HZA;X?K z9-d_Z6~2`W18Y`u0bVM!3;#M*QoP&@_Q{y`9ougS>sx=oX~K||wBraZG+P++T-(J0 z4%8(}5Te^=AAs%Z1hAt9AmaFH)wBjl}5b+Gri&ym~vfMHgn1TgRfTJ<-xOH@@C~o5fU~DD@0#h0&%eR?#&33 zv$&*iA0@{OVJ#Wx2U8=yc5Nql}(Af1(x%Od2fo7d#}3>1es*;0o`5%_mEG zNzw{PXtWwUJFJ$i>Y1jF+!)FP?7-A<{l!BFPco2hzgD;qnx~1 zeKG%5JKle7aDOY3$6qUiHo}=Trr`z$W)!SVRNZyh2n)axDesMVTGTnqF>Y_?eN#6DDo(gaUU_ibU3@9lI19#DvnWixa1)o7o7WB1G4ukmW#aBo8A!~%AXOBwJI&GUk&=q(m{ZsL}(j?=i2NV64QQ4fy@tOVcJ z5LZb*5wXj=WgpcoZ`@1gqidPm#+8?Z)o8fB>|r>!I;+-mYo2MTDLOD6u&Whf;2j}UbEH|^ zAMi*K>jckcMM_={)^cA^Gvb5>1O$rZ8`xLtNiGprz3_V$bAO-l;T}41w7I4OjD1DkEqMVJPNy{0DXimRv*n zZ|Lw)afC2BIK67l{*e-!k>BVG60gS`O3#?p~uWctIz0 zv=2y#Mf`5Ks|N_(7&rm?=3G^D?blwyCqN|Rx(AFObSigv*p*QyY}O>z!`L-8>050w zs2U?*T2TT*t1`U{OszV0f|4S@=0aM-RNd6@{XHjcr?wbN{$s4bfOOw*!}g&yI+Sy z(Eoyyj$!!(hhwLi{7htEb`R=E0!Nca!}~|QNkkzk4m=!VQnoaNotbG&5j}fBFrI}5 z(D3ojiUfLzqTIY10lGzN!ISF-g9(Eduqg2L7rODxE9^d!?5S6gkmFVrJvyZ!`-UqB zbhITFL-M=fF_iqmyV;FgCXg@G3%q0%fjx-H`RW3me6?!_b9g+W;|Ut-G&r4=-#+uW z2=D_Xl>$S7h`Zf?A?QkuU!#;V7?zw5s6^LZRP)zLBPw2@V4^4i{r>675b%~`HNzob zgW*S%6rxydjY7Zk6$O(C%&TLB>QWFE(@e;<49z77^qzt+aaPQk)8u|VpaY_w9{Z>SX z5TGp?EZSHKFs%-cWJ$|Sni>5oF*c}(KmoHWj1{109V`)b5xbA&z2bRYIk||6d7u-$lCzUZAss)|e$-_rqj05=WK0F{kx-YCAA6pU z(0|%MJHp~Nn;WQj?N&S^T0#_lGG8_8Sge-u#-s4|uB-0#zeD$vpJz1gM6!I^?x}b` zKFQZ5pP6^mEBw9+xwgrwUQseF9PY`<0O;&jml?E~$?5s?5q5Ci_yX}TG056<@0IQ& zZfE);qOo}OU#PB0TLuk+vyk zuU{eqo~}NITp*Ar(qFN(trmZ}_X|=SPvr{<3m-R(x^Q@F?CAMO){E$fU!zLGS*=!F zl5&?gO-|X^r3+k1dQuf86jEEGys~`C*nx0~yCFDL0lFEA&=7r*7No>wRVoPs1u}xA zI9#Zv72d?2r5z#>*-2d1pqo5wc;w35%-ltMd4T)|8&NCp`gYJ_XMTW}DSJ{!#o`mLZBhlF&lg%Z*mvu! zH-{@q=iV;ozpy7qzzqRu4m@2^NEjoy%bo2eV`MPURA_;(DBo?Qrpz$Pc~p?=DSNI( zDUG0xaP!Tag-H)kOeV>Y_lUdLAX;#$m@*PkG3oM z8WBJ`0HJg8`4rc)`BSXa2y*3>0rp90BgWvno*zaLbPZ#+N)$*gtaa z{UQ$A>TMuFKF_k+H{UX{m~RPth7&;CBQsED*?u#o8q%{M3gY^kFn5dDf_(ZqrW?`U zc?pV4)dL!YMqM*#p?8Z!fLZ4HcSd31G`d_Ss)C^ph=3~B6wgXLq;5>LC&O#QjTBT9QY2tE1S%Z=x+S}J;WF?C3{d)cEsyg$N(U2Gkhp=Q zK$u{J9RKhN1>S|TLI6d}V^A$0yy>L`*P;VB&*4B~E z6{hJYHAmkA$DhENtibK0PJWD9a^)WzS|&TvA9Mx-|@l+V+A$Y}h99i?KD=rdFJZldp*Byn?LhG|p0w{3+ca2bPbF5B4GT{4At zzZbh_uu`)&`h)mVjSvEZ#VXgCgMYcAB0OeQq^K8`_hSxnaJr}M8_kKcB@-j(x~@M? z=x)gmIj{u=e)-p~I|zt}*fAN98v<+2tybjbRa&0%A zo2W;a0OFKEF#h9!gETq4f7r|yuyMn-c>%+Lw*c1D<^n={YXQM6T!{c&5+__T{1iCl z>R16TOk?!}k7!zH%u=ejhl(lCCMMeG<*E5s2Fo^w31HSnk}u1R7b!~PQkrGLBL-8d ze9h`$5ZrET!0^%q4q3^_SND$z zg1<1%RN$c^ziVhEpJ2ct=!(Q35qCDpIdUm~2assK0-=0D9?SaTEG0m^>ex*s zO~fb?l3LWbcH7XM81IpcVbhuFL_moJEwDxy8yr93@HBieQt2r&6{|l$q@Q5qRCj9X z#{h$9FL%)MvVwE5lPLU2?+}RaCo~M|=mE@&*i%?~1|XVOJFuhYKuwRabrq>)a+g?E zQpWlzzA&EUKX7+A2!{iB_-#f?-tPAF1}rTl$pY%7qEn>H^;NBrO2aqeyM?fl9?16c zBT?zfhmCAO6M&Rp0!d?1`UEJBsRp&6od6QmJx~o;&+DPyM)zee!wd6Xzm{g6S!waDpBTav7FZo}|>T1BV?+!w}8qkvzA= z)Ig)s;lhn@W0aS@3gd}&BCso*y?3J{i62}9O0kC9F#l}oHcR7^y3YCx({Um(uST`7YCDqsev?{nIh`F2p3FA9Q z+|(#P$CWDFeEH7%Y#k^V`TZKY6I^GG_iD-ad{Ad_wZu7apyX~D?l8h%I=h}HHw()O z>!Qx%7-E;%5U9OaSL(IWCXg$)qzP)2Xr+P%(rOiS5&IB;y~(-q>5>7nY4awQn<(t$ za?B4wzqzY}F%R*=H}Gq}<%Ug~taEh=(S&`}Zk1A`Wfy6+gg>r6ebfMpSppmeo6Um; zx7j)n8d~W)y#t}sy;|)=EetYO#XST4lMu-eLk5c{$IUj0M|5xI@iG_iSeeE+a! z{FTCplqBU^b%|2iuIg-Va7shql)DvE)C|QSRU}1`iv<#Mz>G`xvh=ymVp?%U5w7S^ zV?{I$@nR+5Jtw(}As|feFC}l7jaISVi&8jCZ6To)I`M5GyT-<8S=0G)T}Es=F&LF5 zo@u1{%$kszEoHg$2E{s`6^B+NsUujK6|b=;{jXSPNE?CCoPe@=sDIcCkt)+3H*$K} zTliuNEK`|F)Y1x|3TCi!b}Pvr$1lC7EZ=NDZgM&ET|IB#4evtrW}!e)%mhoy2+Ime zW|H1?z<4RM;L)#?iRjFN8E`kr+|6fcJp#`a4nMIB5^vxqXbMdAMv&?w(254 z?-f<7lhB7bKKb|%DTeoxCE|euAQIzL?ALnnEuXluu|oS!R#HWp(#&?Pkqu=dE7izj z2WB(sXX{ zEQhR7Q*hL)*e0eE99&EEyQ1>AJUm%&xu>hmRJ3dl#06oBY$UFrHjXZuDeq&$cD|ZHsZ8+2us zsmIfsG6rj2zm|i8TgGOPdSFM=(p;Jo3x91PM)XOb<-H^>F z(lf$T>9ENsE3Lv%T(-WFH{w%?aTO!dILS*axsZDE7T4J_36Zl+1=5gjS-d!C@i&03hH7yoXF=& z*s-N=4C0EkX9p^vop)GAZdwbUcyc0_2E!u%Z~y(jf04MlC`9Z}$e1kGTX;r-vEv(V z+Q9}?CmBBJp3>=#zbDn810A%d4H4=hq=LW(+sq{C6iMNlgrFGbi2~r&LJ8s18QhMY z6xbnuKKhdZ@Gz|@^;~Y==%gc*?lG0m5>F`S6-SPv>Slr`ZCrA2s`Qc*tV>ng^6Ny{%YuMyVUTjMIj0 zilu^CuBp!HYnBO-Mxs#8R`81z3M{Mc;f(~h%F5(U<}<;c!5di1v?b9N3cFiq=)y>@ zU*G~KFN%5(4RI04fnqJ>zza^pIgmC9dR_~DG{;(Jg(vc|N_3KKWuISgAl^JO3K&+PZn4! zwnzorf*yQBdy`vPK20x0{w76~V8%KSY6O6mhf6Gc zOO=G_CKIhP;*6$f8474EsitGf5 z_SrHfBXrUv7+aE}8x6+ts&0a5>vHNhusd_@l3~WS6Mtt{*qZRyQu!I(L`t%5%Ci1| zeG<&taOmmE-mF^S%6eB_nY3K?^hw=R+}xijcO~L^#dLSOXJJag6elKuIy}of-z7)# zTWZ(P6H6t=Bggw^2o4ChkW|HtfZI?xfmwW9@pOs{mDbJ~%eQ@O+sW|I{my1#^ zbOWqwWm8*_-ttqgwM2$GVgBRON4a8_pm1s!MI;zLL74y$7i4l9f@c(4Ixj|53pkwc zCe*j|ELbbwEO3ev&;wkN<%x%qY`)LoZ_cMvq^E>=sr;Ro3QE#)AIjS06?daLlV39! z%OdeQ$oQMMlin#s`bMdnn)X;4bV4Z*d1h9bnGWn*Tf|TBc(dN8%c?n~fs17QWwC)H z=-O-`XG%;kqoWmc7J|lT>q@;>G#?o1C0HkZT~v(kVse`j2Qt-4!=ZE~y=>&>SSOm7 z-@1@1G|P5BV~E{*dATEHRCo%jn(5@B>NR-OCUVATq6uEXT^}ADTpgq`A6E7BbctKC z331z0G!r;GOSW4K|qM8(886|^w83o&>*zBEJdb5;Q zVUx5xww)o5DdZ+Wm1@E`OD48KS#vwK#${%rCieCjKC!hG%4#v=>MyX4*!o8^R3Og` zlNd5?;_s*Nx0tt3g@7@h4qJ)z0>VoU-1FDegE|S4fv!qiD5)Y`C)W~(D|(OODf=Op zP>UcZg4`yFr$wiDn9zYNW60n+mspO;T1MhjjKBk(jK;B|irv>6 zOn|;tXD?!zwc1^ROuI_tVme{0 z^jY)hkXH|AXC`873IQtFSUoPDbIfmurS?^wU4R6i1_ZgQZGs z%6SXOEqOC^g}hmv3}s0tRLk#&pEy_`T;8-om^4i4sZD`sxBp4jaaxD&vzgHJqa821|y7$kXN2 zdZ8Ed1cFpUuMDFEJB({Bhd6Xz!+(sUF7A|ZW2T3KTeHXi@&uuFB&YXqS}3Nvc|b(e zDs8kWt5TG?r@X_4S%yt5qxey;{;F5A&=XRj*vP^AqH+bU&_qRLEW+;EGMUL-rWrAO zmq+SCIUXM)QmVHL(-J@`Uj9UU(D3h}3?pc(h<71vHl+Z|K~rcr%I~qZ;Sf`9H7Sq8 z1#ZP$iFr@ z4kuD57Kr}rN=omiS{&{U`f@A`FPdvZ;l|lc32tPu_>j55w&z+}ps6eAYTN2chzb>v%kkBT zM+@#=Vl!$sl8Zr@MIr=u4uN>ygTeOgyVnT^=l^Op#-jmK-2Q9hSIgT$NH?WfWen>W z;Y>}k4L+F%1CoXpxzRN>SwjL?9Pc72^Q=^uU`N>6{PV8`LMc=chAF27Lv-=K{)!~a z#lQW>8nKWtal$=-;W8T!=D{_JM;sJbOs?RWrbBQp7PSnF0pfGmCrns547czutNRxC z2r(;^ja z9l6uXmMERy0u%MRmMJfQoE|6evdf4a1|H=tvA-W4wP4WNHb_>;qPoMP5eHKn*~SfN zD*Ut93Q>+LG*0soSZ$`f+nSL&)l^PNnFG935R!A$s6A-FSxTEngKkdC5FG6Y~cKRZil1oRh8X>I*`$6(~(n$!p#!~^Vh)0Omz8{&1#g+ql z^;(w)K`b%If^AEff97x^Gb00u_~u2z#c3)+`1PmxW*jW;@lO`*jDl7J5aseduoXv{ zw>Y}MI_C;Om?F^Wa#>9`s|Kr?Zp?UHnISpO;v90(X8-&%vT_v1<7SSkz>@^~`)}O20t`J~ z8S<9kFcxi;JEh`6bnnEYb7()y1F|CX4K7BqU%-hdtTcyZ1~clA{4gPoklWQc#J>5z zm;e48_dz-op~x{xKW-585FW(+kRB=yw%awNEn~)~9cH4T zJ=O9I>Zu9Cz@BP(wznqq)VKS4AtwXpRLe4?Y_n8`_Eek9pq>hb-FvD{WoS`F@Kho2Sp|+oAiQT~iwkxoW+gFq6E!Wr4vCMB7u~@H|1VW?~V%_e1WaIN;{I+%0P2oLb{$W4>v0;E&Cfy z))solqLNBmM)DHN&S|8Fv+dSjN<;^$-7>$8r+gkbP`<_;YudNK6t9Kh)z!0YEfi)Rb8r)hU%g$*GZ!IyAZ8h&(i_QEtp4eJU zI>TFwwI}5Ck^o%Qbc4TuaMSPyf(9M@esFr0Ab8w_S6S4L7dH?SIQqH+kh$tS^OX#1y$V8^f`?(C3giO}BYdg7b@B)MU^^&@% z@Zi_u5^v^>iPLs5SfEuhK_)pC5+uQT> zxFh-x1j5ZliWy4#v#Tvfg6@V$8kqr^N=LgY>Kz#IU`w$%#>0p>@cP8ydQ>t~MiiyXc5AjILEF?S{=%>$+aw{nc(3EeSoXwoS`m&E-y_>Ah`Lth7&<*DZvsPw@`-hh_#o)5DBv~A#fl2pzKY6-x;kpHqQKi-Q5+u- z@E%tOaJY%lIUlu&2OMu;2vHILss6_CuZV*mRVR-AEv57@?iJyzZJzBGk>#b6jDLz^ znH4$DSDYTYP*jqIfSo=#9Exj#e1j$V23`0rWlEYI8h~0Fbf1->SziP1Wr)tX$@C}! zbzw?r`En!BO4I9@wK*m`gX8(A)H)M_?hcud4N0qiyn(rF^y=vsp!4Hgr~Z+kSN}-X zt$(E1u76J3HJSUK-Kl>h=+!@xb?YB#w(FnM7WHQn?itzwwpVjc)mZ|Opx2yZqjBoc zhg$tQ^PZIwb(#VRS$BcP^tKmhPHPJkwx&8gag$)Po-=Ncn7I0gS-OR?h1d^d&E4ef z-oAgOR?7if6}LQ;Sn<|dMu?q{Ip3Dz-a`|8N}QO8bxxumbSM8o@s>7#t=&B$_fxUN{@x;_g+7@;t9|g#-ah18f-!7KrL)J<{i<7D-TG z(d1knsX66CBG`+7eYp~&+F1)+cA9mOTrhAJ z!=DvZoHqeqlKHX6tf_JJuMG;MIyW)D1v}S=Ho7?_Oif82 zguKK(yJ@#hpRZ2dcVk1%mSmqEyzS<^dbih&Oyg2%78|E(mJ$ZKBMrXzXBsj`xZtJy z2f_~ZP&|9#3NH+5(w+R3q_q778s1aA(9PSFLh4aUThNI11>fY91RLd_mv9DNHIu~^ zqeV4xO}XJ!X!jss%E0rHV+|yiK1d*0v{Z8dYLWnT=NMOI-)ngWB_A0SJ4E^kE*kcT zaJRwl@w9h4Umxn(V*%VXT5C~sOaesqO(Dc@nXfr|JoGeTiYQHA&Wi0EiN(eWr&%x> z+r|K+PKTitBfgBWSSK7PP14@-79?G%#|mGTuk zS*H+7QWB9&4V_Xls*<35%;=QWCM=1wqi(0Dl&B;oPCT7LED1$~U7oaKCX-F8h2>oc zZX6ogq(d4k=*7$!ARS~#G}@biMxu+S+Q}DI0^cee@ULFp)(ec8qk47w^2bZJ9MV5* zz}Wjy?eq-%V0^Ymd#=LK?^F5Fb!8>8D?jdJ%_MzYl?-E-wGX*|HdXLrVKppK8WcQg zhdabDhFHixlWxI1jGgHr2J6#PG*-p16jOzF&LurHSSfi|c(R~;n%y-QUZD@(;CZqp zPh(s@vN)c`3r6Rz^)!A>`)5SxdnuE}4tdZ)WyHYm*Gal_&Jzn@gqfZoKPepf2 z9w){KSdAwrpO$qw!FnolcCBnT#aW>UKoa}OZtP?4iWpV_E=(OBA%~xV-hCgX2Rzko zNyth!u5(KAFE&2-%+rcLy%xEfdOAx!EnUQ^sTUhOO!hQ(_*$BGx_=^nI>zKv)qt$r&;@vx z#BZt{Iyc5r=VYc`W=J88-0>a!84=hDM_Gfk8}S_m*=h5J{h+jheqq!Y!iL}=*rKo# z1=t6v+2*vD1N-U=sUgbCKQHzX+6|6K7kfW0qI=sGMpp-PfqgPxxTnxNRyr*Y<-r}N z>9D>5PIb3`8n4UZ(CN~bCQC6jyS5ai)PZu@%a_Bspke0iJ)9RQKAAVWL$oDPSDZTx z=O|IN+T@lN&IoVnRThI}OPYrLaDs}Y(W0Kr2DW38 zz8NMp78$a8F#G3Z3J(H?X&c7QBd~`WYt*yJ%@xn|Q%9Ztj*2q{-9&;LwAA*nH0^*n zjH9LHFt(5o9v9?^khb5Bg~67V z)}g~vZ;5#S^CF;yOdA6mah?fiunT*#6xYfbWvlMqDnsMcnjTbJC@(i&CBp?=6nHAe zRsO}_5664o_JT)0QDSCbG3k>a41(ff-1=e>i9X6!puX0vlr(##gdV<58zxStH+iqg znHZE=-8Ykq@i;9TBAmGKI8$#tc8@hbAHf5Icd_VhVUtQxUq_UZ7yrRwr*jYC7$;V9&Oan#_~iKt=jNJ+8_%tsypZky2D8%msZfU zHy-lc{e&?n_y?m{bTCZdiQi&^v8A0LT6K|N6CYB+pxAVJ90jx4!+q)c?{penP2cpi z5n>@atq1~fSysY|Xa1}y3LTZrZ;d_AFy||UZIw8lW$f~J`s%wol1USW*X3U7a{E$1 z(ZRIKeRgl;JU?{H+od4P5s|oe?y+w;m)+o6*7B*{!@?|h)M78)3O1Nd$w@_uIw){^0q2AJVYqs=ffg><8_n;)Jx=%!*RtaJ2r=69>Ln&ewZa-ZA1k%H-Q zo9~H=@>*j?5d6a1Er!5Yu3c@0RIza+m7AiH+D&D5w;a-$7Sa-La6R(#_Cu*@3v!Uu zhdWg=Ygj3=)U;BHym6)2wCYn_p@ESAENykI&4sEaowlMvJ0Q}vgn9jP4tFy6{EL9n zX-)IkyqrF4d^71Ifu%h~SW#!A6pyg1v>|kp)f8qE43oZe=M8sY`Y4crdHGb%EA#`t zt=HdTx9O8sBUmhs=t9wo+sOci5{VlUr+3&ine4yf8$X|yd>w@Dc*p%vL?hU<%ReBu(*ApdC2PLqR=Uq2!{fcpoK9tkOaIPmSAo zZ42<5t3woFI5w2QC7zEdx4FE|apd|B%5W_>Zhb=G2~b~g9b+(1l&Nm>>AspDy`)^ZXjyfmgUW zh9WLqddpp8(?=JgKuHl#!N+py(8`rXD}PcGEvV16;|in1Ez0$JbBowm>t9+xG^b+E zSytP~tM?)0fo%=sGXnI|qrN#E9BfwKy0ekpR4ORZ(VuJTb1~xSu)c9tDBH1-#EJkK+ zXlkV2B}1g&ts9Wzi3M=5YlG0@ej=Nmd+l6H2l(F;^?U*+EIH?iJhX=K=<*YW)@Lt* z!}G39(6Hio4yFe-d&W2t-NE4p)jDZmHSkO z>goH^@KpR1zRM)(dE8KhOVuk(*d3nlg`7Qm;Typ2lk+Yk3-h$oI3ZTf+CLCHux%I< zCEC>kd42u5c{SKd`a`YV9N0|YhKT3FS+MwT{*aM1SpP1n8${l?>O)+@*d`GUIxzTfkL3=}Q6VOA*zGK8nNmAFLWPu>QHFH8|1!O; zzu?JZxqMJJ4R46-vyeu3G!8FuU7j4i`xT*QT9EGu@GxFY8^x@q*nmPH2a;h8SudAZ zPVv1sf)i-{RX*nrG}IBNgB(~S&Zm#+UL-A#*CbTbwbwwGXD#6PyVfaEO-M1#llJst zbXBYNbBRNyV76EUg=Q8J3h0|Wk4f_D$4_w9Rfh+;RNn%I^fJ67e5DsTVWhTQ-fpqzeg?a!O|*rZ`m&M?IHDg?-!d;29n>M18^=hB=7EWCWQafA#|BWPufF!2rj21V5mZ`v$;k2tBG6 zu0?ioiuAXRzeBpv=pfNA=k)+Ndjn|p%QRzl7R~GZSq4lIb$H z84HDlCuungWN^;?it=FDU`%t|ltvR2p>+j3yfVDFF}NKsg;|}~tH<+Y6*3Qxi)F)^ zWPZy73&bVIBz%KIkfDiU-D8CLZto?EDJc1Q#17Ow!BSYyUgVU}%RO+d8h7GNV=hWL znEq=sUsdDkUMHG1(F&((aAOV>lW*85^uvErAWJOR!+5LvC)Dn?*4gv)0vnaM94r}p zz+JCDFem(1?M8cB>XE}`AC1yYwh?uBcJS#~X5=J~{iGsq{s7-iGtEa9PR-M`?EI;o zWv#NL{oohnbZY6xz#*g~KhO;#_9N#2;vMAf!xxYBg=Wv&-P%wE0s~tv^JqE!2b|nl zofohP1zo|VY*k$%EI15sO1KMq?=5+z{*aCfriP;ixRnSicVyQmN6$xxi`orL0Yt5Y z==*B&Fn$yZTz&DFOd!)^wgiMjsKm4gv_J@X89Rk_j$MGbsDSysKtj~-ugP3lQ?(t7 zWYd?u%aKL-8Z4l++1xJb>yas}_^ndox3)+aPz^dHtjNjY^g?vP2t8vx`PO}d9{GGU z4dsdxm28%a=A&*bu?!dDJ5NhE^&sf^}`iudsC9s9oAC3-$` zr|DWjMO+^@2Od}C884nG$Ey+)E9djCkf-tdqVP0AcS2Dr~3+&{?i@>}In?$~FLS(++n^Wtk ztUi2vAcI*!8t!cADw>j~7tcq*RWHCns`peKpS;OJ%l2e)KgR`L2fnIt_MpGNY1=uy z(4|<^4QN{32*-7e^~7=(GK05bF3u{P0Ah6Dp`UMC4hmGT)&r@@rL@x13zx3{lExt_ z1&DlIuuZ$h>@Z;p5nNar@<*bh8uYn33N`x7ACB)I)^z#xwbCHM>I7wmKn2>1m<{E- ziNzR!o?aAg*~Cr;8sF&!N=(<9&F0|&LuV7p!2)2;il})+QyosVx=4~E1Jut5-5I@| zs)czN9pX*BbXCpX5kAI#4i1BM0!cbtoKXKLWNleFqV$n z`ob{J(vw5c=5YN3URV+olquOFP)2PdB8l5QpO@8-2bfxVrpkk8F(7dnPM3tE4=9*h zY@ER%Ef!#S}$~LNFb(ORYy;2a^*p>9->M!zv{Cp_}sQi(k0=|6u%pSK(3#g z>hM-KaZn@E&1!`W|EoLd+I*bf!@X5&1xReqU3$C2@7GxiLrJW);+gJY53$}7S#3*1 z$%}@_0==FWYS>y9^{p+v6yuUO=Tf-FPR8dYO{5%ZZKXiUof&u>=d@SVJqD@CN~euE z7eY(RFXOLEtqY!twj8PSXD?Vx1z`r9%Cd+=(a+1T%liBBOy?mH>8@+ALQ7aHxQI{W z;|h+JS3%npW98;tdG@iwD#(k_RF;7!y2;(EIWE#pX7mt|8lC8pPn))BKM7nY-O^7f z1tL@K*?5eqzu{`G2sAP+eT&x6sb>$iLwL$2gqVKs#nVT=;609m6_Z@DJ1VJoh>`m2 zh1$0qKC!FF5;&Ty{X$o9?BC*P#Ks^#fc$}-5miH$vG6LQ@hh4%oHY-yx6e3NB>mxc zI&q!4f`fPv=DuZ>q^x36#J%CL`AZ#6_+ldENoJD46FXbq=5TouG-*A+WYw=Y10xpl zlke=I$ygO&?jWH-#6_t`Y=C18BdY8b{o%VgkB4B!CuERkB}N<;VK zP|Gro;_X&5Vi_Zlxl6fu*sO3Fra3-4zdHEy;Pj)UfI0_(G*~HsYH`C4F4OgUeTIVz zzuS%S4h4oIpLwnJmRMd#c<_MM^k+X&hVA~e`~ujNAN2&>)@zUQv1K78z1Ly(p)fCuz$GF@)R#I*i*~Gn<7z zs+PmL9hr@Qj`6uf!6~H|?pIJQ#X$esHRv4vrUUK|*tmsL-qy#Bb$}on|L3;e!n~hAV&`-v~td zMo2}zoR`JtOYvY5Dp@24DpVZy>e1!o_~G#CqhGB@+5_Cy=AN<4V*-{k@QMXd1YE$U z3`Z6+JqRg*fkKk@r(RK#UX+K^joVrj403+?k)8tUiwS}N#o8CJ7BL=DFeuSVFA2r; zqnMM`?1teeCqE0JWwznJqa)~(nsVG^wMn+9OAxWZ2+_@=6(%pL^B*ytbL1B4SM5TE)B&GNtlp5i< z`fTW9YI#W+qG>5)45b=GD)uY}g-P>dLwBT@R@{yht&@gPDr#;bcBDMwc9dZ?2FC+> zA%e;+D*k|{0pAlzVb5MHCjWlC-oPbP%g%X?f_@AxY#bmyKqrfiQQdewsZQDd39pKb zLsmU5&%A1f#&KA!;CE3kp5yp$IlI6K1ENxh_aA;F7yT0ADcF3ywh9<7BucR3{aD29_eM;f~YA@u$v24_c%<%T@-gPOUmJ95Pb88zwCdXRhIy!4w|e z|7yz;7cWb#DV(+`F~H7eoRwPC9#hDoNIU+4dKM?97Hf!**OrQq8=ra0F>Nx} zql2{aB~3iaGDo1gCE7C1`PWU9Vs*g2_c8Xt#|LNa^Z_h0iF}Lg$#**wHu>rYw)Zrb zY*6Q?M{PCOcJU4N2=$a{*B@sYa- zDCa~3j&)GBAQ?a2FX)Psj(_wjOXyA3+k3Ei zR)RPH9m9{Ap6IS0w+Ucr^`X^8tb-yeS($OOevu@Y(Yt<89H@IqL*zO$nT7gIrM@1n zKroF&s+6AWQk06WtX^MQXm&dk4HrvY<7YYT!nl(W;+)RBsv?=hKK#0ZA2-H`-abF| z?q0TiW#X^-Ru3+L(JO2i*>;uHq0LHDbL^@<6rCwiVPAK-yu(@4-4lQlfO z($P`6nq(hW+WZ`th~N`&xE{2s4i>ju4d31S^C6p1upfG<*cw~nIO86i#t;?~2qUZ` z5?#RGPN+0vv({#Z8#vo%*lMwuBg)%!bb)AjiR@EcV1Nft%x2f18^^Fe=XiCHM}J+U zS<60@=h%G#P_sk>K7A)8o#gS;ywUb0hfuc6bz$O}5>f3^W+e6T0iqH+IzH`uH#+!+ zQJuF+67J7ST)LPoP=cs$25b*AncMcUT6C-~+%RgVT)+Ia+z6KLGZ0!%*zrjTlTwj} z7zo4q*m87C{7Fu+SB>EMlC6t+z zu4eAlvqg;qreg2$w8g|%H&bhq1R6|}*i!x5fB&s{Tuw*l*xUJ^f3t~w``ZiqX{z~e z|GRjn#!;hlf2*>GqFPUWz}J#*LzS)vM)f8ls%8K1r2(9NxOukDkPD-a%sFc7$ly+8gdS zi?{u6fetB#v?C1(iqj8|r#xhn8Ao>#C*D)b-)BH-=#kAtw^OKt_3 zB?EzcyQ{)l5U~lS)xq%rJc!OwPj~bZF=bjH!>tbPAi~8EoQycpPp%;p^@oP_Dn(x#wQXwyrT;HBq>~l*|6Z=}`%@nB$y{%RUaZ1p+B4al;QzNqIp7 zi-|pW+LY1K_}+_`FP03qQ$El-rSDE#k;qiF@2IWR|=uu5ardg z=U5z`y^hKfmTExJ3F?p1uHOxjZstS{a3X@@}l#0C4ZV~a0e`3@4N)tg^mL2&LuSCYR zu~IwPyEA7}+9Ii22Ag>>gG*9KP-+=kYMsT|D>EP=L_#qY+P+8@y~C-J?Vb@`tOT@s zY`9+HcGGPQPYk)8Z4!Yi-4ApJ1jcaYeaqy z8~xOn8*ku}DMs6e$9RNpOFKy$*;1+LDgRq2z>NV>~qn#$@JLu73G zS{;hz^9PP$!mF8~eaJ8)yR-~gSBYC+hrMUoTSB3BpqoF~8f|SGrmprmRrP#LTW()2 z8A*4!$RO?lb(uD&{9{E(C=+ytRzgx1YuNoQ3<~mLKK+VrRy21r^`v^~tKiyhDh|$H z^vRW-0YuW9!;=%%hNsmDJLM>gr$QZtjwM!FrcR?-&D*OXtuz(*&VH+S9C_^Ge|>5Y zJnJ5wDlipFq|%^{upa3qR5b?4ENhIQZ8#}Ic|k_f=&%zM3|H(3z~Q2Dh0(HL%90Vx zg70gMCD*OKA;)|NA1}_*jF&}e$-#`<-~iM$vLSq&H8s?5*|H-Z%Wi~X+bwJ4b81|n zk>r*<48{bzt@=WHaji)2B5NZ~v&rG>`3S9ukv^qhI~ID=;`)&LWKgCg6Nk`;(xf{C z-eEfB`Sa;=d=}jIbdW36nar1+J+y~IkAGvEIbZ#8d1)1H4Ti1#lyc{E8nJATHuv|B zyVtvu;M%pcXoMJ{)h@u!`a4E1Yv`?^$+Wv|PvL62_%=Z!|DA?v%_Cn zv{YEA%P|ArN7CDey?cAIAIb$R)~_KvB~D7=Be_YY&9+=OY4_~f>x5m9E*e^`LjlsJ zvE!E}GJ1oUd{0S;LD=6vnG>#a>1aX?Xj)xqK5fiUE44J&!tTnOKW`;9mUC|kN=+R?zPo^;s659{!Rc7ik1cAv!u*jCFb7h+hx;omA3jnz-YJs)Kz5gPkHW1ZyE-)F|j)3y9RBq$kpeQsMe)Kk^m;+z(j z2wF~~V}@x>8-?ze$QspJ?}La+jjThS8=AAOyM=g^&7@n&^X9vaA*me%*NVFdwk*8v zqimMjO1`T)*(|qBel}@sCErz@Y?j+5KO4ihlJBYxX1QHic5H4f3wK){3I^^rmTW%S zO1@i`w@8n}w;6+Mspc)-)&kZo-HPsf5S#HBG|5KErXflNLHX4mHg;D>k)%`!DPc!~g$-%9nc2b6-adw^j>Ve_Nn0DhP||)dTV6Li zFpjbjY$w*AO1C|-?UHsj%I(DZGiqmp%`WM-M)E%9?M<({dlLf55QY-jEeuRC2+1(tTZWH>b7w04l-HfbqmMw2dv zwA&@k!LW4bUa%JME=|}XFr5NE0^C2@S|0Syt{x9=5s;QKyZFvUbPX^q!}gDyM*_IR zt4GiMI+)-|v6uUlBkmC|KIGs#-W#b`V_6(_h=UDHH*%}HJkqgM`6A<>9H6e$Pc(R) zJs-hK4u_Ev!@`!(7E)EwN5F$8}HI{dTTjj1d*S03wChJJHO;}9$ zA+Obk)y-aV4kW?xaGHwe#$g* zG1Lc6NJKk~Ze^z>(Ykfv1(XWCMO-ZQFKS_EC zrxGIW^KwBfUn+X`0=KSi<#JxNKHsbv-=+iZ+I5P(sd33^?OuH)YR>2J=vO=9MWxZ_ ztHVrQF%bn8Q;?8;H<=ItE|vl{1Si<-S}3jb2r7ial+dPk>-9st!#!!H^En<;m+(QI zcsxIjAhz;g#Y#~qfe)wjy1=l-{Eh`SfvpeuljJA#&>7N{^gG%l{n5H)%{{n z`Rn;|Q+3LlHxmBnW5obOnMODslW^6=a7qmc?%0bjYP?b>{Nl%P2CB&u1DOO*2 zJTrth7IF<>Ek8ASwfyA0IDc*s%OQul(L?2++7Pc-e)F2ZClvSZc&W9Kca;z>c3yK} zK;!~k(^&nY08Bvo&9@P7g{}ofEq92tY5VjfsYC-pEF~KkHDfG$6)d9`d0ryA$9n#N zr@-|sq(%<88!CNSJuL9-7UqBVQ2EOn1j(Y4rU&q4IYiA};9(;sBCAaH+GOOiHYuM4DBm^|Ja-*|?&N__A_& zuGOLpJtupC%&xgC^r3Qo8LN8g z$|9^^ay^ta+~m#Cu1T>xuv@}`xlqdqQFAxHS?i1S@C!=iRe0jkJrsegZrMxdi;i5n-t~NRjoPl3w|IJBfHJO_ zOYN(zxey>LNsH^pC=9 zbcc<(THc<^METw#Rp3T3Y3dR!B29Ls!I7ogVko+MiLTHfTEaJMa8eZ$Q^DuAO?mx@D7gRXl*36vLUQDsK?OV# z)*5Xr5-*5l>P4&sx@%#nP+6+Oltc=uB=4|Ztu_y9iH~d7LRqq>xYxZ}BHSrMt@=nC z9mN`^lalem$;->;JkM?Wjv*%{?VG*8rBhR^j+6Qnfu8rWHd zbdyZ@QM+XJW;$w*-H?GECcEN|Yp<6N@Clgcag&3lB;WAkV) z7hrgo5hXExG?m#y&0{}gw>3`&7Qe@m6$77F3?q7BJk9X!@h>4rA7{*xTA;(NCX2Je z)J`Ef8FZ-Nk>&IiTN;8HJ|P=~eL-+h@N&AEzTO|rs|xp~LrW=Oelf7gYI+wUSf3sr zALmGl%Hb|}i4oJx84aloKV-OWY$4?mn5 z=r~uoEkM{!%gO2yFRiZEi|TlZox|nG--_rE%|4lBD5jfDaz48VENv$o0deP7 zjv4q5-3_YI?=`lMmrF*(D_+Ur!NE(AE*qYt=w4sxC|>9`*!ISdf;yhfNBT_fB?1?9 z3obAWB*rj>M6U2S3|{T6>#v&!-PGMhH`k(vu}DdFlIqI=lJV6Bo2dGLjYQYsD}w_w zg`Ie8Jg@QK4c-#NDxjM!PY;=&`yM)2Nxa?eE0zarb8J4t_8p!miv$a_r=~ZVeVZWq z>9$(Pv)a=7^6KMo9r~-$x5p*hI*y4e#NMk`8U_d9acVWYJ2TwRu3J;XnDudzpGpp| zr=TtEBEmF3OgA*!?!(c{Ftv?@r?9t5T=VdG*-UN*j3VV)QyE^Jjz9&;@a5#p`Iw3< zdvzKZRs? zVJDrP96o{P??aiWR=+uxwHe>Za7xeTl83AJ>_v-pu$F-rv44g)@OiUS8}#JcOoacB zz4w5Vck456#7r&4ft4Q9ha(Q|)(%C^M;hFQ#cW=>&flK#Dv z88zM9K&V>oi$Ium93yChiUgC-S4kZSjJP`Xq09pdS=B?83CM3jL!XJYCg z_?)1pQ~2J}X;Z*NDRO_Twx{{{{dMnJ~ zsFN#YrMP8kxEF&`Wavo)iX5XIN=X@8JeZhw_od+U4q#C_7EVp~=^0yl4+KugFw2OcMx*w5JLl~nG7ls8DG zD^$~Hq9YtkS)gli_ND^0;?#s?-vq|9l%;Cfad$R$yroqUICe2n(Y-(^3k>D!QRoAu zru03DKE|TY&6j3>#-54xXYY;b4mSIBYGNs?qkL{DxgG0tp+mA>ZIp*`1!c{*>KY~G zE;OfN`Vws-u-M>=O>eN$TJkJiB-JkR&07UAa&)f78HCZ`91(iJ9`6x~Mi2P7E5+Ol zV&ix+4V)#w+qWMM)MUW(^eSSl0$UK`CQ5F(8k@y(3InYtwu_*Gm#O1Y*=W$PQ$~yx zLe=-6L&cyLKjLaN&>CKRO|F1XP`DJCSY5?Saqwxbafy!dLN7Qm0;!gR4~Igx&amt$tMS?$M)%d_h^SXWL*2#1|+{Aht|qSq%gpj<8E zHkZV@$kGnhC+l4RXAn6y8I@Sq>e7%BCPi^DOrQ+);VePJyX+3XC}b2-Amf5M zD}nL&;Z~@F5R%hXkvUaia>Ib&fV_OKM+SCk+=?N$L8QwXZg=c*O+~BZBm|Ae#8Tyu zdY?lpt&db$WFZdsQx_z2-OHZPWx&uofwMhJHXb(na9ej8CenjMuVoqwTrbbL30_pL z*StPKiT7v(MH8(hs7%j*tr@51w|pQzeb8X_@5Sm>x3;n?(~IoK1^2iT&;3QY&x> z9p&`PUb*WbaJKiQLQtm)rt-k1oAk=q%Y~~Oc&ze#I>nxsaD+M}_P~8PSaC!=-E?vvNSgckdu4e177Fk9bQSl#q~dLq z#+7!&ytCJ&u^i-9AgOpVTIraYb*7aE{d_O4Shy^S<&n~EKq zw`w`uh!{N;*(%rDG?wJNS7zmgS=|1F^T6$q$>uaxsfU~G$&rgA!QSl8tWw=b3_P|x zHP^s>r`(3hb>i{bWF2SX@lG7rXWbK^MP^w;cc*fid@L;jj;c6}KY1>py$ zu+1CO_DU3>Gh2fnEi$=Xn`xe}iINVfqwNvJxy(^}ROKk0z(oZpZGbSKGh$!lp5TZA zMdxvaBb;5ZTeVe0{>@v(>XcZV5VceEkl*yp^^!--!ooDfmJ!dK7@|Z5N4JK{iOhsE zX|WZF&Ja_JXyCXiBtWMa8-xP_-ua7{hS>&(8t3cnW`ptX5><$n4I?IU?Q0|(%~}RV zBWQ?A7Dc)6ET1_Uy^qvoJbSt%QV8h@(wmk(ueiBRZJs&14jfwb+~6U&v`7YAnQKo& zm!XndhUwVBsb8rUwD;+pJ(30V=A?AxI2mLJm{^7h_mJlEPVFg@=wY-TWdH|U63N&O zNt$10Q@z@rN47dPj`dttwK)SX;yg0;((ay|3ARYFW*DZF4B5O@F_PD9_P|LLta#aT zPKTX6=hHZ<^14Gq%KB<3ydYR9^TIC-1>z1Ei1)xdYuk=0QECI7PDUf+4l~@K9r0eA zuV8RQJrO5zS_n>qWy=FN-+(g#dZNNug|cT1A}=jih7)kq2{p05S(TB9sLKRB&b-H^ zN}4Ke;3!8sU@JLS47LoP!MC95a1&2pm+b{?nfIs}FL&w{hCB0KIR%^wMW*t?B@Hu? z5pbFs8KD!)(;ba0>`1S-aSinT+En>`y{Yk8<3)3Bb`nd3la7nfr3j)S+<3=Z9u=Of zSDWIkHoA;<_Kimhu?Prt(ji61<#mC|bQ60Ie8Q_2C0avcMkq~VgqOyHpi&w;*kH)T zQnzke^%Htu2tiC|I_O9l3h88r z0Q`3Lu=LP#Kc%es@kY29^a~kyOoFK3WrDzZ=b#wIj<-+EjZ5X}72m<^qZL*HXuL-4 zIL2AUZZC(U3_zr=!#K%-3eY+4u@0SjCSVd{GlPV6CV_QL0|`@2rpoCd+t|YvISm>< z&y5dSCgH!=ghM8|lT|mRgS#weu@EHFPasZ&S5*xsqI#m+X?;P=>VjHc%OH8~;ZpUL z?^$av%};}@GaIHciBo0HN+#`OmuRgVQtYp*!gjpV+p1x!`+YJ{ctv#57I_b%`j2azNuNkFXeMnEJgzi@nv1Ny?a$*u3D@JidTHmSDej zGUD*+^a0pQyg3~Q=epsAU!N6BNreMFI&lnP!ctHjfR7>Bfs#~XX}l}Z3>LsK)&mqx zhz(WP-iNT5Jv4#I4fI>80xKS+_~Nm)bDlz0`(c z@1-`pdoTBT1qr$#jSSEr&j<>SLI41V$YKGM9JvU>3SAU}O;}C|a6j=N4QI)Rxs^Il zVgy1A+a5&`>HZl#tkqD7IEpIEIo{rf5cU-hodAUqKnLz{P$`Q<3Oo!9oP^bv{M=>{ zFvy656!Ga5;D}Fcb!v0frW{D(p{jET7RlXaCsKh=LE@droYb!Icr`$wYU3dfGtBsD zuIEHDN+dhOq5KH2SqJEf;Q~Xd9ITDcY10#@Wi>q9^dPi9_!20MBa#N`rRrGV48@El zT7X1m03gI|06?@kR%Rtcq%v?*W6OnkfK3-C6_q|8mK=dx9HIoR*9U6g;_%866mljh zNIb!PuRhyQq^kz zC!w=^c8Y_;m%3$GbfV~jWUs(PmQgtXr(1c^$d1j;DD)weDnU>s*854MA@*$Gi;7b* zUZ3;_sR;5QfCrQR8XCoU8!A}=4liBCf0b*_ z0iXb>qB1(TSDXVW#Z5{rT&7|`5WC-jSe_1ZxtNdxv5&*ON^}byzgM`Z3p;I>W*783 zC<3`*b2lM4m!P-GGsB~u=hfPBE>7HPd>7n-Ai7N!K;rB8$J>4!9>Y~x0cLvuCr_Q0 z>LUOV)f_HtfEK|n7!nLIj^)s1BN|r-B3-M+W(zi56v=vKk7@_<1WqoVfT33J$blps zJ#o2$HWni`CP@m8sPJw{-dshrwj~5wnY&*OH5k81oAv~n-z`VlVzjb* zF9;@#o1NS56fc9l)K_)ECT+qJAS?{KGm$c}8X~qli!oJeJ~uu7F8!5 z_6RmQtM}4c6Z+;scty1GgsUa1E?2!~B|8OyVR)}cpAv1hO0P;mgD{w{ns%8qNfB-;^@IpvQsiqhzW<UfPH?5&~+~TQD;_wOKjM?Uo+HD2XL%KI*0<<~#{y5mPji67!1j zGA6S~6S>1?mZZ#s@HvvD3KqN(4r;c$XpfkJ{6L8%Mt~+3&13vAjwM+I&=o@!QW9Aw zA_N2_OCn`bFt1?BgfxR?XFfD7uCnur7a$d}dN$Xtx&22Qjs!$!wk^))vMcfYMRx>| zv_upn;czjiTdg>f9LO;5U8?2D0njL%nI1-`e^tbdKhg%;GF%>qo{&G%Lk4Tr4Reef z#8M*R)0g6`l5qhdx?4q*6wDJW&1rC)j^-IJfwnDYNgkgBOrt3#y~2|!`kE7_*KJ9M zJ6ij=Yk>h&WvojIOL?E#Bf%2X*c*l5I8K%&6a-0=LcmqZVR-;L0sK6CBNIvZ{OOWK z;)I3pdO9ri5C{M)0Etw=8!s))72&)V!b#apf^5_-U{C{;Z?!ubBLI_7u~2{nTR)5o z-kT`TZy2yz@6b@YzgBDQo5pTuO-qD(yy2;xrm+)a+bpRE9}Y)4zf*SU!Oh zR_NL|DwxpNuD$5mr9ohiGPOfK2%(9juO>0<)DceA%F{4P=sHQFk_Q1*or9(8=wO;0 zL>LmRq+>f%2w^N_3PNFI1n2)wJ8J#|7;E%x`YkpGOfTF;mZD&+dY;A#B^o)@u_7>| zoB5$*l&(%qsDu<$VF{eKuBN0a1f8M;iaNI$$C(d$4Q89oQGlnYYqLSXG@>LdozV$` zCkj%uw$!N;nBahmR(-LMf=8Mu5Y^h;exNX?;HjeINE0V0eI7HZqj6zZ`BV*l4X_=% zR1m+3p`Y9iCxO^kse_~u6-*Xuui}8|;pViac|=}u*Hyb`EQWoMAQ8g(Ql3VwyQCV%rJ;1U(Xi9Js7)bXJ4BE);HQDFng~ z8@3MP@$L>aOT}j)R@D{JUEnUzHyo#_w1L7I9~q%EZ=CXE5p|cFIWt6wz*> zjwt)ttg|mh68#zEVNOKC5VmP_pOiHt*`f4EA|i37qNXxkD>vp^f|fWTkW;h+R9*2C zQ=O0H3uu(%ts0_{HD{siq<%=z!38tZRaxhIa6gw+d%oTK@t!;tUH#G7XwM2pZ(hmQz?-N7tqdghx50y2FT}%mdbh)ABl~ zkY(A1iTuKxCQ%7UL4%bIDjSs8L~L*hVWnCkj95+93G{=e5KDT!5pmwP6;&`($EtvW z_ynMwUL?5`D(-BV?naizUDZMnd-WE$>K)wea=d+vTaC-rXnQmPTTn86eV42bl`nFH z<*r*9n&d@DNrm@Su_&Qm1GNzK#5=L|M|N}>A0?=aqG*WPcy_?$uGlmZc8o+JLLZUx z6re7FV<(f|`g>V`q+?BCW``(CQK*x3!DR~s=|($;_{5z)36$&kdM6wDL)kka zb{)`$JHLy_k*6R)O!3iR`pKd0@)=n^U(Q#`n78*va&u|wG=dqzc$HmJFxX?QRLXUD zIU19kTsnbfTxAnVkI?D0HjhfU{v8}28+L!d$Osgc1nq%3mEes`ERjJ3{3S;K1hl^( zoyR`Zc50Cxn)(Z{HUboMusi?W)2C0II>GZs6@3yJ4-*tI0Vy};-@D7@f{!I$B^?Tn z1=r^S5Yi%$Gls|{c_EdT1RaeA5jw|N5k%YLjRyhl39g>PkWJnOT?D>FaW$PQ5#g-3 zb;(WjcKz?v&H_ktPTaX#tKx8!^muu>oOCIsbK_6}UK*lO1gzw`e4(NyyP$4Ji4o!H z9S*yCgAf6yFN!(=hPViEJe46G4$ZW%HPDw(N2u`G09lQu=sTUjcPQA*&|Qmdt}L0dY7@3^aatKZ2JfAg??M^3F9&2-OK#)rFHhx>&jHHhEC7n7i4!C~{*@O8<$4EA;3dKp!yWAsXJ{)A;=YT>jd>D3g9Q;IsJug>B^17oiX z+=$``lvf(emu6dvW5^;I$3A{tQoURa><1AS2iBa8I$jcmTlE$pll!nfhvQ=&L<8$v z-mDrYVX@w%Z?km*_;?vMZ-vQ#>nBxV*oP?gz|cP`PQNkQk2tpPUr%6vMociN*v@pY zU^sp02qI*5{9s}9m@`*2k~R96y*85B8(oLg~qtf34v;6vRABLd7^-=1-Y>CgxQoi`F`fi+Yjjdc|Z zfD42k0YD7uxP%b(F5FIJQg}M!y^YJkRtYXGc51kUxq<@|jmd+}Iqd2>aPr7uj||-T zDhhKN)K4QKB23mWaD_!$W(p1b+Up>VOp>$(w4!?wC1OQJUQoY}JH=>}vb_Vj>z(@< znq;(b6qb1Vl9ULqdgF5wb$P?6>`uY$kIu!X6u2$JP2QYZn>_||Pv}|4)?n4M-C5%k2dTyV~`l|K$#ktGRDAS z`xrdXV!B$ZikkT5sy@7Jh0enTO6D-9zJRc&`_X7#0`Daf-M(@T(!{i|kcJ@wLeh>z zjLLLCFs!hK8jGU$V`|1_U05CEOTpz@t%(#Hx-cOK7L;8d$FSoJ;X<5t)0v}{i=Aw} z!30aJHO@;BLabybt?P!7mWcI+P%KUiHWz_Mq>k2m>#Lq)ZOS1YDmtQ~J`iyO%*9Lo zcto?xG-iKfH#o%&cXAWi@EI|lc*Q3IC-n(L0XW_k;>C?_lpPPLuTF^jd}4043lKJw zDu~VrIC^|DND%_8apdF~tfTqQ{*xKvy_{q^K~wRTv*}uUWEx_Pag94vw+!>bSlm<| znRZgR65>)NcD;U_da=$A%+=;_kR(7>Ahp$Op&7L3k042tS3iS-!sr8q0XWBPdx}>H zB(-o>Pt;gbd;xapxixx%g$Rmv^#bfO_cY9sk5R-Gh>v zQ*UXN=E%8l?}TJI0Mx40&V^vK2Cj&4n}c>>Z@mVCDI~j>AU00)92lKk3OJ@;Qh$ma z>^^?P6rjzueKMmH5hv2Bv#>fkC0bEBh^SCpc_F~Knuh@6sG~HIk5Cyg#9=Ed0iu+y zR)qjmVzWfS`snkS8|7-%Cj}J-&cYiI6*!y`ku6L|9FUIyyhSiiN*VYK7BWlY0RD(LQ`7$Qk9_1l$D)P(C_*aTB!id_Y>*A76Ps zAfKc<#)uQ^LFZUp8N2awP?u+6RrB?%K_BeoM#)AoaNJgxb6{5+EqH0Wcc* zn9pcl^Z>wQ(>3hSxc=?vz5;`QT?&ph;eAMbP~9-nDFCI?7@asZTc4h$5uyu&A8`b5 z7yL8jmOD8Nnaw`r?DfHoeX7|J3=0#xQS1S&&jx2!kw^qpTGt4)k19)m`8snvHlJdM z2lI8>crZ;T#?W?x<^udPLG!KN*|X!equ8oeo{VoPR!}idZ%*|NXITSF2_951Mdk4z z;1{Oi5K2Z&bwrFxFFjBrT4)$)A!XvQL0Y&jk`=%zq5X=LTnG@^Md4hae={hBzE*T0 zx{=52$`SL_05T6KjE}y%IB%nt7IO~5$$2__*1zH3J?o<=!u8@fUww`tc%#}X+=$+u z?pP?C8zEmh!b(Hiw1|ir8`Rlgp1TJ#0Z#R=Y?vP z5m&jKqce{B4O@v%)h8QegqdXbN=U{aTb=MZ79#S8=?egfuA5MbNDpI4+TEh31<=z{ zz*<*l3a1qukrg639FpI7$gnKO!UhJL36v@tqs_%#ZNX1VIMbN+C29T@nBzew2&~xP zE9FrcMFfzzG{*3evp_Urlsg9T4{$BE*lQApW4iprrKB<>3a@2FT={x)q>i{C_35Z+ z+fF!Q*AhJ_?SC#Ucxar>OQD1LYB9tO$?m#VP(^Rv=?gC$Ff)sECAP(#Mtr~kaka-i(mcTMibOC?1%}c|48w$% zodpaenp);RXCXo~kZ?gEBr%lwkVHkEbSTz#BM0dXL&TJ& z;fN|pknF;QY8^;+%7_-OT`C3|cIlM8>toajol|lr@9067Z!u^bz!2-5_ipxJ`$`u1 zM-H5!f0an?ne{FdZ#=%os^~E>@t;E1EdGR;>ZuesV)^0u}{<| zn8(2#lcfvYk>S~5N(jQnq7E`Sn(QD{EV`)Xh(;L&>7b3;4+_gf*ADY7DDE9TGcCK zS||V&#dKM5z06P#hyaNxPutQR>}*csY7pIVX!OQ#+ePOwNKos(kFJcD97BX22Q;<~ z{6MKNX*F`&T@b9}il*5I5mT6cnjl8$IqeVunI5NBiSwZT-__{LmQ~5FD<%~evlZV+|Z@TH4K8K#MZrze#C)F`V*sT8Gwl)3_6m&8ZQWI zZ0C!BOpjBmufH3HutrxV3>H(i7CAM!;lhBaF~(LVh%>q_A*h&wTfw;YaRXRcD> zQ}8-C!SKcW(>Kn#4diGp4cLvGA3`j2YUGU%>W&Ccgned*ciJh<%^^`GY#EL%q82*( z6Jys1@)M!KqEHRoS+qZ5V3bYdRg*it=zMp)AyL2`?CRB`=BWjz7}Xzu4pAv5X}%_o z!K6Wku;>+lM5xeXQRE{$vO2F77x&Bu67+$I#(>)~d}KEcT?}v};)*XEiGBbyP?wH& zOi9Ie51mtLdmEKmnvctFM~VUp2RW3dZX&9v5`xuH?}g{ve@-W2>tfi~2zgg~#lwlg zy^HZe*han46Wnciy6DgmDP5!C613hExA!s7B8}$k6n22HzKEa^&Fcu5Fsn6r3GEOI zsWzWmJOVtpqb$mWjPXlfcnj1k&bJvwN{n-L%W#DMAC$*~hoc9JHT&d)1_8n~r@RnC z=NKg1p1xUO1egHVC52KXUJ7rra~E2`vn;oOhM)qtA}|GyjYfe4umoFC-&5&u0S+O$ zPkBm4bE7gbtY0H}YfR#Z*W5VH*vyQapSe(O*Ko1*_VbnL=3I5VyvGlBU7z1ILVTT( z^LuX@W-zCHt-6qXN3MHEvadSP;g(5(1()pBrkl9LM*NxwNeiPzxU5}%LFdj@W;eWG z!)Z9AH%JY1RE>aa(1o+^!<7!NVIj-mzg{Aho=$JUiP)(uNm#>`#wQm_bCj z@ZuG{0_DO9g2D@8yki5d>Z`y-+ylY?p%qjFI%Lhe(noNqd!Su;&wFCi9&n^0kk2nI zN}N)*ZdW=~g^73GwWX7PJ}vlvt3)WKvEE?X9UD&KAX&5FvEcuVrc`7~>gL_Lhk5O% zS2rbrTI2ae^#7NJ|68O%35aOnfP7q`!FV3S@aCF#j|;<$aw`=d%E0NPz{c^Cy!LiEgJ3nVE)v{=Xh1u0@~U^ zcn@~$w5|-s1Lan^f}^WEKz&B+Wm^Dw5W(hLo5v1#G5Z3==WKoE`1oVk0Sjyk;Ti04 z5o-fz+O^KqLQpy8{S~Pmk7@Hnp$I#53e{wsg9Y$@^u$TnVhif9qbE+m;j$nU2d646 zp69ABOm&<+da5?PaGoGkVC@3Vp`V73R;?pbTq}&Mam5{eJjrcF|sIkf!NcE~+Zov~@4J7MylSi!<_NKh!c9T zSjy9tWB}fUb8oFaITd8FMhcL00cl~AeTYkn%$f3~arV+E8Bj27aots1H4t*F*2cN! zxO8zoid`)Lfp|B(!$(|R8kaYs^*y3m7|sGXagH7@M>}xjIx`A8*2*kPe zeIaqz+M+oBH0I$zWycQUKsp znVoCbM3hZ`S-3rKx-mBspgVwl6u~(B*#ZDC?igBbdVfd@iLgv@O)?<2V?i;iN0OmVVC0W<{Gs8X@_XtLHp*x`__aZ`d4=_H6?#Qw@7d_v{inbU`F z3$%3uYljhCWwg=3l}&NOG;GgF_b`XQoXuNhqH`}#bYkaRy>%>N=wYeYnHC(#HgA;) zM^(Q*(F`gi1rn*+t8+6gQWdEB_=Ug=!m*^l>$%;#46MmxP&+^Tz#NXyo^I|tbzpQf z0LHLf9ECCccpUS$*i>B34!s$hj5K!Ma0L~1D4Aq{Q}r2yDV+$Ks~zX{&Op(TX18mp zxy|fOu>DOcr)>Ur*dZfCSBA`vPYcPlmoY+uWfLCeN>9id}_%L1*_GaPOrkm?RtIKW|7*6eGMZIT3!=cRJ zvqvRCD#dHQDqYTm@RAfKg_$e@Cp+cfMR#Booyn9E3zh{){jxy=|`uJ9uUjq0wvZ@{Up)GiT< z>7=8!80^_)jd}?Us9s_&I7*GE;XH}}UvqSj2uY_QX2~;qNjY9NYp9 zCM7P^j>9|DFJU&(F{oa2;Bm*URrS-u1dT7uJbi3a^tKSC!j%^F@-V6%M?S1E#DGwF zATk)$-7evk>7l^ZL48bw;OWJ#->+w-MrNqa-{9y zFeqTd4I|ueTU)Ghcq{s$6dunV?4&)`9QTTFM-JW41J8W#y@AG;AjXVHVz|i*6NUmse601l>1_<0EcgLHtDgA9-7I#lcq>8Ws- z=DeKMi7qyuCUP;zD@o>qVieq?sA0XLN50o)u@?|oc_S(--|0F3Dfs73)9c?8+Z>ax zr#z&Q-mC*qrSRa;=Yq?D(T|7u1`+WM-bRC<;g~^*Z&-PmJ%vA0z0;=WKun!#wb>ZK zLUm27bPS7G8an_iM6C*8KmkrwlMDt;AyBrH!92e`-BF1J*E>gH$xj`go1RVv^l)r`rp+0>;y!+E;PfR{%IO&_z zIM*kydQ+pXhA0vYE*E$wFoq+NzfU|Pp*_%!a?*AyK-|^f;CDT{-7*Poo`Pn?ev)pm zsDaue)(y1P#&&MFEfJ!Yt0i4gZ{F%)-U3TNW$h)`soLZW<~^NT_H@mKxr4(cxw_D; zE*fp=GI#~x*2Z45+=EFEHYuFO&DlNFgezM;X3+}jl}1%sulY`ZO6){ofP=1e)3~mR z>zYRln>)LLVLVAI#~KxM@L}b;D|QUF&#SeYUE%2A1U~4a?%F`Xx?RIJ5Jf5wjdBjf ze$yv1#{p~!k=rAMr@LFX@PWfM(F45jSagG@I#UEmuSl;sQV``YBsE=1fnZfE%-mKD z{dcN1Jw1*KuW(~ag6 z6b2bF1T$K>j^o($I;|-PaXg1-=!?H6)YAJNDyC~->6!rYdy^_ zrBGJHUfyJW8*3V07`_3_$BT$jgyv%aA*1yiF4i@-`ZCAMl(vFfvq+I_NWhQxt=F`n^Cw z_xHX@NJ@{*3x5u#7C6d5(oS&w^j_{=>{YzI3Y@}qUE)@+u+f&HHqc(8gE`H4=HzIP z^?~tz;GkkAjGg`P!(dLxJ8~F{NgYsL2v%5y@C+kVWZUNgOHn%?aX=$ZyMQD{AZoU` zRMVSM>59);r0ESS#MR~DLI?u)Suv^~_zf0RHwcwz!k)=dlCbZ@DC&e=kB-v!`y*2| zorX$&T{tR;z~LIUiJwweEjuXZKklK1L1a45B4@AKeD`>}4#CEjh~6Z|>-`jJx~-Ck z=!x561PfyGTzvB;wCs-m&Q6bLoRJLkKs&=}opfFvgf$F0_Il!oGG{5$(vLcCCU7!X zsa_c@bQVWoie#WBamxGHV;yk3yvH2ytIp0|n#c43Ma?6Z*yvotn%g|`V%cmSxi~MG zPd4tzt}Q6@{OI+RhI4LqKlgPUYE)azfSbRk?%^Qg;Df8(a146>%G5zM+Hv(yk22?6 zF>?aumDuAEn4e)(6SFaG$_BD~EF;85pb#ga=c~eH1?Ro`={$)LgQrth)v<&#ezrbd$40$gd8mdScy2JBd7hLWn_?0dF!MNDui}7> zA~?Ceg&Wf5ncs8e5(kj&zckvrH`TR{ajmej+l_FW6b(qn!h zC$!Uh%!h`Ipx(EPltOnqSPo&!#cc1*p=dxu%x8+=H6X5`n-2n~e38}BC-ZRB@DjOw zjVia8+_Fcyz;F}V42+geXM~A#Mu@n)^PidDgVy3QB7&|rCVF)<_@>4-~*gr&9=H}RU6z=bYq2OzKdj%1}jxF?`eJvatoF8}8!0QBmnU`}Md(E8ea@}U&IEW{53$xr1g~{bXN6zJlitv<8#-SK_49gfC z$>a#vHbMyp#WKnK$GDTVndbSL&jBrnI$vw!FtU#*@xCf%IllKs;=fBseeh1hn7zv| z-h$7M;Q1<^b$1)a-{Nx^@6Y1tTw@ro$8!?T3-JCK{5x=yVH^hB6Z;I~M-Ldrn*sL& ze0~g{>kk^n@8feAX+Om0hnE}19G+VT4Pyd%-niZ{@_2URA+FbMl%Kzf-}kLGjGx2v zB|O(|knahj{(S)X{|)djzs@kejr8~7nYz|6K8w#60e>0qzl&!YFn_*3od0J*(|>=C zVLSxbv!H1&zP|?#@n6E{=aIhnF8TYHQQuR*aS!VAAf8_Z&R5-S82g#RMGKaFQG zem{U`J!t;+I>T6oJUj5r;`wPjpTScCZ+7BgKK^?yzP|_0m$Y{><(X#&*PtEn9JO`8S$|@hhm?_rS}0!IKsEPPpFy9=12XvpyEu zk-rNM8^)jhh^*sQd{=G7b|5VOJ+jg;R^xf$^|B1+*HjF>aqCGQ)@ff~;V=-heXBe-= z=hOHk4*uIbU>MKO%io{q1AaW8!|(6mxuXDC0gl(<$@Ck>bBd5h;==Pmq#XwDUbP6a z?eLJiEaUy};CU19{0V-uUMvS6#vkL|Q9K)fZyITD2F^Q?|1a>_#&Z*%CHVcT_ht)#1?4=6=liH1Vb*{jKZoB-@cSmD zzXZSEkLN3R{sqql)bUjg>?8R73!vlQ99mQvKkw8_{Z^lU4*JjHQNPvae$+vISD)_$ z+`F_ky#santdnk3S?of9po*q%rj8 zDfGFzN5kny4dZw5e5s5)2fg>l@tgUNJlA{2-}=9=)qrmzoc^^*!}!n{v?ZR6XQf{H zV|-F~>bmsn_j$UPdQ|Uo@4go@c*rpJZ#9f6o^^OWvIX*shcx_G{QhS={Qe4je)4+s z7d&5e-u=$u>h=5J-x=`l%i!y8j~mAQcvO0~&o4W?dLH=p|;I!OFV=pe!~5Z z1HT@;Jb>r9p!r|$?i{`|oozr|zlcxrn{dp_eB=ekFn<03u>53R;^273{ND#W-$(sh zHWZ(x!+$6SZfDGUJ#QN@ms7y$dD47;062da59`QweG<<<;rIWyO zh4Y=Vat9vPojAx#!h8wuR9n!VA>LQwlk&rH=Wp;ixLV2*+g!CH^F9mj`ANB8TT?dp zo3;hZdkpEsciG8LoNQAa{*y>k^bqzh@tZKr&wPBxzCgUYolnXu<&!dd3hxN>1U@P6 zEQ7z_gWpQln3r~$uGeWJ@;(1ihmd~Sx=OdmlxLoy{YM$5oU3>IoYnH{@A+NWf6xV_ zgSI;L0>>Ms(SH8{p0D8{UY5JzT1hMODZ88H(ncT-_WOGs82+Z6t&d;C8~pbQz_4A( z2j(RX#gDJx_j~cEHY3hwuk-3hJ}7)Y1f2S=XnP#6%tISn%^#?r38(m{)0bvGaqkAS zAMi~$coc6`+3J(_G{5VzNWSqMX(er{o)>|W@73@3;dhXC-^M%YO~SE$cS3)%t;rj{ zQ~x*)@jK;+^1|=r(`S*N^2&Ko+!%E&Uye%GT?(!GYnpqvuug5Wc&~ zq3gYXA^-Sp)OpA6oGbmI^ZQ4DpM8k-HD!P@M)?qPCDfN~$}#Y#@z9P@{fYJr>!{O4 zo>IQ3Q>c5Gmtzmd7{czyr)tBW#CMLTq=)~g%bAxrsK%no0^`b5#z2AjRvmW}GykK9T9l`?lb=vW?;c2HU+c9XHC)uyG)!7EL*Et8EElWFH*|SVj|7f48@4bGi{`$-_@t87a4bILGjCcT`ykk*&rlk~D5v2QSq_B7>1 z!6==w3idI}pdHP6>wT5|i1}G2%V52geM4JN@r3v}f6~Vq)!#Yh5{_jkTb4FCf0I_? zWd5JPyI*qNGmZASg5hT!zyAp7#6^4LHvIl6Jk0wUeBQc6+Vo5CNqFM=YrN-o=3!pu zVP2Lw4!EDd!~FU@l5~H=dCxf}^K-t*PtHC0$$zAs{aF5je@FYi?q)wu&PUZeRG+6Z z?-9WA^Q$OV*>t3VI-7LTF62LDEANC}qi$oHP{*@Ate?_>v~|w|C+qc2e109z&^F9b z@w^7lZ{z9Pj`qUyQat1d^ArBp@mtUHL;TkB?Zx~?&&zzw&%ED58hJw6$@?aLb3XJb zJgnc)$o%K-v=wL*&^BV3#HVaIrJvLEKlZ&e^Hk#3`yBfW>-g+0bzuFId=QTz|EKXh zjpvPc)VSOW--mWcT1N57{G{tieAoNbH}U)D@sL-Pj{*2S2uJ^i(jAZC`y25j`BS>p zNAK^HRm!BYCpdmnXHaKSKPo-6Zx?hR$|aAlRN1W8Gk8?pNC)etmHh{RyLLDHqj;EC>8_9BH{0YHeCjZ-+yg%>p5Ml!F$wPSN8^`Y?o+QaJWl!l1)vjL#zMsdVXjZyh z>09bw((+G$;pertNLtnVefX_tqWdQ_i4Z~Fa1{hoW>{HiTtHa%y+NHyQDVj)?ZmJ z@%)N|Tm4qPQJ)NB%!>1~b}NT{k7ckduF>$5>q@FTt}F2!*O~aKuRn48*nX#cPura1 zD(4Bbb(o*+#r{pZpLyQ~81k4j@ss~_S@<;42}fUDaL&2!ko4Pejy{O*GPkrBSPpd= z=XK0ae=+^f4UYG& zdQ#_6Z&7~OXUID>uOk1bLnu$w7pyD$FKs9ClWj+PjP1xi^4Se?ZvH-ea(+!-9=_X~ zmy$oP2A#i$XXGBqN6Plg@ttYEhfh6S*$mg*>$M&Af|3vVWa*k*l`0!PMxEVlpT&K?8B51$|2j1<+6P#D{MoyFW*s4D4YDQ{wW(p&8_)f=Q-D3 z*mo)Gm(R+)|LZ}&-j>`2Zu1V3K%e4>UcmeXg7Z2Aa zD2vm;K_8DR1AsB_hc7b=on_1QVy^!(FV}v?xf1J1x{Xd>oS28B>~Zjn^`(q{@|0n) z-%*coZJIJI{ET@2#*-3`GEQ6JUC4VF@4tfgTsxuPm-{#-z?To;QTr#jzk~SMFYbc; zHt<|BWE*k(qC8W^`Hno{C*_uTn9lZ5^KkNt@7YhtOY)6;tU(|6I6j%@1^9j+9`*}0*0Fx98*MPknVP4412F%NXDj*qcC}&9yjHCd*)%ESvH}niO8*_!?lDN6|{Yz4N$iL-t4hUWwli;vxKZ@VVuL z_g=xO{O6JODLm!_n2+PxkB2x|#&O8uZ{qi2e5yKg3@2U0P5D*w`eUbLzCL`iOtv*; zfVhZPm7(J%F49U|&mbTB3T2b|4&N>DGwrU^hVf!Nq=|ZudhOrwe090!vrzQ0Tva#r z4JGG%r(|06mxFST75gRA*p@7lWwTx^SNZwWo(1LKq#ujEX0D|Y?#%P#n)g@m`6Qkn z;$c1Mzq;v1JUv9*^bfP%lpETW%zqXzTqozcIoHowPp+Tq^&?*5Ctl)bpCo?bVfn;K zd@O_YRQ_q=|IovJx%&owb37w1mc>v0dnw-Ylj|7|;=A6*$s^UKly$BLQlFA<)EO+3 zZNt4wEK{wQQ%A52UGBLLgX1m7RpsZtlKySdxey=sl^7eyU+OyYQy(YTKJ@=n-$(70 zpgdCV$Bm!lIr+=I0Q5bPuP5=a9Vi3Og=@6+NsuN2DBzYm+^=+JL=jF

    -PUY;&ew8Q~V)PIOtJEQqPi{D>;nsaHB< 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 z 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%0ALMaeS_D|xxvFyLk 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


    uJUHuhDU+Oq-!C3EXmd>Tl%&$1kol@T+lku8V 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 HM*T_RVqk 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

    )VFjL#-gDq{MnA>THf)&9*I#5FJ&r7 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ý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Ξ>oF>*A zI!JwB=^LiOfp9iC zXl*Izj5q;Ip!KW{DasVP4_O-niw4d z{G-`x=y74XQg@$!NP*m=Hf39q>VFnv4lhmz%Ajz_XY2LW=krwCbFO;I%|8eOxBKse zdfqi(aM}M|B5FsT&j-r*q?w~pZHc>ICLjj-f;}!}`pgE47l9x4OCW>k?_KpTH}}2v zj0!5BNItp-l>eE5N<>BVTIxH)_{nfTu)Pn_G3x?Z%boDW=w9q1T8$KL3e&$)J8qy+Nit*-mH zYa>SjJ*amu{KtALD)S%3?JO)*x);3 zWk0#@k7$Uk=VF7Nij{oix*xjM2N;Z9tA8{Wwq%?^aP-&$6}lws@Sh0>isW;% z;qDAGP5wM$ei1RB3A-<0pitjN3SZ!>zIxfuy^T{E-c=ZkG4H9!`C{O6Q(CAm^Lo*Z zZC%(}9@dXVlT2xK3+=-mNCPu3GSn_FxYc4`S2m)na{lD_FF4jij=3XjAU&AK}P{VXH`2u7kne!DmTxsG94dP)pnr^)^JU2e5a6 zc1(K-VooW)Cj@oI2F`{1m^()Q379(yLmo(S=H0}K}ZGD{f=yvE%ey6v+ zmiFFGTX#Ymfk(G)3TL@pw)+@T58utX!ivAuHcq#G9ehSl>NO}bmHV)*Z|ma!Ynywi zs?VL7Upu)=`3QsKHW&tbR|9}WRj4^H{WXd$#(Hoo!G;xj)!kxxRVcq6j3w@iy(oa( z+;y?Ub+K)tRbm@riQ8k_CCksJV~Hm?;Al?$Q0e==W9ZM&%{0_*|eECKwM>3qjL^=OwB%G(EhBC+z5xc3B0d#kOVUQG_x8X`K3yKJ`J!$p4p9 zx7a?x?zY%vz4aZpWGV;Y0k=`PchR}x)b*ctGd&9Ft+)N#?C5&CqJvZ1zh|5!8AoL= zHPzK-bdBj=ZF+RAUnihwcam<|Gig9q%VP3c%o?x8L=T|lN8QKM%(aE?pQeXyJ=|Mm zd+-W9=ws>0sLKn)*rM#amGMvUj<^1-b32kg;#8GA44WoXimb^)rmb6)KF&@^m_`q~7W$+G*6Dbz z;5{Efd#l`4;_hXgff~?+f59w-6z8?4zH z%JJt5ulDCG@l(V?uzvKi|MtR{`VBT{!}vE|s;RL-e1I+czQQWX#CTG52?xC@;PZ9BcwwWIS|iucsc`kutWx zi646)>^&a#AAv02xr_D0Jz?+Ru=V?J0$U%)Y-3yc#jy8kII>+I^Q1oJ*|7J!aAXtV z+<=K)sIRg-?5z%44@Cfw+YR=+xZtOPyFX{R&lqkODoc%S(Xme9GX6Hn2pH@JZvKkl z?&#iK#0{;Nb&Lh&&T@ZN>L+D?N0(vfs|N4J+J>t&Z2nJ?p`KH*%lQ$z()F%)t(!oO zBqLs#2MIRA_8s{9nyUDD5HB@!4DxuGFj6YNsciSXZ;x3Qr`&f<_Z>b}UAhupu=NMC z`}P-`YI({Iq{YvY>aR&%*`Jy2r)K<jFCF`!qJg@$o9JI2rponW1sEiC>x(5 zZ}6d%ZY?SGKuTXtm*;-l*r>y7hW}*QJ1wguQbF@V=5SuXQ7^IG^4_qlKUp+8>QR<~ z?l4vMI^5{OpX*C4ORICzyDzoK!Ck-!yNO-4zOUV?EBX^WA*kpN>=+W3b14_ithBr} z7BUp)Z%M0-!TDPpcasy};OGYn>vnCYOz&gxwuNR(N!^zm{bG2|PwfmYa6PZ5`GV6x zFd#sLW5yicBN$1klBZ!v%G%b8rgZTuXU(pwl%+=CJa`j*)SvYUpk zd86(zorldhN4EKp_4+sJZMT_WBuKU)Fw)D+Oza0hv&J=T)7irQ^aG~%xM|&~*RR#b z-(Wh7lN?_|EURJ0P^;D)Pq$?{tM%S%n8ujab*6JUYZ)YSIBhS&f!FyNM-y*}>0M}A z*RY<^+s@bM>Pt*#m1)tQltYWMBMdt$Otn_>bpn+T+~++|z(|l5?JlxZ5J`r#_A6X*`0o(!;shvaYp!F8{ghe}O23hQx~>BX1h!6-51%4A3)-9BolF;2}ieu|NBL*bKP5*&jfeu!HNoB>uMwE?h;Y1 z_>)YDn_od5jyT_9b>{|U-KeY=!fv5zgGbbb`d+!u5h%0I9#`38bK?V?>)xk~`;|r1ltQ!n zPx<~~Zangl(sR;Y#Chuee13?y zKS#1Ok&>SxZV58IeTR+$Wj&L1mk~%%^u&9A_2}-ymHSXU{xEPrSlLUhCt{f=walBk zLkq#V>tmVwVyXLMncK525q{527Vc5;Wy1YBp@)|2ztAc~zD`5}QKrI&NrA1EKe1Il zOVIV(yG!!)@_z`X&R7bP|0me)5U@(`T4-If^I}*ABwvV#%{JcMC7OxX_ZamleCK0xWIG6IojuN44^EF16Msv(aFt)n5mp z|3txC2KuZF=Y$dsrpT$O+$eBJ*eq=No91rK(zY+v2Oh<80JiYQ4#Jf1Vwj7e+8nPP zA&xbA*(X|cc8k^9KF740?5~96HkYKq8fMp9^KC|yD@=Q+)dK{6FD9k@IGNq(qVix3 z%forM1C#tT);iQH0#=MTT)ALtoAJE3v)CCWy4e0fK7)L4uwK~SK-`0TQ3uAOH&twZ z0yD-BwX*JD)gwaGv2=ERE}OkeiWd`UBa3mhB>SqFo<{%@Fruj>_XBaYSi+?qv6rG@ zd_&GLEc~bkTaA>r)gE9Cw9n+>CQ)Ppt6XB(`&l*i6GCTV|Ca5CuQChmU)#cURKUly-@4$@48>21g_gi{C*SDkp~p+ zYDo`FC5wwPeRD;sG_OjCU9a%WDlv)PS5)ql5PrQ9FmSbBlc}!jQCh2dl;+M zp>NM-mG0HMcfHEA_Ul`(()}h4>^ERqM^k%IhuNO$ph%qxv-&?|NYmhxhcykoQbuH9 z`?iL!k-f4by}hiF!$;2=l^Z*A%(*gt=D5KVvtWL#38j;>lf22+q`TDKGpB49i1a@e zK)LTp??lUArEj9o#cJxzeO9UI*=gbF*0jH{0KF@Kcu4)>3U9Cn@QKAOa*?!fC#WY>zfPOP;u_(th-gS6d@pJc-=;@&FOEpjwI z_o^6s?|Q-Nd(a(HcDvyDk+@x6lnqjLrvTi>NVFQXddWtuB#vy9$(yBYlK>@)Y?1@F zNd9i|=<@EC?7cGJ9wG2q86lPLm&kpxR34PJ2c+a-sdz{{e2E_t=TRwpM3b6E9+7#E zOVeZWmUKzoR*@&A@(J;umVr;n$Ze8+Mx1RDe@3dFlkBq+W(2Pvap)mlljs|gd|e!R z%-5yn4H@w|11zzu<7dW#UzIW%($bw0Jw5)LSn!K2uL$0~T*o~ie%e48yG26t!m*Q~y%Sz;*|t0%Hb#|f1z=>hTMIrmx33B}{EdThIlen!BcTciiXkLl2i zv+k2J2HvPAC2?f@SFzw%rHn&X?2^Rc@grivuS#q0hs1qYTw;zsEQ22se6@XX9}xdu zgvv3&IOM`LyG8agCTtYz7VVk1YbCKxI@d~a9akB1 zow(Oa;yQ_6FMY3*(l;ghd-2{B>-SRfwq)ND{H?|jS@vxr?@Hor87gA}+!^Sz#G5j- z)3+uO>+~ui)J@_l>3^l9uM+=C$*h*WV7gl^i7O<#T3ThyNZlxmEMTNka_ zyV|YkQJt)@jLE2CnsJL=huO8fDmNkP<{D%|#w~6JDDs>1{8VkxEMjT5B(o65jhH-s zQhai+N&O~{pAeteYeG?CB781Q@k}Bdk4DB5)~L}>V~R?;WAXiMfX_lhN)FSAl1~Nd z67x$Hy0DZ8JIaI<&?|EAMxpyD<#(||+)yuRN`KHtM6?29qw^X&K;zl!weAQrAY9sU zpB@Zx2zz>=HN)fyb|;QU9oiW4Bson3TDk2>`nEp=x4p~=t>L!d`5G)cQR9?a6-?iH zaoc(aXHNo9Vnx@ttCKN>+ZK1<_N(sO@+}WhqbXEy+dkl#^=)In-1awe4qU&X^@WEU zz?IvaCaal;>*RNTr$zPkTK|uS>!C|pg->2(=>AgejfY+t6)>h6^?_l3M1hm z+}&@$iaJD%;q4BRsVt)i2EJFYbjLyhx&UBh9G7$O3LlF>1)KpftggG#C7iZNh|Z zzHQ(zRd1)PaiRCia{4KlOiH`2w#gu4uo}{c3z~K&9ghaPa!JfTH%64Q%VMd^;d98x ztfAp%Ah7xoKhb!YiAcOUI4h{Zz&jfX(!Mf89tO09hc*NjRvwibXAlz4_};)DphqY) z1o<=on?dv9V=+ou8jzsT)$^tv91ZnMKP=-Ok^l$*dq)5QKy#_X&h^ws6)(b~w#xv) z_Nf~hRIeT|i(AxCq^2S&DZ}Cdw(?4_NmpR18tEpQfFfuFPX`c<%Kvp4Nu1{r&D2(_ z0ahB&5r8@BvAJzEWef_U)6|Jh+S@zaC?(W!mn>lH>ylHp;(%)QfTR)%-D4pT{=!Io zYFNw=G?b&evSJ1OLT3fR^41*qGr*<~MVKB5WbG)NNPg0k< zO- zhbt_=53d3(2|Fry-#II|#LUpW-CH?s6vsWvYTNFEvK;hu_XdKl{Ti6J=A+Wf0G3*o z7)y#6Y`EHcRGY`=8Q^SEfo%YK?|$yl7^oRUclmXLWzBmFQuT z|ApJBQZs^2c7<^Vd^iw*J_7+L+1*BvH7uvK+9wv3C;x4Selw8Q4Ojvlu7?FX`bVSu zby#rHbc@ghgpUO?4Q2`&M7sX|1&<({1hWw7;+xP3C7+RtWo^ojF-Z5#gac7_9DX+K zHB6HQT0fe?(o$7B0Xq}nh#zf==~-Ifo?t;o0>TYbejgoWl!N+b-gU3JDjyFX1 z0$z~_gI=WDMzhVf(voI1xMGNcxg3_X&ZJ=tA#aKw*4^{ms2%s{FKV=9PPFG|Gvuy$ zyEhojtn_l`Mn?Ngaq4tWrJI2E<~xwS9)4JColxvJPl8DZS1=$&h$&u7094$c5Kz{L zmQWHpsng8sG5u?vPGWjBfbIu-gTz0(J!HRQgq9h6p1k>Vqy}d3JTi}m_dD;-NP2#q z+o+&Sk2ksfam}qaSnPgAhiWo<5}am;YC$_lB-|`4Od8FQz+OQx&t!6BMEkw#-syS+ zdQP5TkorCSI*@3#=kOHYVo>HC@~mvvaqBN2Q#-`pj?0X_cafKrqLQRv)HC_5ggzt$ zhlLAB{4{T&99yyvFnvRg={d%##I{Hb0HQrtg%fyI8bJ&^WSlJ2=TI5MFv-|S)`2rk z=ytjJKuO?oGlm|%7(UPjYq8MXPS8Dng7;d6A}C@%Pw%}qUmg4w;-fX76jZRf%iN_| zOwzlM%ec zZ1q&2pXwF{8#s3c_{DMN5Tll`bFM!SXc+t~+6yO#ZRHuj#2*=msd%5!O}pU`N=Fd6 zURwv+P*tE< z%4o2)d6TR)Wu2J~(%-2dd(v5JA~&qJ4=q3BeB;pEA?sA=EZV8t2cvO&wCJGRlzP}c zAR;x-G)HHu-J)16ILBt#Z6Ir=-N*)`{C0yttg4jWGG17q6WphzqDKkH?TIPO)Q0n% zm3sy+KZ71IM%bG?%{WDW+F%f)5mGMC$>O?!+fgm!q*ig_{s07)KJY0M&Xdu+?=sYv zFlcB*Yv5}z-PFWhzrk^3tU3r;i9U5NH9M0p>YqF|cck^9xWCN|(d;OF%$=Ze*Q3&v z^9>YXJR#NnXVr@6_Pq)fj|1l08VnzORHydu(_gCweI^-#^dO>rBKORp@zWo25A~$d zGa_K!Ul(F;X98SzgZ5P`J~kYoKN^H$CA1h^caHcg*$d6cd1mr_bI?-LvRllwQ=Dql zlP%rxKcZdWrXy!?d0ob@ zgjRb4>)l%G0js==>0Bb}nL1u~4+gFDm*KQ@GAc%Bu?ZLrwI^)!o3J6#%dpI-tY6`ud4<~~ zc!%wBvVJhN2)CPTsODbb8i~xH;;PV2vr0`-9d`VW;sk1uL4OcWlThgfc?wpo1%=s7 zUvr=U|4$btG_J9fi{Gm$DHAl1DlWbmZCfB$7X@i@cbW;+EEAwICxreErOgyth-J%0 zmE26uR2Y_u&ubZ<(qjR~PRa?~piBNNfymGtq|qQvYVo0F zIkai+{SsPb)u@TUOn}wBu8QB}>SLh@)6SByOwn$qxO;F^()HEH9LN9^wTG$sdY2wJ z9^#>v3!Nj^Qu#&UTZ~<feN^fIerm6bMQaY*wDt>!B@Ms=aead2|XR-+PPVjOo5 z$C0HCTR|sPyMwq2+b!8)J?d`9OC|E1actwlA;-2Y?9Vcor4P%%WBVjs_qW@u!EPJM zj5Z<+_QSf-5^YYjK($$tL~f*?eB63h^$SJLJhlf9+`8~^9=wqUZei)){os3rRx|2E zrOK?nSoOF-4Meeci5z~Zv|S{P7fZ_p(sH5J)AvVPzf{XeB~YfN=!A41zs;hH;Hj99 z*1>R6hX+sA9%d!oV<>o4bT94A(*l*Fj^uMDE)fLIF%GBHjc$w6;N6>qWUKZb|C0%Ufa=Ng0P zL!r)gi7g4N)+*MlV=DOva6-x^NSRv-N;~S>tv4CbDydFlPPj|+MY56Mhgh#{xwVLn#h=8<>t&WUHZhQJ>JLuNIsSgM&BA<3`ib)OpZciCd*hq=*41&Z4;8WtPnp8=xL&PBP+(V`)-$A#CTmcO1PAwE#K@u%s#o{o?!qCBs;h8P z13H;2P#uRtFs6>ftECa&x=DDtM8k>siZ)ZU6wRq<3u+1b?vm1Y@%}`^(<_)@bhZZO zli&yJN0^g3K^>JV##wYBkJ5}d0y@g4Bwd2AxJD-F2Wo-`|F$wB11M@8))7ovhuib5 z7SEBP&Kk7hx&Xs?&-aq;PB6hdnW7q>;AePP= zeR3`BNE1k1D%*{tLy_eww1yAYd|r&_#JC$QrcOJ96gxyh78JgmahR+7%Hg^?RtV}2 zHV-pjp}>0~QWpBp&Y%y4?3%H4Ib$o|-Z8syqK-Un!0Fkj#m$@xR+-rm6L9E^%>&&| zT1Ykv&z2rx&oPiNxxwC4=>nox4?~n08X{;(t@^4UCR_jw0rEk=Kv+lxDNcL{4h6w) z`f}Abgca-^<^4&0Y=mBg6k1giA^b+BKS0hvWqW8|V{REy@S@dbPaDU$WS9VSxpXgL zTC`0c+TBr%msa(jQRpnDsQviD2GhBfOD`M>y=Vg>^L|jnl}9;T2jG4m`3V!8C)`v& z{#7u$@c83`)ZT@2cw{|9H~qG&^bTcfo||<{)QaeYEH%lL$IO0RW_qh>Q%#}JbX@Gp zEcC9LE~d)-iAsjFsUHp4=0aRvPSeuZHNhNvU;VS_>~Wz83^&hN_@}#=@7tXi_)dr` z3GV7U=n0Z0%z#D$Un-{t&b|?DFQ=YX*i#L4Mp(U^-m1kx22b=?ypI|CrHt;`<rb z>Nf(r{t>n{aDT1%>4`y_3(~3Y>O$Y@gm$_?c~4nDe3r$MKSxRy%k+~hb+BEd4h%|n zpqsCqw!3t9>C$~_c9$+tQtc02t=d}wOU|phXrW-{eT9N8pkR3lHeGIH+MM6)ZBUy$ z+3bC11zBs5-Yc6t3Ude}z&Es;3+WlD2R6~qHqw`tj^Y!ceRo!XUBXAL;BnY%{f;oxTP^LPKKK2e#fJ92r zvC?g#zRmV>#}yrsEbo3Z=9SFs4nY+EM(pFPIvlA^2=}Hx`&G0~30erF0~H;QruD&Z z!H?M#iu4|DjSKVKH^{iYp*y@P75gb{E%L&D05Wrfoa=eJIhT%Ng4m12D+nzU@aLYW z2554Va(>c&_|=<^C(NC05Qv?0(9;EHSA`6P$vRwqOjS+kN@G*NY=-AFT@Wu|b0XJx^DOzbtPYu$+82^MtQ@znH=#CC%wgs)TBF5YlS6e39nFx0< zB=4n;jt`^L96)LF^<|pWXpxk*K&c&7<7m>gL+dBhwZkX9Fa1q#HLP{Abf|HC8PJNq)*w*+DWxriB`>&zjFH8rSt&*(BW@7b9_Iy*>j zU{jt+KAJbQQyA+RiaACU}5IiH|@}ZO9aQTi5;$vOp?J(UFonVMzh-wKsAmPWqoscE39K~ zncGJPj?(Wo+Ly^7ykrLbds}lZlgPvp?C;e8kDKOli!?K_FeC0*b95vD@C#j{sx{~E zQgBRmr}1czJq)}^5`h@H84|1bH%{^^C;YYJe(KCL&HXd8>Uk%vxQ)+LGc!X{*GTD8 zk|o5FZWV-1uh)InK>B0pr&bvx)0s0Wz?44l3p->)JN=}`P2ze0F;K}9Oy2I=+US`(*m2W1H z$(|4cO*FuD*E#?PXe#qwnG$-CMJo!PEEs4fY=ZFfUirujy(;*v|c3v~nla zXWzn2cNns_uBwU1xAUp0@hsJ5&S7`X>}!0WhuwA7eFdJ0TMF3@BcPk8T5IV>_bf6* zdcEXtllJxa>4*MCx7Z*F`hymp5Vujjw{kO!R=kqgNm(=j@1BDjMj5?^rKZ}gm}X|i z`m25fzK;IIOn+eJKQ!C_OyP08QR&&;t>HzjA23m5uG3~p{g$<_{?}4?(>Ed`sJR$U zJHvb169}4jrWV=zsQFf-zA;o+esrFvkU26@6_l)qSPcwegx#_CtqMYEJ9cwHcaR2W`W0Gtf4iUr;)n zxt$=$Yp{M?BI!#de~Azgc#RqQPMWkAh2UvetOYQVUcK%|!{a=K39h~<{JeUib z%BQMy%~57mxF>Htp~4Mxe)`KB%(q0W=xX(&?w9h6j;^L0Hv53rLN62XhO4}vjwMmT zTqDFFchyjlh07uE zStF1&zK6Z`0BO+{fL0WvafhFIGiWi)kP1_TjfHHlUD$`$$U{cx?-V6`wmT$Iqq{DWdQ>qnw_FMzhplQcLOPaf`ThgnO!_5eAqxwBa*2(YQv>o4OQ) z21>eMa0;?_3)wkj!@22{j#T^Y(qXmtJzqO@uaomt>^xU9g5 z4)S-%-uNosliBZzyeGFxkVW5>49|483T*)fphaUM4tAHkHzgly$FjUQ{k^U1wt1CP zic)Der%AQ81!!ICDz2R0Y`iaNZrk(Q*=B`4G5XLu z5u-&#H<;<$&HNo^JFY->0y6IeI_xq=(o^tAwfSN+?{t#*biSHzw^nw9t1A2!3ZcIt z&CdBZ4SeABp1_wgAJxHRB#yaA+)X%@J|McC>M%a*s7t1wg)fEzXb{!K^0}sX$_D8f zL0T20k0>iN0lRtgIo5hYIzx6?%e~96b78B z#J`A9mBYj`=4ghvW!!BcpG*a_J*-+QXSC{~3TdRq>jfJG_3lN%omt&Q`9#SSO}j;4YKF)W z?2d=iQ0KC{3K+(@N=^yBzt8l9sY^9(RkJ9_QZw`%H5Ha}?*@XxI)t0B_Ah)H^B9q? z(HCW|bP#hGhM=)3;}AK*;fUU5H4qLa{B$(O_d9M7*E%)yCcSeN3^JX%RVzNvc8!s0 z1;5uBdheHgpZxOci(h`}kLQVBKAV1_btqCoXF?uJn`D?bV?NU+{iW>ew%zn)u5q{? zO{y4Mu}AQY`0u)#eA(X2Z;Gfp zBF^oReckEGiq+t<&#-h?yJH(L$}=l=i5#(b9OC zlwO6)N2GX|O0II^mpRtuj(eFCCS8hFs1e8RJj1Cw2zSb{JKe53_8ES2 zoNq~YKR0jq$V1DjR|}-0B;U+MkYB4)up1A73%HYxeqMg7hggk*r_@(OD))o3#j;IRpDjIU8*e79{_af zC(Y>;Z*KElyZA!_6v%R?TkEvKX;QMw%rC|Yo<>7HjCz>XQXKCY9b5P)AFxm@Fu@8` zVbiFN6k^K)b8l*43`*kBYOq!2?vqTUC#XZL{oElXCK%L8i3O=zCEw8X9)GT!xI%d=jXU`czcNEx+(TgG0T5L**i0Ve zALUOR(8*k7fm@ktMWYbBeB%XWPQ;@h%^1-M!>E{X$C3Wuu)8vWxzzr-_4n-75w@$?W@=gg; zvnszLydk|jEGxqIsO91LyqquO1&KZ{2frk_8(v=e>5@fl#GYLr5-*J&1glcm;dUdRgYB zKMM4OcgV$F?L}VVQZM}vHl#Upm3IghonG{-m~-7rkUMs<$HJXty_Y`EE2w=oc(s8M zC}SR{O6*)qOu;yFF-psLV-fB=12N4s@`O5C#hk!!vr2+Z=jnYZevV-4X`DV+&7BbFbvw)- z!3TVy<0c$z&NfE7j*PI@2r$X}#UF_-McZWJ>7u|?Q=3a<@s|V>n0*~Q7jyK|G)9_- zrSd%0ZKN59k>+8k<-G!HF`h1fB`cR}tmNs-jV9XBZLoKyACn=0>rKgxDslsL5oAL{ z-+1*{gI)8epTg;7#PjR)M{L~*T>byRwg%?{G?AU$lY(wOJxEi{u@ zmXVk}Z-CZ6s=cA7fDg5u*kcvd%+U*vaJg2BFlOz?N8iePZ4#1EmFjD?yQiquaHUok zYq-lrT10O9QQP>neZSBDWzm6v{&RmOv;+P0YN@zFYJxQV|1GV$LjJcS8$(Ybn8siL zF9U5K;orxH*N5pHSdHzhR28dDL63VuIWk#JazBPcGim(UKjr*Z*Z{ z`9JmrGV|xizHbR1TMbx-G!z9kP)pUu$mh<%JAp0|+H^3K5m#%nLP8E&uczl;N1x2({6LK@@4u9`$t+>KR`A!EeVI5D z3V?=qpAodWT#zRBNc#o9v${17{K*XUt_LvWGA9bV$*@;6BPbzo5PT?7d^9@xD~|cV zCyBsg=ktWh3-@<&y7lQopQj5Q0lo2lx0+@eT}mm1PN_rDFrBD6bxaH0PPbBMdI5ro z>F@u7LiRu*n;mSsywE``DQrtEC%Vc@@~sO{=m=oJXbsfVSc2x{>QG>M&4`xgdk)pV z*ss^=lQrooKiyWH+UYrm7s|QBm3jJOIsx_CC;%QO;VheB!3|jrM>Rje-zXNx_BPwh zt6lCJ2NfS@=v!2DwY@7Ti;CX2f^4e<8Ikw&#-9pV|6R!@&bcu zhAN!ozOq6;%ZMTu@t{w{F(-R@xS}JaiF$DBDPHYZ=F2w`xx?MxV@_LI7B4=aCH^_z(0stez9Mm591i&70*gDpv~*+J}2z)GIkeg7I4~i4a?zyZF|l7m#F-wc_R9Q9 zqsT`viGEwG&*P!cwPCQg2Ov__Vv=2tO55Sdl$Yor;KNHYF|>k)s>DQ3q-n*2`CBn1 z(a?1*8}6|0wYJ-`!!8Zd{B~Pc*)7IaNq0$pt2B2Bzu}Qs2I9KnYB@9X1)W~C`VfPO z+V^HFeS?+1(Q3ZQGH$l~wTysOYN{Cxx|0gKEXAl-sEPqRH6#G)qVDcKqD< zT08cNtc}UK*t2$!{W?fbTpJr2yrxsNDWywJBYF&x+Xr+p*$!Iw=}RTKOfHwu`^Ge+ z(Et+X9k2GE40S`f`b)t?tD`^Yrd*+(GYj^w#lnbwDwF#jYAgyt6g7=Ja8JwuM_= zJDyjUtLxL6Xacc6*dD9~Cx-Xy7S?YNy1p+|K|DW-p_!JHu>#?GgmEvu9crQbQ466< zpBbe41gX7NYPeJXpQZFCc^QpP9*|?;W}ROl_HuUq9fey`^Qx6zjAms#aF6j9nfVo_ zv)s(C0Q(SIY1%&!zGG|wXMtmfp>!k*7QUbE7S!OZ*sUWonAuYCQAt1lm`cZANWV4kI(v1>i zsUSUW6H(1Zye$3F{qz0W`@dy`u0kEuS9NN;)Aw2e%YP^B|3V6&-r=dMv(n*`1WcX* ziET4f+!nU&S}Pqnen5B6JCy0o=Vn1@g*QSgc|m6LsdlK!D931{2-0up<=xs{ZmNUI ze`>y~gUTm^v@%HJ?*bkgaZ;dbo6vMZ&m6@}_UqB#=x4B```@kztksFFK5X}V*)Q4Q zk2mG>c$SG1Y+>k*(*KM@xO$D7zSd1%#EoRUuBCz^q@C zsa4;ubutA%hCXK@_{wJh3g{6>k0ST+OefKNCYUD} zIbxwF?HQpO}{EN-i}*6GvcV z31g|&Zp9JAn|?-xUE{PxiZ$trZu}sXg2}~nk9Bx> z1z9Rcd#$A}DA}eOk#1u9p-Q}1g?`n93fyIGgxsB3?`olCD-SaDanrrWY{gmiXgA%| zto75nY7gau8bqaPdo|Sawd(m_>`@2n5MiU4fsJFR7($@T7>4IwPKr*Albd+Ti!E~m zxOa@|_(<)?H^=RDP%l)BI;z+Ec95llbl*+7Caw!J)vBip%tVq?LF$bwsmI^WZ(Jna zadEL~JSO_El&WxvUm31CqeeS$6UiJ|OV=6i4;wY>;(H$U|FmzI5zJP0%!?a|(l~1| zl{Cya6J*1*P*+>ythv~bAepho#L5v#>#Ka;X!p_}j+IV$d?ZJi>DC#g-EZPA-O||< zq^o)(WoInQU1~YQy+QcI4Yhu&r-K?!Gm@_AD>RO=sV@r78p(Z1LNT!VIxI+xSt)Xc z>(Q*6R5i`okHVMkWuiqIG@*O%xr|k5nsNii4F*IlSRHE&)y*em;NM(i;L%CvGF2n+ zb_P9+e>QQlUss{^jBH^$iq;dKN}5%%jALM#8ODpFaA{S08zge0ByW&mH_CLn%X&)Wn$cLR>HN`- zyk#ffwuilD({Obo(oJ^~4TyUN_u3CKd|ZWet+AJCVt!#V@Sj`oju^%j@ity0crry< zs{h9&6WUC~U~O>$x&;RmUIGccd`@{K6h!?-XE!B?TToqjCkbft1zQ*Do@ zjK@+&kou3OykuI(?9?ytINq}!sWh+ynJ@rd^+KAzMC3TLRv&eN=E>5Y>jgJbpZn-S zZ7JB!HWspEP{Km`QDM`%|coMumDi??MpO)>TpH}B3+4Nggl z`Cq+OepjRO=%-mVRU>;!hISVdbY4)jM%=ffAR8xO``;)89heL5e4tZVaKKF%f1*2^ zNL%85y6aj=*Cp!|lhr0_Zi581g^OA2W=Y>9!)}&Yp&cc|OlM_D6!Edp$HOG6qJMOZ zM~e)Rhl*lbiVQFLNYSvaB1@x7cK38MWFG?67J9oeoI2Y$2=b=jqskc@RVXxunE_U5 zbf0OskY)wt`3uwISST^UIJNjoIqmE4u-3t^DEDjQ_}0UiR}2396OJ7Tz_WDlmjY+Q zL~NN87|9Fi;CLjFj3*(Q9LHAuU)a+TkFh;n*V?T2=wmyan45Ic|KEO(WdH7cyYoGd85_8t z>0|!u8e`SjsQwr7As;D2gZ&NMtMZp+E^QAPjZch#i#qB_mH8*rsIosWtx+(nI){1F z!^y}vG?J6dx$#j&ON~@HraWTsLJRG|*BBQO#i6-2Hnl zzgvF!od+fCBGe0g*Ph!m!Fla$({i1@#=a~Q83bZ=(cep~HhQH_F44)o5^IdUMu$$| zhQ3XCNA$mT$pf_-!}&@^!Fzt)Bx-qxyZW+;x7_HNN~^4c_e5Ua61% zi)#58l6k*vr7s@_M=$r&N-hkyofnqV{1tBV5(rr34b|iKAQk+!CBE!bP23AGq9keMOCLDejG1 z}e^Dpci|Eu&er9 z8j^XOk<*MJ__Ro*Sz5#CM04DYwM8Y}UwS6fxt6S3+?J6t*7EtPewA)TQ@J2SI;yrh z-PqFL*047~4SpD1j$sp#F?J{KI;7w{+-O%65h}z*-%3if2 zFOku;qwbZljbmQ3hQtOV_vcrXeW#X}$%?Wo%^+KA1ljpcknNHndp8_ps|!bV6%IKn z*mif}h?9er-pk7l51H@#=gQP20P2eU%uXqGGb7HG;Y;KSYmGYVYG6piQkNU(?N0k; z&spg~sqb`iM<2XGoq$pRAoVYrhxsO2WN~ej4SZCt#t{P2@GcTJVf9h7m^WK$9x5oX z3NqbJ51Tr;jsR$TtI0;jJzHg8vi;|wNyqGI$J8*#cjrF|ySmM%dy5)=E1fE5o73#z za=oypm8**YJDqifDWAC2s{CX3uwSkvtL(&Om}@a4UTni7$~FF^hQGszqqoV^gi>jI z%Kc8xY&`vl|K6@>R+Mh*v6?bwWG@R3l8tk{AUt#p+4#p zZAejPGr1o#c-*kUaT7+>g=bGaL;aSE?Wa1XjFY3)u)RB`>>K7`@c}Tm)`vpx`%o}G zslEDk3WDzld$@Il<(}n;Hw+&}P{*e+FC&CZ^sL07_;*s&nABE*e3!ig)RA=A%L`d* zt35qL7$o3Cv;SKInE_C>na*XZna&bMQGewhX?90lfx4CfwoTR_?V+fjGxQrrsD;)X z`#7It`=BjYrf;`7_Gh&zCYxhF8$tG-1lc=4R_5c6yTk`1|fgz-Mf!x(VzA`FQemsFLQ^SfBl#lospRX( zPb2RlUq`-!{5kS@4(F0@CePg(3OQ~lG=jX1{8!}1ldm9OME)Ro7x{bSA(VaYZ5&J9 zM!txA7WroKMda_1uh;u^C9LP3sCZ|Qk3gbbM?R1IJ@Q55RkyRC2RcpXmkbDI2$HbjnvxM@I&nu%$qc=D=pZc9E7rNs{NMdaU+uOqM8 z$im!VJo!BG^U2qdKS%yv4fR1Ds^xljaUA&wo!4_e@_FRz$=8v8Lf+Ltc{Xt#`Bd^y zBlSf-kNi#Yb>vl>+1|u9@_FPBl6R3O?q*+4u1h|Tyos)P50x#&u8be^V#|AYn0frV_!Seh#jjgMPrm0CHA#r2Su#9C}NbT75kzp zHDkx@#TT)IYSW>9&(q%@9#7}o*Lj`S>)iKe<(>Nu+gYrvFP5v=@?QE@qns577*=;* z?z4s+Oj$8wpZ(|=;+u4WZ_RgtvtyxUeZ!H5XS^I>&cXS_^>|~DVuI|H=V%f}WH+{0$ zJ$TB|{GMLVEZM`bpFaL%9h;f|Qar={{(IV(Ei78avtrGktv_6D#@`USSsmg3pONQC z@hsTGaFqByu}oPV?VK2naZXIyoyT9yvtW6gb7yjr*TJ*q*}?K;|IZ|M9?ywARc%a8 z^EzY2R4{a>)28PjvTj+wFcML8~Veyn~gCXTNW|C0I&b+NqO|3+_g z|Cs#VIrWQUck~vqFI&$R#@`cqn6u^;`~AUQOzsrVaF_pH70(vNUt2wK%$nDX@Ae-n z_Qvra)%m(L_o$O4dzjuU{tff@iDAiJX7`JK)BFSCnX_ccVJ2Sd%>(kYn~B$Wc*}LK z=@tgB-JUpR&D-*M&1O-r(O#yd{O`EVR%TvvB`emwE8mk|63p1g+-oMhXWqSNVY~-D z%$;S;`_`%N2Gq+bO^SBo)x#}wO*0wQ-?PeMO{{#B3CHjBzGyPbZ=GdRQH)9+pRm|A#!sijTIdhsAN~aZk(R^~>}G=Mz22`9x24KL2z*cRtKd zbw2-6pKs4;Va6Vor#m07iS#Vz!;;-h&UU|;pQpe7sOMsRGxZi)4|5K(xYT|7(RH6n z)Wza5>!O#d`@j0RLO;ydOCK2=!cWF*WVp`jfN9~}Sh69=dA)VaZm?e*-=r^woBjU? zd$5DaEzXG<{hK@#Y-V+jKA8A~n<~z;ew49Kvd)=3=o}dycJ8CiJ#IgyPsqoNbz}IX z|5!XFAIqn$8Ovw9E?M-cBaVIARmJ2*eT|dvCI2z)*B3JnoF{&5m9IHRW^Z~uuwac} zYvtSKn7(5l=I?s_GkM=W6U=`smIa4deX7riYWY$;ldt{%BzeAZf0=ym+?f3!|77vZ zqQmY3gJ-jAr|`e}X32sT2jY0d$k5=|dNRsm6immB{NJzrqQ?7&wdN;|44tev$b8bs zkWLdfd1UBfIdxkCGPb|#BPhJL1tM~3>@dP_!zoXJuiEn=~>`sb)?8Tq62@-tmt{yO6o2rhbMs)bIDQa?O!yv2N{=VVFgu`1!7{E1m_1;&?sz7pP|g^|0JfJuJ3X zkKYT6ZPmlDy?Wx9jf;$%)x%^5^+b1)f3f+U<&W+nKT9?xuJ5WI<{XZ;h+jh8Y-hT= z^I^gIC5`tO8QK{3^Z}XCy+(%GrNpz9#oqEU+ef}Q&t|_zXPNf|SnfO0Hyl~F|H#n7 zq}78;tXQ**xP!#AWHyNlif4M1_E;@o{{j z_~pf&B%Z}7;+dVQ{uPW*S3lD;M*2Ityxt_KThaI|{W3d8zbu%nWPGl8Cg;h|!rMwU zD_eJw{H%T}KZ`E;R}p`uc!rzgXK}Oq4d!o^pZOi~v+}j&WL5j#<@{N(KYEYzUrqeI zUJtA|z~Vlyht-Ym_j+J>(CZ-`dwF_FX=b>vVK{< zs^9gjf6e(YdtE#W)~s**hW%Nwo8_DK-@yEU{h7Sw{G)G+-%x+=IDZzE^Jnsb^WRAP zNAffMKlxdGte({MPu0V0P(2Kvsb^#Ru$>iqSbQ%3ChGn|ekNba&w{m^ienRtubc<7 zA?L^ZTj#Nvyx+;koc+=7-OtVK!<^|4?kB^r_$^##2g5(z&p2k|mg4^9en$VJUM4>} zk0$$uQK5zTh*6=3>Bv!`W-E0ujgA@>+F6Vl75W)!MuqyVtsg%s)FDJJf6`+Ue1@<-lM`W3pVfPI=h+u!a4j>+&<=+?`xhVD~1D{ z>;A4YW6rMVfv&S;-2viS^~IchEEx{uA?jc_Tpdg~%$&`?a-AKFUwA8-a+nz#T3tWF zb>>IfkI7Na=^*2yojZ$T?Z>p;xgTuIrs(nZV|k){aeR_|hsb-Xd`wT1kHwkt9cp}* z`dP7$+1aB)@@w-Q&YcB&SaFc$Ir1Im`nmEkXFtOQ&f{=#7s|){BIg4`510?UcWKlEgy^9oj;R1AZNd`^7~FX)#UhgrR-pA*c#ES?#|iS~QN zuUD4rVfMP;XHPQ!hSw(xc1L}eQaIWAx5YDgS9~15=l(Hg!ztFkuU`5MI`l?A@are~ zq1Sybj&0G8^vU%9rOXjBlEA^52i!viGC;F z8LoftyqWyX`7!@N9cLQ)X2FUT>&|lhAI^&zJ6JIO8?fSV^xv+ZE#HsUN5g1e zxDr2NbZBBReze!Pz9)F_p1uVpG@m1G(&*5|ibE`?jt-6IvUYUnWHM`X7+^MMbnx+a zz6dfpw6bK$bl&JtcRrW&{q)S2^5iKiCKp)$v(ceFy3FX%&ve<*q5eYo>cvNw6CYhc z{6*?qQ9P5C#4}r2e5ZXIM*B6!Rn-$+OFb8hX9x4ONB{5NzR3pazr;K{nQS;Z3^LtF z{H5Yj`JJg(yL>Sb|)^I(3G z^SIhRY-2b@JQF6@$aAWA`as&y&y4lg8lR~i78f|b=*8lHC;uhlSzRig$!|voKj$SB z%$QuJ{y3%|{-S5~GwD)4OV(X)pDWeFg53;PI}fJUxF0vj&z$MC_GkG!_v6M9At~HH zhU?uwR=0@%y*%B{o9S)No7L^k`zCRJaNdmHr#BS6%X!}{&mXz?-cimepzym*`R*!a{Y7tGWkNk ztk~3J{H6TN*vr%tfwgyA|AYI(WLSSp!*{?G14zb9|UV95a2;^|@n07mImgyf32ug=4%gV*TPV z?xpKXj0wZhWyXZ&hvi>(Oz38^{1{(57Pr!v(86@(F`U)B z{5s-Ut|y*hef2P9^0@14XSRX!VX~p~DY=pJVX>+6VY!+3C#>7td9q{~$4%m&be>y_ zXZmyT%(fB#lsL99-`4)DI2gyEeN_~Ci+ttU4eN2y2-(T!|g8o^Yt0X?+gMy+Use~{_eFNvm*Eoo#_^^0 zeM#Qm+Lz%n`Q!L<`TN-=KMPjOuk<>5+5A;rXDm3#>}u!wiuJ$qI%8RQokeeOZm(K* zqjQV?-np^5$?NPj;Fn#WSPl-JGp>7VKgAoY(Q&#>^O=ci)+^_8se9bYEGrWcrfxeb<<6 z%)D{k7spKAQ^(8BmpS`cvi^PbFlTth`7&X{U*%&53swxTI^W7Vb~3!?e3>)-Kpu9n zc-?u$G3!6%oAO5o?y zkh7KHQ|G~y!*M)lzfY}WD=QXp{F&=aKX*R{?e~@XS#gNT*Y^8Neike^%<3EQpIbNN z{;^>A!am=+f6Um!f;C?{FJ{cYcmJY)bN{{)|9ADUV9AO#U(5Rs=gExi48!hM9JBr# z@ob}yiw=EEnGDIxc2?|X@^AGrWBs?*v6&^?nT!~#M(fzmis3u)BgckDR&0yoQDZ}Q z9J7k!(PKm1_r`2yHfC(-h+~#FOGmcgEPz z&U~i4(OF|d%|AI?U(q@Cjn?TqI(KZS{}<<}D>{E{=#4H=&%e1)-O)v3LuYjH*f0=H z^z|PuF*dYDmmKST8ZM>p=+gT5kw0^e(Pf-VbXn*8Uv)BN$((t;dgJ_Z_Wj8`>shgx zVR?NqWx$LeKKJf zDG%$Jv6-PkJ#n5zoM#_%`o_Xgux^yROj)s&VO8hIguP5zF=NeW>)F79Ei9R{VmGtZ z^}(>VKH~Lt+=nsNrS22cP4vNxJ*+suu&F-A+L!gr*vy>mELgB)A1e+qY^D$I#bk`{ z$>eNh$xc@6W!PLjOxReX4ra{Q!JIuTI1uNzP|tW{*0W?Y!z^fineO5DySd`n%8Dh!p3Y;Q zdA2d^<@Ldg@jbhe?acOe{;XKP!1x#LH!BXX*hjw$t~wJ6Ulsj*r*>@~)pCp2>;gS+a2j`A!ngoc%25@w1TT>SuDM`dPAWCG+R0pT+s= zXMTbDSC;1@^|N9>(@yoTVtk4EnO>@XCcjmGgZRtT!-D+`m&>!Nc(${=!aVaU)l_LH@d$}fA9XTsg9f6UuLXWvT-fr zo1F*4EzXZ6)3w-|IdwWe>x{UXL59<5B%FdrW@}k9+-Yqz<+) zl;WAPCe;TsW>0wi#xZL*7XOs{&-7{cKaT%w-%XtFGxlZpi~G;)S@&&I>z;Gpn7`n@ zF@4GX*-SmmnZ2xj7Oyy;&5d7mKGD~lPxN)?vxRteGJC`Muz1t?Y-v1WTxe&-eukOj zLVc5SV9s*(xG=zK&bZL9mFsiIg$@?;#`&|wc>cIhx3%kRW3q5u=!;_}KX-kx{LI-O zP2}H3Ugk`fl%HW~`M0%xIr*c@%g?aFxX`$rxE05RPG&2O3xh0I9_QcC;u^+&N^Tvge`9<#cKGt30en+p+KeKD} zpUHEb{+VB|f2OzUe_#9Gu7Bot>Yv%&`rps^e*H%u)PMA0{r}SSNA%D9QT<0B)BpZ_ zT>ng-&_By3^?!i;&*-1o^ZIA;g8mP5{dN6E-_ZZB%)g_5ChzK>=_mScInoxU)JY#A?D=U^!-#}h>sB>Ce<9#Z5mZ8@K9zocR^xptd6%gP{n2G>Lj7Up>uW;Juu@GJV8MpNU0=B-bg*Q_ij8gJSE&h| zEI7!L=@IJjjq6=3IK*Vtn$UElbu5^zR^xpr@vGN(AIg4f)_5Pv{8}~MhvM2bp@seu z8+w?t<~PRc)P#&Vdzr4Q|6|0jr++5v>z~zz`af1&s(%)n=%4B4`fnGvh5nhcpViOx zf1G-@(LalA_0N2J{U2|BSN${JL;uY7)&B|N*v8~Q`5AsC|B3Rp%Flv53B66mh=szdL%W^U2Mh?tB=|ls}Hoaz3Z3qr>?y zWiQKfoX=_MJ>U5-T;zOMvhH;KbgDmkvHDqFqW&|CFI7L&-#Q;AmpPv^?SHxRVcz9@ zSoj#7hO@+7?R;2W<9wpmI-j%ccb(S<(?b7oe3Sk=jBnOI^IP=K9^+J(m%7e_0QxT{amFD{u})>Va1e|GRir{}j*c-{NnRhXoT4_zW{2J3chuZoMC0+QouH z(edL$(;ea_j1L9FMDcMvN&FvNpFBQvvz#(Mggfmsb$n=HGHZP3iR0PhL(N_GoijdU ztk}y?=f|Y>SjX1r-0`7gGH-mSyIVc;$A>m1i^qpPh9$;(&&+tq@u8i?QsYBEtEI<> z`g>eoW_-w5Ew>O5;NZ3&!t}OI98q8t*e^C(~8Nhe75{?^kDo{+X|; ze->Wh7`9jEL&nTmHJfL?yE-2> zX3lIc^UU`#{|NV0Khyox&w`DQ%J)n4Gv^>HrjMy>fAupvQ2lZIEA>3CE*4A{` zm)5hJ;b8SYVayh$hq!+%S@Wd)hq`|(f9?J;JN!zdxBj+Wm|E z#{FY{jQjVr`j2)0n76xsaeSO}`Lpry`e$~6{+XVr|7X;DlK!J7>!0Z<`tK9(LA1{3 zsrrwervJb24E?h>Q~xZ_(*LtOTmR7x{YTHy|8w%5r+?<>>;HN47wDhqh4QmtKa-2} z`+_(&vt%cePW!W9`l55Z*#68o#F9-f8DC<5mK z=7i86$FnAc`Zru>&UE&KFu;-xZ-FNJ%bRD#hWG5hf_YXes)yN1 z^1pB2Rn)_zLBA~Nr^iJ0CCiO7cUOmiqP|yFlzN>ne@9P|x9^iaFHvX0Kp)Y2JAy#bq z#QZ@MLc!$33EuZH&*o3%KW9SdW^%51hV#r1@)JG5?wP%k0baN_8^7 zN}ZpJzgnHlSg~T`7vioF&ys_2e62daG-emm->EZ>+4Pn5*Qt{QhnW=Ozn1?7@k}_x zl1<;(hXvCc#k2gq_#t)OB%T$AnBFY@TkCI84|7(`y4Cre>$jR`a+^A%x6AXr`8(uc z_=7yryWFq8S?^=FbEfw?2NtaV!S(yxUncBj%3)?~{JVARWWhm}O#h+I`|ZQD*FMZ1 zRPV5S59yB?hgq`upM2Q;VR+R2`IqaDP4Ik-dG;`Qe1hj=?DNC~e3$FG?G$(Sw7UNg^<9?J6fLi5bo9mj8* zA7RX9R_~c-`o6xHd|-a0>nvFQpLr%9JBLxDJU`;RnSA2BnGX8(G}=7d7(VmsjLGNv z7$Xl`S+ZpK!mrD*qx?NhJPY6;#Kh3Uj5QO@Gh;PsV(4WUJu%e!Ugv7e#LyZYH_`h5>aLj>>L%M~;>6I# zl6}l4P4qn{;@Hk~vPaZe)=mudQ^ij+&z${nJl%Y)>&%(Wm>33_&YI}!`}UtRF?6u1 zo9Mki=P_?$Xq+ydovb*>e8EJ|yBM>b*+Tgl7Rf);{9^f;Ci1gj!z}wRB|r0}uaHP>*|Zy2Kr*fhDG8x))%WS^u?q}UyHew zzF2UO>GsYo;SLi+7b_02+;L)PT0;Du6Fn<#ey@pPnCaf~FKNv7=r7d6u#b9{63?7D z2Uuj{mzHl|^|0DcJ#qX?_56(ctB3gk>WLnxo@MOwEA_DA5Q~G=vn&r+4?~-J;+W0# zJaS^_jvnRpy&Qkz^&LIN>pOaq*Z1=3JI(!IcDDP$`~vr51^F&C&zwDRe33jW8nc<% z74oyV&-_a2en5T}K7yeqjvthNW$PZ6hv_5oGkaeCRrsR&&7|M`W_VeAgZ0dqz9OC( zYge@|TNz#z&-68~kJZe-;q}4tO|K7DOjZ{+;C@8kazB`}ehuTd-49kAh`!@~tm*o@ z?gxtx+z)0Sx*uy954s<$K6gKueC2+uZU3*`4`$!E9}Gk8N253vEdJ(xF#Owjt;7E~ zFIN9`Uh7&va#Cnv7(FTUFc~u`)T}38%_Lt_($Dxwp*K2lQm9?u^(m7=E3?{3o|Wf} zNxptBU)>~MzvrS!p^stdNxrvBKg&!C?JSm^6#Ap}lS2JQt}i#qv#a7cz;gLXp&^xj z#Yv$fy3(XjF+WV>Z9;q|n7=<4IvCy2&KZwb+*hD-N*O zRQ}Ce-%NfMo68@^Tgtz=xF-3dTglI48~L|zKI~$?t^CZklYdM5Z!dqec~Tf=vBRX$ z+$4UdNuirz=Slv}CC~28m&Lx$m*FJmyS4Gj&Nuoy=gaIm=lgT<*E?V4H#%PyH#y&J z%-`&MS={M-S>5G)x3%Bh&X>u(&X+msw{xBG*@^Ui{WD|3_IyA*t6uSO{GfW8<$YK^ z%pXw?!=vii!TQJ5!=zMC9REo@JGu{SWAco87@k$nPOd*MKf_D%GwD~)&f;HI53^U* z!}Lw{?Be>{?nm@p_k+cI?#Hft-~C|rq5Hw~BllxBdB1c&Sa68RSMs#D{#k=1hN5PaLyuPy2<*p^d3eKkH*La&k!avTpR`(9UA)yZU6$qsYT_UwPIr&#;bpW=!|9@4Dt$afs=9>iMO(_0`XuebEinzrS@Gsh>%z zeip1hz`D)U&#<}rS!|*H1I2Ble&*Y%pXv7M|CRY2)X!o^^~dqf>S;CJMLkS*QxD6Q z$)V{W>vo^)nQ-~{m>hRX%A1rRK$)TGC!y(4Mm>gP|vxn6_lS9p+*6%wxWGwcZ z9C{h{pB!p`t)BxXhgOycPWEqp>su#>y2GqLNdK%3)<4rj^?$f{wzK%P{+YDtzs>wn z`e*tZ{WG-d{|I^5!SXo$Gd)57M_PBH{-Y=9pXn*$k76#K$*JO5vGHj6PZQ7dbny&l zIIrJ`V;55nF=Nv)_GQ6>!z|f+tbFWdIMaExThA7z>|w^5jSuwZh%{+ZsO|I>_b6wmS&@vOSVpKg4scqX@r zXYohzXPCdoc`>n>Xd@P>DC*qlWDgHwFe-zJT%9PO0vUWDw{ba3>X)6Q$jkFrZ4rWVE@x8(FE;S`IUTmK=ri4!BYfcG+tk#<1vk%xfC3G=eXG$1izTTA3bSc-L z^1o-Ystu-i?n7T2P6^Gw70+(wn@sV&#p>F8N@!u&Zc6B3cJ!1`bGh*eQ$iL!ZA$2k zp6&xFudvTKQ$lO>vMIiI!ul(wgt{*IZk!U@SpI%W=worql#pEMdiRvj&f+%xGw;>^ zRrYyY|IDAzKa2PDe|0=p{WGid&-?@ZU&9ae&tgdbar~|Rua*CM{j>O+{+a$=|G$%m zMf6|#kN&9t>-7JV{u%s;g-{reof?`L#!U?c6Am+F^Y!XrH$#p18{}aNv++|y55t71 zq2@;MY+=P7W)sc-UOY2alct8=IG#K;)ZQe1%GA)xjNQyR$b$7Zi;LG;#p?`HU1!4d z7VFr>vUaMk=bN8qUAH_lriMH^bE@wpk#E-2PSmZ{o+ZQW z*3UQ3iajhA>E{l0FQp$A>|$7Ys?X0-50gKbXA4XAFkQyFJLOx}I{HU#=w-Q_bGS?X z74*qsMfJw<%IfXmD&m_5?xx>Ij9c`} za(DH!*h{~Ua&P@I+eg35GyOhhzkS8CV8L`h`$m6h-^azXo5?};E#*DjzRZrcFT-*6 zeM0<+@~~iU9G_(0C-rf%eHl)%FO%H9Pq}`ob7pz^)X>L@$)8+5b82X3c9z#q9G@-z zX=A1=*-9Vw5jvT$H(qBI$LGlNXZe`1JWpTI^IeZ#==w9_E_I#RE&5}AkNd!IulvyF zIt!*8X2#~f$jdH<`^7VVK>V}fd&M(*(0z{Mht&I=^$&|@_K5g6epLMP);}hm)#LKB zd_w*g%s-_b=6`bDFN%NKd9!@Rc{A^G-Y?1b7xgoJR{wGQob&E?{?9ufW-mE!hS#0n z%htW&ycynh-YnmD4zF1MrSoP!-URSt^dyN7p(p@H4HHM&(zTHnsw}8_M`J; z@n5g=*Ioa~{b0dCrlIzK&#b1SYeUx?;%jQd5R>t>q3KQIiM77BO8n$n&w+@aQR_Jn z`^~KN9Ef^m*ZMcO{T9`F4#YUA^&E)!U=az1DLe#_QI44n+R-Ydr^| z&$QNaAokg`)^i~8Z(r*<5bIlNJqIH0z*^6Nm~XB19EkA|wVng9-!ZkG0}*#pt>-}G zJ-OC%Ao849>p2i{=hS)*#Qb@+o&ynoL9ORN%wJmTIS_GI)rLWq*XaKP{!#xd?h()Q zUi*G%Ju~L_IR_^9yB^0(K2rY!uCrvp>Ot3;KBT_?laFo8AJz|(N38qUx<~cH@-h9y z@$=$885Obt{jhvXKTO}&&!_TM`eFX1{7k>n&!BjAviL?n41d$lXZ%4wEI7pc@9yX4 z;)m7AqHbCkX0rCQ(ENq{)|nQ%nXNm`zXe_2c3Nm*)jBQoFdRHB)O=-MW-Jby7J3b@~(X#`pD^?`{3B=p8K%AX1eD+ zj8~lQ?*`(xogM~QY&ShLd}qA<^w7a{m+7A85V!mE(D*&~7SC*7@o~JL_`m7*0P#!? z5zp*!@jtL_dgx?+^7JqmJ#D(bbBH@*dgx*}dwLj(;|r#TrhmwH@$~=y4D%(^!?1C7 zLpQTqr~7OUb>1;Ov@pA8dgzJc-sz#{Uwm+S$XGr<-E$YNzb^jY#%yHr zhI&|Vkm;N1`40!w!-D;B{Fd|i(K=>K-gceoU)9Tk>3`K<$;XO=EIx1^KdJXa=fUJ7 z=fRYXVYJV16VK`s@hm=-XT)f)A^D?U$j|C0=P^?JxEcQKKH76FGrSKVe$tH4Jjyek zQ)h&3hG{c=&5JW$c9&SIf> zW{bp+v;Si8ESH$!eE?(D)flfn!)KV=<<49^*u-(W`QXSLCcP(Q)^ zX7aP#PJV`+TMIx;z;$d zWHQydqr@{DE1p@qc+akfTm;d=B;*BQ=nJ$kz@S^&+1ofXLg74V)%pe znlGL?!=3I26E-X`zDpm>S+QW_LV4K9tY=0TWVm}qNEaEiJ^DxaS>B_b#k@~FtR7Sk zlgHGP$jcU1>}2}5>ns?SFwYixkT~=(d(wF83yBc`I#ZD=PENp7mL+rh9TyDfO*q$*6%gbpWWPhW*BDSgM6Ep*VlnF zLpRfdX8Imx>)FDBJuF$XqC5xB3>gddGCO2us9i~ahtBjlS+4(jW+<5+HZ#<%Z2pLu zp^YW`m>#MBRm>lye`f4wI9mS=^0w=r;Y9s2VZ*B8PSQV@@u| zIbHv&n`alxv-HoRL;q{o|6=_!+@OCJcj|vlaXtEHey@0j`^2v$FXLxBR2+`u`^B#< z&jaF_(@);<_fF@<@SyWz!J2i<}FBUI5uTRa(Feh|Nf`G1IKGOT`k6F z{73aO`>*=9=1=OUZvyD6xW_fnZbwAvwm-(bwp>|u>C(jD4 zET+uz44Han&I)zg*}ra9Xk*1bCiCUl-t`5uLKE}FvwW|Z`K4xs;poz{LUXfxKbsZ0 znJ=TB9gLS%5373huv}iA9qqT0dYCt;hso;d*~#@a)x*%J9v17UXJ>Kis)yxz>S4Ck zEZ_HU-8SY~v6tz#_TAO`o$bqf7yHKXZuZ@cyQ?$0w>p_;;#-XO6CZ6A&-~ZocbB(K zolK9ApZQVh+{3;{tCQ*R;+dZ)eoytCB%a|E`B^dSWj>dm;SBN2ShKfv%vhW$Kg+Y^ z|AlpD%TI5D`~H9P=Q@Xd#9g3YCKoyfmKQmPOdXxGeE+|E>}SdPeXYNAmhbU#oxMyh zmw!L`*~;_^`I&Xe|4ZxG#^fsbSuojOo~z|&&XU!&;tz1W5YLKz%&wRJKyhqk!IIUD z;(ukoo5ZuaS$rIK%ik*h9r82(gZf!A9OU{Fv;OxPFZuhkLPs3`b(Uu^#8>(|*nS`B zkJTr$!ay8B){fT~QpI@uXdoIA3 zIn(84hhF9!VrZBh8V|Q_&DlP`%6J{unQ)jX8{4dBC-Ze@drm;y2D81UxXEnK3AnzM ze9>)Zdrm;U?PmMCnfM*#VYcIJ&k2}kH>;iGVc1!oqwTkgJj`~LCysZM=QsA>LmpOp z%fs>)@*HD+A9+~)a<;$g>A!V$XkmJgcxH#p_Pl`n_s$Nr?edMCnI_Vg4MSQ^lp{_?#;BEIY@ak*=>aCp58Gbx!DH zxyGE(7hQ9X_gd_`)|}AJtZ`20XT|!H&967dzmbf6ApZc1P3QQWDsfwwXVGMy>9*o? z^Uda2>|mbNj^a;^=Qk&Gu-w%=^WDs!X5C)qS!8p3Cb_r+=lDD-c@9=5lSAkDJSy=g zh(E*lMDfg7#qmk@JyTw045vCLW~@0&{?pB~Ji|PbGtHl^E@n*5GS7k))3fd0A#ubltgdq(F0k$o?nCs>IlfjQ?k@N5LjCl3eK5b<{bq8HJ}$EUUVX5-Pan|-y*@g{ z^?7|Tc|{(U3>VA$jy%lR$&wY5cjttbp!mBkH^_Vcpa^&li}VUgwO=&os|;3G>XCG=BwuW}X$hnJ#0# z%RE~cmaPjtalArZsJT*IE7$$+vz*FR>O!w^#oDXvv$1*Ro5;gtGkLByW+SsL>O5b- zt?I%6OV(e*mOA%F{O)x=k4pR=b)oKBdD#}-vo7>S_p0-GRO;Ki&gW6tkNpe>$#b3g zgT*sHL|v>{Qy3qrE*30UvOkW0ZQb?8zp;+#arR-sx*N=&WS+^%b-uUKI5&Tz{Z2Q} z>}>HY&r#R!?Q^cWqUXua^nCem;syF+xJch|d{td&xLMw7>Ou#zYwP^k;reyX=@#P~ zoD+*1>%t(*-`Dvw#r2!(LKhPbvADG^G~H_c4t=rWaP;oF(0rRbe{>%h?r|S(x9$P= zlPP=XVQ}wDh-1d;LFdNwA@}nS_GN4I5&biLRQ#RBY-aMf{0vXZf0w?WmY?Cz=9zIg z&Oa}{$NU@SnZBidX78&1Zuyuq{MGp|ubj^x#eL{}7(Q`6tOlLWJ^KE_`7ry^`7rsX z^SReLwzK?~dYSxNANPs>Q6JGTH}o)!nColP;zrI5EzC!okB*%iY96p}&0OD8;ySxn zOqlEEb(o(t*U#%Po;=srm|W*D)2Va)ybj~qxqe=U{L|(-OZBn-A$gfInK9S%2l`;c z!{TPm4IRu`v0&pP^01TH?73l(Inzg7XBWd9^)O-6WA?{J3~_Gq2NcY0MUu z>|s7vzfY)#DbsoCVa_tn&!6jasmw2!>-`Dy3(YfG#{5(Aur0dWT<=eqUw*FlC+xGr zT<=e)bEUc7pWw>Q;c0QqS*+q57*=x*e>Tq!W@|VHrfWNgXIyV|4lLJk4$Rh5XCF5d z&yoYoHLHcEJh<;hJ{v~}Jre78uVAiJ2esvzHPG+oFvGHYbN2!z9 z(fVa|tbSi%yZg@aIQO0T3GVx=;#n{`*?niu=GW|dy8F)R4EOzY<1^iNmh545mizvO zI?nbwXTn~ltbJ45dHQF5zW$kBp#K5!7wVr0`&cr0ix=siRi}7n7t8;)_)FBojNQx` z-cdJO=)>7V4>N{$jjuJ&oIR{K80W8Z4)58AT}*Fr4spz;_tn$woSEM0oa6X5=loZB z{@|Qhae(12^A#UcFBA4ME#{?B?AO#dVgb2fi$p54rz*8eB!`m_F-JfnZ6tohV+X3W{kg0+Lzvy~M~hQGK^ zpIOf~rtD+J%`zp|d4EIG)E>DSgjr++3K zV#=m(_`LpEa3GFfkblUStqd=!pBd}Em6vVIUQ$0pzxuxu&vvFStDng$>i^z6bEdD# zAIEI?n{}_LpD8PrZ2Upq*VWJD4fV5N`ghma#o|r%GYqKzAL3asdCUD{c-#FOHvf+M z$Mj?O@1L%J=Kir_57RH)zkl&7_b>Xj`^VyY_wV2QhyI!UsQ)MH~=6T=2eoN2uz5{mg~`A+k^@4%JjdEa4-uN{hKSXuli zc^bsCSWSE!uP*;+@$6*AK~`&uA7kCx;+Zvyk8Z5av952UP8Qp$li7Cq8fUz-zF6(1 zFNT(Rp{7P1d(HD+seSgI7rI%oisN6}fBcw`x5~$Gh;>X3b$%1%J$#-=fUG}qp3gB7 zf8xAQJ5l^e@-aDOUg%+w+h>yXr@x9je9OELrpWW4c~;Mv zXYsuFsrGq6|14it7xP!u8+}c^wXVP6yjZ^FyjZ*=ewz7rofk6>F?{HLOjqZ}?gy(+ z=6T=2__KMTd4_dgI1i@Zt7oS9zo~~6dszISo>~06zLzJ|JV1DS1gO#F=M`ozF4u=XM$#%>Wg7BeKBWU;yT-yZf@V`7WQ4jJlmOUss3n_`j?cSIrFX5 z&vb|Rps*=F3nx$hfbCpWN4A+XX18OPjnykFv;eJVU|pn z5x4(*&m)*WV7})O)ZaSa^9bS(n(uqgjSm(d$84@QKFs+<+nmpGJkt5FILi4j9OrzN zSMTx8hxy6Qhsi0{REoqI%fIaGLXB!ek}uPj^17&Tu|V&eYe+@-t_3 zmh)lW;e1vxKF9emJ|ocP(+hw=a{M?8}TzYl~yS}GwnV#~JJVa8`?{{*=G)e??<=ofPCtH|)A)e)z;@21dwRmRV zh-dn(_zjG|bDvnUm*EHV8=C*Sc_#mG|Cn<)&i_}PK7+Pm2eYuid$HEDAvHgKf#(v$ zPct9KY}iUyUud2clTEpVd8SJ)2z|_#GQXMe&&;!6 zUmUMsesg2CF|4@Yf1iPythB&q->8cz(^VFDe?c4vS*>b*OLe8@SvD;QLvg&-0-rA= zZs!F)U&#C}3w*wi{rA+zR_6E8AJaDdu{?S~Xx!TPgax6K`N{G#J6-;ti$7C-R_Dvl z?BWHXX&dVR_kn7?#E7-n+Cg3!FJ`KuO$Ze~}je>?eZS`bw>i|dmXhHj>l7kUqZQy2O<8sgZ)V%ow`vxj=8FAN#e znG5~=4A)t^r#!P4hE|q!3;nD|*XJ$_b$f}Qzc941U?0nc3q!KE>x&kKb|!uRX@7Ld zg`xfz>Rx)G@3A*tW}%;#VO+m3H0)zNJEF@k^u71aVTFaEF;n+S3qvQ%CjB%0x&HU% z4*HL_>YpW>_Ot$A{WCjM|E$>jOVsW*(tjLx>i-~KqJI_~h~rE3e=sl8Kg%xt zvtr{R_PJXB(ckHx)phzmRNpu0pXDw3XK}0kf9*W)(?4?#GrM2^hl%giKTC$g<#|Z| z%pTT1^GEgH#;5hqvQPi4p40yk;$GB0!^`?-$+{!Wzp8(F$T0M=WO9^x-qJtwcl6Kl zJ^deT{;&FH{(=6PeWd^2m><+X^Uw6p@TLBbvHw^4XZel(nSZPQW5u&8`knrn{Gk7K z>;9qt=&=4-{73)C>3`%RKgU9z(Tn^X3yxhBT3FO9^8SG96BdP<6Vx+tk$j?G?on6d1 z#B%LLo<|VJf$I4@=gh-byx^NbG^&+sep ztXOxxe68YHu#e#&=X-&8wzFh^93Sj_FI3MV&X)xT7!H;HB7Lxx1xuE!>lA;O{LEQ0 zoMHZA^Bv}yvt)XX`AgKrHs4=>_6{>-t6FqnC+ixLo{Y_PpA+9*YoxE4U4^pD}Kb{FwBb0 zH<%x_ICQg^xY*wb?K63?=Mp$&vF8%(Gj*}&5{#KKtzGQ71mn4jJ(u8I<}dbKg7JdI z{?5oni~Zbh^NSaUHl|A~4t>$37W=!Re9JBl?F`E;4*krRU+g&quC&;52;x>=90sCm zEcSCJ#IL>B&z&${cd_r`;s%RD<8AudP&~^`#537U{@dl8JMqjo zz={ojFu%S0%vr^8v;238V<$@vGVHq8&z-Ptx5a+$ggW+E?B`Axv#H1ReVs3>gPkwa zUpwEsjoX|rvm>4FAI%@-e3}2o`7%33ewJ*w$9*_KJB$C`k9;|KMST07@w(rre}#~ezy2t^Bv-upCg{xx#Ax*f1Y@jte9Wm zoF6j(|42I*I4kD=|9{SD)gr74i!gg>cXO%jqLzx&MXjzYVG$065Vi|)9|}vQBoxU+ zY6)$WLNqFD5$UGV<>+2Qs4TktpYJm>o%hy~-~ao0czX5uoX`6;pU-DLb2+nfW}ar8 zQ8R*Z79B}DKcf6a+KEQS(oWPyb7!Kj&`#8h!w0oqWw{^IuJJ4vbxT+-8hMlDe!}OI zsE@j647K0Je-`oY;4eA_f6=Ma53e-7=KOMTS-ob@&r{etx-TE==qqx0A1x`_Isi>dzwx`g^@WEu5Q>pSX~QNEn|sJ(*rqt+_gKaYB75o)htI}%;b_|Iqg ze=z>2{Ws$;`8|x!m()MP;@NKGkF&+p z7oz@27S9)=9jO-Q-uTqEc)k#tZt;8}`j=_(d?D&*TRdL~pB#(l3o-6zT0CEf_;W0t zFGPGji@u}vEuJrgHozZs&@HId5dTG#x4<8D(H*FhkN;wpb20v+?eRyWo$y~mTvz-qcx<_YSe@=l59ht%Id z{g0@R+B2z-S|3w?BYAX`=qL0GwPw+;P1K)5ztHGh`h{Ab)343cLrYNS3;MN%@-ph9 zF6y8$v>Y|_sK1rZ(GoO*nr+lW3(*)_ibm(t-yg}NQPf#LeboJ$`rBFFLh6eyrao#` zQvWCFeNTPVTE)1b5j5pze9&H~Sz~ceAo;Zxzbl~L53~oh(Gt`}xuDB$H1J2w2K+@g z;r}b;sJ!FC-i$vQ-Gcvb_-w-;wNV#!cj5m#`Q4T&LQT14%0%~BT+5_g`>Bt*Xenx$ zG_wVDP-_?ULTRQDwa{YJ4yW<1WR_PYjpq!ZHPd*`5TBnw9BQN1ALLWh%m6fYTAEpi z+NY?s;Unozu)H zG}0x_?2tT~zlYCJ2Q^*Oc&`I_v|umGK}%5Q@-+I+=U37%G>Vp>vF?=bCm*F8boz_QQy4UdBoCXrvmx z_c2bWi!MiF_v4>T{vrI)7`hy_ZTyd<{1N<7GYEgwLan1{$78e;jXq90QEM zLERDfpyma9s#881AJl#kAJmMYoyQPAmUg1nE3{Mc4(&Xa_;IuojlRbEM4bt&&*RXE ztWPxZ2I~_wlUScA)I&>98VPU{kilXwb2=(U*U5iC{K%oh#1Y%oEh?Vg6)LzK?R$ zL0#1BXFX)n-%z?KLanOlrVNc9na(>6Y2Q)lW&j#JCfzJVBgdwjoGkJw>G5~A#L(sB zP3?4(n@u@tqt0oRqxR{P=g@9c-r-`UQI6VZPF?D!Q;xdmLNt~^`I#&yljVxmp&T_? zl%GW&m3OqnvhfkEi~re_pGi6DpbJs!Eb5=b=cp}OkNT+Ffco{Q*D&1_qoxt%sGCQ5 zed5k%xoD(Wx|xAGXmT#~ny1I#;bJbPoO~2bZb1Fcl%qCUiblIq-Vnb_DMw?MQ6IH$ zNH-~s$fNR(mPilkqYi2s6W1%<6rwI#g4%s3KbL%8%F!5Fibn6pzX|Pm2p`mb7=JWo z{kh`>BWK=b=wfjz)%1jyh=WdH4+_4vnG?>I~y^H1=Y;DL9|{ zFHw%hUZz~~lPGUS9xXw6Sp{Q+|1{c*#?TTpI)m~Sw8y0!jm)MWsDqjds5gglG%}a^ zsQVe^7xMWRl%v)>>Z3NwO|HBbjB?Qhl%wWr%3Bim4dtk{5FgZDM0qRn%P2>k?`S{D z#=!H4_qtM9r>HMAmU6s!731~NJqc-ZI4w`xq%R!4!vxe;iji6Rrma~?5 zgK~g13sDD6X~*Y3Fs`Vz4j(kS0iS&8ZNvw)&@$BBgwMr%z8N3XMN1|BBkQ|8^?zf1 zi|%B7qc)n-0sme2qYf(XsBux#k$#~O)a<4oXyi}kxoEWv-YdZ8=m6A8&M>8@gC=)o zc}Hb%tS5hThM9pzj>#}7T_{H*sC7aH?-#)L#Ekg6XeL31xX>xS|+8KzvcZH6hhobpZ?rbM($2ER2RzFUSVL|wELwJxLI zg)IMS`i(l>@ke7f(C;fL?}0yR^~7KFM*LB?H~v?#{Qmf(<}TWcT6fdltBJoS!wg5G zc81x4+GwOZpATgGQ0Gb7kGg~LzlQu!{6&Z1k4B%t|5`pr9nohgN1c(BUx(jlmW!G( z^eakzv;d8vC6XUY`SrB_75a-hDZdH-Pbo)ZXc_9x#{XtMpF?{@=h7b3 zd`5eEkw>GbgU&$B=hVN2{36BP`d(eLrOjrOg=AGKnXqs|YM z_a=TF<*2)!a@5+u_}otWH&TweXesJ!rv4q&-$FU+Y^5Bvex&?P{I|1QG>XbQcT73! zMe=At5k6=!8r#EsKqGsZ*M0CoZPe^zJ3wRm*$(=WubRo(qAqInqkq*i`8xr6 zOlJJuJTcVt=kxlRynlf9HO2jJhF`l2nUkJ@PRz2q;T9F0UMM;$czK9<*#ax~Hk zA2iyU^7~m1S}59HeX5zD!X&(TPCmV-J`+WQc` z*VA6q>VY3>qvm1Cd$JtVxtVg5mm=|8Bm8b*Tx{y!nrVik5p)Y0MI(<8kB&kev`q9~ z#{W^`@5|)9*VIExP#29!{{BpUXF%Ko_@Oa0hB^;XJ_vuCax^-S<)AK__ZXi)MmcI8 zr#|XFLHXn4iz!DfbRil+Q=T9mEkJGg9ChS#)C^{Pii!V-_Mz5H+KrlzY4?+qqXW?B zC)7t{XwFmk&SIXS4!T^_&E!4T#C@7+ictrRq1J5LHH7jxEEl!WEs~#$&rtHHyo)J@ zmZ9b|misj2=m6Aw&T>%;%^5~}&|awX1?vUn@XfM>P zrXQ$wLbIaYP-| z5#7de(CCjWX9DfqPP@<;x&w87VjL$D_cQfT2Q5ckw4j9gztBI_M$H?}l_cz*$Mt-NgsDma?A`XqBk)5nx)In3;!haXzj@qb$Ms~A&)Ikg0=JP*T zJ{m>MJNTo8s8vqC(a4|pPo_Q^MI(RVkH*lHQp*3vA2oaMN26#t8bb@Fu-v`)qcPOH zOZ-0ihdStRG=^?Lt^JJOd*snkXw=j(J5Upu1XzKf;y;q zpXDXh;dcghL=QeCyDjkEx$khu;~H&!)eqn?rv;p?`JhFB&3_eoBpB> z%0Za-JNKPOb6H*s`j0vn(0|EC=>KQbLv1wLlK!Kn75)F5<+i5(XtWLem;6Qa z{|oYM=|5_#q=Mw(H&@{J^i1DcA)=gv?Ki&?L`0QQ@=C)N1ZP8|4Z6Y zK>tzaQu;4?3;q8Jzuxp8b?>16sOdxh7m!DLiT0=eXyh*X|26(-5gJ3wQ0E@{{|)8$ z(SOvwpZ=rH1N46({jljj>O4yS(bz!x|1I?g(SOm$=s)T{MgJG^`C$5wMu*aW)C{Bl zizy#Y|Iz64^dF5(qW??y{2ls_x~23Vwdd0RrQ|=uAGN>0AB`@+e;N6&@ke9m7SV6< z|Bm`g@E2W%KN|fW|K;c^{848${-_nhe+Bs;7+*B9h4EcU`7eww8r{M8qUKk|_j~fc zF}|qT$@ro%G-Vab*~R#Z?q+;Zr=0O!&F6nHzNoc_@s&Jkts#CdOTDTWpU3aM$6C`YME-hOCZ|}Kuy(bQz}|5 z+a!moasOa8e{ZN}>?0{hV`y@i`qi^JR#NYnY%@yqSeAoE(MXkQ+($?`8bf!Wc1pI% zPom!O*}NOC8ut}u^L}PNM+=T1t_JNDt(i?5C`Sv?Xf2kDniE)VHGEIZrcK17Gf;C9 z{%G`6{F5oSvdwTbnx1X8ppmR>{?5SibF%q6Lp838X43~gug`cKML%+>kD7+mN25(> z|IyV?fDFUG+Kr~ zYNL54vb=ftqcL=gVAno8u^NGNTnQgP_vkEK?pG^5u{849FHosY< z{tEn0;q#UFqt+_?(dcUYPo;bf{%CA1{;0Da|Jp2X1LbIJE9I#9iSpC<{BM?vx_ekI zYVTwGPscZuV@l9SI4AxNQY$IP6rMqRwH#B5I!EW2WQ)&_&oNOnS|i8IKuygYlafZg zS~;c{YM+q9Gqm_TEytv$vz&|^Q-s>}a!eT-Lrn&sH^3it8sRVbJp40h$NBi9k!JX# z&IS0_p}ZyjXbg2xr#1dr)N6-7YUksRMmy$k&k^-H<(L7e)g{L)lsuY~LwhdCVXl+E zG>5-4P`_J_$*oHsEk>i4<#6mGkLI08|E|a}!_n9^Ic5uL_sHQMZ+vdfF{4nYZ;si4 z+7IQJ{Ikj1Ih-TXu19iAIcg2cF$L#P{|UwyjXXvF>*0qMqS2xBU-Hk;|N1O%1pP;? zm*_ugqdQP{EdIHCJ|2HG`Ud`ze+&NxEcb2vQTHAE8?v0K_=`@*UvvikjfndQf6-6y zM;({(ZOrGh8DBK|8RLtZ`Hb(mwBt+07q!1)d{K7+Y*6SI zjJf$=>IHr__4@vYdJgp-{txwB>J9l1^%hd^rTsKh!Iw-Ut7oUbSQ{jr~i# zVEl5ax9VT&+5QA6qTb&BP|v2`Da@^ZO1A%jOT7#KLp@$AX?p&LdJ*b9`5)@>x<7fn z~}u4%<=upFHjk-N56FTw-NC1nDK_ zN-Mukgx6?QWm^e+8&cjH+JW}nPQDyYW5FkZeXB7Aw|Tz3_IRp&9Ud=y9=<`!C8iDJ zgB1JiP1;EQSCDmHLOXf9W4x_zUF;1?gvYQ&3E(Li@pL-HLYnunc}7Z;OjRBaP@#{~ zSDOw*iSI|ejFqH@#0lpf6mM4&FZFHWpCCRMp9pd7pabaf=|cW0kaQzDl?ER??lF8? zc~!VB#UWSu_9f;acoeknaBffji<+7RY6Rpjk45=6R?&IGfw(lf?IzfADk`GcU|E_Gm;PO+T1->TFL zw!6UhwEqv^E^O0*Zw%ivRaQRn>ci(k|AXo|)Vs@DhAs6Tzuq`0 z#Lr6Oc&_~NIerQqK$2gts@=Ha_9pAo%A(!GKTo_BukFQ3eD{Om3o6-9@n}}=#o|_6 zubpv++ldqU`0=kwDea7<^Cvs%VG~cm{`7Qz0}bk#4310GJKnEXpU;Jc2i3Evx5-G0*X;$73aa!$I+- zmBi=gGd{#;5>K+_f4>ta{NcxsmqOa_<`KBPLIeOS}z?aJ?2Yg!+!z(0BN6_PYDS2K28Be^z@vy!wzI@F- z;LB?r&Aq^D87ug{O8y<-HHzka(CuC2AFuR!bI&rSQ2EX!hF2#VUUOK%m)8>V91)fe z2m9`*%=c_=y->cqe$bo&8KB4EEb>i2(uJsQuk4E@NqakZRd{9tw_aD`+xCC-wefvY z`SKb;!z%&Jtq1u&M*bOi1xABzZ_F0eD89eq8|=?c#*bHl8D7g(!M6+ftDzV0 z>MFC74g}xx&i40{vOf#PA<~5YaZVZd77@d%rwp%$s^D8fo>x5?Uf*IS+RZ1 z$VZ?fv;)1KdR20Kh;U+mt@6Esm}}t%(ChzB^8G>5{iybpc1qIwaU0)$%6AYkyc)?2 z138cN`(1Se`IkZW*>l^!U#?5J_&kb_B?~5vr!KEJGP6LpZxMN3WfV`VQ90g@fnF;T z=eKn(PONYDJlcY9kk%8k4SojIzVIKC=gXALo$5@E$oaggfqzpRPe<}uEjSr;d(I@^ z1SGXUr9EFk!Lmeq^mv(O9RF2&S`*VAI)iS{CFHw9FkVsOJ|~W*#ZwPHyB+$1ZqF;^ zUk6F0=pX`Qd}3;RF6aE2)5mynn=_uOJs%SDDSQUHJ&Vb&fdk{yg71rJd^YmgFYr6) z_MB3KbqbQ|qInkE8U*Y9;Q17}fQm;Y`q_w>2y_MQ`z-m<@HX(uB(tL{eeCS{4&aY2 z;;Xm&*oA!8#+O}6JjwA}j?Z(5)xHNGzxDZC(B^y`TKPUE!cS!U_D0yy=i$ezl+5mf zd~dDEt;6sljDT(}xrQ}>b<`zf9$!#Tl1Y8-yre28Q!ea(>&&f9={`L~-=zUKM zwzn6E;nDhL1L*m}W8@8wcsG;aHHhW%o%}4%cjq}(;=V51L@U32GDpwh+&q|vJm%a~ zVIfC@_H9PKC3FKGC0=1X`}^nV6~?m*=eWw3$Ag=`a35%2`F_Qtz0C_S9ArJ^(Wm8$ z$ot0)?Q0cqen(8O9~?^zkJ2_g4!eTyZ{*A2sFPWL5bOubma#9dLs*UG6!|&%FwvVXqV_nMn<$G4( z`zJ9xvefhk?Hl3RZd>57hVqC+^A>Zc2#UXB9(MHRk@(X6c#2%ke8x9OJZ{g-hp$18 z-*WQnAs9cKI9~aEpgr68j7RF3BNz+ao=)U1g&uGX@OY^B_9x?3>d!xEPcW~eS8)A7 z`SMsg!z1KODQMr0_!PnbxDDL1Id-4vkKZ0o#kYgsG3QGD&W>*||9DK884cq>`|>y} zvlDpilu3dV#xB`k-!b1;j>A2CU;Anvm8^Vg6O#d15>Fj}{#C0-z7a^`(NKpyA9C?s zsK%iMF}DMcFRI{slEw1iD(DQR7j5p%y8eo7kw3P}IG@M9jNOHoZeYwfUIl5oMf+hM z(5;}oNz2Ip09znf=i-&T*ThofUlurzg0Fa;mSMZhV=(m9+eo}8nGA=``ioW_dXnOK@8RdIFF^|Gy zpxgT_`LQ5rB6>Jq8{gUZCVL^~9b!HNetuoSm!EN(ZE$=B7eS#X=Y>fvz4jJ9>8+=H zJX-laPA~qRc3fh)J5we}uFGm)X{#jd>)`u>@|Eko;(J*ozSsXBd`&-& z3HS!77qPd&oe-jMg7-n#CLe6~QWPalzQYFVWgwpqg|VRfSw@~)5zS`cmO`_gedpW; z-un3JK~GQ3XCLG($He+`{KMDs^E-*z2VoYZeRIgmt$&i5puFbl!1r@+^!D%P5weMU zmG0(P#L7r%9+j-wb^7`7~JH77fo-zV8vkt#F3h*DCn_ zLB2{|wqcN4(SorQ&ocjeMZWTl;oDUCW)ssCnn9R){(7m}k$hK>?@w~xRop&t9xHzC zz4Q~GAYDP-e(*5Jrr`S|%_9FLtOL0>C8?RWZc6;^&|+PUR_*zjdb{Chj)pP0vBC}`g) z`}m;Oe0L^h73=`r@3T3c=Rq5g@2kzzJ+JMYi%7C;mV-}nJjXc(^`h`H==Rm(e8Yk! zP!Dv!<-O_$x6gTmKC1TJMa%;*5On)qCSL+mAoz|fUNOc^lJzLd^4m9>{0!>Ng)-3X zTSNXQkhBvOFJ7g??&w_a!!}lZAzQ2eGor5QYsTb@QYLGt-g83X7$T$)g zOu0-xJ0C6t-JT-y55OpR3d%Bw$@Ip4Cw-GXR=BTd5a$wpKcx>P#LR*@pnd-&e?&d0 z!PtoQ=6v8+PJn1~n4x%^{{fGz9H?KKYA4Qb)A1{eo_ogF+MVk6lXDBr7y=?T3+&Cjay$uEPX>)1{TSqFUY5id#7e|rpn55p%& zbsKW5ho%tt9LpwoJNbJdeogBR;#T+(4%eq@B=!%(spG&Kp!@eJ`30~E)==Ch`n-X7ry~=%!`_1r8@teP& znDDu@A9Q<9BQGffwLts!^4D{$N@6`*`JG_`HhkJDU7SAjv}YdXjZ7Nv|g}nQc`0<`9z$jY0RjE%~m{1FnX%t;F}rTz@@@ z?~eGAxlV^KuQ)!ip6(##E*JpXx0w91AZZL*&i;^}Uc~$EwbncT@8DH2(Ngvw%J(&5 z-h{V7`+iKm3?zMv9?mz0Zw%jLFT^Y-W-Y7(?Yo1y}ymV%R0k1 zMH)itO-w(y2XuP}lYbs0y^QMpS1=a(xN6?xScz{ieX8Pw~KFY)!re* zyZ|qO_I-o=RFE_aJzRUE?{i#K?fsmXrLY3D?=R&40!g9fhi|W$&V4-i2J^KlF~>j( zXx|+2jX=`*sGJWEu_}(Qp075(6Y&j_{C%_~acw}&tMI{pA9ac2RmunEc}MCOLNCzm zd7Au-@D@xE<@-)>ojbph|LxDX-lf*dXg-?)e}ZmL?N)4ea0PS$`Mx`{sW*QHyzQO$>Um^+#r1@f z636?OB?jh#_T5cB+?stE90htFx&Hjr=ata~oTuX(te13R8o;@reeWXw2uK==2K^1@ zkm$xLiSsG@8_xGtdtV@CCWP8l^c~Qa?*$B~*`ZFcuZ& zJ-)5*4aV0YW-`17+IJrLr66e)TA8ojPMwwfy%S&li>GzO{0zH6`)1OZT(}U<1NpmX zaQxq*=EH$;_@3`*Y8*Nf(;fPQ_MJ}tW0(hXK+lKdcfIR16erHFS8+d(YHy4Wx4?GL zzH+`=E`cODu%;4Ii|uI?;~0#u{=Vg`=6Dwj0x?Hi%>7Vs9E8bF5F`F6_a~i9S#Yh> ztl>OCwa4PKbD=Nj_N2DwJR2^BHsEwMJbTD%%ffoz{FL_G=`F{&F|N~|%slqp# zC7^wmkzWVD!B%K~M&i6TWxwaI|E}!*z;O@XpsPu=;aF$~+E=buY^Usqj-02XWx330 zkg;=*Otd#x-|hzQ{s6zZrWbK{!hOKz9E@Mm81fV09nkB#kZnm)gzxOXsP=t8z1c7y zbod%Io(Rtf!#gk*(~Xlm`!?&s7{je_HRN-xY(rh&cW`1nukeO}=V5c~ zIW^JVam2h2%Ru|yT)_80cpjbr?duFV)Ytuq>&MD>0Wm+oUeLaeUczr-VIsT;{j)iC zH}KlKs!t`pzc41scO@~~pb7I_`#yOouYiErFawHiW{&ste0!dsxE>gcLu@DOK>4=n z#`iXO4z%yfmvOxWmcu;g$@#!sjsr3u8gDwZy|Hrdo{?ZXIQMeCpFmg8zMqp{1lu77 zXIqKwYl(mVRE6W<-)xVxH`!m0N70cq=my&N_d?nRr(MZ?Tac1Nn?c%JyQVh|?6wZf zGuwnrLG8r;{}Ez_!ZVk;O*Hj6azRLF=Vv6Bs(7vyC=Xeb`z z!>sH~I1wz1eJOK7)>qQRLw(&EA=6m-$~?QBxFRQ z(70zs-}X1MpN6}j7f5@H*yqVSD@;9fo>@Fhpr`U(OU&<3k8?`h-e<|b0@Gj;=9C488Z8n zZ!vzO;kY|0`nJB4?_qEUTn~DlWu9{AJackF=ET#f$Lf-_nwV3H_-+8Yy~FzOJptyy z`>-LxF}V$KjBm-=o-dD3G~GgR8{Yj8GQ1Mg({pjE>6p6=EjCiFZ}>t$8=syC4EhVE7sA<1@VW8rNHI(q49r@#HiP8D8yppuNu$ z^Cld3PetEj2QWTxA;^8?GwLzT&+&XCpC0OK<%M|XMq+!D`S3h(?}8qOf13|IE13^2 zzN3}zYW#kNYwxY-JLo?84wKXUD0B&WBj@ka<`6*1n(b_izsA_O>Q}F-Yo) z2HTtLe}g3Zo!~sxZV@tH;L9mSJY7x9jZg&ISMFOHO4&qs2~z8FE_0N(U+?{pr*fZK zVHMBE;Xx9-V)20Q6kyvK`l3Jj8e-`-4`A#qnF?{PO-?qebf=fXA%J0vwrcBZe=s$gr?%-81RwTsx zY7*_eg_z#Z547(<@{*oJ9|!#%$o9uqw>N?>uRJ_(J~^D2i7*MYZ|Fg;cY&mnQSBRy zLq4AcmHP@(p$2H*G5&p6dj47$h2)ic2Yj0nlMfw1`}QP%3rM;HEjW?m&yij` zgK^+dq6fyo#kakc7>9nuJOYn__I-`~8z5;iTA6R^#R*@#ZOHVn628-jnF(^=m-hXd z{0fj1Ll5U`wF{ZYt;9HNB&Np0oZEo*9c=U60OrDEkiUh=y|FR|V>Ty_oB96s7Ue#x z=~lw`yhqqBpciQ0pUD3XDUWgu4zzD758)AiS#OsZFGV_q_7Cld=>m6x_T5GP zZ>TF4!w1cZ9o{|Y(akcs67s6iH0^@Vp zmK%D$j{iMC=C3@PMUr(%i03;dd`}p}eFab#wC{D~Z-a;7UXbeq)$4n{BUvZX?h5mv zYsj3be4ij@3M_&omK(IUMKSwzco80jp4}OXt31EvmwU$xX)mXM@nl~cGOh59cv*AB zldLo74cd1<`JDEB(UiEu2)@vRNpvW)BS+{8Ep^Gw!d zDZW8_pCIOGcn-9${GDhrWwT%g= z7mkNI_+;V}tcQKnJ8Br$I6$}WO7b_t1JD<=m+U8{efsYJu{%QMN_fX z{(f5fM($yrXC&6!lf*m+qe1)1_WmVh%Rshw?OW>aM`ZhH<#owK287Hue1q}bNL)G8 ze72(RW#q4iesDWz-{H)ygU7+Sm-Eg{e<8@z#Ebz4!sPw!GCYs`QV6ys_dc#~sJOL! zwhevWI+fZ;m!Vxsy zuYETp?n{Y07&6b{o8tSvLCgp6325K7;z zHz?n2#QX|>g7!WBdDan}37MdM3o2=^^=L?5k#b-^BF~>{L|jwQzH>8pcHNxh8ZU%=2;2H4)K-qrvuyNNmZhs^ExSn(Y9SdONT&>I3DKB}7jBG>NVTIhcreVI$_+aXh{ zgST&y-&9MAJrgqDsCEse{_`*zbbnqaUkX8gA|u$(skrGDzfa)vPY#M(MtPZvvxz%` zV@r-Kob(N!eGh9vuis-|;<^V&N=N&jm{`BEJ|yY&>pUAWr{f#!cXNno3e7 zP$uaiwCHrkF1_M>)W?a~$dJjyH%LzqGYnn?HQq_@lK%ughhU7PjRV*wB{|Q9%rna8 zTk5TV)u6}uRgN*gQWnfT=lPI%RmI8k0rv8_8Iy=Rfo}ho=L1Bf!7p&#zY@Qs{|~=5 z_(kzssQi-gsR`+z$0tI*BXk2jJ{$b=MQc>Z@al*I={oA&1h;@5pMK;Yg1{q6ocudO_^`=w*KuK}Kgp&;Yi@g(n@b@@@=`E{#WiT#CnC1k$DH%Mu(a7_v# zp!;fRcK97-q21bGOr8g^F z+GF|cF%v@aX#E4}73xidNuYh?{_$@qi$O3Z;?vmoiQ)6E^4UzipW#=~d?{R0B!5>erR+11F>icAgJ?1FyUv-o?4@_mMwaj*fjZ_hV4Ho|i- z81%YG+Ui|T)4q{U`8$;IT|~@MSPt4ZMm|XE`S)SxKfXtt6-01UICJXVp{ zp!<0rc^gK+5YYW}jCX$e<*AAF;(it~tv6GNeJ&83|)R_wQr!^I#<`0^Pqs zmCQSLUdXJ*H`s315%W77`F2I$(d1u;+3+DOIfrqCf)#9MtV`K$8&yq=oAq_b)I8g3 ztNedCF+am@(Bszd9sVW_T|l-GId+QID1X0Vf5Y`kd?=2mE2wt^+yc7agUP=D<6$i1 za~zWSCSGs({nqEDk%b`>QSF;V%tx>hboa|++%z=4q< z>pOVhFZp->ul5 zXUM+{@54Kw?0j@Qe9!iw zd>T-%B@}`7nMZypYyt5J-lwpTeefITHq97% z=ziE*!}onPe&kx#tx30&UHGp=yHycmvRq%0q65id%k-7A{#^I`1*+l`5yNnzoCQ1pnXfoPld%W5A^&j^Y{OH9IT&1=3#t;{m*t{_JH}QqHjL=ZXoFz zwBWQuuhYo>r?*$dxWDkdQ?>U-VjhHYW|j8>TMTKoXdAdZ!f@^ z%lCDNnF5PI`?hvD_COKz0zDrJQ@n9#a#~`$kQcE`P`=L+^D@i^?R)a4+;;+JK^@TJ z@K$}Vz4G_7V0$zBLgtfT5DeFci0K8rLGPF4`6$Jd$=^HsTWll5eW&8aQTZ7@9|<9R z{PT+NB+7#}P|W)nIWHtGRWhVe)PEJGgYHMpY_=h24=q8TPi*mz`xUMehQj9D28nrc zJux@JU7&pzlb7^8`Wz4prfsE6-k9UYE8Um@_FLd*>K0<`aD^1s7hAio#U z?d?{{{xgQ}^oEJ~aOCG~$B+uzSME>BrA$&&RQq~ccg5e2+uWNh&l(TrSqoy?Kt5>S zUgZ0Oq=(VUe%B@Q>=LhviEs~QQlrH9785fZ#(?(SMLzTe-}m8Y(7wYf83&j1iK~?F zX~bkgebB!0yqPYPT@9Cm9*5MBcYNB$dTSN5mwm}3e1mioF?YcOK($~#B#j{dGK_~{ zdzEor@~{`_;`1dwmTxqPdXr%`==LR-c@Y&?~H^rM*djAtUK5QCsTnXk?BVwAu zg`j==ke75XdKc(6M*MzPIDXa)oBQz%(i6lCgGr$Ky@vc&*a_ORgnfY|7as?oWZ&qx zdE8$F%|W;CcJlYalkf;=uf~H9-LE*c!e#}&!Tgl#n{N{LHfZ1A`lc*?`a!rVKwOaxn)=-=aDCe%@G{ug7tLDm&{Md1>N2v@(;jB z7y`2X<#$KcGRoC?crZU5UKZC2-yoF`Ga23mSpyTi55jUD?ouY_j`9o&>(sCrLR>I@ zU+~#t*aEsexnHrapc`}qyPXM8Ph zoXl)u7QtrFzSh_LT@2bn3y}MO=CaQhU)P_Xzed@2`#w=CY))vB@V$l@8zzJH&Hsk6 zg$Lkvkn@;z3cGp;QLw`VKWrpU>?0s%;)eEXx|nKxeo}ggiAqx2kza; z+n(OYN{p|Q$-Kvx)euiMG0(#y(7tWI<$h7P4SImyKbdE|_O9%k7zaBmY~-0Omhbx( zF*9K+Xx~nYXe$hWBGBh^vA&+K-tXBtVRHq(DZcMSVrIZh(7u0>uez9R2#y6ke>eE! zp!a)`GsEUF%V`zx=t-t&Wk_L|(V zNy9hTj`N7=3|&F{%5#1mr%ciaRMuO$MTT(?eD!u5X%IH8RC`|}W&*qk+V?l|`yhqw zAQ|+1jaxXTinp9s1p9|r!?3wY`KA(64;q5@EhOI)Bo(20J_PO6=PRah*gUMp;Q?ZX zz!=cJ+sT*1@!xR`0JLwclKqZ*F54Tv!Tc>CCJMbl`#wYdWhjL=LC=R?{&D-HT8VM6 zn}*FX=Xw2;|IZ|*4Az588UJ{YB=5<|SkCzo=(gtZ_W(&wUf8t8Cs_X-sn-o`(Cw4w z3ofE;Gstr^^t{^8@6i3NIX`SJ#W(18jTL;)g1Vr6lu7!h=P~H**1=bvLlmSo z#CCvdK==DT@{hp~(ETp<`)!(WTs$vuVeF|l4OWBpxnw2Ya3|<}Ysa;6)HNpBB5dS& zLc#crquvzw7<506{GMmgKn|pXZqrx(d9L1m+zZ0ybbN#HYeh^H>a42hJ8cd3(Zhb& z33A<1o<*2^W5^Uf?)@D~?vLx?chzYhHXk%gwD-HU+&2M7#47sUP5x0B4bOn|J(|kC zw-tW}8B)o48vEGg_y+C$n3#F63iLRn|G@SN?coB@}v=i0arFcrxzNR2- z&cHVqhrfxbwvO*MpnY4C?*x*rLM!vt<6vFF_jY`(cm&rEi5UP7fc9NTeicaCf$lt= zZNN(Gqouv_JlO;18JC7lff@(1p0-0R(7w&d=YyoKXl3oKFb>_q<`(696)`u!t)P9! zlP?7qri1p~|lA9yXs;;@g$jBs~6qeQkVK;TxoD@w*eoLzRSY(wQ5% z*9$s)#CBD=CM_&iuI`{_ZQ~bVy6`;rK5Axwn9NR(f?}u{?mK3=v zZ1Pn5YEkbD$N=5%7UVAmNd@TP`faWb$DiBeMR1*on4a(u==Oa?{tH+J+H*Pk7CE%MR>^WB5*0<2Ra^S78F^c~VAx2?S&3 zToX16i3|3J-}Bj4_z84->Tcnl0g%)V&9nGUcLvvtXhg7G>HT5!y0BTV`gtiam&28y zeV-yPX*fC*D)f_cfrIx0F?|12zHboo7EA{1yPCYD^=J&VZw~iF9PAs7hE4Sg65ETM zXYCQstrdN9$Tx;I&>XaHitUX>KFe(-3n#hPhfOnlgYoT1%r)>X==R>cjqfq=EDQv> zK0PzT^P9oLcaUNpgRFFb*+%*W(+c z>BP)}`JlI-4dj1;-4M)C@oK}lhotB&%;pOd?F;?H^#?c(bo)*vp9PZ6LG^kPKS{cM zF21MXYsDk@zCuiMh=BGjB7ZkL3J-wxo#B5EsPO&x)^Pl}V8M6}C1y0d4BA)D-&a$% z5#;<``)1nSm{$0nbsOKiX>YRM-k*ruBc4B3^nG6D2xV=d8R#+1^L_PvjrHdGxEkNi z#M}t4gKqClJJ>J5b1)R--h;V0UORg?_s(lA^?fMPkMre7Vmqk&E6*Q<4xoKY$lkbp0M^Z%r}XyP8)@jZSKp803=Eqq@lE!9 z-zDZ_SOVI2Kl!7}nU7Ed^m+H7O1_6h28B%@H4bMH(*!zz_U%vJh8JKM$oJggb-nhc zzMt4`gY{+}WB%fs>bJLqn5iJo^U=P!e=^UY0P;cK?^txKHx9C2433MD$2q@J<8T)- zBVamc->d%OK5V!j?gBl}MqTdt=F_%dK1BJO{vzco&)Zx{+-lIi@?61{lGlf6r6C zrxQ~Tnt}G6M1DFffX_f*e;)9zw>^pPo!+9EY+T2}*Yfjwh^e)g_JH<1VISw%a4och zUfF!tYV6I=?r(VO`!D)%;Qoh^VKZ2@_e)|{!B)_|ukYvl2fl-EKzxJefhAY*j)VHR z?Tq4jZtKMUs+9?u%b+`GU-^B-Ab1Xjf!R#o$Jbl6;^e8&*;A=)PsdT#X`>aDl^ zthXNidU7U&P0comaX2O^WYXa*(7uz%PlxYdKIn0n>hE85d!ui#-^MqX57mzdnbV*X zXy5dzJU;@ifPB!tBMZH8koz32@Y`#@#ozap?2mICxRq#wilg3F*C$b1OyN1S<@x4r548~cdk zBEG?KXf83!U?phZ(6RhZ3TnbJpvR%VKMobv+sv@3&3Rwodnz&KKm*XeSCYRDZi5>^ z`xaN?Yd+z7zVhuyOfd|B3cka*Hbj}E?Wpz*=7Y31SZ@(GY_7&P7~j8%*$;JizMJ-) zMPAYu=p4|#<+pkBSC6kXoBK*sdp8ra8~y_Ao0`J!OQ8Xr1=@Fv?ahk{Zo4+Gr|h-`q-kt<|JJ^9ZEwBl`QYMvjq+VW+*;TK+E=ct zlvB1J4!*9kyb@pQi?Hd7Z!Z0lRJ8`rgMtjuzVDHr1sh-)q_Tm^zFo$k(BJ=F9W^G( zK24G}KWyHV4)`flGh~wC6p$(tyz(SjZ|6}K0X+sKcuI2cnXP;-pJFyt zdC)%PzK{7bY?djXiPW16?}7IDp8RI`1+>q0TUx{SAAF9zI5BVjqTW%pIEMi}UY*Hb z1-+ps$b1Zbw~#->+kRp!I5=)Q3&JJ?-yq5F79J$d1~$K7ybk%@LX5ZzRC}JH{swenbaJ;Q^7s0y*=APo-J(X~`^zQ1ue&&GKF2pmQ;GQqW`mwL3(0>E>p-{FJmN<#37fTQ zJhxKscc^+&#rCEDz~9U$YYiCb~3ieyyZ^ml6A4+E>eOpM%el z?So$OJ%ISz;K74@h@mle7-i zV^-OIHHL3}e64r{f07|)H~aaLHpYNJm1Iu<-mGb9yWKXarls!PvJArzH%S)ca%w5gC6d=de#cA z%P8MX#FWDx(7p{$4wErA88&m3@8!hY4t+rTjwb&)%z#qRzKwey z>Kpk!Y<^MWJBOGhupG4Sv!{g2EASb72>QCh4*&b9d~Y~#{N}sm8DxTa_6IS4!Cuh5 zXPxSeZ3DC(==LuE;L!G3KZH#;<=cjstKmA(zFW!ff*Q5i|AY43(*Mx&@aX!mc~JSb zBBnER1?}6L`~Z;j1bVpn5ZS=r-IecfVqOFnv~TulA=3y7ARpwu%;0&|seHGSZBFl} zV;jR}8otT#mhiU(VjhLTpnWsaxCfuIZW9=K=!g+1SM0-CWW*)2r?YoD3wKMpQIvfkyx5VF$wXfM4 zHcORn1~K)ZA!uLudv!i#mq8cMzB!Lnaz2OeZhV6@j)Q!6;;sW(`~LaSp}%V(?ubr_ zdEbNjMbIB~dy2_F4U(Qkb$eu;NRsv4BVL2^tZi&h_y+4`EHNc86}0an^2=cx`~cc_ zVI|{d{}?uHmG4es_Cm5%(Kmy9UC4umpnc0L@wK*x&F#v!B{3bL3+VRB`?PvcCh1mG z`+B2Laeg}Z4#GD`(=D!L64w_FJ`ekW&w}GXjJTJH3-(73P=7EC1Kpm<+a!7a+#QtN3qh>(E$2gTU6|j(CZ%&?yo#we z3>?toCC}-bMcFq{2D)DZ@H%+BY<$neH#nZJA!Z%?KibX&-lppP|I0mtD-DVwsg5CY znWa$2HDoMBC_^U{g~$*UI)o_mluR8%h?Jxd=~OC}iZT^(N+=o#rP2TWoV{1)xySas zmEV88Uhli^+Iu~p^XxV4wdeDTXV-m%w1mfq9|f&j<2+~lmiNosdWas)Fs+oo?_l#D zYy|D^HqthH#{W5u-*I&BSGv2f`3~}y$gVqx^eC7CQ$WwXid1p@)z7Dgk8`|ulPU*n z4nxH&vg>A)WE_O5P#)wuap+2CyxLO0Iq##d6Ppv&{Tu{F-6D_RxL*40WUE=4zfAFSnuhCH$PGEBl2qr5Mvd?qkyJ zY?*t!q4zi8-#Gt;t_}6EYXxmV_sglI=Ys89;Xg7=MP;{`b*o_=XghiT!Y*YO`jhJt zYC8_FE>N1W7<7HECjB;i2A_icU8%=j?z~TLM~u;+AG)?5{)SDSGV*Si?7Gd0aNiQk zYC?Pd*X2`dh|>-~()}=(&&)?RpIbl;u)7s*1MP1Q(tSX}Kw{Cg$KT?!1bKdqDNZtk zGkj(hx;6~M<_Q=Fy8Pt+wx?KT`(FaPPn6wU)~$m#)9k(`eHd)HC44?}06V+CJ;Ay> zWtmTc-i|QorqB^?2R$!-&a2!5K2wB)S6e>4v6%r2LF@X;vkjEA0!MR*7fO>`pJ{>9aDSVCX~l#ZbH|FQP?bj z7eJT$XQcOmEx*WFKGQ|n9bw%G$X!1Bey9}b%5V)>Tk+$Y?v9TMbVjP}YDm7ea0lq^ z8bW#uNSHxgx}q(iH|zc`Kkgkks6X@-n$nsfW^_^gc)j_N}&6p(p`b=8i<3|-AH-|NZ3Pc z+mEB@{FQpL?J;_>&wS;fd*BRpLxp|jgop0YGt`Zvdwz>l`PyP9c~nP)t7Z#YBU z(B(c8_t0%|hPrWdKljkR;|z5pA)h(oq1){Ybxl#9$!wV%PLhB6qc<3ag5F=rdx}Q0 z%#Jq^>@HDulUO$$W~bRLBK;CryEt|gJnUZ0!7fzHXX;~T_c!awzX`U29v@GV&RfYD z9}5xdd8ZvC^}Hlh+-F)V-D233gNmSao0Gm3B-~EywSUyQadhuf+j$2zypq>_+Bb7shU_vKvqS`S7f=<4`AKFXE-olUI$ly+8#WwxCqu=^f6X)o+LOmWs#ff}I8tt08)AYm}E++RAZ zLTWzMkL9{v!{vR(e`~584#Q?VOaZO?66x1L!Up1;+DrIKpDBc{ov&=dW;^Txtt;QH zJNAauJV~`=-Tj$*j7UmRQdTXAblxF`Ay3Y+Z>B1_HD4Y z^PLjpX#gES`?ZPmF8CP^$vWz8Srx~pUhZ+3oxS)kJRFsONm9dle>Wl&MCd2bg#P_f1wFz-7cj2fP}%s`hFzQl%V~M zSM{0gN_P}C)8T2bx)fdR4K=t<1QK#x!?9g2>T5UmDX99%Ht(y+@ie+NTyie=#AA03 zh>AU*UXtauZ71{A@|j<-llCp)eDW87LSX%2aqbeNZ79Y6R>Rps=Wn+5jc%S+sroL9 zO(m!fTDJk|CLp0Xv9#~>^Ay>(6WxO7+Hfm2?H~fG9VXvnaxcs5oIX;Uc^h_iJNvNi z5f}#AA9=6zGc1#^lsKpU7Q4=8YAJtS!sb<22g)Dc`=mbxDYs?xi^xW23qsd({IBe{ zkY^|C0cD>tsVL7KvCM8y47;w%?gZ;jg74bwcIS{T1h&3R*k^{Qa=4szWuOx1a=3wX zGiV2`K+0hz9H#w^9^&*HUEgtZ=PG|XVbcS8gWiqtP>!0eU~a%DwKV?`I1&@R=YdXRPkU zwb-XZEzso?A>AGNK>GW)rn%#k9zPT4%J+F~`x}hiD3}CVcOL0QupE}k|FjoDdRWY( z+(S2T{H%0WW3veg*3Pbb-gSJB1RBD1ASa*_jT~K*&pCgt>odlU=J$}tj@OT4Bj4bA z4z#}s(%;Fl>$!KASnk)@Qr*!lw8lA))}(+sj=a%l9z@rMg4kUKMM1ZdN~EiUt?vYO z@}Xq`M@mKzXZ=xex>w&@E+>|0e&eC*KFK6|{~#mwk|BN5Gbu=zQbq z#L+pXw(~dgotwp&0(v`Zk!}cg!EK=5@3CTtQ;zz)r{Ny!0&PC)%Dt5O2Jwg77Fa`8>$oE6$u}s2ZV*9&NCN^wk-QV?vZUd$J z0yb~KyP$Q$b(wR3gf_%py1M^`Z}*wo(6#-q12%WTJ)m`;<=&`1ER*mMv6pVP{U^Hj zDSwAxGXbW6)?G?^HAr}a*h^RYn`rCfT>z=_eHWXLU^8f4x$ko?%Oo5m&Pg}ij^hiZ zdlVaAJ(@f-5^1pm-6brx*THYuJq8o z#Y6YsJcpG)cO$yCJ+wpbF6f%3JCO8aFbT$j_$%}J=FQpn4RQLRZV!*g`7<^ z)3KQg3qXw%!4;(A@E+JQi0t56nyV>&TSE8_pUK5Ng;sAf`FFxMpv$#Fea^W;3upq% zN-@7+yple4*wxhg&*+^#a}l~WM6l@s_ktcTc3eXH0$cxa?8>-yAvUNl`G>sAOuqln?I? zLf5uqc^-NwcEdsI%Jb0USSCT9hn6;%eq4~CAhKNlqUerMdTMJs(o?j7P*0WCDdoJ53ZNUaTPKD9k?V)eGkQBn_f9y-x+8Eb&F&A579{qdi zc46$URd(l+KR;ZQW>==gs}9XU*N1#3c?8Sm!ZgtHp#u3&t>^gt zK6AU$eHEKGVGC&88|vdTOH}y{#^!OD3%cLPbAh{A_6^89Ro)-8;}f14rwk-SxmR?J(lJfx6L2GF zod);t9)6ac-OTBK8{Knjg(gZauG95r9@aMbZ}LxL^4$uzf!66s`XLwswoavg_=h^S z;Q`cx(ius$K*c3fM^x>w*+(B)j>M$WH7LkNT2mx>S1x&1$Z z!&&a8#2(`MBf55f+6kM!FdDS(F4EsX@FtGKh(j$HyE#4<-SRg(?M>dJ@b`7sfj%=w zZD$4Su7;YRw^QzyY0WZQRP!cGWt&s;tbf9AXX98uRT zBSU;B=DC8e(03qAfvm54+_T9?JP!rCSG^W-t)6ZpO{DD<}n* zgVrr_i&K8u-`H>}sh#^HL`|`20j)uo-<_npgDt=C2%otaJKIkBux>C61?|sd(ochg z1;pAPXDglUwCyB;ZWX1w1e;f2HE7+D*YFG;%Ore6oReUmHW1T zV_Du?=x-ppvcHz+whIk)>Rrz}!y|pBqbk4r*c66KL6@H#kCkJYJ;se;H%Qr4WnE3U zF3m2BbThE!p1|%YW!I8*?Vuaz@j=?xIF?NV`H+q(&(tFWsM*Mj`AJx_f*=?F;u$y_Enj`^svyNh-ALqE`V zPm^8(w(g?ieP*z-dzp1>;dRhk4f)@Kj9~kV~#c)b4Yo`-#WG2Vw2cUD&6X>IoAY(Kq*@RNFZoo0+f_bbHxCIsu2kmXT;?u66oF>`9;5i;mq- z{YJjLx8VzD|5lQI3l6{@sEU6DAi_SP#sp`amE*qFZWD=4_nDuRe`nv$JPj@aU4QoZ zGwWL%yWHs75F&qBs1AC&dXatrqG0P#wky)Z*{<+RjvtlIc=FAF*`Rggx>uZKAAt2i zbXpE|Jcy%HQ|Wv{zR%$xXq}2}IoAx0LE6OH;!fSQamzV0oBNuSP6zUJfdQa(mXKZv zZ-CyeUGBUq{It*XM#r|(ZRFbx--E8Nru5}9?HFI7I_PbiNg2sD>i!*y`OH#uZ98a& zO?wytT6fajJj2Ga%=VNs$agU+x^uc=JS!x+(hfSg6&Ro6Gp{OtD`0ay+yGkle$sApvzPC3&&XY2k7$L;kJ|bJfHbm z>E!Rg`F3apT8G#FupK-T2wG?4V#&q+WxmhkyTf`z-@Su55EKKg(}DE8&>y6o94_W; zTetu}KuA2pagov)O}=q35u|0?adsMMTc=6G1wK;|J3Bv_!TJ^OGw5<&7GWHPeeeau z8dHB)r4Zl}z9wz14^Yv?(jc~aSZ!MY#d7trN=Z70TAxD{mIR;awQjq}}d zjy}(EklL>M$oC)&1HD~xAN*pLy#(@nls+DecpP7aU*NtX<=;B&-iMu_{X4fa^Cl<* zx;-sg>yBT`xK4(St1A(lF%7+d45KEAN&fUw~+x`G%GUCkPu=H@?|7d zo)x=udQ{|MK0>_oLxDs08}^Aek3B?Jt3(Jx(_t@*IiM zy#<@wpfhM)xz7Ip%Z9=r(DxrNbK8mN+VMDo?&GRF$6zxB=783f`~DLw`w6}Sxv#06 zd+xKl>#wfg#77)wDc#K8^cScJT6YoY6|f05zzNP#hv;O|UUuv{b(}YwnO7)Xd0+H- zeK;o#T34=T7Gs$NdB3(EXGL3r_BVp=>q@sAwpAc2O?T0GypNA%{h=r5{n8G%e6?=) z6Q9|kbVpz_2Bv}bcRA_T-~)IEw7&y~I_05t8-hb?$NBfN?0(Q=$au;?LJXaz%D(~R8wPVg`}aV?n6eMBkAoT@{i~hZuDpbi_?3^$Bpe}@ z@g{j4_cNzWh^Fpm(Y>?_<=-#ZWIV|EV9@0u*AEJ_Oy)iHiW?LDn(Ir-t`zGkK$Yxv zzWSsagKnSVTLSyT%Km2Zw1Kvuf42+i-eAil%w+Q7&Z6Li2U#}^rh<<}wmjv#ac{6} z6X~a2V);$mJgZAfvf%plFAqJc7WiAa;E@!t$9q0E~|ckT@1SiJ?y^9!7hQ_I1ju1IoO4M@tJ2m><;E&7s2jj54#_7u!~{0!^7^U z9PARXPQ!VCa@)sDwu_EYpvWWBw*aaWM02zzecSxOPKI+8sp6|lWkYf_RbKm#f zsebkYHow7NpmiGz<#|}>0_{P!KNE0{YY)<}I=TKu|MZzU=-P2%2sTf^>!5Wbk8-^Y zM!+CA+#Fw;I{hrV$D>_ieIL3uyo1drZ~%0>mibJfVVs8p-L9)%B(2t%NG`t_rTnW# zz6LNAw10(1P{wc%+yRDjN}b*F^986ADObI}h~@E{FO=>sY~(n6FR|7=O8PI+BjkQ8 zdwGhc1U(*_v;5`q+Z|^7_pmsyy$-=0O+&x;!gC z&-pNxtpqu**6S*#Efsk*xd|r9yPnVKlB)05$@dQI0PUZ=@9|fbD@PciL-C zJJRKuK({!$HWb0;2Iv6VzeA*df%8T=n)A5^C1dr86;6G}&-0sV%D<}Qs|z=P_OA!& z2Vpb}13mAk$hM}}OFW<7G*kXf!)7j&eLTB={hpvqVJzrv?sb#=x-p>({idDrFVAR> z+n@$$|2C4|0mtAw&}}=$JFwFIixl*mZpyzRW1Rg!abi7w%X=bfvdrq4LVhz?`IE)E zo1qP8e+H5s2~%Jk==N66tGv*ipmb+qvjCQZ)|K-ZJ6X05CohX1&rq zj$Lpp*QY`2&L_PLK7sc^+OmCr%r|cP)7MAB#r$Tw()|XT6HsJacHQDdd7g-6vtSD7 zI^I&%87H)Ew7B2=sB|}A^D%4#?e9U-$065vu4NGG@@?Z$z6o^yK-bQjGO;TJMM3L6 zM0x~FgNY#JYu}&T{Jzw9p5=DD&=r1@uWPD*FU96H_z1MFoZtSFWrZeiKM3glGmWt~ zy?usC`b`<7TLGJzP#3hWyw_<6%btR9pvz&j>#rWy!lnG?T6Aq#hRv(64)nMo*U=BL z>7#U`*gOfV zLF<;D#5GrF0AY~%?Zy^P{fs}~X;DNv0}#I= z^VafVoz?;mczP0(?y zZVcVq?n(8F3$ZH>r9kW6MY z-;7l{FOe?}>mehhlko@X%$X^TXqMm1Q+DUGE(B#j|Nbh{>tQSC-``-z;Rb&5hSJ$j zzF*+HS=n{Ek?s%UK(70AzQJh|i>NyZ(MEo=1D#MZ#Wx?w_Y%AXy1srVoqIOpJX`>} z9jtZRfqZv^(-_GRYwS0R)&Bf1#7bgU2DEM^(l%7(f4!|vE69F-MgraM@z=K7tFgHb z8iCf8_xMCu)*ZTl_*>&5XAZo{^;i0oZC}wQeiQ6wJu#*~Hjlte(Dm{W>Ca&w$T>)R z&r|b>QtOmsQ@^`RnPz?yMz^Bt;vj5B z!Bo(?Z;<{F60idzoTIVhz+rd4E7x)R*7hMi9oWMN3Bf54RxB;6Rp%Z9-yS~Gi#Gi($7_mk;@GgquN^kDL#^lVuXR6YF+j`-hZI6W8(3-F|Zj z-H@B^hs_i4G-%yUi#YcRPr?{TK2Lj-Gd4_n+1X#z=9n?!>V)s1T~ohy-uE3gd7fn- z2U>S7>E~fPybtm`ZB=*7squ=V`!3`9VOKZO&2Ji^8*C=FV7H|c|L5`KmV z^E2D7zjphxd{5|RSI6}9n@;H3_ILIYj(wmgXx$e`uK@|~5&ywGTt%un<=|Dm;oj_z zmF_ldzJmRrb&Ea6a|$4#IIS$r|Aw~ z%JW$;4`zUFXWzw6z3(9Ykl$>$FV!Aye4e=^3!d$`&*2lu$8nX6n^Fc1dFE1L zc|W9Wzp;loPT^#__4oW2IHv=ZLF-N-Jp-1(VzB*D^!z=Y@hIEzn)HKG3?~lD6SH{?F+-sSvuQ(6#;cM{F*5k^L}e-KnH!!dh4Xy{Hg* zzpvq0mp|Njw7gHx`WqhNHzSnp7uf8FBcOHjFXx+0a0OfrwQxk{Wl~S!pi@s;*9`TW z8LAvAVskZI3tG1^>6<`8D`H*$qAfx1KO^WaSN^ueW&jKUt$T>{5eU4*aXWF<(##nd z4_0MyY}Yg8Z`tH8^Jlo<{E2SJO&7$jEgS-^JL6@ptHAH@0~qEoz37)xzTZr6`d537 ztB$%lu`zyAkA0R6Prt&o3fKjn+n?Sc z-zL}s+CTZu%3mPCzskEj^?AtnMEU```H~iVPZ66Ua0O`Hn@P8azR(r)Jpb%rZabj= zcXD+Sll*3KD>p$j2%BN>7|0g6$Eg`zi}QRX%WS=eCi~4swVjh$Hv?va_DAlcT*NX7 zFA!UMr^Psb^>)V4{mMi4l{3^0P4Sx(9=h=})QzEgJ{w@`<$d%%fo*BJbsy%s9m^yf zB_2(A+Wo053mKp6xE!9!d1rL(IPyC-rB?GS80hjHKzcCDfYBiD<&=51wDXW#-`U>F zIn8gXqHEjdd~9BTS3&D;BE1dv!5+}{*3}(H^mrdfx4zOnjLokQd^Nl7rKF3)RUq#+ z*Sh0fU1a_q_aaaE&Aqa~4K=aJg8HD_=gp+sfz^v)_lUCV#JX%AkN~ao-bbp1)7vkM(tfAZXRPj~=y{neyFj$qjna0CC#{6e0ulCi2CTH;$n z{K`sthkvs;Pos1vVz(Gx0ImBi>Ej@w#irEr=b~qWY^K$X&&Ik>YP|jv+q`SJ#}Bk_ z%k_L$h-JN@D-=Lra(&0oRc^bG_o;l6{AKiFep3-$+dl?lGYZCn)@{J}^CHXMfjH=S zR>IZQ?+q|>xDJADY4>+FWAhC(do8=}bdHr4z&o%8LUi0^EgXNlb0Jd7qF%LBe@-m) zn@5#ymDg#%xLPqOSqSO{A8n5(Pr15YgB{D;!r zjLjEt479Gy=PJCxbFXk6*y}=42J7APcA{(BnOW*LN0e?`Y`VZ;(7LNhzYV+K6VSS) z3pvM2S~vW>-{kF^D&HTm`5i8JGrO*w2WZ5y4$um;?r2vxTYr1OZ%QcL`>`1X?|}CA z=Z@@?-{QVSm;_okGR0|Uy1#{%b9{%ct+(CS9EWSyXV?9K^lwo3ZTcF>*f;-Dr~M9? z>gej{FGDZ;O+_aaw4u*k^AMVIJy;kIrF((6ojp}@Jhew zt^B;eDKbDP!p-`0#E>X`Zhn5#R zx_aCRz2-N2l)nqHSp{!^)@}D5<0FiQp`gdJUVPKX`fKMA<_*6o+b_9^$v-b)vmU+& zz2EufeaaN7eZVy{X$#Ldb+vd#kY70$+mGoqLBdmv5x~Lj};~)!l86 zx?e^<=DrNIosF?+3y**8Oy!{-6sdEbjr(Y_L~?www+{t$nhAo1?^v>k9YP0oJ01m7-_`qbBHV%z=ZJ>}neY_`BI(Ej;9=GY$!fsDxoI4=}y&is(F zl#tlLJOZ6iGDS?j+K>g>zqd(mhF{@Zh|-rs9E{038K$8n{w?M_^kG*gy3=pYejqhY zWNc!85BWgr79?E^B$Oe}yqI?b6{J2tbu>ly5GS|oI1$?AH^tDc;r`B5*jx>@KK_8?Xl?s-9hX2B^?C`BZ=c^Rz-XKj+Ac4 zz1;Jk%)y`Cesd$bZQS%&Y^K31(7Ml%ei0UC^Bf=@x~{!TjgX2<9PVtHP&P-UmyoKkR}muxPLh7d|{zXiIspI(klS*QS7w?6l; z-oP>mt@&T~C##!4)7D!Y-AT&d8?lvoYn7&ZAL)l&-QmRg`A(}V@58tL#=i8MrAl`^ zHnU+KXnzloJ_^b33H_@g=kz(}Xf-7kUF&aTuiw0jZpg7Pnb;J9OF`>?!@lxPmPzPI zJggS&p>}p%-7muXxW1~&w?8&g4v(hkE+qXDNQe{5`FZ=D5$m&*Z>MAq{M_$1N71$8 z;CtA70^33REBDtNV3~v;h-J(gN&A)ed|6#R4#v?9^iSy?$0qP8=dnQRHe6%O{VW>} zgFxmH1Fmq!uT}1TPU}X#@teX*cM&$LU>9iJ(p%VP!i`W5v~H2Y&bX*`!w3DQ0=l;S z-j7W`cnGxa3eq;b%Ku*NH`~1Dkl)l&{>HJ{1Y1Gteoy)+Ncfdl>P_y~m2uLmd=uz4 zL)Qj*f6+qN^8Iza%=fVXbzi#)##Yo$^xa5vt*O}k5LrDlHj4A)Kvki-SIc0^-<9OM4zfV|w~F+7knj_6)3x}=PR-Vx#M-~G37Buuwe9UsY;x~lUk6&Z9O+6R z;c8;9_9pkO{yqNW3Yg3RseV@*o7ES zu*vlqeHyfGY0_1p7W~1Orv3fet$$q(A%DP(Rl3cvYXj{->&o~ukY$g8y*?~skoXz8 z|5ShD=nkcDZTU{dZU)Q-t-FBqiy&bYv7R@IwuEf`IS}9(npF9|hRuht4YY3I&vTg& zl!uaF`;zFj^YAwo4DkF->Uwb)n{E&Vty^~|=h5LY=nuzeL+zONi*B0>oa3%_9gS)1 zY?4Ww9WePHOqIiH*ld80LF*nM{S%m79Cs0)VE<&tpNjMa(bwe=JtttQE8X+3D-4%` z)~!yu4oGN9oMZW(8{oO0)coXTY}!F5(7F$k9s!eK9B6;rxc+{k_RDc}A62^Zuz3Yu z1FgH0^a1!84ujTxZkSWfS~qrHz)VIrl-xpN{=_E#7d#&aTDKDE+906;vFPS2;pj=( zN(hup_2YQHfGJFSDCFuk#ij+c09W*Mvit-GJ}PY~Emn<6d|W{hB*5Y4DZ zI}7Cxn9b;xPI`hqc9%dg(7H89*M*y)F?3}IWBpy^>Q-))@;8p|ujp2Eb#KS!F6a(g zSNg?JmW=}G7g~3dt1JD@mP4dKfM>x{?O`%@Ps0Mxy04Oc8#cp6(Dio0)!nMvgSjwZ zilb}&-G$8|_z|>jvpuvEh`{Yox?rjtLYYoKF2dx``Ww3_VCtf4>+Ml&o`A8Sb>;of zGg&qd((nI@4|D2I&)Y)<1Lih#ZTnq}-OI2FwC;M+AA^K##QJ)ZZD+du#?bABZl+sr zJF)o|&Q4_4E&VOuJ7HO0xEEH`;634C$Iq^lPM!amivwneDu*f9JOeL+_IDrYBar(` z%92>u+ZK;>UIU-NyP)^S-+1^Nxt#u{{N01iA@~uruAILpvzPfDR0FO1hpVgi^QLIP z>_eAoNQS1^w1owrbwBu;V-LvK#~4XGxjp9|K-$9iC!PIUpFYMs?=%^1Qe&Lt+L&z* zw_tZS+zVQF8R@kk;Ui*s52}5yfNf{m-*~BjxeDD-(t@^$&0aVFTDQf1?gs-2_Y=$U zVY;q9jti9ym^$d%{`Md?<6shKUAfPt=mAIf8e+Lmc0O2NC6@kX&(lS&4478R-}=}z zgPTF?-b1<{NEl3+!)&kV9X)JpMo`(b*EZ@Hp&8T}EC+9(1Cx4l9RFwl}3c9vEypPRJ*aKR3@3*vR zIPV~R8KgaAQg@=8Z@3fd_7J{0V3wh4Lm_NJP#N^`guJ)mPL_28+5gD1w4yoSb*F4X zH3H^cbV9DsK=O@*(V+d4^Eew=CSe<~?q8xOLGIt&=<39-37DNqcQ-Z%;Rn#Vw;W>Z z0SWgJ=cF6288AoGcFXgV4`BBoWT4?5M`ffxKWS2l_8u3zgwm z9j>R=blUC?_dIf~^}Ms5z9u17H(oG4w*MS)05XR90gHrX>kbE~md(i$>U`&08 zWkX=V_1UjSZ*h;)dZTCOOL257pliqPvDi(ArJ!}&9cHcwBj6#>KGtaG?8o%;rs0MG zlZ9?boF}}6&3?#rB)jfoq$j~Euo&v$^LoysN?DGs?&!+?Ms5X@kZ2q*vy{KNexfWP zFKB<|J9+t8CSfrD>-K8vNsr&*CIRz?(k+Z_NvNErTjwidy0UB}JPcYlUvFnVD!PB~ z$C?JrNpx+PiOoD%0D8Q6W;)l)S!TzLICd8ePSy8H*2Upd(Azn{aG#hgJIa2S|MmUL zO?x~3=y5;VEMUr`YePZo#Ghis>Hbt^ne``uT?6IMHLMH64WRvz^BQ-stS8(Jx}B8p z*bhZ-446BVKM!Ct0>*$I$K?C4&#>%y(3&;Sln}ltUz^qidL$MhR<3a1n zcPr+zOu`c4)0J0NG6(h0B4DDO+yv2zi#X=MZUyM=On={K6uS@c$L@#Lk$(eh1nti+ z>`->IOu~L*ukF^j(_n|LR90J^GQkHNe~~=|=L;MaQ`&0wK`bS(bD) zuzp6c`vZS$sKvT^&=9npytk#5vNNp$=7L93<7TRfZv35nH?;VJJ`Zbemwjr6$^4A__6|Dx{|nZ0uX(@` zO7sbs-spy0-PPD^f^R|l`^ulZOAx+=T~LuStx=JALv#9>JFk%QGB>+AWJJHYS18@~*hHW+Xx+Y~ZRpScx_oUv%b*PY z?hg+J%tmx+w#o1iHjl$((7HQFe+|Bq%!i1pvL9cMh-gL_LnO}2JSfBc`Ow1wvq$Nk zja?Ba3R<@t>HZ*LII$eZl(?L6^7GW3B~dc0cIHKgBx9k3Zh z*Up3by8dSChl6Rq(bPP64>sSzpP+S%(hIJHh7g7lVeV^b;P|@Xb*KHx`IEofLzH@> zTtaN0gtpjpgu6lO_9Fc-NEk|7(PN$|_tV*Wi=bOJn$mp?n~CrwXx)XRmxF}W#5w7j zApsLc*S3ds*ldM8pmndvm0>DDbEpev7vtEAdXsiA(k)-P@2#`!gb0yg0n;Ly(!C9v zPS67+%L2*7DVYh|jd_Y?&w(6+_pR?}&U7_D?C4|+jiCQVQ}y*S`QL`Up#7|tkzwjU z1lmBo_8ix@b2JOZPpz-S$bfkY-H`J$<`Ha0!C26`(@8G?3C|PD@z65Hg#kMpZ7Bzt z7iPISiBSRGrQ;@uR$%iMybGe@Zhyvh(qDlc4ntHf5m#Xx-YR8-ax8#K#Jrdi--vr<86S-OcFIe3PLS zHuu2@(7H07e9W@F@EOSYd3)XbYxg|E-E6n*N3k&h9_UZ)Uvl{~c*RMEDGFM*2k8f4 z9E<>cUSz$;eljsGURkv4%0QvmXU=t_H+_ijz|*l#7q2TVn!TMC=X za2;sf2R>w8#IkYlDCqf%>2vD-&`b=N8_^B9Gb|Dwm$5GRX9plj#77h_WqYJv7wzAw>{ zWxe5E(B%+!%U9o*YNjy1QT`6XW(-UOt^3r)9J{eh!dt{%`cBNng0X5?4X%&h#Qn#vzjB@|%Pp+Xw1C;J{Jj~QHqZ{VZdcNMK*B@B zx*TLok)ZvJp?d_~P}0JfN3aegbEZouX<*biE_P~Hr48I*+*AmuC1x5#}p4KHzY zbE|$4oku%+G}X@PW77ie0nH1IREVIx_NdQa}Uez zhhqG%+e4exr|Kr2379LD?tJWCgw>$^{etvY@I8D3TDO)vu4gNU1)PsU*M^L9GE8A8 z4n7vT^8^1}($B-EuqhAk_+* z?^uabTTBz#OP^V(H7 z6V}If_-l1T8v>>lx;AXZ<_kCiWc#}x6u8jQ3=!)&$aii(h`z^sM)_Bsd{y9T(EimU z-3TPyLM->O&g6dHURzS-DfQGTnS=AY=tj}C{i`iD9pP@!y7E5hzATe4i1--$gR`lp z4V*Wy?MnLBVOKZ&e!$E{H`7ha_dG^mH!4kc8p~~%z&fvfp!c^CbeDVRPCi53D7qgj z-I?e;4Rh0U7n8PODgWo>Zw%c%=!RUQW!S8QHQ;BNI}YZ4o3wq`^mhJlhrwvDWh?Pn z%x~H4Bt!UvfH|!E?SBL3-C=i{?kJYYb1D*M5a;MGx<1;Rtv9Q?{|t4_M(#gB*N$I5 zpm!Wjr0Hgad2bX*C=mAcSC2DcbZaVIb5Vvl2a19&-+rWrz<78ZbUAd5pE`a;J_?v7 z=-PfUADbocJZRk_rT9J$%OqUI|6a$FdfpsIw>`R{qy_Ja#&!dIkfytx^j9F^TVgNW zAFoJ_GvSW|roYnt0h{A+0<^!AiZW*M{F;Pwh`Xba-p=H_j2&;|=#D~{AubsTU~>sv z4qCSy>FOZidg4_jPSx#6N4C0=O`K;(*OqSsY??uH(7HFD&wV&7lW-@oS2<)WUvytq z<#0DPJ)jq8-G@jI2MMEzy>xZ?hBh-kc=$UZP50mW8%1|7y0*W`cfDtzIXg}F-+tFS zj_xl?SKcqN2+bvFy6Nwi(EY-WJyhG@`?CbPXN^et`vQ8);pH^l)ue4$%l|p)nok1e zGNmi~i`TJxGfns3?k_^*9vVE9Y7cRA zpF~%W>&=)eG)~ja2xlMHbDEc$EdjFxUE42OqSqQar|CvXOBg}?DCoIU4R>Cu+iw)z zca-iFZ2p|V9En($!vfMayvYAKwciA~2UIz{g3UVE3|hA=bAPqc?S@T%7y(-MrK(&zX4zZtD(LN8;c*@?u_Is}LD#mUUkY>2 zA$DJY)-895GhZyhvG-N{uXRtXc8+g#`9(epn5UI)Gwj;IU7&UMkUj*a2z`lI>mGi< zDF>|^`#fOQp=6ZZ>j7rtp z3T)!=BWT@8moq{k=bkqI)H}Hq61aJa!d8YRb0HB`mjPDtTkr)m3&?$bT)=2KjYschzOwGsH4$ zo4~G(vTMw`HV^@QJhh7SI@kjGxts`NLNe?RnC?pFOY(gU2SDo_AuZt;vGqa9wzS(P zL+DIUI`+GTzozNf{g$t2cAZ+TP8gk6m5%l2Z1VpTf10~G5p=dG9qZ3UX*#F#r?aaQ zMduhgnaQnZzKXqkXQMc=ZZCC6OSpl!9_TU}fL3}tGzS7E&nQ=v=oV~lgLa_ny))^1 z!0LsuyHwfT$GQP92(;Z0(qq7mV_Y;am6hF%=NdDW_0vJO&)ZmTe@nazVb?&}+25Om z-T(T%1a_^kv*k92{EOf@(B-y*^lFf>j@bUTl$Q++S(lZ}fj{2{Oeb`0|9uOa58z|a zx+h8JE#~OvC(fz=h7WSSN^R%G*pz`vpxfO-(l5c=AY)C{noix0cH2wrd#>v#|2`z& z7T6BjzdfW6f`lW)UjFIl(Gut`Ow;`tyFbB8H&1cSt)%J3+;*sSLq9Nnr|F8n`LOrW z{ips$(B0~xTj&gRW9a^hu5DK#^h!gWG~G|DbIq1zLt!GMqX8SvP|2AXN@Wuss34r|DiYmq!sG zPYJGX5Nm%|c#NYlbZ0AF8Rzq1n;&$&*>PUV;h&sei=(?5T|3ScMDGfyk*50?=}GVc zEQG3cnSa!C#)RjXKS>$u{uVvTd0XZ0+t_S|1ZaOxR^+~#E6{^7Am77#uC$|j*kj%p zJ;wQ}CsOUVE;g;9FKAu4AAU2-j=}*D-KOsKtYec-?HA@}?$cJf=al4{0u%wQd-50N zJ1mn>g*c~iJce!^bZxj6n>x@G^mr@x>-}~M_Z_BbZg9uj1Ujvi&WUSyj*q&0l9X+N3dl;9 zI>$liu5;=sDvOq5BfJa}DoFJNng9GAFmI{){FwFI;4_`iZ!$z*=6(_Kf1q^Fr+)~C zvgbE3^6gXk zom`dtbA_9~(rNN1$bW&#UyXd#C-dwRu@se*m+03gZOcN0BN;(+xw31{`gU+fnq8+f zy99RSmEC==-9tIpMSMYXjj|i;+C83wT>`rsl-*d@Zh8)O5r5F!s_bTye=#ggvwM-W zE|&y$os`{L*Y1NH>>`1nxnJ3R?AqYc2Q{u_tTezOzb2i`dWweCXRlZF066E_@<$I6yo8VKGFE9Rv^90RL9{!zF z`DB2Nknfx^so(XLr_V!fu;r2;J#$vj6eXVx?Y}fexIyJRn|v|yRdMn~C2wuERT!@F z$?wL=*Hq~}!Fpj__I$zS47Actb)fi7l#T4*VgFW|{W1@GDdRBC_Qsy+Pcr<1o$z~_ zeUy6-^l!`miH_Kx8#E)7{WVu+m@H@jQgZJ26Kq1d733?-HZvY;t;n6!CpuGh8_9~r( ztMmP7be4H+m%*PHo#B|$`N`Eec^aLthd<+`z6u0QU~H=W`LE(0Cb$svb`>UF65<{@ z`Pi=Lg+X(X(z%knqEj2Zbiy9>K3;S#3Yt<%C(G5j@vdY*$=#E(w}PmCh1ZXU%DJ4twZ?WxI+5%~YimcXd8JjZWNSyYh)Ymj=yZrL)7; zIdmGG<{tjUMCY=gS*LUkyE?uK-tBOchfYYg>+&Gq{mJ=SEtHpbSirI6P4{M8Z^Hvof@uAlhf!d^UyKkPqCoMH!ihZ&0U>Nr_rhCv0YKo zDIPReD4njZ&fwGN7!QA%%XXCrnwm=IQCH`w)96G!bT*036+v^e(wXh*tT>I1@z}2B zvRx&Eri;>9?dp7d8l6oZ?Kvd=lnV0wMQ5Kbf8~6Tumv3ncAgg_-*}bJ&fgN*^HFKp z_t~=lX1ZqL*e}7pKvI=&`7mz~zE<`eG6ZAzsrUKve|ZF=rRgu&+vELO6}fHz4MBqV z$&@@;ksnCkPnVZ@RvG#U_IAFw4m;ruWp8AjMZP_1JLUcd;XRcvm&_~4_r1#ZG3$j- zR6fx&W%=>(Nf(oUzGl5}AT3{*eCLxd1ex+-5q)(chA@|kiRCy|e0PKHLT7n)|z7mUze)9X*pn}o2x z8+$@j{@8i_?b+>3n0ybYd=b_Qozn6}$Tz~tCvv7I>xJGbUv6nP5vFFhH!&L7I+f4P<9|rY7bo9#k9;T6@+HW3*dt$t9OMve zzcg0{O`ZwKMN#={fA{RPd?E4`^T>BmTD~y(YI@`grR9r|ucebO`Qv3-UlnSod;w|y z6@#WL`SK-m(Z5(P=hWU+`6z!ACf`t%Pp-EKpQYuCkZ+1dzCCIAqU3v4E~3Yy##Q{`f}H&7*e{f5YQiATP?Y5BtB ztLTyM{Iq-#@-_6xS1>JKlzex3Kv_lW(lbXScUpTD}DN=8?~a zN~{;Ex%oKF&p^*{c$J`8q4Mouy|61SpSe0{-d4YxsKzlEd<_yRxq9(yg61po*>Uwy zb?)ncA3;K8H(xZ&c>?vj>#pH^0&D>ZRmkUKJV~5$>UbhK!dcY&q-55p{FVFQggdTv z?798L**@|WQu#Wvz6bPj^Hp>6CCFEmeA3k<*!}mgw0x#+(9|KH-T!f0h!Mu5BqClbM%Tf-UC=`BsuI zy`0OW<%^Q<9i>;1eUMNkEnl2`TU0*lUz41e3FIS0<U;Tw0tr09ai~r)#kh~_(6hg|E3WeGbOnwDu2te zz7kZ``J|l5S3u=^r#SB)fR;KR+YuvQN%Glw!QHHv`DqWG54{BWYAL-6RJ8D@&WE09 z%=uB3ZxZW;scHGb3sZds0r;w<;!;++X00^f-S!& z`JPbu?EbG}TD}d>4{Ws!)Pln-iW)%NHkK8S>fv^NXyP z^Bim3eAQ)tNWI0I1x;o0+3}$8_4HjR3-TKa;6koiTuHhHNVuL@UvISIU_;hrC3DcP zZw#87)bH2BW(nhH6Jk+ub%QsOZULve&KyOjv(jnvKXmS3-TeH{{bklCiN&utIuEPu z>`Y#{PFV`HKiyc~3-mQ=t0g+-CdM&zO3VL*e&pSXzz)zlYZ==HvTnmg{C3)Td3nD@ z1f6HmvHf`nc}Kz%pmoNQo&;Xyo!~$*hR#}aY_P{`)3WPi%pfi6>~_Vm``|y=C9wMv zyG-{7|5rKAK8@c}j-lqv3;z#vBIx+JSICBcy8Th?F8L33G3+Y;2fH|SH~t5^1a^`C zU}tXTeDZ&=3t>0-KiGw_8~Y#ZBG}FQ4|Y-PR$_Oi?J$ncyXe?{Xpgt&W$!=11*DgN z*ZV8O%umcM%uoNrc7(9|3OhSaFXJ~>!mFUif!9dC3G&^?^zlT#`xrsz`2T@U44t#4 z+1|vvBp5S<9LE#vF8L333GA-=4|b+S(A3ASqU-9rl+7mi6!d;;8|j@OAwm3gp;OE6 z$BwD}RutXa(6#MhA2w6jZ+%Csb$=v%3?%$Y?6v=r@i{A*gWp8AJGvn^{TDWYFz*=y zQL+2OyrlDiS3BbtDPHy&G!LO;+x>;)y$p(i_OAr#3Lv36vDf}X#$oGU1l{RsyK7=2 z^VKY3t4sFW^8U&CuCBa)GRN&k_r?DYx}jU?w@SAuKDB_>Y5tziKBlefZ)f5h{Y7`L z(zVB#J<@dT^9oYFvMwjx1iF7I-Co!XfPrbc@;;j=%Os2<&Pg{;=fCi&RC}F>%`BJ$ zy5624y$mF*B=*u>$(-=-_RyO1;YxQMHgCfQ(7M0SQ9fXqgl)uLy1E}E(7jdZ?#1RH z`~X^4zCZO7%Ow0xoRe;}P0;jEx*uU`=Ve-VC(HeH9Nq7U?0m@1@g&aXFS;X?ZeDCJ zfD1wE=H-~MkgIz+aZb9C+k$46(*0ll?swcZ;%`pn5J&e_bnW<15?_{M_W@XcWjc zUy%M5B>YBf-;X%*^VIoY`L3YVN!-ctlhU>4+x>M@x>63gN!uXnyvjk}XU|LSOiY!7 zy>8irxvBM6bQ_YkLDqTc>gPp5=)SCU&%zhs9MHP?NZTOma?%Z>`=Qdc_XT{%y#ZSH zpS%}A?~fzs?pL~-8}S_{{JF^W_cFKME+)N~brMSOe@^@37`l08rus!0Y^uW5ApTn2 zEYi(D!amA3CtcHt`?{5GOKfMr8qm6p>hV4;coCMsfY*2y_Au{g+Q|F0-1lnDVE&(# z{AFVz_XN#7vr_)Urp>9EwIXhJjLtNd*J#@$X3*9KX z<&>`VccO>xzwtML?u|-!3VL(knKa#JNv{P7>xpwJ-&l998!FxRvDpfrfiB-KNPh4tj*&17`#xPBB{ImR*#vg=+&`ultNwij`2knzF3zb_wyskAq_za%U9%N&cN z`-{?Ths{0E9kjoaeE`cO3?laOSMM((_i-Kg>6E`iu^A2{AzfEAUvt;%@vNoSeiPm6 zm9D(kay_;i(sXx|KHYmQyL#wGdj?Gd`h_iD87F0o{5DNje6>N=Yk#F|CFpX9q5HV< z_j~mIfRkyuMQ_M3<>6{*^=|h4#Ym6$dW3p$AD7Z?jNPr!26Xv$C*2Ar%Uw2e22weF{+cf&qe ze_rVEexbXR%k#?Y;$bjwrM*TP?Ex@^MVLDuW?by{!s_8Uj{ zE~T5%i049~6zFoOPx@xK18xJYyV1knL|@KRqig4D_hB;%rhwM{g7mlWI~)f+pX}?7 zXYVoZv*TIhfuL!m_Va}ra~&KifY!a8w1l3-_kf(|lW|h^^OBmD> zcRRZO=6EQMZclXWI4RfXzd~alNI4X9d`y;ul!XLYugk%!oh8tH0^Ly3f_K1S6KukL z4xn{!C4DDEp)d5R#CtTWIQ3S(uTyV-R7E;Jf?5lg&zw{67W7s#v-i{k9v3nQxg5Iv?%{X5H55xUXpg!;OWS$l7 zz`J(caYK$5nEY=K>%bwf9wZvx%^s{IecW*kfets5h~1SFj9y&DZ#mzB&xdmGPlfy&?I*sg^*Xx)cz zq3wc%al|?LJCXUT^7lz>X2TrNx-XD^6(qbtoRe;NQqZiyUoKlD!#mh)h0j3io+O>O zg`;~Bv6pVP^C*+K{_E-nY11KWDnc#Lx*bU03y;EsAm7y{y110>WXmhUs9k6XH(#-HT8J-W8un_$xkx`5Vwi}V)w7QO_n+tuCAOZ{Xe zf7zJmQ=CWC{$k_5mFJs5>t0H_G+YZ+K({A(&zh94_SZ}gn!c`Xgw3pjO>4LVwC)Vj z%U}bAg>Ljho+5_b8`#-)7iPVDcc2aE zav4l|49tKjV9(o1Im`R#B$jrUCC(6HPY2Df=w>=eGY^}WU?phXy`+yqF7{!+6YF{` zO?iv1F7J4Z`y05pZ*|YX?oucUTDJx1PS6K>fd1ZLa}V9boSAu}0Chn78+FT9mqU1d&^)Jf zn_<%qBA|6gke&!nLr0ElWgc6ks#9Mvk8%h-!~Nsv+HhbF`z>sjf^J80KG>*s6v6Hj z<l}AYP2ZO`h?u8g0%-3il)nH;yU7Qa`RDxQ)gI~nlQWa+ws><= z5nM|qCVvagRe<(hNcl>r3)NxI`DyQRZ~QFVJpH?fky#vf;jQd>Zy}}|^aAbOM0qDj z`i(q(D|5Ena?j&_Or+}@eVgYC;dLZ{l)t6hcTXnQ-cpn=14&ns%kgLC{7`-m&yIu6 zY_@;AcE2az?~&h!sGi|X3B7-6^PV2B>~_)Q!gPHjc)R1Z0;0}5dS6dPUgN~rglfW4N^aq3_(km3)uqvAmXEzQufQ zHOMs?TR)ED0&96~3rPB!T+ds@CrQuOqKh~V!|S9XxK>Qe&+sc~@1K-|QP+Dax!-u6 zYq{U&`?0FNMTt2dN`v;6rCbptRU!BD>iWj;Ho$AQv+BgyYjoC&Do}^l8++bn|Kip2 z0+Zl-B6x$Tn$S;)k?)tS0qd3amA5;2-mc_+<3c??Q`7TA@b*{j+mo09Fc7qN5akgd zX)L*4JLvXJ;2njR?w3jvh?xXaKzpZAo&%B=lKb8NJx}c?qKgZfmsEWh6SETLvF&QF z_&)Kx>&TN_gUGzEJXd}3&c$oD&yB?7Yr}Clh_{+s#Z>#&;5A8g$o<+^UpI+;P|&Q# zYx{%s-tb>|^>`Bbu%Owm>ia0Zi4f25Zlb&seuV?_|8x@D4m*dqKr+u*IRTY=O{66tClzn-bd0Qrr38$yW-=~S04l_Y}#kY~yByA-x&W2>i z2fN;4^;P?R&iyBNZGZThnEmi0Xm6lB_mRU{(6>hV{FXQiJ>iZ!x%va%E0otEPP~_p zYwvZG8^SG+>2-X((G5J$MtScbt~c}p?R}N<+aT!!^1S+Qd?VLg@Y?hVF&kk!h{fA3 z@*k%Bc4znZItp`45iJrhZB>2N@?H|Y2B}YNw+ev+lz#_F`S0;x-}QK}X6h4cPk8$) zuRQlbp3@y5R(rjVr?O*tj<+cqFe8;$?lYI~gJd7YEARXDPhDRJ?_|7ozgP_4rEqzM z_hHIU!&@*F^!e(^KIf|wX9UbD=>r?Tw!uFlF%C^b0Yv&E~(??Vnyh%YO>x^T76Zb56iiB~CsYhaBFk4Anr_ zr!M82LDKEyGG;VCGhLtFysp=G67LOaIolA^8~TCv&Y`>*w!#`Htd5rtsPnlur2aDN z`8>8KytW@5Am(>C0@_=$D`N@NfU7|F&lcW#k>An&dwatBAYRA&I}M1De$+AHsE;kDhc19W{Oo>#YT4DVv) z{ZV}PvCctzD^soww?kvl-j04=hwVvu+Wm;GZvyYncq@28 zJ@Ac$F&W&PdUGN#J~>3$~e(Ovl3py!EP5HR^(Pp`La#1!nt{Vt&ETaR*6 z=nMCNuJ35C9c2G+w|`SQU@GIy@&3+WVm84R(B84#nS;YeFbAZ*_I%Gg&%22G0`BlU z&P4&!Th(_5G2g?FpuMN{U^@j#Wy!0ROnYtneyr;2TpTb@C~tXUu7T>Hy*E>C1@}P* z5btouZQpL*cA>rIl7N}6+TkH$M#31--bIvGf~582<9&|5np~OQ-Xi4!=3V98Ld-rm z0NPu+Cu1&1szRQZH+pHne5$mfC;{l z?hm_&IS9Xi_SWc?-`oIEXb##t*lS<$_Vv6@g@CDu*Y0Qf5Hk|Sfc7qpz=LS{Qu;WbHee|lc+;M541oyuFC z*!s{o!z=gq+{J5Mp%ZBDcyGJV?Hk8?M0tA?BkeGRT-SFB<+ni6B697u?U2hG37FzD z)7#re#B6}gpuK-l4)=4tXOruBiS^3-%kJkB*9A-kyf&30<`TFDm}c1Rt-y_x+d)sT zb1?BGncGTA)?_}0$M)AjeC{!L8Kizq-72NdOUdWg@%n1euFCJa+gGmTt`#uPD(?@( z{04#kxxHsoE(7JD^fS4S%{bDXLU%*!&?XJCD2k;CD=mmPdKf~+CdS0Grz&rx4t?whmyagYE_U?L+ z#>xEp`_uSt9ypP&x954-(w+L|#lm_j6jq)6jw3J-eSK3sPKJOg4C15(Jc34Zy z4{#8)SA3-gy55V(?fP|%?!WUnA6Qd9NJ=&hm~v$Ic%5=6G5-Hsebprw+fiO$~&K!U!c&S+}`^rkB50M3$*vJk2i5w!2F8W&Lch{ zW-ELPy1pkr!gUX*0+)jvU)$r#gx7zYb8ej}N-D+LalHCw+FOU1#&8R0ZyU;8KvGX~ zU0>TL#B2M5xtrrvymp-HOUxh`3flWD<>{~(=7Zc1w&ot{yph;KKKCcJ517`Ck!&!^IAe4AirhW8NVQwMX8ESv*!KkvkH?pRjAtFK(IuI>)^ zCfYGzCir;E6RYccG;ebsZ?aRsyn)y8>RSWf128bdTj^2m>xP$L0_gR&>0Ni6yoz%V zwm+C|0h3VP4~aPdhd|f&=EwM3Faw?keI945x4ntCo436=y#i(}Uc0?5BxWsq4%!=d zoH+|fs!XoyYx|iV*JJkw%r@n%LrgQc6SP-+!+32RJPFzx^V(N?<9!0=pz=;4W(LfH zOz(bP`wb3(_OAD~H$DC)`v%O}Z>8Iz;1JGPL2=0R4(7GdFch?RkDs@Hz+9@l6N#Au z(;(A(!4urW06Cz&Q@wW3^)(L$OmpR}PE38c5wy2A<%dDiNOJA9>rK3W&!_NqSKbN4 zyb9And&PH<*N(uipuP2$xZ^{v`VI`3O?d6NQ+g=N3FRQuEAHmJ-W0U=53hae@xC3; z5_o^ZYscT##I%Jz;OG5`*Y|_ozpe4M3%%crKO8U@y`ALnk##G=OhxD=1UVYmyWnRkML{e;2z>LKkO_hupO3Vz21MU5da=}sD(+5SN zLYegWn981a=3Zmo^u~2FCSYE}>v-NAVwyo8(BA5!>0dAa?gf3Gr=GXo{wR{JpBWc0 z@2mR0K+GHP7HDtFCppf7;Shr%m(vdA-F9f`)i=4vn8CJvC$e4OW!IES6Ns4xZ-Dle z7{jwPp*~y-+AF_YkyL~+?-H{Lz5(qm%DDyy>OvJLcLnoc+CqH2y!y6ZntBXo$`pBx<4(Me z=WRnwZ|DcwTj*)VWVi~-fgT^$c;nKtJI|dzNPX?N9-A95lkn!GYQkrU*#+N%_O_hBc_|nUgF)AK zu(w_GtgpQD17?}3@0-ND4|b?6!hwZ*(E&6X&G8!-#nfUIgu3OL;4N2fILfCwgA}T$R{+ z0psAc^Qc3_WIe}mK4`B)xg1o2x!Jjo^Jm%Zm~E}5x1M5)0_Hm9twr3;a2sgveUu-7 zC*Tp#^I zXS#ipA8{Tb|G(B2l5JAkCFuoRNytr3*jTs&Th1=Bxi5H zY*g*Jj?Yb~#`#%tUB7LV_kyH@s7(PdD1pT~B{_+d)!|w}~GD zrls<>BBmESA+gH)1?BxvXexgQ^mTyBAEb|e?EcsJiTg0{+U=kmF(ctQ(B7wB<34ow z3OlKswo)J0PCSI(c#OON9xPvaa2lm+eWPWfSwG=ki3I~bzoA@Sci zua0+lDuVC65HkY`Owa8tF@yOi^nxzX@E7Ks-?CmB@g49!S*h*dH0oQ;^TZ1T%{IJ_ zSN@uq{qQU3`kwYW;{aR)r9fYAD(a1kGQY9?A#zgCoH_rW-b%zCt2f8To5Y)g*Y0;3 z;)}u~8Qz~L{{@BK;CKb*oteJBt3U~Nz3J<2$w1INgtxNS4p$Qsp2eGQ0qK+^OcRH@zLl$^^|ayg{$N^1P|n ziF*^Y_h`?X>gcUE{k$pX!l23jZrWQXn|sl4ex2dHWFGgU@m^K(`Q);_RX&4lc^$*W zKDR&Q@|F#nvdX)cnD)eW23_9|DR(Nw{)qg7FLOWtrp5RF^u}_6rW#(m-iplUS_R~Q z_AaLU3H%54LV`JdqNzJh?(x>!oM?L7F_#8SRMofS0?u8*m7u-y9INYj?Iy^)U$wEf z-s-WA>~-np8i{jZJy!vR;%xGx7zu5oy&q|r1Hvhw?^U|li@wubGQ2XcoTTv zS6+GU)>NF+GrYFGk{`=+w~}~2SKgWU7Qmtm?>fp`VK3|y=x6r6(&0Y!jqxKc3HC#F zyO7^Q`H{Fopx2wOZwo%7y>{M|YrWz9PSscT>xXgveiScLpFF(@yjcs=^_Az39l@FZ z-Q4v(+VjT>pW==`y1tPLLDNuq<@sZ!ahA>S9_{&Km3_Q%yhD{&o30a(^FqwvRW7cb)RSM%-+82Xuds`v_L>+8W5b zk6^ivH(HVYpu8K2`w9L7+FNZQ$MkR;GzQ(zW;A!lGristR|HMr_tN+AbSLIvcoekv zY05KT0nCPl?7)X}|GMy2I&Ge!=yn*Q=96}uj9wiyx8n_Z^&LRW z<1h@g_hrg&zyg>9+8g!hzov4~bX8v4A3h{jdym#13JiDKS+BPk-bZ}A8;`?V+{bIG z1kLk4-fxe?Th7ND!#i7ff5%sF5py)q?QkLGickeIzlSiyr+p*W1kEbEwm&o^t~s;- z?R|{$7>L8Opx4_bzy44)Xm+UjzDvw%_#CwNd&<9pd7tn0mt9CBYU9Y$$$$WBK>J!|TP(5f)D3oB#hgrS3hH#bZ%~|S>>v}tmMS|vTymmV-Nz6rXDQNGllskc>`^gXY-e?W(Z!py*)(COYjP4?>CfxhZ2i9pA56>GXK5CeHL5gK0f=QIzf}f zTipFKrUEflp$2I0t(4nga8JcF^bd zVs`}14|tcSmXPnH5wjLHgZ9?^h-+5xHcW+R9gbl`9MiSSXNrI5_6vQUAlioGtb`{e zTS3ek_za{qUv`@`|Cf|^gB{1>#GON&ZNKk%ufTHl)1d3~4CQxVH*AIjCDZ3wnLx7gYYfn+8_AsXF3K=OT0Fnw32&xpa|&pD@FM-_`Cgx>*f=8Wgc;+Q_wt4 zoL!DOeEwFr9rSW^qTCN84JMak6?sm9-hS)xUd_}e_@{HwyqZXRhZ6HFya3w!7Ud-% zX*GFX-pD;cvjVT}C+msX4qt=z9;EyiNLsZmpE-P9`u;UrXT3g?c(*8T;A6%GI0Llz zLdsV{U5J2qyIkP5Lr0%}lIX&5(BgD`n-J3iqM*I~DG!C`VH`;RYgozk4)F8d%Xu>& z?^I%s)jQhH+cjt|!OOHem6qW941UP)Hd)0O4>9NqlUp+0w07&;mwC3du{^(Ia6Z?Q z=pHn8;&t4ji4!v$&iN!=Uk-r->sHh5pK?qA^&rB&aBv{YL>X_!7jVy;>GOxlSkNrS zYx~2e#C!#NLAS%%Yx0{5p%PpMdOy+2+rQ`P4-W^;XUcm6G3}r)Xzw=4d*KiG56F6p zT;`4&v1De8qWGyWT41Hzu3dQ$TyY?vl!i@}91*-*y}kFZH!vdA{>m#FfeL9_{(gt4g^2 zH`jW5B50c7wcEwL_y)t%8Qy&BnLolMPzJ`<;u;|H-fkPI6UQP_XE~qD?m3mB!#QqK z^^FqK4F-U2hpm+V1E+n?F)SS5{H(Ks`fy&dLdk#D*Nh69!FcVsemODKpcZKFy_EaG zD0mF?{>hyB&v|bG?{hxh7l=JpZ;p>QHk#u$s; zekk^2(0r@fw>B|1!)>7J+lBH#7zwhy$#%Sl?O4{=Jil>r3@!UXx}QxTZZgaO?OjHB zEqo1|p>T=xerT2F)$^6uQ=BJJ-tUO{4gLb{J!K>P8YDed)&KW|bpMTv<$8$nI>gHU z?GkeBmHk@{UTXlE`?sV|J2+1VO%3I}mAGyY1MN*x-UoldVbI%g(L4Uxf0NGy&8>Lt z_ICaz>I&sSd;3s+945juu? z4yS*?xdYJq#cZU zcRbVejl_fILcB6&NUBFnS9lDxx6T&k#V`m4fYV*Rf6N$h6X#;ayZg<0UveCu&-IvB zf+nKsyO|iN?{0GKmHm9#tsIkp)K|Ad#IL?ng61~7Io_YCO@+g=BFF+;k z;j{C}j-FS4&o=fd`yu6hmzZ_16STMaHrfXsg$F^}_mDSEmVUn{1yBF-+~?=4*85bW_r+!Q{G>Q32)~+l%TzhDYt;G&=K^!WS`Hx zFFJ$kn#%hSF%#f5(B6}ijK6RRlmWfohTrke@yvOH>za7&cy==}cR_p5-hPxH1xaJc zC)bqU|8d6$*%wK=y+8MIdHpOlGibKrby5+$PRv^{7qs^)%KJgmpX9RM;`9mE=>D5) zyLdBb_Nw}xw1ekC!dalb*HLZ)-Jw0mcvh7Ckr;y`++4;p+aJu^LG!EfK1j?6coMYt z>aUoqKu5R>nsRJW+dIA(TheV`J+4RI37Uc*rrTjOF%uyU+Pj4EXCP@CdBgM5`(xV{ z@;wWh-A(g3Z-&?Q-`&K>e)C6i?G1d*F*-;(m)!67d-eB(l6WiNE$sdkQ<|77pay8K z+;`ZK*9JgO(B9GBb}Z+0+IpVkf}pupd5047G&~R5`!3~=U^{Gp;ib~;aIUxBv^Vi? z(A39U+50=+5K~|$zY_=Adk5uvU^onh;@t4k5u|Mod+V*=0AnV2{Wr0Q>(O}acs7-o zd9V<)cQxhBAn7~u+3YiIKeOvik7toY(A=-u;UF;$cX5mj+S`3M;~2aSufWo4`Mo$+ zzBqGQ{_}ii^h3@k<8@Lsp)SN6gx^7XOMSy!1tL%x3SE#sPf)>Y-yh1P@27|^3!3rD zTaTE=&On@?Q9xN@LZigsZQrJ2A4K zznffp=Tcq*YhWd4Z&M#{Y+cawSKdE~Ie8!F13-K0P;LTuLra*-xHH^ww~Kk+@v$B! zo%KO8OnDz8W(+(7+WP_JPhkse0A1hFKJ|@!9yBi~@2|w1^gYi!2kmV|xiiGzevtaw z=fSK}UORt?ZwQ*VmG^aG=EHlSy=U*|d>>p36+wH0{nP8sdYw(2S61Gx#Po)KpuNK= zKLfAAi=e$RZ#>iOo5Y(`-nWQZ0E<9-*HHcv_Q6ij-myO3_!o>j%KHm3GEV+QuDvo& z7XE>G8^}1Ry;FU>(ak|~%17yO$JVzr@!ET|`Y!bGI$s7&8RfkSUtMUB;cY>=BS`8) z-m5O>e?gDyx_#qYf~LCi4kTs>3w&a zJ25}NLD1e}2k2)|1Fi=7;?99vT<=chwf!uzJ!o1h?+wJ<39UhUU#2`0mcRng>#ep= z|4k%0e#2|iR${(`-yn+@Uv`_c!1+INEC|&=t{u(dUfe`&ekWv^J0VN%;QFZRiHWNb zpKAe8kTjR97|)wXoSfdz*mWa@_*X$QiFiA&eYghe1BQVZq#m5-FF2C&Q=pIYtVgcb zCh;u7;}9e13I2XrK7VnBXAG~8gUV<9vp#a2Ao_LCti=;_HD)58eGO)SZEv~mFq85E zkhGXwp9i(|s>gdZQ=i~(;r&i|ml3lbc7gW(MLGNv_szp;puO|F`MdVUcXIu7dAj{p zQzcG;{{6grZ#@Q%_j&hbSI{_kgI@h}sLSP08FYQ+?b^I{6VwM?-=t4{qj;}U-e$zu z^`yP+c>O+*RD*S>y?*VR#CyXD@J4sDe?9@;B;MEw@J7GkxB#!+p6;g&w}yGv5V>t% znluojJj`p~G35WYUH#pE@y=A%K0$9qD-E;!HQM?CEfH#IWwDNzyUBvNTcmli$ytPk& zH;FfT0=#Blko$E0_wDQ89eV=25xg_;+Wp)AYQ7W4`-$?N#~3gv%JmS?<4z8*U*U}p z*O2GAANrp2;wPXTqImOv{J&psF}%(R@W%00#{0kCUzq)zm%;nL-d{xVcE|g_-e1J< zjye(Ti+9Qi@FwssIsx7!-p@~f*ZdGP-=6@lgEzG5f4{v&@LqTVyivT@od9nP@9ihR z8^_!81b7p8N8q*li|ZJ({f=Ae@%k;^xPDB>EeE)NTY2vwwhgocy}#%{xd%w9QON&$ zaB}|QhSVoGAA>wBca$e>gS5;s<gIx{9NA$9{DL~_T#Ob`YXnqK}-&m1MQW!NAsGbXUO&W zU+b;gKYf10{LK9tpQO*3rslUwmr{9C-73GZ*(*Zhz_V%FsAV`{0Hg_Me?W?^Byr1BWq#`&+O6*%O7qs{G zU$_a?ADjIlLxm5qVzo#ds)WihY{ySIdd{9JYY<%K67#ln=lk z@C)ek3zdBOl@kt`2wpp%$@-1!K~NOL`;lA4KzYhlp)u5h+O^mYyzfiZ^St`L1d|;y zx8rqW0ZGk>k#VLix%LjBJQgHPB-i&P$hw!L@1t-Eg-jQ`IjIQl(Ie(9m1T33@9p)|zh4;9Jn%LhRj&r}l8h zlq8q=P3HG&Wjo&Hd7KME=3Z6bvcy~sRY7~ZQ62!2$z7&6mUeTx!P1}*~a{haa+kn{ujztz{aZ{p&Rc~8~%7h+D%pJh%1?Y)um?I5WW zxt~|pH(oAe*5VDOBDjt~Oka2atXKB)4^e&sBrW(Z_j4X>J20H3+u_oX*@f3`Z=;EQ z9;Sl!zC(EltcDe!$A@m-_^ZEX5XbwQ@_s>#zHTS;2dVE@y#75%`nT(L+Ur~vGN-Oh zk2{C{#rr3(2eVx7spNWlv+W?iH*EVu9Iu1dN!5gN`NW(D=YwvCGL$QTq^rsOyn25T zDIYQw@!Iv4`Ma^U9mID$zZ)CF+W@a!Z`G(veP{~0zHKSr2Ls@K(Cclm&w7hi2${CZ z`#3RALmaesCgmlt23CUhj`#7#E)SUjsvYd_LVroDc-Oc?Za~_>repej7Q8R0`fiiD z+`%}R;r*WSVUX1MdjI2U-Or*GnLjA+5n{6oWSLVz*S9p~8X)O`%I9r z5ekNIgVWEL8Q(A;R?b zj$tcs%t*5tJ%5Sc6f*Ct`pjgE8AjYlu=Syf1fRc!`|@~CFO%&rHlHdD(I{lrd-bGb z#^8A#UIJaucPK9bNh`?xyt{b2ZR!)8H^RFIuN^vKOB zWQNano@^X4SA6ES>xB$@4sl(f2WanF%3DFwVe-SQm)QI1{@sPfO7eD1ufDO{L#8fX zo1|Tzp$$*%neVvUHGwyYuQfiq{C`o0qNgyI0$tB2-Tg>z7{dBB#$P`$gu5Tk^I>6JQy?;>- z7p5OW8PMN%PdM&&DC3bmUW~N~nQQSnUc&iJJ`C>;2hOb}OIp^Xhhp_?RMd}6MHIvL)VDZdSp7L)7m$=d#)*ITrG$Q1rO-5*vEvkA6B4{g2j{GIz!pI|%d6f*TyeTNb=0!D-OdLK8>@%nhs<9WgxcXc~N@wQRkM^77e8SLZT^8fV4 z@QzjOApLAF&ixtQiZYILP731FOqw`6`@=LBrRj#KA6C}2yad* z!k99|UI|q|_lHK5TZ5$bLwiF-rlY{mz>T}&fp4$K4XT}F8=NP0DtcRNJ7hRinA4x5PG4`=br zS?%pYxi5@?AuzlY*Nw{X`~&K=&^wP3VxO?nt8cVh$W+>pK3;sEm=&-Ew6|a}#!e^& z=Ybv1#Jk?x-t>GV(miBq;!@ z)|2x-c!OU3&pRW_TnJS_d)rdJ5BkGhr{>;{_xOzuy*RGJYuDQd;>N)=(B4gycf!x` z1L*$yhv(J(H`+U7y5n`c`UcOW9ia?p@9mWDhWnu#$a))2khE{%QEq?J*WqIKhs+=! z?-RrxtGBd|H{OT+ylUU~@O=cEGrXoa+c%sCXM*kzl|65+ak6j7JnvKA3dA03eH;4K zw;$)J@XB$Dq;~l3g;<7n8s)jL7!nI}Z*Ni0tNU-Pf5g~dL zC}jSF*Ga84V`BJ*!t)v4Pbq&1`(QWpEt%dfmU>?OJfg_JkO^!|k2^<*37wr~&IR4i zZl>G{?t@Mc=a@x~FJ#==%!OIt;I!>9-19b3 z-q`SvN#L#E)psQ^>){*F-eM&=F9j8$9O(UV-1F+~I58q*KEZ2K9by{7Es&oV?fI}) zl)HoVMMg5ds^ygLfCzp0j3jPTksI|3<}haHxuN`jyeQ|Bh~G`s`QhWe4=9268|7_HUA~5IKvCU0FZUxRHYH@53c7^_KGjg zYcpU9=yq7{)mOJe{MC@@q3Zh{F`vOk(BAV(vp<7+a4qQiPW8^eN`2c(1xSh4*uUT{ z?iNi`Vp_pnpuJ-#zW|b^lgoTAvmNyL;`ns-FUtESF-zcQ(B64vvdmJ*x-iT9Ngip( zT<#vOL&)5(*E#Uo{!piU zmbne?0A1hTDF-UJ^*x_lo<>pZqCm?r+cUBq^T%wfE?Ka3=13_Jtcn-cQRB3_>dy8o{6`dO~u1N(~e{5cjQxc% zAizCjJcn#{6ZiUHpa=5;Z@tA%4V(Az+VwW8D*X($gZ5rtjW&nI&;WEhZ1LHSqo;*U zQhB4q^o0SSy&q8i6t==f(B1<+UQ;A&e!*+k+W}&N*D}ur?Y)L_UAPq*f%X=7((Mzu z?k_4DHYaaM_p_G7bcB0Admp0w1V|c9Zs%XNk4diknJE@FXDaVFV&wNoCXs8e{2s|0 zo_81fR$X7~*4`-IirQ&-;8lxdn0FrO=Y~cKO7+@T%CJh zK-c#?$~hqEN^-yYCVAUlPfFlzh}W*S>cq(JHq|HB-dib0LDIeCa-MV*$T(@+LDpN_ z)F+IIo*6cGsQTVd%tJ5;wD(!cuYshu$n9~jbxJPvwO*%q*mP3$T|i7Dj=?`9*WR_1 zw}7M#+w=LJ*VX+jj<>g}@7Kicho3=v3)bMCBRCI=gKppAUjNnOq;po-496Qx)r9ft zTAouyTv^cG3Y2&K=6+}wpUJELM)6L-o8x(_65j$kW_abf920o$4VVJDeVx@1u-V|_t4-Xo`09P+F1z)a^TOsEAzs_xR}!-wz6R}$)Z+LVqHqW3{yxCFuO-*`cVXDn!)wRCtH$OtUlO+swAXDd zj(uupnKpbzdlNqWGJ&@%UdIbOmAEtE9MIlol-oit=mNGKQtQe)-zC@S%XuCrCu|1b zwf%h%F_U2`==HUa@?pqdCwG6^lhL1?i^FCpKHHy4^7$Mn2fCiuP_6@#ZX&nmJ!O5_ zq}Nvx@6$fsrvFcG{F1PVtL487Ul-_>;eC?w^Dq-$1>LSQymp-uO}A^ZT-Yqe>&OC< z62yE2D?zuzI?7u?(oS;gwQV4|ey(}+(y&>B*Y>Y(iTNFlfcA>7bzSBka5w1w74f!* zUHsX<$G!4lvlXvReTjJl9*6wA=#6{%Cs3XY*5_0Ro883O^*x>U-h#QH`_FR9pTTCZ z%P4(vPsaA1!1uHAea+_&!JnXgt*+;|0`3RxtGqmYPmU~$a|QFVZRz#!6rZ0C%R#r- z;Ck$PUjyuJ_Y?dvrWDAtLvM@+g{ao8!_L*&!D|0H{iGp za^Q{p{2qaKJwp0nWuN*cuVMU9^{qr)Rj3KtdmH7up%-)kUEhvA^^I2zn{jv}vJy!T z5Hk!$f%ZOi1LqlG9?XDlXQtp?Jmx{miLZV%ynV&iK=hOhMWh6D?odjQEm&p zp$q6fw#RQAt;zPIypIwy8peY5%CeNZkz*{l3bZ%swXYtZW3}17@Y?-U17dE4C}{8f zlplsCVF>7X&H%4{^?u6K37g-QcOo$_!xYfoHz>~sNkt=hA6G>17TKO2pAy7=3*UqG z*1w7607;$53tz%|W2Yqj%%&u7w@rP5dByc%a|vGC4&8})42FXC%E#Z}wFNL6bUTdp zX@^9;u(=1XpR)=%J&xRbtI=z*xaw$VGl8( z#vBKM_ST?$14z1^T-VpOgPx~Hn}p4y%6m646Cn=TyP!#ySq5LjRycGG>+fo}zNH7a zZ}&g;N9(B409VL6&|uQ^nNcw^QzNL@>x@7`Z1Uc266ZNlblyp_H7 z-A>G2D1B>gue`mQ*EYj?u=^MB4)MnH!EDDlo+om5*nEK3@yci4=C<$ERyD_W)JMVwwZru(^<<93FI&2RV|Pk1#RdER$Ta$V0B zlskeX`JIfsmfs8uoA8eG`nr$U;qWwQ@7I(ML9y0+2LN`~V)<*k%fHI&U$VZsxqsT2 zkzsQ#UYT#U=d}{VRE3*Bd!MB|1(v`9IKY@te39!N!hUTHvAM>ZC+S~!ZL;n9Ik9%W zc|7eJ8N+dx@_m8lF#Mr>{H?6ZqpW|B}7L*j35H{Vs_L6cHK6f3|0o`8pDc=f`T9fB>Ju3EW*gS#Pjvt+f z=?5{eUfL`0IOQ?$0!#qCohN<95A$5uyrR6B*F9yq#e2NhJ)?NvQ|<5yb_c@aZynmelZ{+!~IqR!* zfB2u(7jMNA;ElWxHaDCAZvt;?yfQvX`Z~h1K43rC?ShvBZ_~#XdHw7|a=-2EoqXxz z;pmHD(?@w%6C3_=xge z_z85|2FJLuiOFGeJ|5fe*S*5|^J@Ht1-V{N+bHh^Ne9XO`e%|qT+`K>*ehXk4PLvS z`HjD?pHn3Dll?)UE#o;zI*UB7y`5@w*N2J*!1~Ng z=6%H3^NjcL-gEFGNPWDxz=cfCE6N0&RD;~_c>;2OXOq+?jETL;ywCGCqXIV)(-|HE z?OjEA6C8x^pt3{XEXi-~G~_;Fj>}~u6K^xm8<`z8#ddiGGTDw!?Z8+8b~%rAJ8DQk z9N*PGzBB#{Ut_7joUplF`6jY2cpc8hC&_Eig0}tbx|E#Le#RmG0TmzSdB7*bdB+$Z zA^t_5c;^`7qr`tmyzQU1{-uc5>n*h~-aoQ@!&wiqOnP~A|BT`NNqOyl|H7kqWxt=7 zH;(uG-Rb&T??wMlZvyYl%3BU!Rj85S?MZncNE$+JxBq`@hveL_>5tcr+arm20VaWN z-<^~XfTZ8ZmzVnIeN(%5+upwrnHM(CDsTRdS>_Zt9kjPP}n7=?il0wQa2X zSrqRXJa54EU+Yc!c=sKLH-Yymymr0)Ol-bRjIp5WTZ?id=nSnuUx&!?_FqZ0-V*PI zO&7d&{C$*|r{Q_f-j$R$!1u5NbUQTmyz@^=kH6-!j8Q=gx>356^-2zD)TIkTi!}-v?^foBlpl0`G1g?}GoQ*Lgo| zviG>>tr(`v5`5d>w+wIdd$`vR`a=(>#y;rW62?So<}+Pd@Y_Kwhuj}xx3~CW?vuf5 zlkA5k5%&tnZa~KQW8DwclYk}M$AZuCgst~d=fuvpJx_{YrJ#=omo(a5f z;SGA;{lxqXe}ML`TfnpTx^UhJ)*j(}8p|%r3~qO=&TEy>%X(D>CP8ry=Qm-FYAe~13szeOZ=@< z@mvn|LD%yU%A;TgOa|RQb5`X0yPh?@szuj_%_BbbTuSWmwx{&Z1in}B$$o`LN}A<( zc0r&=?s`5%c_>VUI22|ZvfI%<+Os{&DD&_8ym~sDxW1iH&y~b|0>@j=RR6@c7oUUw zdj8fLJiFmf(Ct~dC-->6&Cn2JKULd1#_mgdb|F@OkI~s2HW%#kDorNa(Y?gkHat4BvLIp7JcFt#}Id&N3xI*Rwn22Vo+N1>HYqt9si0nb^s7P@j6v zC-!*jDgD#g#r@IWr~A=+c$UM*%E!C;w^H5%_L@zcxXXzPdZ9n^-XCxT^zz-)gzshD zPiG`K5=if3nPDBt`aw zO-r?0qvf-#g9*x$+CC^x6*#ubJifE_n@9EI`1+~kok`4Gm=Ah+Kcu_{Bz-}i*YfhP zFY}bDXQ_TXzm>RyAQst)w`bX_Mhhn3{)4Vx*deg*q*uUwSh>SbK8^<#Mh z^4U{)PtrQx&#QhhydNuXQDRSuu)l;%?|Gj00`k1P3A~3+fY*E%Hs|bj_g}J%nb)_x z_B`(2XN%&!QhCd=jKalW+kroqYG3)glH|R-&KJk=Hp6R^T+g_axJn>v=~i$3|J(ED zV~n|yoPA-_L)EV;@pYjANd0biJ%JXKJAkB9O8P(FQsx&mQ=eczi}z8_yNRyWmDopN z1ZeM6%Cq4kSPZFoa8u&>-pg3(7{sZsU-O_lGhWsAQ(^|tr?!)8?@r1GK+^Bz^8JbC z%-!v_DY?|QtykY9-q%!n%6>7m4e*^Q89$^Qj&;9Sn$JcKg!w&CPfpgTC4C=PA?4%c z{Ox$XC)n{ZN!$wJm~Ny}F+P7S^aj0rJNj`?Q~xZ}9O}d2{(NtM@m-c{Is1Ldix%X& zF79S-oWD39`~&OT^NuFwRhSOiyOHwOAn7}DzwI&CdD|nLcf@Ot(|;u9Fl0TD+bhrK zIh)rmhVwytr+UXxa^JCC9|^pdD({uVRDShZ)}Ez0Q`v`!rt1tIKM9Tj0kG@3jNy zw-ANq(6l1Y4ZhUvzj5#QSMCQ|=XsJ@+2%b}-|qD7hlqO^{;eGb^Il%0#m_|7qC?^MbQVFRoJX@_3i<0$nlzS13cq#f?_JWh7DxmVTq z^nr{6Py)2~GRjpzQiNRgfAamYZtMrdElKKY$C(7)!K%J>h-nN>L3`U%?hcarll%3D z2QN%NS3FiI+l*G;_Gj|lXm~io`vm1jd0o8VlaJKmruT8Q)yq35K{5ShU=d^6I z1D_oqYvXAIH-lbZEh%>dN%xWatuH-3#_;}x*GWat7l|1NkAe11r2Hzp4R3&6UkAMH zEZ6y_)3Z(J$A5Yk5qqrO;>FV2Lrt%K3A|Z+T79Pvm~jozvTI zv`Dt8pz8Z8F(*CDHVnGHwJ0|SN$toBG43wC+}(cNt?bAVxi8n&H&QIyR8`)t#0-FG zpuPX093I4RDx3++OQo;N6n)Tb2ieZ7*PNMc?!#;Q!;QqWgifHnamou}J*cGXJI-E5@$Ta@d2JU-yx-!@@ha38-zXTL;ax&` zGwg@mu<#1jNd>nZ3O(iKZJVdpTkPCy^BZ29ej(;B$Tv7WF7RIdFy*tr9&;v%EAUf# zeLK8&30wxc{mM7bZ?5AtNe#(uyzQHk>-8NyFWVHtYu9%(V(x-YpuI85!(al80l7Y~ zifb9-bG+qD@@MV-+my&QCGpzrG)~MC*a+HN_)+d9fJ>oMez*NrdHtxP*N<}Tze{GD zx~jhUSk9Wn)&cE3-uY+5$>z7c)9qlrH~l}oalFk`J2b=B79P*=p7t2`ze6Rs4D|79 zM{i!B+rcT7ZJxnvxBnKzbb)T5+hGXhi6ChjxorPSYq;x8)}18XA7Z7m%@oxRvx!*> zn?ZZ?KhAYOr~o-2-b2^B-p1Z|rMG``VYb<+ymg7W4Z48#j-@;mmcRng-r+vpSlMh- z^k8c7QvbA`$i30TeF=6y%NzN>qWlo=+3g`goa4n6qItgO{lY`o$Ah$%cieu`4U}6$ z7m#Dj(sXEfhI%FXd=4LUF3C3K)Zdr=d~ZJ65A5GRp5xvazUuhwdhNhGeE_b3pxY_E z#N2<(cRKPK&*FG*R$loXgF!eSJ&N~Oe#anzx4rVp_&WrrjKTj_-(wno@%C5VP6K!z zJ>HQ=sqbTaCa-od<+9C_$}7h~PvRVV6z{Pd2RV2r*lxh~ zMcD?I)3+r>%4eGycTF@Hh9p{{q5s|u8%d@bAtH$l7FY-8RyU+*cmJ>+{gwx2my zu^+{&$1fS5S`jPtwcb=ky?>5n{EFbcTY2sM(ru37J(l@n6z_woecR#d0}o_)-=_Ql zNLoX_yi|IAZu^8@Z^^4UkAv4qMHsW0nD5|E(Ctuq7~j8!cF+ux?Tm?aaND)OL+Rt6 z9Jec)_%+#P9$valD&0@a<1hiVH$izbnBiR0AlKfA=goEeb8WWyMzzD~#L07j&LY>| zvXm==q%kA?$J<@JZTmwK@1M$Bh1mMg9<(=S1p9hu05w6kZws%V>Gq9Wmu+%>PT!x~ zftcBg86U{C_x+JvQv*rc$>%X|&3sPyihJ3wd+nR7%l;RylZs$lBIb8E0@{1^D4rV! zl5QlI`vo$+GVc6+Uqe0izj*C>yPcSJ&=ItEJmtyo9=r*9JMQMSL#}yX{cJNp)ptEH zU&1!f-o2E621#8f<^DZc+kf>q8OJ*UZzL6A%wNP78%=)z?LG5JuE&6+I^+j@#c4;AzuP3+Y{P5E-}1y=1Jyx$ zn^SHJlDd%VerDT2`k6hBN#fnFyuFAS0FQ(AzD#*0EQ3X$=OLrL;~4Et+?;K$qET|Z zc3Dfz&rss2+}`?QnSa6vcoYtFWu0(xQ0h9*YlmW-Z(vuMO3t0x=6<}k9p)1A39JQO z->j!O&j6CjlKZv8Uf%wDJ8qF}M%tA~OnG9if+`@JjyJC7zm{@6uydP8%WU(4ifhDs zcR(AEzwX5qc!2Uycp7YMY8h!eNl84P;j#Ob7x>)w-T6&Ia=ly$${Rt_c5=NQ?E0<8 zdw(xit8DX?^2&Z?7jb()ds9O1pJUmtnAV(E^YQNce|jCf1%FAeU-^!U+$VY9C|>z} zOTTu|<7o_UF}#kqjHf)qGalev(Ctu(a&5R18iCwbKOCfO2Ycg_j3Wi4Q;_0O&e!3! z<6dWCdO=^%-qDof@D5A|?H#YiJ$qg}(T4MCcq_Yq#w;Ud4Xg+4-AnmDASr7c-?OOA z_sHwG^|k%s$Asz+cX1sGuiY-Qi75tWf%aZP`D&0hivl*UMIDLjEDGsgOkSRZU=|*B~TTv0=<7d z^NzSlz#_F z_V)@ikH-<6 z+n!u|r&4|ow!mu8-lR7lkl%Yb;?*zSJKLOv*YU~+iTM+P6LWhjQ?3m+LqpL0H+Y77 zyx^$o5Apk%&*H7@d0P_G8%BYy@59e?Z3n_Ha4ws?KrNned#&5g+RbwN*+A}*7{t1h z6n`+=+@;##LE=Wh1km1sFLHhmnnFXU(1_!whVFK;e4P8-l{09E{P|q3Gbr2i!CS#C zn#YKF9u|Q1wusZu;7xc9mfp#8dYilT9sQ@`OFYK_ zZU^mMNqIX+D$L|$HqP0^&711Bt&Ht@dy9?Wybtf&i(BLGb-Es<>PDcU;1MB&SfPzUIX5QrzcDTyDpJ(>GF1DDz5g@9e3}WnSYP z$25Lh0ZMP>UiO*px?c5x``qBB&AIW>>!0yC92cqju9(j6iojVja(h3gybBJ(_aNK9 z{eEoUVs3r)ekSowws{S&-5=C^o%_h30qAycmyUaGc>N*J<4Of@``72)Lt=im*{bTho0tP|2(-8O8|-hPDqI1&zRkV*>g~zA z%ebw)HxVP==H%Ktfbu992btcOk2kWAdGl}S{xFTWcVRVXZx6I|s&0QZA) zUzmKadGuj-y~*!h{o$>M=qko-ypC7?LHZ&D-_Gs5i*gSb4l$7X_9K_M-U zHo7|7T%x>_iJ1-aK-c#t$^~b0PZ$(|+EqCxQ^g%$r+V!m^YKF7cHykaHZ}0t^a$Ur zuT0$aAZwq^PEvu_czq#!1bWO`gEN)ZW}A9=Y=6x>Pwjb9&#yS1^VD&?t(CVW^=bzl zK`(a~%6&l6AacDQwBu=#w`-<8L0hlOHr?>r<41e`aFpj|l}ieEA5Ue+a-0{%J5+h? z??aC{iuYKqtHkiWq`Xh#n+Pvvc&Aae={^2mZ(p_@^zp9wEZZ!=>v%y+h*<|4K-$-~ z!w;16&*54HoDP)<7!Kl`;T@0ZRcwy(%n#iTa6wm!VqH(hSPt`=xrH%zf? z5uZ6xe52^LQo5!-+=OO>f6+ae`XC#NNiTFc1hLc@y>`$cN%tYj!@;C+NUXrf4PoX{U-3whn z>#lc?TSEQ)rkF&O?lSbgyft0EP15~?a_0L^9Ey``T^k3j8%6h9bW6p)A-`pV&BbsD z=r}Z`+!jpgPM&IYgUzBwT+1TYx{p$R4ov!a?TPoNgf56XE*f$hej?Gs15wz~m4_HG5lXjEOX~({TR*t{+xINoH-miyu z6qCW|`ePRSCO0-k=P@4xt@{Gy*I)s>2c}&_%R0K*cKt!vlWj9KzJo7GO} ze}AT)DSyp6+XmXxZArRzoz3Vbud`WQ-A@Mh6_fLh#^W1AFOUBBo+RD-C_e-y4Iwwb zr)I|stNUy)e%$y`d$|E!ThB&dGY*~x9fzruXMstrnb*_~uy2@3WHn80{4I!mf@6wq zdvrMrvGftPU&D8xb^Fa{Jsng5LJjMbd^qw&}3%AdvL^uOY97=X=47z^6p_b4v}la`aG zn(rj&9$}xe(p`tmZrBG}x9`V=WC)n_GTq5K^jhMz%?Z#`YzwW{BVoaT{YEH?4A zVyW;V=1OoSXx%3$KMQZbi=h3Tp!~Jy}$g-2#(tCO7dl zzkh6xnaR!X^K^-Q0zb1n(hgl)&u+)&9_R*I_hZWIz@(qZbsVg=u4ln)kKBu{?RS2~ zrqHL<2hh5=QSJgJ^(Q}2mvQLEM1OTX3+8&{5p-?8GX$G3d<9y!-xB&Am<`imMo*Cm z-#h(7;7q4~Fuz-MeOl~KOSF_nMk{}hV3WHP-$3i$zKpg8gbx^Ha4+H zXvgPyWR=oAh>iC%_IQBSP5+$dy+9qf8am#|KA5F$f7Z{@HF4@npALfxAR;K;XIF2P`XvH zxfZSmty`CJQ!vRq&t#VW_;FMFD;Im@TBX|x+cqtjLnrCxQyvOWfS++w$Du)rI7HEH zh%SFVmY&4!MR*0YzpE&J114=F*ShAInUr}^y#I|<@K876y1TI{ypnZh(7JUg-wHu! z1zNZ0a%a5I&o}m0^2iHHcL+9P;3?3$A5s1cHoM|E`C zarVznJMO-g;rmR@ol77 zicX*0EL}e5J-fCS#qI;_?6{cC-#iz}f%ONwB9~CE3iY5SnCJD`dHx8ue(G^1d?Vw5 z`ku+pQ#SsPPWgGt{@NZnsQhh&FSB_dNh@;WFT-R^cP!;eFbigYuJ@B%fA#rUxQ<84 zaxuz|;~!!38LR}OYlc=*k-et;CD$V$2lkYW$6=PMtACHwU(X|L(JdM?7r6kNE8uF- zx;Ij81}5D_Zu}j3h5Y01IY#Sy5<-R1{@vYKjh^srA zJXIX@ag)X#c>-PAuRM*-U>g3*NxCa3e+?#0hIXKJ2U30vOnQd=ME**1k2FEoAG6^1!m;@fa=%H`z4TkoC!s5} zhjIZfs?aV>U0A={Z5QXn@6YzP^vD3Ey9}H3P3*q{?eAX7zVFzx0QI2BgPceG**_oa>-kR|a~dCKp9* z|8T~3uJgf_p#5!5xibube&#)n*?i{uW}PMCo=+x>7lS;~9bLi|OJlIv26cW&)IEO( z*8$+|oy<{T&VJ?`N7JM;{%-uj@ppEF^-=1!N#Q9T*^jPm$E$WRkLB9dH{{x1;n;Y< zr1QyB?UT~&E%<^*&Mh3*t$LSjoSVSeV04GlXiYuq?p{~ax}ldmGE(VQ$EF3e0j)cm@x!4_#XyUO1m~u)EXc2)0@`76A93v-hTMZ+ah^{}s+tmG1f2+ywfez z<1`e&c9S>ZkKF9UVTW7Kv~KuKj}$5r?)wgx(q9^6vAc_%mA&sgz{SW3BHGpRair*#9F{g_K~}~Eg#}5xKp{n+a9?E zUB9dQD>i8bT;l+(+l+EMFsV1W*_UqTXQob=WZH3CSI0lcBOTE#>Xrv!GX#c%);0H) zkLER#PU^mLbjK>)r?H&`FC^(sr#u@>YPdc1IIrtj6y1-M?g!W|f~BDS{hsnZFzHY7 zX&jJQU3va9@pYn*c;92-J&$Zty5{J?KjHXGq z_K444Li0T`U-?@Fn;W1OXx&DXTY^bJa_z69n&_{5Y_aDoJWve`KhMrNCm3G)C7Rx31Xq zg5IEY2T^_uOj^b74sWCaCGX?Z$1Q?xFQq#c+t(oiTDS1;jDK(qTn2$g#L&H-6Q$nU zIQ)GcveYB*DBZ@`bb^OK>#nA}1BxA@y+U)YMV8~(nfc2EHx9;Mt1F*-WP{QzkIjv6 z2WZ{Nl;4I`umox|7Z`e@qg$Jsk&^ultnkPmO7}->jzaN25_RvP{4h*~iO__$9%LLe z{_aTS?-w5NpB_JMA7QfuJ_qgZ4$23>q_o4#7g&#Jz`?d{BH3U6YL8S`x~E}t7F-2d z_c6*(!)%xiMz`{1j&61-r=IEfM%H+wnbKX0%~nYNGg0?W%3WbN3;?ZLHHB_)okx10 zYsc+ZvH1|TfcCe^5$3b-Bn*cz^(@-JiSJ@}y{kLpc86G`sDod5WQ_7Rg3VX39kg!w zqs*P54K#;>yEz|YyfWv}!4&@bzwyXx=-Pg#8#cq?anQQPjSakJ(kAj$=Qn!(;@{+v zrOMx}*c^nSezVAK{wjaZ!|r0Z1hl_q z-`o|vX43mN#Ml3&hdE{p%vI{gI_`GHZ7DPU0?!?fXeimBFSWTn1XVG3C}^(%s~*mpOjErR$^rFze9DU$Z~72X?(c>-MMo zIGA+v=Cl(Y_XxW0x&HFAm+}<0ufjsmx))|<$aT;Qf(GuXE^68k$7dtQy;Rci2^?eG zM%N~Le8ypWGRG%^{gD*k_i604U#I$ggW{D^-uQKx7tnhJUQN=SOL-BP^f|eod4KY} zstNbu+T$Kb^U8JT+WNE_n<)GS+TTkEay4iU^+Asx{*cptbh`|vd!;YBwq16`rZ?n+ z)_s!li(t~54!J4qdv;Sb7heufbm=QFk@vJ?6Ed8FGYN zuWL>y<*bj@N5RG+T-Yn~(e*pB(ipq8a2IHQ3!RoBJ}{{Qd8&PtX8)Mgm116rsyJMM zO)aPkT6Y)a-@v4t(^Kniy(+F7@p7K{NA=jTeahcpaj#sjbX#L%#?kKN$^M31 z-Qlioa{bl1fgG>2MAz2ek=RUzFG1_h^khg$Z-(@T2Vi{x&+eH3)LEX4nc^w?r0o4=#s_V9$$93~IRjtR6?Bd0xr(#r>^`O$%rPTDLdl5STQQ z+&n*hetFg|)VhW7*9>DOg(`UEGIT3DMH!FHDp(6z_d*}Of=M;V&F_$m^e48rvEAeQ z7ebZ1(m?6vr*n>iT|LmcF+umAyLeAO7tq!Rqifqm6x}XLx8&vg765i#{zbR{N$C17 z@yaN4P5ph4_=K=|7T!qGt(~1AO`sq2f`s2sSd|w0Jr>>GZ{wa5wDUs@4xdvT3 zKA7ib-HTl>(7NuQjb$hE+?go4t@lGq51Cdy^gkK z?^_Dq;FV&<k{PhRCas|3}94UcqS-1$aZgt9apaI;@ z{x_{V()E{1RDbt#VRU;a-DcQLgvp?F|Ds&&j0|ZC^}+0ev+HcL-1BIoYuA?owY~C$ z(!CR#UeE`$?ik9?!BjB6^Qip|r|?(mc;#)SI|I7~un@HFHp+iN&Y2l%$gof={N)QF5(&UMbEmpc&i*T6d0$@88F*u~#lox^1v|0Q!Q~ zeU>871czXd+f@jaJvB{1nqa@~$?zi#4C%k6IiExq!q(yfY3J-7w5 zZad2NgGp}Ej=*|Y0XhzW6mbZ(_R9H6cM~?d zVIOGSv~$n`lS-1GC=UKM%msL8;9yiy8jl3<|*RfzthVY z8INyM^x8nXB;9V59|V&Iy?^547DBhb(jAEHC>RGi4l^h(f(@_=^l|H)!ry2+uZ&Hh zyBXV))g6#RH*l9%UP+;Q@Dy~%rqB(y_sT~pbUmd{-rs2{bfu$L)~3)cdkVU9Q|Jco z_R5YFx>Zj>cSQ=_NGGoxOQGBF6m+90bp4&ZQj+Ju+y24Uv-YQ;dmx2wsEb!BrO@qr z3c5v~J$}51cJ)fF6uKi%LAP`Y-9UHNC6un&-#8V`X-T@V2JHUxPrpa3`}H8Y_oHji zZ)Tvk7*-_d{zUm#I0ipo?W_TMxW;Pw^gMUI^Cf@Rju+t`UU?i{J`zi(otq&S!Zo1V z@o37^VL5yZ`u>MyoHrVMy^qV^(<^0o&W-hV2R3q^u}jo_obq&70Plg>zhv+4YvZmj z>hqT1172yZbT?r0BkTh0@0sT_p9GVtkehYD#hMu&V@@f!4j2a$PW~A$h9tO|RF5(2bz$k6DP^ zicJtYgVr5Lc@)fqNl+C78;8nn{Wbf6GR(;=Dbmj?yHtGN#^y6v30n6U?wq0i{6eo9)kCJ#+%C+m&)3Flhk!iF9Qs>q+R^c5ol-pN6f!IQMq140-VeNHl6gW_AbSM80{0*YJ2wmIXUcpy2 zWZZas97^&0N|Q>gOHX-UjqYzl=`tX0Lzq&pI(EVKL{#W%Zi0(dgZNKwh^$-5xUMa!&`Cscs(XIAB z&<#K8l{V+HRl!43OVlcX6-Rqp)Q|JaC z_sYBI+Hrn&&2(9PL%OU3tIMA+@)gg*|AqHVI%mO&@8^r6yAj?0x;})T@XAqi?Qy%k zR=Tu<_F(;T4Glp8iUqtMfq;HAG(9q4W*dpMbNFS zbnoMOq`4;9AGGcu%8!9b^L8iBA5;13AH}*0y7ssoz_vWctb#gjCJsk=y=Wmv*GHb} z_r&Tl_p|jZjP4Mn+aQoG&A{B_W&Op)A{Vw!mwtSIlge@an`%5xnD>qL%Iiuugzcm7 zXAei0ZNerMd4kuTb#89qI=Fcab0^K;kbX$ zHTwT_o?V~!Y#c)9Rz=sw;c4{p*gr8TN%s}XHoeRLbsTIx({Yd|z0ySaYpze4>yPu2 zbgibzPv-ihAKh+BcL92Je>2NBOmfSraI0sGd}A$grD-tL+ILe zk&R8A2I+DRxjt@XDPIaE_2Yeg4b#RUq5h8d${3}46}INtel?PG%|6AOUEOBn(aOi4 zuNmDAvA;~ej_wR}?Qv^`O-Hy7w7*YLegWpeY#7S5v5s5=H~SUWtMm5)S680#$_FaG zpJ5Y)?VxpUF3)vAFzIe`^IRHxo^9ix<0})rvRvtQ!{&bI16ucC%8!Fdh7qjOAUV$l4bQ$CI@9a6IK13!Szfa0PmGhy}@%GlZLWZ=2 zwxIp(M|l{Gho@I^o?I5kFL2@;cKZh%hro+oX^yT1ZxP(>F9j#0@uGyk@)r2 z$aKzs(53pt(mZSy!!pp{J4$&E9E0ECKsD}9#TiqtX1M*=Gd<$E(HYDalx~qqv`IJz zwC-h;uZM_sc>Gr&YYYSk~O7a;?&2yRYhv)RB(hbk{%3*ZA-xG@+h-YV{~YEo z%B~&npUJ-KPUPvzt|#UG$~K7I70PZf?~R5jpzHBs%G=-wnEfpIv<(xNQeQZ}2HxZP zlF~_jeuEj`=>m>>enS|$?%3J>`sF{;^yv%H>4n%DmA4$J*gV|C&!m%io@E5x@k;k%^sa-NNxJdT~m08CGt-IQ7R|#?W&?_61t{2DEN; zzE_Hz7q9>CVY3l7f!3{YIqSRdDCC2#|DFq-eT=65`%NV!1tZjBbnS5qV`H9M@D{n& z{etpl*a^w&t=ru=B=pyxc;zakTYz2NzTAsMu62zMC9g2Ah@4BV>6XQ& z3e*6tJA(2=cnhY3)-A<6(`ajd{fnu;=-PJiAvVilJ!sv$D_J*$Mo<^DZUgtY>HP+w zC0?1R{OyFzU>FWscQNJFVA3XXGag34#^5-Amw9D2x^^D39h;+&RwYsQ4$9qN7z~60 z_H)|(afjUFrsto*&shgix=&*hhH0Svokw{In6!>uU+1wt8{NP6wJi6_HWdfkKWs|U zjS0H{oJ{`^ME8)=jiPrH(ymJMwE0c-5QkZLlByQu4jH%S6}ywqT2#p zTOT@OGYAHQ)?G#U8~7Q11nqAXS63gm@EZ0fD&51_l)Hv=9niXqDSrt^pa23*=v$gQ z-+zSLE_6Nff64WGbZx(rQ(r{yV39*Xx&wmzkvey5p;YPTYu>%*Sb29@4a%mKR!>$xR!l5a2=R&`z<5R z)cAhNGhrjx`GRQ=bFMX?5(#Yc${FZXj+Hn8uff;?d0-^ob99Pyq&x(|FadfJOKIkO z@1AZyZtnZH^SRIu?Ds?09{&h7tKoalx+Sk;jt|x0N-*vA^>XfcjjNk*{D1Vyt4g;i zHuu5fpmmQ?zUX@DD%=7E_&b)yZ@#+>cKX|d`@C22TN_23=XaE95&zwV;8E5u%f#>Vn~F`58#Ck)(Ee_z&Hl|goPWS$ zuzs^h=vAjaZG6r-uNl0ReW}KX(-@wE11-tyk|qsqd#`y zU}9m?)!e6ehpQ9G&XT_9(p+Mx2R4tvDA2ldDX##Nwvu=Ll>2~NbB&G)>Zl$&_Utb_ z+cNeE+Fov!gq7|tY>q&odWpK{Qoa}hP!%HFTVwW*AL5*>zS|!d-Cb6vp5u7aoHlpy$yw+;)+0y}oRge5m3u4V!Zs zWXMmTb>}qZSV6reTpx$Pcf{eIGzrz`ca_<1VB&lZ9iy#hfht*2sBHYW)uv+i>BKrC zxz>H2@^rV-&nDOXqR})-AGgp|SyCQdzZ-{n*sO##pmp!4&Hcf=W>WgCiStrN)p_1X zBUdMSb(Yjux~F4P1}+4xTbJ_fU{WV?Gv6IwhQgQec45Zfzjdo-Nf&hOxMQAUaxZqh zKNFx z@;cZI=J(+C(8t($UT3#m=;zFZYGla)72mzs9fh-+C+fDRd_N3@K@cXs_CD*X5vRXA zoxf$4xiDf7A+%|3wlNw6*ZS*3rEJ^oO?%mtUYx`k0 znEQk0Fy}Sxc&r--eIHj8-P_UiyAB=2ro?TmVS@HIO1bdu%zdCVG;b*qTE-lmezNLC z@i+usolvbT*@UjG53RB32KRy1{gm<=FeyrI_M1#_=a05sm~pef)%DlOl42Le$BP}< z<>=aevPMhp3xYna z6Lm)hGvrfPau;i(FbmB{1;#lx25m2hkH=eF-C%FVH>LYb2XrC5W1{Xd%3I)~yXo&> zXgm7fHclJf=+-lHf0&sD#Zvz)8Li^b6q`q280a|M*ok8WCiNsQ$`}-K#~~ZvikrCi z+4%@R5|br!(6#+TJ~l&P1Zdqklp|o$GV&9y;||G^HR#%La}_p+AoHF?-651;feo+< z=JJ5S^)GVlYNyFuRew9g{xb8)$FgJ>y0)He!=_wk#skp)HtoW9fG=Pv1b<*olgYJ5 z>cb?r{+j0p+jXq4Vy>cIncU?DHrZR?4dMN zxrXQGB4YfFy2s7jFSy;+2~W?GDazlP*xU?FLF=}l+yS~n^`!fAdQNckwZHxuSrS3l z*0Tq&8wihs)?GsR2RH`5L*?7)9~U@!ompcve(U>3!>?vZwes=!mbjPsBGdq_`@?b&pm!H1_nVWpL<;o zi-hQZrMy!w%)ErE7fZp9v&5elZx<14zJhN->mH+A>;dx%*V)N?vmRfY{jfzxK_x$t-kjd`n|CFzIRXRO6;T9}4`ICF@ux;A_RwRBX)e*3TfMJ!Etj<1gKREG@-m8~g-Xck&~w=fEQP5ZW-ljr2S5eci2R!#FRr z^&xVYd7p~I3T!q(6tr$|Fnu}i?$j4vH9Ivk9uT#s89n*1$9?Oza=GUD2wRGm0Zsc0G9_40WQXBH9KYo5; zb@jezN%P62=-Si~n|mP)bkla7E93g1jQ#KwnDdoGjPud2)1}5<^C|vc*e3yWY`uDj zJ+Oue?!KG%9G7C(mA*&Ar0wLXo~y3oDMfs87rI4b7Mve)o?>VN`g@zVce=XfJ>AdP z@2%T`AKgJJo|DdCPYApL$+|zgy0tm))9V6O*POT7dKEx-l8VFsMOVimh;9U3JN_pB zKBJBAJ9qILrLMn6$W!^N*9D}gPrg;U$@{~t?y2q%kD&XT(#;&kIxJ*^j&BLd=YvTV z$WP>N@HC&4tjPIM%z}F;u{qc-UH$;8%k|VEHF&+AtJ{b?z=BY6KXcYjp0(oY$mu@0 z3f&QIxjfgvnqk)pY&$@gT|Q3g!0U@S2eg{&-M*k;yYqeky~gN;-OqRB^AA8@(0=x( zJRD3KMIK^eWHoL5(tbwK?W(^2lh}M3NS9@xb)V<;S6tmUPC_?W%qLHvYuj1!{y|d@ zOk9nhr?P)Ag6=GIZM~h1FY{mlSbvc$vXJsBFli(CiRwYrWcj3crFcJU`AdL1A^kDR|ISM&*C#hCf9hj17)M%=D}M_0rW}Hzr{loI9Fs2{M?xih(pkl644-)kUIp#f zTFRSY2iWHk+V#dAZr`or6h6ZzA@zOtVRsZfBNBD5qkIztp#`k3&i#p;|C{eyS$*Hl zZrmbg`eeNNzVG`vZrJq(^?lQ?x}D#zeKGz#M=9x(m$0+-cMzX{3`T+eo)alg1C##z zmi0&W)g_N7dR`GmcLBPlU4Kcncn#Zyuo<-O6_2rR4cb6csB)u7pfCLr>rw@rzbwJt zwDVeEQur*NY*gRV?0Yi%weqpG-;?p=q@J@h$qc|}`{a=8r_mpP&QN$3w4V{mE8t5o z&q*=+V&{UXcP-rGq5X`YTl~^^JKKfbAHYKl6Ld>aE(ce^CD5Que7!p4>gsiv&^bQ2 z5M2{jlLFY7|JNhe{;sQ^E{%E3B&JL!>=&Zw)Z1kCj%(>pY*dMK=#!Kkl@^rVk7U?e7}OhoJ08u0cRY)_+^()=vYS|K)l47x|~cqKRf_)s?z6u&NYUb{AP(8hx&XM+aE?N`edSt!&BHyffqsR&ZfKoO!|y`0&C~V za-=f4Q63JX!PfoQ7(ct(8^Qiy6h!wPbOW)-agP+S8?-b{_EAS{ z|B7zmMZCTWW~G=9OxnvheuYm4YyXn&V|I^sY<_$y_c4dieg1!-8%FmXbZx(qd>^Rx z_f+mTj-b0z`^$Y|`o6UP-{a)J(kHwA2f8723tb+sum4rOilTcCy7s*NOH+T?Z*2A) z+jdKpEAkz$?*x;6AwSW1d!!2IvFO@<`%i4_efYY*W{l-}B5b7cCeL3FEEEY{#rn#B zpcA;-CwKn`I&zJV_0ITlI1}HyKrb-S`PvClk&TqM!!NK0bf1|$(V3^}aU)#KC!>_^ zVQkF3jG5ySb&FFj4JOs(_hYrL>5om)y8h}unWA*dVp|!m0qt)?$}OQQbOfziE``5Q zbl*hRre4@g;@+=(a&vs$IHZRtk5PKTYke|L`ST3#y##N9^~dy&pHN-_8(|&jaiVGp ze|R{qtWvs@_NOQOE~oLw=)T44^T4D}$hEE$y~Owh(cO-2Ud)2${^QFYI0VMu&E_9; zbDw0d8QcKZKy&6xV>y2{nhjik&3yTKH)PT4d{XR+xb7|3w1PW9>-M5N5KJ0QexmCr za)VDUMz?6pf_<83r!buqXAO2do` zq7NP5R%ayRX2CfAihnpxj2b0>7r|N(7`g{c4pHjrPW0LNv z#y5JSPcpAOKEC-$y6)GBWhWC~9?~qApljnh0KM@rBT4t_@$Bb?e7FaqY``hF*{NrK z?#D9q&BS-8>p--=Pwqh1@0M+RM`QbciErp8pY&I{lhFGVHYe#ef13NnVHAYGJQuqt zgM#rh?`&uPf!R0G*7eWdkakfeF}|N*w-~g)?#E-<$;3B+?#1YKb`6)Iw-F8}=|1=j z>r(J0OoRGgaGu=NZO3;y`x-{>i0{)1HTB5^rTZN=@@$4&0ovc6DIbQ46KEHZ$3jZE zR*r7|CnDIyKHfRZ2w;$zUVA2Hg%2#kM zb)}V!!~_i`RLGQ}$YQ&m`TLp!?6sT(1tI+aBG{ zu1#k{@V&rZ z8)yr4VeDe=Ke*G;UFPm*(z=oRxbBCpt(PBQvjh%+iKdOO`8rRAxmF32K-bGs3!V09 z>Lovq8B4+5KKWefZo+0Kl$?6J?z_D9F(m8GO`$9On9nKQgGTQ~_87x){_@%sm;l<} z7OS0cR=19Q$F_b1A~fJtV4lxkj^u#ab;PZ}xRKd>$I68GkS_O~SE@?g?cepmp8Q#4~=6L|7uIclJ;Be*z=-PAzcGaN{m@dTacQS6J zd>3>9-PT69)-mM&jtD1EcLk^yl>c(__@NRQjEVvdCmWr zPnM^!zwwoXI21m_dZTUkHs8T(QS5(I_RnEwn37~)HO1f0^se1pD=U< zlkDF=RO0x*AH0hAJ>`>H*au^u=DN{LuAxE@j91pa-Rm3|{I$N@Jh0s{3{K~KP3d&w z^L?NnXq{nia{iJ+$M5Qd-l4vtQ`Gfm8PAg#hs|?fzL9AkgtEvFyj}n=@%r!Ndfce$ zwmUPn+x}AKuui3Plb?gB$NN)RKlYjB8fc_+Zi|Uca|v;_)v% z)aiGld?BkFdY}GM`THw&MfUGx&i|eplc71wJ<&UIYET-=h2>n6!}mMCTFyc|P%78?T?svH1$V z1*1}kJ?Nw&M=787wxe5|Jk{@NE$A1IXW&Dhlue;q65IcaZg9R&u0huybBpsH^sa+? zNxJUa@)WO|=St`?a+cfvk8nNK9{<2c%d0KzvxCj@yTmS zw*`8gp?i|i~`E`wWJ%k96+eYORzPVh4y&!mg% z&co(2SP5G9JIXu3q+iH~a*ZJQ_u;f|;B)qap=-zS!`KvlmuGN;*1d)D9nclpgYIt^ zr|55k%Q-(${`SLW7>oz4yMgjn_#O6w?k6|8x_aF`yn=b4(k=WR^$E&=*1d=F05EAZ z`9`jnG+_Uhu4ktH+Vh^^7d|TWc=s;_xDjh5!p)!7fhSEpXSH z*D>E4VzUuCew3)Y{A2D@gi9mb z8w{OSvmRQ9-?ko>E<4_F*7Hq#Z5#r7eDW5$wqN&s!hHa68)$#`Q%+mRHBUGf<~&H- z`V;L}(pZ~z;-LHWP=QZ2E8P$_V_`gK-8qz(fk~^$Q}qv8H@e>^zo1(*X2BkHY`%xB zpmnGAFC_bU?GQYabbsESRPF5-pPa|VKfkM6Xc2QGs0>=S(PH{emkx z{iItT{OWp1^srCvRJv=i*#Ub%>z@88`}n}5vgFy!AMNu9Or0>v^gE4Q|NKXM@&LNo zZn+{hS3`Bsy0=np3nq0UKjFS)bcdm98;)_fg7Ef=TyGNj-lsZNS#E;8CAU zRdJYz?M!$VwC)PZn_xfegxUexKn-V~m^|mS57VF7>rvsq7>|{|N3l85hrJO?5_P*Z zO_wuy?Of=RpE!>$;p%FC{l~Z;NBNtF-IZ`PXn$)_ZU`ndC)fRsbJU#Ybl5nA(fvc| zw!|g~9YO03p!_I23!_1g7jm96?>E2Gxi>>J|!&a2q0fYqRNZ(eGCXOTV2 z@Box(!(KIlX?(4}CcbXEg}&XSKt{G)sdVRHvl`Ze)@{0sdInEHe^}o#t~()xZm?*! z)JC_m^JnB^Z1U<9k`?4y*Svjz*GxK0o@&0Xe+SopTDIJVZXjmCKcDfONjMv{Zdb|= z!X$VcqV(&PFLUCs!}YgHgg(jn(-JI}E!|Wc7Gkp&Hh|VW^K;hhp$1$5dR;ot*0XPU zrmw3T_GZgibm{tIsWvvZK}*oOzf&%>oEX7*P@4Pxns9B|9Jf5TKHUDZ2!}hC0=d~T z16_N*UK5+9a2sgdUX%xdNn^;(?-wWcJLY_-X|&Wo>2)edi)WfDL z+zVQ_fbtP2v!46fpN)-|iEg`HpE9EXg=2kS#AN-PYI)g2AA551I0p%*~(_ z7~N@CJGwQvchbbz=yrB>gEwZ&JLm@8Khp}EkuVXoZmX|Y4~4g2D%ALibG08F-MQyD z@h!YtIqG+W@V*nhWilpxF03 z-|06GG$}zv$(QV?k3)#WC zVx}V$9+)lDl)q*X6=e@#8(GJ7ofAIp|+(6#kp7B(wkKWN?Ce&o6pjDUV%+VN1=-@J8BJu~gN zjawh0Ph`s;bOWyc?_jeOwu08J@e^yR&;f3T#U&--&ClB6WlqfGr@rCpMkZzRJ1X&cRC{cOL&H6Zy1)EP``*VK6}rOu=G>bH#@}f_JN;y7+Qn?E zJ3CuOp=(pC0@iP!7Zl<}w?E4WQGN=hfL^1`XDl`;{7$w!@92a~dEO0$V$9_8CS76L zAxlR+-7(zwW7DkfXuET=<<%7Sza`m^O<}(p`zZDwDEr#`=^LRw=)b?ZiW6h|w@tpf zKXv8ZY+0u4t^dy?*$Zu7+nWCe=okI(Wy@E}{zvQ#JCp3ADgM4-AHx1eWq;N$oG(LZ z(Eb;su=isx?`O+FWpA&)HcGM&rHEgE_7=gu=#8;s88Uxw7Iua?N%oNxe}5M7i++$T z=U^W&#-u5~(q`bcdg)@i2vd)^-dA`gue}MW&T~wE5}21Qm;DDiVRUXpCp+d1_nGlG z7s47a5xvqG7m94)K7-$Q?HI6COJ1)C3~J`M=DYn|!n)dr*)kK|qONX<1B@e30krO& z?F&ggUTXv&5CJ`o)VJ*$jasgbe}1-nr~GY)T{pN7wC;GyVR##6f>{@~=QADManJZm z*XN{Gx|HILJko;cI>k_5b zJN=!BgY`GKk@lhdeH@!kbJJx!xz@FA{KD(IK>OR-)z#~Dk*}%utc}??tTJ;uo~Kp# zaB5wne}rdiX4jsr_gO0;o6$h&ujb_XJ zO1CdIkH9d{ama8l(3T?42CZ9^O?}4Sgm$qfTc)DxcLP`nn<`Khw66QM+|TRX;Ru1V z_uaH`b@g?lz}{?Gsr(&sZMqD@Zp1(68vRMUr~Ng)nxy>=qWinjeF2-9@J5nuy}z9J z8r^36|3tdsec3z*I)2<*V$%VZfR4lC$M{`3SOJScuM5|1>pWLX`zr^sWv|k`K{BN= z+zDED2<0&_1tx&*&t{}JZgMbNnwfjG%@-uSgUv!%30ij-<%4hpN}iKAFOCdz=PTIT zdKO0aQFLwn^`>RYxljhQ?t2{yNnKvM0~$j_^=J7h`m@k)!~tEuahB8`n?dk6Xx)XB zS3v>%0J=Xr;`*!mv*00)Tm5)DE|i`rUMLP)_maXiQc_LwYM|Tkw4gH|)cskwRB?F_ zT^olxvFQxmLF+zyx}*CV`AeYdS?RkRUEQDguPH7sD1Vn?vj)Bdt=qDgquYc0ZqWXY zcXbo`vuefVQ>AO>L62cK3bbx42<|^S_>9(dT3cd&7OY-ecB?pijNWIkGD-J|EXUs$ z$e#rr2T%KW9R99n4U0?Zo8s~P5SvfoGtmC_$#HZaBYy<6?$8vv(ay!?7IgjYcYGO} zH{fm1x;74JxtVg!#2`1i?fHPG`8nMDqW*rp3i81ZG3hA5I}dT z(yf7BUAQ?(_s$Yd9E@&P{(mCf@V&)lrPA$*%|mb$w7)-`ktzG(vNJQKJm~%`IzB~z z*1NbodvpA_MX*^7--Fi8D48kQa6X&`x<5OVqCfNZDK1CRwf$KYY;J@`pmn=Z?hAv! zth?*^S=Hgk_h(UbFTW-3?-=Y}fR{k)E~C62et_>Fa$$TPH8Mqi7I~03pzAjWgj9fy zr&Okt0-<&c-)($G$HCUKg!IhPuu>?&t}-CRUB$z(*T-))~!%EQ?3S+ZXiEl94h6=5~W)Yo2GCZ zXx%TWIGWqYzXjbtR4O>W|CNS0au8jA%oFa>x{6~4=YiIB-d zN6Ive*N3)$rOC(GE&K;vqu-a$Xn$>dbw4SMbL1AKyBocO@JEvFL)SQQFuKF}|A}-1 zx8+D*r8^RvXW%I4I4r7~DPKULYMJsUxjt^a?>)YsjI_*=nvK$o8?iJ1yWubeIK8pw zu^9&`pItpuE&#ngQ{r9oDdyO1b0o7#{5Un?a}UEiVEntm`MO2Uzcy1U!fj9w%CQdI zk?W`VtOI8ZaMq7>KNGwwM<$|c=QpFUnGB0T>t0fr=g06`W({IO9=R~yFIN5Z_<9v- zpCf-N-AdTifZIXq4yXJiya6vmZ+z|Tu7B3wkm5Y$?i{(4i+#2~Sc=UWm~~yE?x)xD zI{XNmVdKTzH_CobQ>R+I>l~+qcH1pS+M#RX@F@ZP0`3na>UOW0Df#dO3;})oYdm)R z@ekgYBTu30HwTe)X)W44v;`f9mnpvu3t=AUeSWjt@xin&yT2mXllY>`Qb#Q9#O5$O zabu$Hk~*3473_nbphQis6Sd;{$h1PTgKH@!9_D_@psN!alp|N(8uxce-AwrnD%MNX zol5x)_zFG)UC)XRJieZV2It69bZvZn^_deuUC?ppO*sV5!Wf9CdbTk|J@XIEk&Bzf zbr)c>3U+|jEp-zcWR&u^U4u;N0-lD6x`i8MN)B8I=Ypsb_=UGUlMiMmBw5L2iC7l5v3 zBjz7p&w}sd$cM_`(^~R9;XTm)&T5q@^Wh6v3c8+Uj5)rZh3DqTK6LGIGxhBL)|oO9 zwC=yvv%E*0eqHxx;SY%K?eTiH1-)Nje49kwH|`{^umM(qu4nbRZkODjMONg<7<6rV zqg|%F4;#UZtaR}vWlRoc%GYq(U7W{oZLbB_r;XNl_gNpoFLPv$(z%?^RfTK8sME|$ zO0P}Xj^E~m2zE=cv-PnV@81qB!Nkk8D`GxtQ%Bw#%VN7-S2KQ?^gMs#?|J5i9InI0 z>rEGIdP3hM-Jz7n!1M47=<|cHdp@J@zYL>$RQdZNHZ$Q3(EiS$ya-JCoLuWV-X^Zs z1-{CW;&;UTU4zX}up6{))AtKWR(nVHY;tp-N_M%#Yc|^7z{VV@h^|fVwn`U2c4Z-* z7wvIb#OsxK%^sUDcGoL^uH?Pzp$=$&zG5tE&TE~Z9q8{lN5!v$>p?v!_z6P#?GQATsFSPY5@O_TFsQj_dN1WKqxgKQVN)S8 zTarR=2)@|3oUGnr({Q6XvI{*sE)7R#G&~9VdrzZ03rzZeeCUP8|4zf)`{Um`if*wM z@%r>JHcMeGm_O^*r;P6@{{nx4-qW*;I$=_HOOBLA$F}?Qj`UaRxmdQ{f5x8N(|OON z;^ZefPYG?!k!#WQ$1Hf>grDApiG0h zuI{6bR6;*x-q-EHwtJ?N@p^>rFcpWJ&}#;*l5`)WJQ$vbr(iqh0KHo?FXg;tlUjGF z<@y)go+FFUwd3ZC*vy5MVB%o?JxcksyEEltCi-SAJG2cqkD{eK6WMeqe^-Kq~1 zlHYl)R43NWpmSgLc>ch;Qca$p>&C&1n|2)|uro&=>W&!Ah?^>+|9lOerxqVB$~nQ}=t<`wWJY{F*bnd~7i zR7i^Ua>nC(=^SkwqQ{u0syNi?!F2<88??VK+{-u*zroKifEcXKOpop7&wkjM_vttU zi{#2abSu05w!be^`oTcZx)I7NU^{Gr+BK;UjP*0uK-A!nR?PUrn91 z$4!do%4_J_de#t|J}?-x?mWt0z;4(EwOi4S+c>(*+;*XVuS81Z%BSesbO@Vckbb{2 zF1YPDJ%{qSV8^`xcHb$xa=cdsYJ%yfUAv4ClqbSlaEN(bPN!pHf3zJ{nHxsHo?9m-MzFE&jZZOp=&+%XklRI zeFbj3I+chYhhWKEe#0-`KV5{~P4En8e=qONxi$2Fjxg5rBl*sEm(QK{6IK0Fu>b@T#2Z7zJblV@Bx?_ZQIK#%KO2_ zGEyd2zQ)cTUsKQj;Qb?@{c+umWhYb5qv#$+*Uoc}q37$H$ur**b$jKrHU;m)>oBVu z&+V$6E{ABtrItG1^BCc!>y4$zmAP_L+xT($4V%LKxSk8z-*McNaV@Xi3O9q<7r&_- z@h5(p-1=ztZU4PL<*Hn{2VEP7F4**jzMyr@@AM7fHIusf(-Q8Nx5t~q@^?KCq5CMh z<~5T>Vmk?DCh0bNh_MX9FaZuQ$EniJsh?wOIPLPGZ@K1ToFVyZKMpU!WQaDQ4`q^IVlcuT ze@wl%y3reQr31P)z6-Ef2J1oVUNnIDDKv$f!1N;nsQX4YK$|zYj<3IVt~{yyZHvu4 z&<(V1=0L7HK`eIUsrIRv`e6NyG@{>A@y)}gD%1e2yO8oa_!+i?o=AOO&)+RqephiY&cv#SA2)(7SB}upVQ08-RIa~~S-1ApBe%uT8%w=sZvEDbt zt|{nv{!_glil#~7`*Y<2bacI+fX4HnkGJc7EIXNcA3^s~kuw^2R>=MT^1x0Vv?eQ3q;^irvN&If&*{%O8f)bHB%W87<>Snt0V0THuFOW46f*yqXM7o+ z!PcaiCSzZIRTh2Bn5k2C59&MiYnA;5o*8JEm}Flnh5c&A$td=}DEqnC8RjS3vv#2W zw)uZ_3-$wZC96Z+|J6K`+;G8&ME@t`9B*G0&ETM1si5qeV`pfQWS^hHfB!=wfl#j0 zQudu5BmU48bo}yC_#b8-79N}{t(5)d3(~|e_wgkA6o0>f_=Sh$N?&FFdF4W4sQN^r zediSRg8!kR%zKpm1ndlxlI&-sh+k*EQ)pPOyshjDk7OPVr-T0f^;3NR2;W~G%as+% ze%C0jPr=WSV4uSODE9-%$XxkJ*{`n1@rMy(66__&=YCh8o6Y<4U_sL7!lQGgNXK}6 zIx?2_H7-+%g7Qa#V{@e>p9{ubWzRP67k-lO4aVBGn^8|umr{K9(00c#@@%eLr~Y2a z%hSa$5j&Gy9UexUEA{zY6UR(G;Qd9g6!hPlKc2b&O~=>usEIWx_(HC9M#uI~%lQ0S z*Z?M3zgwh;cV*hUyqqgfU~k8Z1%dR0-+gqOZIS1m&Xnc6XVM08J)gDhI7)|IEA|QM z5xTR`weygdvDd$+X>@U^$ZTH!2uxZ`?msiWo?&(M^F92pAU0oeA+Xt3qZ81 z^E)**4#jz`G?-MDJXL)4dSGxm^#@&h-1D$8_dl86Zqxo=#p?lAw;s89Zj)Uvvhg+R zm-e{Hj9lr7?tgvU!sw1e_rE@F{+YQl7v2B*xCPPOgswk!L^!`DcK^k3i=zAgXgd?Q znW{IAAM^5(RQ{RqzN6HLqEbnev=~B2mXcJ;gzQ@(yQZQjNm2+kq@rv^S+a~MyO6DH zV+m!6NGjF;`^>$kd1lPNSO4mKK3~VVbD!V)+_T+t&pr3vd@cU@atpu9yd=8+bh!oI zV_p*7f4bZv=ypfG7l+cHsZ?XW4yI7+_pqIJ8nJ?!dM;y1kx*7gtjy4p-BWXhsz z{Z0LDwmn~npZdGm>HJOV*U`Nj-5O#@cov^-EY3RwLHj$B?c-g4-y@zuXP?@i{kkIY zzInrq=sxJ$^V|E_q|1l-Y+vT;Nu9d<7mhzUwpv&)1}ngPpeyVb=jWTi(C$ z+kb}hECEP8a_#coO1c&_fqOybKeuLaUvGmk!BNh5Ym_RN&HK(13K zJO1RJOnND-0qc{rqs`2HN{CKpUJ4yszK7WF7VZxoB^Li&ouvEb@_SC>jOd4)uas`3 z5v=Kjr$Fmg8OgH|&<>iz(&CBx&;x#PuKT48+WHuqUC0z|ov1h4usH#FUrW|~h4ffh z2p@sm&m07D>?fNf<|RXDO9;#_WFAJ>hRexpd3LxAv6Qcy51yMz-wt-oL>RlyY3%Cd zU>Cz~P#U|&IoJgk6f$q6v1^rsT?D&1*x7RK!v5W$C+PC9$1kz`o>Mu;(A}hT?f1F| z{fX|GypP>P3z?tL4Y&>sK`#R1Q*;lL{uv|`8l7CuQq~e=oZ8XV34OwKRhxuv32bhI z+d=0;ThdQ}gjb0h@!kdd{whb+(Pg=JJj6a_UItyMs}f$vW(sTpt$XJf)-k~2&;izS z0=MUj@P$sj9F0AXxyM6bX(7`<`THg|@4^(&x(i4z2MKG5)15E$cs+)0D|Brr*)79t z!tN_q!`64(X9SiNGQE@^+t_a(8~{=INd7eQIAz}8KdkStd1T{RT%$?|=JT3iO6O+w zuLd>6j$m~PrqNi6Mxe0QOv2vwr=_^(BJK3=>;LU!-TO(mfFAHDh`*yD$e6!@+yBeD zL3i^7k!lK8BT`bx)Db$Drd%xD={(=e}h(`XKxrGT`)bi(Kk8 zzbf6Ev8fG>LF@J-Jp?Agn-Ffp+#$quRsLFkLnXZ?&@NGbXJd2U6}%&kSnK}AyClD3 z+pq8=NIq0xPDb)~d>Y+wDX)1@>E?Nlc?`G|wC;nXTf;NZ6QrKCyTmE8SxWbh^Trj_ zGjs#-65(Bb*ldIypmp0!qHl-sFa*TkgIDow_C6l7($$r6iw`P@Lf3fBYv@*Rbthx9 z3ATXNy^RjJE_8qvu)aEVp$ltZxo019b$5JXOlwysa-G+#N4J%m?uN~sQ}XcrgJj(w zKA;XvXARs8@(61D#@P9B-qBGChCA!u*6%T9o~sjnz-y+rPn_qnKFnh-gR4OMd+sKW zsl~SX@XSq&z0^F~O1GXpu|4q}xnN_jIfkwspESnqeZI%gHbu7&>46|&D6!w9&pIUXcQiJ$;Y-l|R_Da?0Q80q5WS0aZ}WLacU6wHsB>PH{LOMtnURp! zR6#c=ju57a4Qv9fJBE&UBCLQ^P!Kz-ez3fhpn0aG~fmkDzPMZ@aL$XcpIq zpmqC`ehJ3IXsBH*F}^+S)(06DF_jh%!PZ{$D!Mj*Wt=t{yJ?_xts4@{IL)5_ZQe?} zf!}QYhR~gXZa@qO)6ts?3)1K=Wt)Um#Oc;|TwgMw8$oviy7s(T8efX!=bfNwbmOA@ zQ|H&@_uN>Yb^jYh_c*$ouHs=6db?n6itbU;r$9p9+0MEg`<@%CE9)?9{)XFlP2rA- zaClpi`L&zTd%nf zU7Npku#xW=+()eam3G|K)$L8J&zm+MB!8`Lpqv)BxWQJ{5~kp2QB>>xfx zyRh&5wz`tPGva#~6K+pGna1A(DY}2v-(Ux?nW_BEJBRfwa3N@aL!>)_gnq>JYSZRH zzpq{Veb4P50*`vlCUk8(9)!(scpbEEW5(T+*ft%`<^H*DZ~3?oki5|IJW+Jd?v!Z9 zbFizzVylHIy30tf2MO2RlfGRf^^=cz&DH1z;ugki!}c3E1lr$UNuTwxqkBGaPS+WM z&R)|%`C9~=q7VSB>;BnzRF2jE7?_d6H5`Kzys zOc$?tMfuwcoAD3>?QgreoQL2ecn_kF@}9~V=VZ+dz#+ys?UbnB9S03@^|*6&kvR9R;iP4s7>K3+2jUEA-p$EF+ff>eK} zvh8E|5VXII-1DaH*8_dMW+J+_-&u#vZrBG}_oW4_1B6*H1@wD}ySvvd(vJVQ4hVbA zGIVV_{vMm(AWt+|x5>Z^b2-~?fNMegwd2$>Zao`CHrakX_N13J=81f`6`N{M8??Xo zlYRsqg?5ll#@X>sRaaN%L+B~5IqR{6Zg*_tJ15T)Yu(|b-vkMhh`V#mV&}(fxoO?N z(_T|NjqV43Q#XcgHFRyceS+RP*qx%AwUFyjxD~F4+$9p%S@{M!<0vV&I`JbSkDl?G zCzNgon{M!g*s>49DhYWflb#K0VVV4>hC!g|8DR|&B<|iTgIp?8%tV3qL zBf82Nr|NOF8OMA}=Y;NhY$`2bj0-v+o?c3OfOD5|eF&YFGylM~K*0=;X?M%%x{)c& z!=M|8d&@Ig*wlyCpmisao(pSWIe2d~WRq>dsK-Ljx z-9~PIpmk&D-kV0Z>|fArmqs`Ak=OJ^HxNHUzORK|b+|7@w;k#3Fc6*wJzfaAy88SZ zoar@hDt|*Ek6D$UXFovagZ$an{3f9TvCfBd`5Q*}Q|0eye35sH$-Bd}?nLnsBz&CW zuhrH524;E9x60orHme{8TKDXgytfWYLNUG~T(x4`3x`fvp{*Fi-{^|vnD?t=!P z{oRws-_U%nC(sSZffD|y`fC<=O?~CBZEv9zfB&q#olN6z4Bbc3wd1_!(W`Qm$L!k`%kquv(Rf6D1YC2IK!OJIl~9q-*MEf z@vgrY^IMMoqPth=uBHpv0GmPUuB_!Td!6pV93sw1H->KhZi)O2mtaf^zqC*G_j$Gr z2MMner_-Iu@SsY34`U*qP|uX^WRA7wK#!SAEGnDbao!W0D>u6Nu#Gr+sWW~YvLP`~ zFXd*ht3r#srUSb6I^}C@3a(~;5VY>*&l#t|Rcn|(g&1?a!AE%KL)c?tVQ2m{%KS)u z*Wb``t^<|7JFz(l`PL@u)*#&&9)}JPV}M)_#NVavbxM-IE4d%kJ(0fyu^9NFd z^cS!jwt&uuHE#c)b;GN?=4GXO1e@+XQCyd-E7w0I*j5fogVsHnPItA}O zKx5GU_9ZRhW#Sh=*M|aQPM;qMeeN|ql<|-4fUYp*CpUPNc&y9A1Ruji_flLoDSMQ2tt7^9AjqXCfco#Ae-GkC{%abvKay z8YCPh*7=*x-_Uxmsg16!zbCNCwH{3Y4cjifq%Vf6;4;wpTh8@Yrs-_`jiI|x>6XK$ z5>x@Ldl%^kp)E8Aty?3FZfJwoRPB{GUp$6QA9xb9?kLi4!v`=K^!la7R#)BEH5s{Y-E(lm&gBuj*cBe@i~_2xUCPc6!Zd zbfun+g$CHjcXUIj zf|%2dt-qcRNPh};Jx*x1*Id>&k$-FWZ7&=H?azZ>QMceN7z0C?I0)5qdbHLcOLISLtDl6BuD{UsFK%5Tu%A@1!wKzVb&GW$zso2V?&3<%kn2pUsSP2xL&A;4xNdE|)ZO(P{ zc)j_3_aFYle#M|1h<`sgZsl!7x;qSlez517#C@)lZhp>ZQq9iK zgpPR473kXb^9D8_!b;G(r%319&ff$-gt;0FWjHK&OId0M2#r8uW;eV|M*7ZJ$ z?oa62cG?l!?$8UgzkNv$1POBv*F{@@pJMw9AYmABy8PAG zUlDX~L)W&0&&k8)Gcx!tbF#mi*}mJ&-*1U?dTt{4i`TS5HyHQCnD4OB>zA#+C)u76 zbLvBWi75~}zwFe8-+zB7ny3$fQ(p75^0y#1ekck$e~XbW4HB*+-cNs@symkXT3gRz z=#E$UTLGKOPz|(hP0|fO!UMzyRX=F`9Y_ajb;G|hZbR3$+YmObLB4IGb=$M8J4kqf zxF3}-)!$)@61t(^=wH#5zFb0oY$mf_LDnp2-N9@h>FSOpo|GmZ9^R5zA0GOh@!*q* zcKi-DQ=mHc39T-FF0b4-{J_2@rw=}L5MySRV1F`rGH-QBCo~<6Q*mBeDID+mz zrCSBtnotk4?&RSarUl#DgWPb_x|3XgwQk7cGnYM;$los5^@XQE>kiyS{|<{`KFE9D z8@uP7_1&Fuo6g@rexKQaZXkYyT&wM7J_#NJt@}3V4{M_YQ3Cht{BV<@-c0 zvu!lU`)Kt0?_0U!8J!QIb9_7(pYV4ob_-w;Xx+o4e};lzbAAWCKD)b{4_Y^JuFu@r zKcRamHrK#)pmlTY<+~YB5z0Zl+_)x}e3;hc^m2=OeP$54w*Jn+W-%-Ut=n)P#}7T= zQHXLu6ujHf^@g4MBT~=oxH!lI$t%&d?QI4&h0f0~vxv2>TO9F7+Kp~+;hp&n|%re5NM$cASv)4fE1)0ciUHY3xr?f1(%q zOdn-`*0=QkP#)yCE_C~mex!%MBp45iZ^13rtaVz?`ia+^dalbid@=Rr*+l!#whd^k+Hl1e?~-7qq{V zNzaDQVF^UJp0W8b!Sz?4S0Y#WOzjliJ=pyO>2xpq?sVOgX>`M7eC8>odlPompdo18 zCrQ5mZ^0NCe*^ayZg%o_l3RbZzk%y~W`2t9N7yZabh_WC(cPa$H(K6jen!`}i;N@m z$8ZT~-CCp@!eh_|%5ja{uaV<#jV-6wGgHB5uH)}n-Dj~G4)1~1-AVco{0j2^_2#!F z`kk%m&MP;CuqeR!e6!mg}Py)&W-M;PDGhZP+89szz-4kQv{cc-}y7qzEKJyiNHhjkZYhV*7 zz1;gq{|ufJ$=9_b=xZdz&s6)^+)<^TOQ$ie5U;1gl^STx#s1* zo#bi%#}ez|!y%t(hAyYGc$kOHdWeDeYjxk`TQK>5;k*jjpx3iSsgt5B^H_ge|1|ZP zC(#W$vZgdP_rNC5y2nm&eFB&N%Gy#`e-r&(7sp@oxifC*9A(|5EgD{^G85f;uI_AX z%x{b#LF;}@dI=ncy%4BnOz2K0e?xBn@ykxG?_8a5d!Jc@t}VA*zcc=Wn?UOhC;cWY zf|)SuGv>mVIR2h;+rjarhG$nC;aDf1sg7@I=JKxoNHXQkXeUttVOtl}Zu*=Ne4 zYsUdEVe=Y{1+Du&>AA2HK7~eC(|arxtfaBrV!tB!jKHY?zB(7Mjv&c8)6GL!lM(Uj1GN@dF_+Q(=5 zs^h*0n^I63P{VboPB%3|MIUl`)Do4yOirD zbU#m{``X{sjfQ>ZAi4oLFv1-4mcyPD-I2L7&0Fv>ybt<(TyT`rU&(pi&X3CkRK=GP z`4BqcF{iN0$djB8kFmWEEFZ`Bj!P!zL&&Y4x;=%^ZKQPV^SbAz=sHK^{Cg(P>xR+o ziEahg@IUAkgYqf5J@`=h{cLLq4?`<8e>d9guVjAQ)~iT=pZOq-ZlAxPyE%<+^ckP| z7G2x^$Duc+ipNYz(S7+czMaZ8311MOr0oaFIBnI|GrdkW_N>q38=5FLo4;F9blq%< zM`x11W`NI>LD%N*4)hK}uFT~6(1mmuUV|Yp>DokpFv1;IOa9vHdO57*K9umZ%*MG^~8JBylVxw z|I+n0FxY3tpc`;A@KyAVZptukySk0sesKZm6(C_dadYxv2x~-bnMo||jczv{qA&W) zhe~%ZHizH{h`(0%B7ApR0VxkFC7J=|99;*GD?w>Xszd z`CxT*K7`TTpGLRz-_(twoB490{+2=SA!wSSJAw2(kg$oFdVe*MA9FEgebAhtFF8xp*w`_F-~yJ;(PFabRSarC;j#^ z?ACzj-tS1|{j+|%OPYQ=IGpx`uI;b3pjWz`$9$WjTbpf#@;iUz65@3ANct<={zD^t z<|XCt)K(ehTILR}##a0LDcf&!b-(2Q>2!5@N70>xuI;aa*w%%6Q*?)sj=&U{0Q!6o za@)T?9|T_Wnbpc)=~rf9w-BtqIrS?8()244biYGa>Vt&Tb#J!Z{_46nGs{6m;nI{+PUrEBx6?FpN3qWNW^DW zDSuz)df=k}WSIQtB-@Zy^v!S^==>b*=4WWE z&-|qPv*+nr?5~eo`*$Yi=`gz9R}$r9bzi#Fx!-8Z>96WW&@G2c`x>+&(u@8+p*d7i81?$bw2z=`mA#u-SdfadLK&gEuU$lbcAb|+m8x1M=y-H)>WQRT-k?3bq?WeO5nO2mDmrD^W_47kvk z;6lc=uO{l>cVhP+jse6AYkwtaK24T1&Jy28pdlf=-DfUB$M&-~uz!qio9zLeA63|X zCrD^OoNk;Y=iMstJ@9V_*GuTy&={Lm&<&(tXyr)d9!z>HOaz-Z;@>pR3Goo~nY!rM zes&J~Er(+u{<%7NUp_z6yaBV}ebD`Efg`8)v!UHS^PbATOABS1if}t<-G!uA!9Lgu zfk2|4Ey1%Y;;XdZP~2I@8+(1`?BNN2i-kO<1k~b&zSebjk4N%*PW^0XpU+&5t_@Am zo5j3mYhn)@-F)zLB^?H7vjwE>Vt13W8^~{umCS91q}aVqdZMxm?57`6$IhGBE(FCOzcvDTeNItmh&6Kh@3l)xwF{?Ltn=QF>f zYr{oUx^>uXa5ZfGvu!xW{^yTKl*eZF`vwkys5~Zrn*Ob@pKH1_{nG^7Kb0zMEM(0FKq5sb`7fMGUeH) z0!TaT>e^K&U0>OTv3p$EHR89{@Hj|+=-TDJs0im}xCbJ%;Q_0izI(In56cubW0g)* z_G<$jK>vLo3lA;_@ts#;n`rsMW|^|PmftEvHPC;5E9w341K8u1x-epys1t51YzmG{ zT=z&l5Q?}94f?v}I)pw^>~!ePylepbve?`HyeziDl_~a-H1-^d31WW__O?C*vE`8< za|cNMcJnds_2_X5i-$*ub2?we(0x+rR>uBY#1Dhkt3GEHHq3guu3_hqKJ_aiE7b>^c**WTwcRSKJ{MkRC`W78f!0j=Ax7;_NN z3)(;{`Xzb3UdlVv+PR-8y7y7$5@IzAo3-f5wT^_WOYjHkgVr5coa-7`1Ruc>HUD(* zen(gCPd#LH@1%bio#2}8Mf(0J)T#D`%()%DDF3tIT60Tp^j6&De-~V7!3@!!j@5j46rXt%U+(xXw2Wi_> zjD~CLS?I39<_mN=<;TM|P6#!zYn7tw{%ppxy$|<|^!mIC%boLy+&{6pQFJGdN#ySm z?1U8{VTeTZ<2=rAT6+&LHygXVu-S>dZSVGcU-&ZTcwcg4^2Wv7f6nB5ZyFRfSFmoe zm22ZiZ_~8g=JFKXilnQ9ggO#);bO06Y(5U!pLpL>;GV*!qtb1FO&jO{Qa;w-ex!$h zgb@9CmqUx3z?pS>j+XF?Isl)rai z^Dy)St-Fr&cE~7|X?`Rw*gEk%fS3F5k{6N>Z@B$S@czQ4Es0jHzooFN3LQb~t|t8z zcrNFhK|HOwF_9~sx==5TZtTIrW*WKySN9t1DnfnGx}8Zs0i$3j=zg}8YOjCH7e7?k zl#C?W)d$$jgO#9li?Swd7u&vp)%BCtnb&i5b-M~SDQudcYxChGcKNQzG)+M3o*-S| z%1l!hNu+u^>Edt&==1zEcRnWAy0EF_=!B)Hu4O-= zJVD% z)7QyXw;S7^0to|&b-lH|>iT8!W|;zSCUjH3uVHoN`x--C-BD+t8%DP@y7qi94x1@3 z2P7ZHx%se-^f&MuoB*8cA* zE6a3Ix{a~x0UJT<-dTxjA(#Z?q4!qSLf!53Unc1Ek4gR($}$tswL!k0UMNW43Nr3} z$H|A>_WS8m_+7V$gLZz>n`LID=v>7dPcc_#b`Cn`4ab8RI?L5@mcsr85|dra)ENHZWYb`H)$KbWi9+zh{~=#$1)~^&b94?5Zqt-dhQs z=h=5OL_q5-C%qfWeTU4vgoYfi=tQoiy`W>mN%l3>I7U!9p5mnMfJTp}pThZO<`a72GlR(0U#OeIi`4B^Qsq(ibdUwOUDY~DMUJD0c z2k3R14Y&Z5ypVai0#cZS;7wWaZ+~-0@o@9)nI;6yLHoOo^a(hx2J^F^$Kfko-Kyoe z*XruTf>~zt+llpZ^|5IREkNszB0U|J!+aQqBlbO{Uiu30_e#!l^V}*Kxh>0_&AWyJ zZhAd7N8mU}Zo2uKS)(Rx1$w~vZnQHlnnf$(w!x@tAF7^ZqUhQBHIn^5h6SMg4Ai2{ zKy9cD@?BN?yysF^Q$L3tsgY%V6J7W3w8Q3Acn!3lzmvY<4$cwKWnZFhjds`GRCV(+ zcxRURVnU*QJ<0ykE?+0setK(DN1+nj2;!%$ucbyi<*(~is2<~liHYOyhE3O{oU@6w zuDJ0j+t$Jg;CB2Ud3wY>e!1SKdBj7cKK}DiYOeg&5sWs>GF#Eh=jw;q|3!Eiw4W16 ze+Uwy#5wf?;d`@;Z&Kp=X&E*@!Y`n8AE?Wm1Pq1eK)2T!Zat9pYOnKyjkC-^bOUiu zcvn9*dFoMKpmjTvei6pOXwda5IL4`8`u*RL5aUI3%ecB5u*p*&UC_ESNiPBkJBdr& zLSJ%Yaz882Q&Wub5NMHQice1H9>wO$yE4r+pmjeZy$&SoA(nObC8{Uue%~Z6kL2Pd2Uj8X!ty}hP)``M>P#=ykemG9wCG~5wJ1!A_?f4sXtH`Zih1U zq&+%$Kghj)&rknh$0g>;ER$zy;F-aZKp%Dfl^sYsZ zDijZ4Y@UNrp#A)m^p|iP4$5z|ld2Ust}l3Jh3jX>8phn}x)yvo%iN1@Hma4`mWKsR z#o%(#x_6Mi7h1!^Aoqhh6?5K$(VQ|^hP}Km$R2;RUzX{wj-Ssa#qYyCimg8WF?X{D zl;8gB_(xL_0{yehZ1n7TxLg&Fxfz0>{p^bVlOSOLaZdF*hVBk@rEDa;gv|&T1)|$K zzSZO%PkJgy_=q^CemL+U?T*zX7Sll+&kn%{qF;xS(m z%iniH-u)BSyYJr{g7%jBJw=>IbA%QRld2CaKL>E7vAa=I-t}R_8S8Dc`swZ5{_;u9>x%T zts8tL%dAD$hG(%E48y@W3&elP{TAsNumJ3}n`jMk``H*e-zfj&eeo6HGxpd1*}o(4 z|9W4%E+_LU<6(5ECh@Qwz4y3o*qEZbh4f*NVBc44$L`{%gzp%){83+rXBqGN3EdOe z=6aBN1*!gaXWLWo9_x2>`|9rIr`8RR$TD@&wf)g_?Bw3s{1jcezqW>L5;hTQUB}zs zf7jQYfst9JF}k*WZN=so{0`dR$`5hB8t#XD8yUM$r))m7Qtiv;L-e&Q(*a#O&T4~Q z9~cQ*SNzP=B-5M^1z-gCs;ur(Hy?C=5FVXno#@1LNN#g0G1*~*=WfzX!1nXO zFBy~dq0$EvK~%8 zu5eS~$_T8nd*|CQ*nfCpGO)#!(#`pu8g7PnS7t&#P z0rGJ#>1M`xQmzrVy_hLkW`)uj#(wX@6j1q-v6}Q(An!hCRh)BIE$45Cr)HUL*xP!x zpM8FW0?m_;uPkW^w-Z+eT_0w+{i3dCp=q=?rP~mjrtm1}`fyiMkD1K2D9i+{TeXEV zp4YnJ_p{8o(-ZY<2R0|b^GLF8HPZE=3ET(e=)X#H+#~AbGIL#BUC#p3IqxXlC$Jd^ zFM#%UBIyr7!eV0Ytvs)ma-HyMd+Lgt`N0`krUJSZ;ubuUkIfftGL(sZaT4tI$5Qa8T8(sVUi&<_v z{xHNhKwYEQ>@3p)-A1mzW3br*XSGV!eXcd@XrWje=AEI!&x|#Gaq8w~_x|Paqr4;2 z)eSGrGQYd|kVPG=i%omz3EJPA+Onnxro#l7wVH9mL%GaS#+T!Hez71sZ;dAU-@v*o zQ)5P=9j(V^59|kB|2^$8&AA}QZZ2j#xWPHVDE6(euR*dS4bRU$b>IQeek~_`6s~BW zX^KLi7v=M2E;Eg}fS8+)KW$OZYi`Lh<2#A1&X?5V3vACa4Y8B+OF7I>v44>c zTyKN+=Uvh<$m&Rc3DJ)kZ!*^`ek^tSDQTa>+&>ojI?MDySK84K4x=5|?G z5`HGGdLM1`Q`Q5!$H`J_bAX2j7|O;&=wOx^sgBdri8cfUz#b<%dJ2-h0BpWTvHMur zUBYjdLut@<@?7_g$}Vsy%Phgp_Txc*s|qzhABXE+JnF}9y1$h?lA!zBz~L;j8Qpwt zkv)ga+b|WVUN&UzAbkXW138a2=DfaUy)i+z?>c$V*)?(`%S`-;dgUI>d5?0h7H$Kr z*Pis#FbHhkh;LinGJM_DGsm*bYV?MPRdQ{x$r3CO(Vc1JJl>P64XHa;de?YM0O`$u6J=<+>Ix&Vu> z0#F2G+-{#oIO67An?*c_?v`id{A|+~mvf++#n9 zK{My@P0X8ZrlA{l|ISC)?0_SnkN?ZZS!36YYifw)_n4)b8Kx9v)5z53BhnpU5cGp+L*CPJH{8LyU?N7rs&!r{oF9@h68^l9_atis2`WQ z9Yb$`I{s1UybTjU`}rJeCqHDHgwgyzUHjI@AG|D^@0}&`buPAx;IkCnHKezIgk8ir z>4wq$99>(l_F?lq`~ceD8rYTfHe1oP?I1t4S3@Pxx{FEg zhRmMyNyLkrkpK5PZ9Y5V#7X6KC5p2X{$^oU5-Nh$eU$W*FcMyd;}z-WIy-t3-1?>a z&(PJ`<}!3E#B+{&A=rEbpMci=iu7Li5x#@4s<&%gT^aYd%PV;APPVCxuFZ$B)RBx{ z94}~H_s_ZB^VIW9YU+H|SQ~{ODZ+?LoKO5`8#+*a*=o9+Q0) z?`EXmD%a8(vlk3Gf|1JEW-fZRAMp0gG#9}ofIBv1UP1a6kPj-(T|hhhBH`lz?wf|I zWSf2Jc&oB+9k>hh@irsf7bHAKEZ<*U&;7gqb-aP9+2(w^7zmrS4@W3U-H`Kf2cb7 zkFMmGoI8HTCjS$hbHMt8Lgpo;tHYWd>~|MqP&dEiT37NbR5P3Js-52d+@*BRwEvk# z!AH?sjGnaT>CDG8M5il!4*GcOKgs+CWIjc^Bi_7(^TbJK9(QYycdX){ZXeM`*~a^E zvY)RqXFCXcd%S1rXFm)A_hp;XO7BH<-h-*2>Tm8i@Q*@=j9YBGfK(9_e`YO=*P^&-ZbBMw$ z2!6u)8`hPbd^i{1<#GBj>2Eu_{+ia=<|Mi{ARYitI?Y|!P_YykKFU_Bg>zMj5M^d@m$lo0Kj z&36nO|1J~5fn2M?t)TrIM0y0wgsC9sv3{lbuJI=3@3=OQ>nH7Bum|;1`6uJeZP@Ju z=Px_=15>Z7?Xl`u?uSLtD>To!E|&iPYtea*ejT)*wMe%F2~QB$YlDw#d0p}b=ePsd z?kbY&1fxg+MK6AYy|CRz2~{F1HGXmth|_O z46cpjxbt1@wD%Z#&0NQ#;cU|u-E24g4mR`PAZXqD2XW6BdO=6f>r&dex-!l@Vh{M~ zZ1W7dwmrOy&1yIRTDQ^*_zQiYE6Bb0S<8WIqu%Z{wX}~au5RerY%>zwfSVqP%>{Mfx3>0aHNh)^N{PNxIKxo3E7aB5c;cdeFM!=P9=3eUbY$ zpmjT?(G3pDHiwjMVQh*+Nl4YL%eDvL9?-fY(&@gCZSu}f%xAa7rZ2n(T6a6?Zz0zZ z`efq$*CwvNqpq(0ZlZZH+Z09D*59JoRe@JP>s~jMYbR(6jY0dHz0zqHlD|xC#Y6Bl z+MCk-4V&{{rcQy@y`FS+Xa@I!?q6p`oO-5p1EaG|b94jFpD~YN^Ca{Kt@{S)k3hmg z;ytWC7*@^EvwfHzzl6qQo8BsamtnIFE*X}r`#9;RU@VLTJ$_l^wqwcPuD0uXBijsA zx?f>)0KNn5@8(zV5i(!p9uslZKw|!VGizkTXVI0hzJ$=YY`*K7D7PNi4S+$Qb*GS? z18d<^(B-x=a(ezo-pn>j(6#+e44Z>If3=5L>&BhnpDTv*{1#~4{cb(e{Z4dzwuzw| za1ASBb0^dXtvitPD=-npf_@Ko!IFt_=O6v#+u7!X@^`e4=LfJ`09x1jEAeFZNq2p# z{SBad_JTw{EJAM|6daMPJDK!s*a{m#uJd!#*-ClM+V1$Pbt4nA&Bf^2^U%d3X;;t~ zw7;`RFNQB*73ln};O2uqubWBP<|?Io5Sx>b`C78>vPB+q3EQp&d4IaJw?P5N-%uLe z7`l~|ZUyX~f#*Q`TWeINX$TTp6U)3`>i5XCzp?kT&7Dg3QEbBSG-%!7q{o4TiNrb| zB#$L%-OvY&BbDwHY@V*3VdfEQ-L<5*f`r|~Iq90|j4ze$erz&F)3<}xeVz1N*a4d$ zQj7b$%mIp@1JdMgU}m=IhpugJQh(n7GbUL#?x_3EnbhAPy00nS4D@^uNYTBGbX{l$ z_k+%dSj6#L*IzR$+wA53ob|T@Ha(y>=zMsV^iYs6l343XUP#coA#@k2{CyppsW2V1 z?h4YoK*H^h@?L%JBiZ?7M>V-V#AY*&R{3xU+avG`Xx+FV|6KffrnwNbzth}u)BXnM zFwdm?y&9XF;8xJOHAy!B3HG~Ksn;lSt2nFJJ|1 zrM>Ov+E4P}c*Kd%#o<53XLGYniKsm(ac>lx-S92&=WWRSBWceYT)Tl>YuWD^E#q&nQcB%`8ge%U9cCl?(=VQeuZCQFRbaw8hhq33vzu^hPou>B=axb-TX8g zv(0XG{QmK*zlEE??m|vwK1ljW2yuO9&wrvNL5@B6Wwyz`(CO#C!tf>b9Sbu-`&aNS z#y?OKDnoPXP&w9L1o5wwo0q!Z2yM+aSE6f!%p*6!t|?gmn2$Ma9yyBLUDyR(!$;VE zAiMzDpCzQf015ku%T?n1Lpyek%=!1FZLGDnF6`jEhHfiY_j_zkiT&Hjx&=sQgM?zl zo$g7DPp$S>2U-8+IunjDo>u-|j!h-F1GK-rNe_ZCFdP<_NZg04=jPu{mnGh765N$- zhAMw2V>2H%fz~bi4%acz67GdgU3jNNRVN?1ySkMr=lg9w?9Db4(6#NmA2t(U5@_9( zq_=^Dqr`!_oPXT&yUhn_-;>Rhi> zcKoe6)`{i$t?jN(vyI# zzQpEtxM*Us?yc`Ke+5V2YpC&)w80D$eK?nyi~Pz#FLLr}GY5DhHua$`sPk){<)k;lk03Ao+4F#N%n|A~(>^9*{N{XDNB*`P zZ^6mbJ+S$9rpGJyOH3}mxdOd_h!L{TDG8N9A8#kpVHgV6KF$3;4#$pnX1ViGx*kV8 zesedvHXq-^?qgU5TK9X>o+->BKmo`XpbYM$58A-|+*qf5NIq5(=Lq54e$z_n7RTmB zs0muPJ?S3s0`!OGYM%PI>u-{7rr$iNbVp(HJ}d#PE8j8vk!{|o_zDeZ&s8fre&*ZZ zoMS~d>=s5apWl3dt__!Ab1jqyTVDL;xr1~=u=C(i>{ekHa19^ix3!$NJjPCDBH~(!O(-ZqXDY|h%_n&jv zC#QL|2)h1H6ZOIBKKVCwqv)1by8Y1`1|w2*-zEJaNSI9v$f=%%3j0lMrEC42o1*Jx zK|DH>d^J@`wn=0Lpx_L}lG|T^q?jrWd$=@itz0nQ04&8`e6{wk_doSsx z@EEj(&6jZPR>E0BvB&Ly^>{Vx_nRT;+Ry_VX>Va-eSUq8^hmJh*BEval--BC>@dRb z?|?qP7U!9W*=&m{Tj{S);){e}5x<$Ebe6qu%o6rp4*KtxZ|E`Wl|~r5mDou?k%jwP z`0XhC1iJjrnUQG%P!>vq+#gs|%(=EGFpjlo*y{EiyTEUDDu3iUV>IvYt%$Al=S;6N zN{|u33;pJl>!%#=t?1N&yFmNdf^;8{FlBshGyZn2mv3~+&7R-1pW&i@bIy{)_3|KW zXF~Re$-4fJxYrHcpd+mR7~Lbz_#wFF^!F77F7umuN_RUp```d*e}5otW;*`nC6;_G zaVc{LtogD2>ig4Cbek&ObFjGrZUe3R66v>K5zGU*|5UEJ}1`GNtcD&;1-bkTD>`c#*g3C)%DC=?Kd-&Ze45|!^5Ec?MS*8NO*==baR(;bZtIp z-6*>A&<(^bn6t!Y7>oq1yNLAXAYmhMy7?ac9-zoIezRKXZpY>@90RR;-5ln4Kte;} z5k*g*H`ThPtl#WV`S1`nO`#=d-MFCp&-47I>si`-KzG0L_a$s5!v`t4+ev>55>60T z4V><;%NjinJ<8!m*!3?w>@qXt z^H$=ddUm7VT%&Yf#3ll7fz~}v+P?Jbta(m#51W#33#jv7 zp4UlFh1GD9xx8p?=iIZjR4&s3^U$qa-?}=YCFh&n?7I(;jfXQm-^jdH6un2#3%Iu5 zqH`2}1%155AM}_4^O*+)ALw?~*zE^&`GhO^&Ex3W^0^$F@=y`9ZbQ^Gy)Wm+vB24nLstOc!GZUOU#@F=u~a4TcNt(|f&ca3vDM&^C3 zZlEgt0J^sSeifTBFb=ftRMPW7!l%SCx5urVr23@$?R^xSFV%1KZby&ekB6e@)Q1+Jk9Q&Ib#MX>!wjAmnDnSq zuKnD4SYf|0hh3v^J-=y;ZqU^|dl74+p(|+J^FHOCIJ^w~pz2n>1AVtM=2^;fN0Oge zD_Dc=9$f5xzxe{)Qm$^@&zP5m_dx63v4m$$U<3?-f*fF^nd9$D_x(9+vngwan(+{8;Wq(v^SSAK%Nb8WG0?gdNZ$_ieZ(@W)p z%omKoE&@7#-RzG?XEI+9MR%yueG|PourWn9YbEpLP!%ddzlRvNKj`?|*sTw`+=3mr zKajHSCWKux(Ek3_bvF@oC#d}GfL>4No1#0G^gNKTgt#_ys&;-`@>qgCpM*O3O%z>Q zAJ$^C3-*Hc_czjoS2?=Hh;v%cV;=LHbt->lJx@vO%7WI7JIX)l*7M9tQ-4F~?pOZa zja~?vrRa7b-2)_qiPMc&<$PTwz6WC+bj^xH{q2vq*U4Y2 z8|myf+31#X|ISiuzJN`jb$5|I1QMRPiN2TTt)=g=ni5MtX>~(gxG$k}kBi=F?zw^1 zy`OX&7yx1DREPE4AbK%3e?|9J_Y@uL<~NV3d>Dz%WOyI6?lRIFK*CPqobn;oo%?a< z+IlAa&OYpZ09iVmll71N`!FZ7CINR@xaK~AC z{1)!zHy@*$FMfpb4knLTi`{zAy6(^M=uG;Z2)gT(uJk*b&^(r+`)B>mh&269pfB@A zDg92lHJlqk`}oiMul@i*WeXchEA&^|?X3h9GTa4q8>SW}bpCS#LEtgkuc=I`~K zkN;SA{>te@Xph^{R+>38lxvtf#^Ew^<2P8qkJ(JcOG zZ^8b4Q&#ya{Z2PDd#33A)qW?6ZY^|6xeoP5?-dx6qWeDSg|G&e!}>sC{mqDRPJ7n< zL+lymk5qk-`+J+Q+X6a&Z9YhRCinNuvwriK%HNuNziK<0JO4y?Kfk5xe|7!_&>g6B z`!j!k0K3C~qWd!Yi<`5hOt$T{}*rsX>>2Z z_V4HhU-0w(gwy@K>~HFt!G3cBUEAK|{zzFg%ctnNhZm2|boD{^>rr$sL)W&quGsX4L7?;Zb<&ezE_?*Ky+zZsx9E$^FQZ!_?g>kS zuvr0Xz~gQs%G^u(d&u3Gx_duk>RQe@P3plZt}9|gxWA8%&CiVWJTDICg4Vf^bV;!5 zEwqlbtI$i_Z&dkLhJ9~4>==oBN;{=zN_{ zdKDanZ@{#m>{~l!AI8t;a7o^ORMfgQhIv7BZN2;*o6JqrP0+gMk}e7oN)YSkR;-`8 z9)!_ttd9S3Y|216u*Z*-rvmBQz+R8Xu*Xy@0=8_e6GYs+~cHbY@JXx%qSPXP%tiGw8)?{~AhCzzM9^*xI26m$dZzYDW@ z*sO;WpmoEWsjKh>tbiK4Z(-P*P9L$Jao-Mh*7KLacl>4%x~b)I6kDzPSIZ@e?sjx- zu;uatx_?$KfeC)|3wBcfB>cqwXMIWk1=^oNq%Q^urHOMYm*7P1!+)O8y&jt&R0FMB zpY($up#^cI1o>Btc`MbgNxin^5_p&M0lK!l+hH>h-T+VTbqB5gRuwU{w?8Dga_#5^S z?0@_l_EGH5Tl4?te+>JQ*xP>OUcO;hlJCx50k(coU-LF+dqM?ISZt3dmEjP&nt-gf#S(C4EyZhO%F1{eBGGo>2}dCV%-ZLa~XE63lO z-z0P(&M6x2e+U>i0AUKJlAjO7}Kw>qBGE zx@}4Kg+cHPXx&reoVKiWLyP=oGP<@sr@p^G?jZHyufD%OitY-Pzdu#>nBn;II%t1O zuE=AGRq>dspcH6-3%=?2n^bO#{mefk>aUk?NaYE7Og_-M;&)MglW+;K*0twtts6%7 zKWqPa-6*={(6#xS`rU=NgXFJ#ci~t+=Lk*_=k$L1(5HUpJN|iH^O@f~taRU@yr#l* zRc`p4cP8mYAYm18PW}d#aQ{{1Z%5`6gkAJ8w%kNl^uBic9r-P%atosSJh}lfB*^@S zAafk4x=$5%wmeIm&R_kWqY%1p{0shu(VhK&_^Y2WwDni}8$oydzn~jM_xS&zn^XSA z&^>EiqW*584()*ZSbwd{Z8zJ#0|`G7r_+tm%&Wxr;Gbp83!oI6y2%+LjK0kUGy*bYnJ=X z#(%-z0J`7(AO7Z4AA;zf^~GOr7dh#M&@J_U=;l-(!syM9{tKU+_1IZp(kc z-x#`2{U843RBmPk&nf&1x&d?-{2#hG)rTOu8_>1mvs^ov5B|wx-UodiI*aW-kZ=)k zI$eDp3a<2<1L)cy>xPzd{VV z!|spv!ZXG4TyZb3`6JhheMt`l33Co4e;3-0SM+$>tmgXbU(gMq+vi`q(h2s3)P%{pNji1M!?=o+*~cREBDx^S37H1|Z=9;$c~*uN%k}QsbaC+$a7Q zbR+2Q{ugwEYyIXYbj!q#kmsz)yVV0T%sSBdP?ha<-TZAxygtqP2|Yg-Sm!ss4T=2i zOdISCPk`2aiu4O0VHk0`_N~Vi5p=IYx0LJeNNmQz+n{ydCH)~tm`mJ`iGkGh9<#Us zQ^nN@e&IJ&(6#Mt^ihwQ2$MkTP9;4DBrGJ(={hNb?t@DAqGlPUG5PlhXkF2}f#2G( zy=KbwSBW&&<7Pe2^(ftc>Uung?nrcPdpn!?gY&@$)?ZxB+jyME)MA^2i;2^fo9>sR z=+0BReW+h!f*vy#v~EAPcP0-c^d`5eZ1$T*X>|AhP2CW>ozb=R_b7V5KxQmCf49HoF%c^rCSD@ick%7xwT#7G54^o1v~^=H*lqMpGoVQul#0`(tQ-0uFwOtZaib%f8_Uc z_bD4&)5v^DWLN%xT7R8YD%Vp9!jg4S(Bx-CfPN}Mi#lXMTWega)v zANpXk7(Dxubyt!;23PK9T`tITbbEMrlK2_9*r^Y7RegvY<2d83 zdV34~%6%Y}4=1qk9H4&yt$QKq>p;Ry#OcmMN$aS8^P6)wC+hEQ*!13zVeTf@x?I{kNoa8m!oUTtv@z0SNBqi?jq8kgM>}Q>2#&NQT^f}YKoX!mF^B~ z4#0Py{mpZb^%5YV1aVIJ5bzW+_o;j+jZN;39#cVLH0WX^kr}J0mLm;Dw z>8^Ai#pWsa6}0Z1hshs!A11<{1&k|?I{n#&O>@WVvDS^9SHuif`Oy12?%%+Rpmk%U zk3+#DtjU1TBgO>X^&AC|M$w7(&L5px*bKs@JIQjN`S2!5Ze+wmCBRl-N`E-dDL`qHItzrNPd)$1H$ zfg;B9Wul&4dz?OnvDwYU+TU8F?*R!95$o@iJGJ-s`1*Hyz6cd7VzSV+=i_GBbc0@? zbtjXKfrR74$AjcU<>Y=+k0*mAikKVF%@?;|%?37ke&C%mpmnb$eG62FygQTc_tkd$ zb)CP#ON*HL%HKNJHG%G+b+?k<55K_)(EaZO)$iDKFVT`kOiShOl_xkaur8)7vDRJL z$YUz9O~Q8mpJTfyRmAi|HxRero6*?5H!ZiRoub>AbX!;VG2-K_TaahVY?(U0cuAF}@qg_np5Y*7+;r zzHdRoG2(RnnXYG%D~gz(lx}U>#NBW&Xx&R6@R$eKCZRcTPP)M>i?Gfm;ctKP@dbDZ zwC*dU$AW}O#5w9-Rm7A+*M{Z!d5!>PVk@I_x=RVUkFw32O`8BcmJHD*Bt+4vh>mSv z>!>SB(O3cEpR1E}og%;IRA0^2Ma(@)cfHuauPM5Xe&k#ZkHO}H8AmVV z*y{XTO!{-!2s%HzxcM2lu828zOCmpI9j~m@-NydfKj*JH|DMS@-XOZA(&+B|o4O%% zZ$~%aIyB$Qybyeyq8sq>ehiRMjkrSK^l`rQD;?u|u+FM{5z|!ZUiTCB?L6idVx13n zl70{*G$+>YKev6B=yF9 z%7!WwF(Z|~rLido6+i-AzbstIoOOP3Un)L!ztEUa}|i4_ZQaXL0J&L{!81r zz{^y<|Nn6u&Pj?&=**cjJBg!QBT3P?AGcBw35^mbw zB_u^Pq*7FFg;4+Zn!Q)^oH_G7^8NmQ>-BnD);{xm=Go7>?6udv49(u8jQvNsj|SQt z<9G$HHQ;{HJ4AwCa8EAJ^cp=qpO3Z6lGyXUR3_*!{km&kcfm!1!0v9XT?p z{LOpsU@-KC@OzvWyzj;`&pTg^@x@I&haw%bB%*X5!RA?509tn)F#tVcwD0 z;Tl(W7CxGIYTa1pEZL#<+y0Jvb@$c?>+e6mncijOgs(vF*F9+&@&K%dB`~KI z?<8&Fop(Lyp3l{<%Dc&p5h-|MmVA${?VpFSsa8BgS^?E-{V6$*auj|88AhEQ;oUIY zKR(HO=Ge4VlfwB~as<8MZc$E2M-Li;*6T%iJUk9-Z|C=5Al$8(wDacd=W|XJPyMpE zhb`gXLO#C)qM+hc(wt{)W}A7wZCy?Fx4Ap_H|@#z=Jd~!YUtRsjn9@Uks)(hEJ?A4l`~BhWjeV7-pY%#bIc)Jg0&4ElugXzuIj@GR#fC%NZOF&wb{F*q_y z?pA&d#bzwb0`2GPtUGRI+YT^mHXSQ*F4C-+4D$N8^)q}|mMm3zNBDf1QW;VOv|bO& zec>LkYe1pRylc9S+xD!Ub9a{PM9+ywl|I7fUxoKUx96Rd4?xDr8B#3Fdz3KP4eRi6 zyw_ID`%J2PI*~B*0(663xjc3bR0geElX62asVVu+$|9kwX@_a9pQhc^qYcuO+%!5% z{M4P}74xte0gFKE_9&epQ(+6NgUqj)t6WX}w%|F4k6rBo$Hxg-(ga=G|4ut4Lux{2 z&~c4Y{tR})#>TuWnzbJjgS?pA&TU*n4`j(Wt#>MV&=|B{f68~kBVhD8wqoCDpUb_N zTD|DxEZ(({i089>eieKUdcRLElOdNuK7^n$V@`}d9U`7Hy|z?|K2XJrUuZ^_e4})S zV6zTNmo4b$nA7Ns;G9mZf8g9`4s$iye7%EiEKMDm6n&QY7O}AN;+y#VH_-Bof_?_h z%#dMl0Cqx`)m+cu_j)7g#bwCe!t>YgTUpW)U0Xjr%4f*=6*A;u(EGoqB6W5a{WFXH z3Dv)2?BIv{B6(aNuIKho6I0tiV{5YHMx{Fxn=vpEwC>ZC7s9*nCg^#>=4agFmC?P? z4TD71W=R-bn?Azk6Ic&vY-DILDeYUze}J7M1V7G_S<3Dhe=Fys?SN`G>8mJz34g&l z#>bi8Qzu-bm_+|JDf(HK>_*3qXBD&2fD1tHR}abq!K4x7<~>`3!1Ozt^t>v(f%CF$ ziT*bln`!U_Xx+Cce+XM)BgFh1;~3X6H{hGs4)yv&HeBMXx*KZ55Q?T8FDf-XW~46xf=(W>h|rybQ-H0 z{W427Du1hDQwJJ?*6m06cDNtzg*jE3zttlK)YVQe4(}*`BU`fMD7v=Z9>(Swcowv- zxi9xswwct1aW>U+oh|8;*5BaPED3B+==NdC`!@DVlXT;P-aqg0x8v!C&~2u4Kf>nJ zK!#KR?e8H|b~5BV$btB}c}q9GyS@IS+nH>qUn_#MYp!MkAGoP?(7W72CdteavSIg*Fxp`j3cew`CB6>Khtt3c~c zqx>Y8^eTC;=3JK`7G|B__G8`OBD=EWM|1~yx>0QQ!FlHt)cuh z=0$h~wC>xKKLnH3k{?euhVB5RyB?dbVH;@OpC}&yla7!dPdD;=mdsST#m=S9p)6?K zr5_iUnryoi>VwwJo#WP>jzi>+EZK&xZNF`?nF?j96x1D2HABY18dwG$SdX7`4f7P{ z7S6qHy>0Exb#1TS!s3(eI}-KQJ(oEuL_qudH|3M7xpBCXd^q!}JmyuId5L*`fq7M? zPsX7eibsz12yEuTD$u$E&ck1L4dz3+rNZyP@tY*Y(qxY}XZ`9Io+tHmqNn=gdvqIk z~oi@q5^UDPCeZ%o)T9qX8)yv88GG&T9G0!_)}3x=lH-%D zN;e;yN$@&o-A=U_BVja*fJkrV541HChxEQ~917@G^2tFJhxf4A1;2sTy|Z?P+y~FY zY?wp6#XjWxBNCV6=0?&fheUtM0 zunK(i2RlzRx*byJI@NsgDY_xEgQRuXopAx@foQk?HV~t}YWHz{9N*g= z8>asnH^h4LySM>`SSD_(jU2~sAbGDgu1-ZG_Q|_FC z$4gybQpYFL(Y49`{$3|f!<)~ie7^Kf%pC0B#oo^AuEp-r&q~M;a_!d&woURhr;{J| zdd3Al`9;O?F>L0*LeRP&QvM8fz*cyz5_`h9V&LP60T72VxJ5{*CrdsS=gF%yf}ui ze@59yuzMbsfok9ByC|R5AVbapv;Nng_hp(s^BQA^Nzq0=c?})gPU`ZxCXf$y|IGEf zS1G>>pTQc??Yh^T!u>jQnNPMU-9y-vx|sPeXx-YBFNOBd3XE>O3a(zrs}J4&fwZCbJNyFuD;JEz z@HvI+E!@;6Zz$bsnx@J1a06&v<8NQKnRE-eZV#q?nWXD2hVIu&_YnTPg83TIx+NNN zTyEm(wje*AZm5}0GJj6gTMehU)Pn|Kb#XD{Qp#n~HmL&n@x~KrPJ2Mt_KW1_uuXd~ z{o+KQ!w#c+jq>;4hT;Y8AGYo6FSehw(ez}I8qD{O=Wh(%JCwiwzuH-_g-@PUx(>0c z3k|`>*TkU(flk zW_+^#5>mGz#G}i7Mf~k}@pW4Hq|vTKd+7R|$osJp(%;j)+*Qoj&$hpz4EK;E-$xQj z5eFxaIG}6i!xgZ*=%IAUAvgY7-P)8d0h9VXSxgQvMke2fA8PUcfoR41`BBq-Dy%-=ikg0JgfFlgO*lwW};nBQa8^|shM-!SK0P2-VbzHyaL!suFmzrf~4 z*aKR(@{STx8=68xh%zUz_r0w2;t-=d-stH@uJ*}C=-PVwg!cy=<+|B|r1*LtmoM0E z{;vJq>gnqEIvst|_Sb~&H`r~5AO3@GrAyquYu)U+?)k|f+spUhI<|5zjDL9i3des%Kt<+#So2jDq)8rG`%b)NL* z`slUA#-zygK6!jkVt)1$HqFoG9Gu*2^>ot?P`2kH#?A@(WTmnzei`e4a2A-++_Oth z>(6hjvaKmtdlQ*O%uP&+qH_$L2JsSeb3Qj1!l3tSE#=KnJeVPS$;Vv6{5^<0^VvP# z`C-cuyqC#*xkeNhY`%frpmk4emLXYiG1P%jKjNG3 z?teuu4*ET1p+P=rg|3ZnOKh%%9-wtUqP!kVijkXRT3L>5dcAfOb@oqu2m9n!bnSTY z12)GXt$9J+Y|6P{Qf+dxesAMomCVEvUleDbS`Z}FDY8&mgGbDe0CZ5DNo!78=2i^s( zyNdEgFzI@Z6LV-|$@7ukBNMvL-5l4H?iOr6zbZ|BNYed-a$26NTZX*3lQ<6BdNaC@ zdi_|!taqi*t$?le_e6DL=ng~I9^b2?cg5MPohIqlr`!ZgYD1ptc&XQALihOOex-XQ zHeKL4(Ei>?c_5fHl>B(QQFNa~*Y>wknYCxOsYzrN>{fB8SRq~m9DuT zu`|CPbx)FRT+sXH-`tPrpnCw_e9vYqdXwRyB;C1`Uj~zwkT1HtaC?}vll4GPCwwpS z-UEeoKl&eaV`F^M5Zz4gdu)6+C+VJOe4Vk(f3z<5Fl|Ni+az7@Yvb8}`rW`h{%ZSi z5ZwtX4&R}-9}XtzHtEfKx?8*Ptz+{45Z?u!1F>;Fd0y#Wf{oE_ORn3Q(H-jPj{O(9 z;qg9MjV`AM@iZBmCtxmU-H$1M4S&G_D8~+u@t!-X?j48Bx^-9U@BKdcUFnu=!}WB? z06rAXjvcD(%9fD05rh(R7PI)67hF#|WjJ?Y* zb#*x=*LjE&o62 zhS80p>%{j^Bn!Q>p>mRLF6FvlQbTfm9%PRf`g|~k?zbs)FZ&;LgAe-TsER`~^x8oC zB;8Jwdx1%HI~{+0D~hh~4|}i^>4)uL7zSx*^mL`tMp1qM%sK0xO3V```y`0n`1m(* zUkrbH8s>s-pYKur7)<(xeDiXyhjER`#?IvLu>R!4Kf%0Xs!uwiYuo2C?uGsVyPrVo zdLNHxzwozI^VR|MNNL3!(QZdUn2C4V{aj5$OG& zNcj<10MCGaPAT6T|IF__SU-c0`Xq2Lao(^5o3*eGv~Cp^ur7dBa2e>|!5iu6j$mHP zC9QZ0Kkk#J=vsfT#bzWt1X}ku%15C56`WtgoW`8maxK@K_vU)zYE1d-Jn54=(KWF) zsVX)XK|9d8cT&C&=ECDJh4Y+>pSsVzckpx%Z(;4%7?Gk8)*sNd{o!qFeuu-Lb*pqB z4q(zHv(g=n?R1z4T6Y}Jl+E*W zZzxmndaG?;y4^Z+eR5don)%TS*e^=bJ<;P<2;B;Y3LXa*qxnvfZt`*9c<(`qqFX)ttu^T<^77De}I zrEC5DElKx8{gr1~AJw|dYxkr1N0M&bQSYCBGp}{f{RQ1z&*o3`(yq*qlAzmf4&^#v z(xv1>sxoNu?pPZGlly4EK{Ke5ocTUE^KhcxT4IwA{Xy$KNck}^={a&ePFiir#dgw=aIssrZc)u+=3<6tGFKy@_O% zYTv}ZGT$`5hP`!SGe7F?=|o;*{SsZX4<=P%0k;KQ4qA653z-|C?lr8lK<2f@h6ZJL~W2cm7GNR5m=t$`bM4YtP!D886A6kc#_Zd z>C8RFp#9t5m1A7D3<-AUeqZP^yO@k&VP@q>-tqISd;P&2&)UYlqaEz>$tgz?x-ENT z$TiRdwC+8WAB9CQ56tm=A(;Ih?j0YrZgjU#YNP9T-}5#$>tPdUUAdn7;=rUc$<6Ot z+Vc;iZIY=c>#zLklPi^O0GnFS6twPO%A?^Km;pmL!CJ|EmPRk)`D=ck@1OP7-&n_0 zad-opk6<-u-2;?MhgiRbilE~#CDnXkFXxS(t~rOQhRwy$0<>;V$^&2|41@SHAOUy2 zGzZ-%wt5~C+UJuM=-OoFOJ-agkF9N2|8~AKi}nyj?`O6DlhAn)UIFc=nRu7>Cf}9F zQ;h?<9mwxKDR(r{4r*f47@C6Cy^eA}FlmJO8*OU{=c1;*Y%=X2V2ntiKYUUH-AuPA z_hT~y9yPXXBQuHj7jyrVS6D@!YJAD#gH7WfXN)-Lla}b(RBHzB`oivWuyN&YX^q&P z2X@{O#;!YdxGh6jX8M}X7rTLbKS2BQB;|MDYxo>Ga3kMH?(3S;l(m~_#pD6L+RO{B zKcT;vXDNSJG^$c zn0A-x`ExS4Ng>IWACy0~-A%^U`g20<4!x6)CF=1Zbe6-oImxHqVN>?XD_q;Se@8deiPe>#n7|56Yx@_wdoMDp8luNlwj zW$|HsoCu$mEpyPd$?ktUZ2z16kD>R0(tDy|nsh+xYA}grWbU`fwDoHHg3e!~|2n5< z%XTl0+}^WV z`Vrgz#?N4-Y{^B>*3&L@GWv7xH)uaEq1+0(LPs$7zs#)a*3(+=c&O_sd`>pcGrPKD zaQ6mm2E!=Ox}Q+~7WTs~Fvr<;HNE2@lhJt!o>6*)r1%GvKLzt_?jHKkV#Z68oEq6uHNGeDqI|<=zK5T{ z?jL_Cevop>TikWKe8+7s#v+RSm3(qB|2JzyW%x`0&IcX$Jjx-s75YJkfy^71avbG) zZ;W(_}Kw<730;rVI4;2v})!er2XzDwDpFUdDR zup`ejw07q;2fY5F{fyPgmXFZ2{camJXAfe19klMgTRArw%sCFshn+ugF4WmQ581lU zy&kLkhZD?}n~SBz+w+BpSHF#Z2M>VOy?6-EPs06hH~YL#oh`3pXU}KW^0%r(GvrRt{=7Vlxe}azJI`pr zp;cVN{nL$Kw354@X1s3dIS}cXEoIUYx)ZQ@44wq7yNvQ`FzE~OLo}4(oO|f&@A^0p z?UXHb(6#mQEjA5?GoJ#j`wr!8X4@T{%aA+m`0Xdp-^_Wg-@0DH*JaBTrF$B7XG3k! zx?L#ufuV2<=y`06@zBf%v~Hvu^9rRq4x7p&h%ac}{E@67!Z~;Gd;tWHa=o!tafw{V zbJ8~#Zb!jE*)p_vA`T<583(gL>mH+g)+mm%Pz(AG;y$>TyZ;qy7WOwfBwIdJy4Pa! z1Z)JYyXQ27pOj$YWPC z4s!0}dg}iBO?F~ECNwo$9zfTQ4?w{CHxsSR5t-G7@Q3#A@%m#g4KD}w-ei40)`I6GT7Mos>4_dcRyEGZW zHk0lp*W-?ju^x9qk7vtlr8@zetx)m)g1YGwI3I;O;Wj8cl)2rHZok;+y;DHzhUaGU zZp1_!-o$1noH?zmb=-Qb@nSKFnRSsA z{UW$LTW(aknbT-vkPTY*Qp)YXq^{)kno)0@N9|GLq>h90Q8w>)NsK!;U^5XGfYv?d zA&lvJ z`4!#VxCPI#V*3HC2Cch=^3QM>_JVo8;e6J4x_reP*=xVeFHD^G#?WnfQlj2uI_Ei1 z6SQt0%3+AW3^4Iczszk9x!Vi3-{2>#pD5k8u~`j=K(?b40>d5Qk>Pq(AoqC-*n!^K9OGqjVqPdNwoz zt@}9TCGZJ2oTr-e)dQ^SML7>V_A1;HVm%7)>8W4*pCtXug^tULw zr<6|k+XlO9p%-Y~(Uc#AhatM8SbQBj6WuACA2v@hPDcLBmdljx)7ZTXt3c}>rF_O* z=EYD2OdMuacl+D$6zwd0G+S;{x^1xO3O9k)9ZPvCJPv`b^n2zG9jnnNXb)Xd_!~Z! zEpwHw^><#9Zc+ZOOyO_n?`-)}>3)e`41P?~&3}dW^RewHOncD%{ds$TZ~qkj#?U?K zltjH1pGO?we9&>|L3tQF1owlEZ$;iWklZh##r$%K(zX7+fUVXo%HMDbe}id$>8Etx zL2nK0PttAnEccGWaOe-l-{xE|$fVweq&N;q3BNp{bWOd@$1V!mUsG@Ujoy6LCqTy` zKSdm3CH=e)DiL2Bhx4%2x<$oddWtxNGW=5P)P%0Bw+2bNMb+El6#fQJ@=IN%YyIt) zq+67~^Hca6MfXOfdk1>=!)r;p>CbVDh6|wv==oXZj>7FMcCue)C|&DsFKqv9e3zu~ zH&og$%a!h6^zMO4NxIKdegl?4g^I=FL679jpVIa0zx2SsCk;307x}BA-ZD)5T=@!+_=BMyCa++Vp zD_!gFt4X>=`FkjZzs~7?c~j}ycJ^+PZc***Pzry8<@~Z!=~{o!Sn%)TTl!h|c%+ZV zQFJSmP1Kw9H;|-Tl)rhrFC%&Ujg|LHp3=4Tc3YBeQS~-6g>JN>Uv5{rHVzAtbc?Dt zCq*2BXZdBG(zX7+nWS5kzdKX->-hZgh0?YD{+gs)l)v>-_!~jDVA)Fj<6Der+&FJy>-8Gm2nJix4b zZccIBbR54tqI569rWITVdfa)C@;vwumVzG7#;1sbQ^_x@m99M=Z^2gU7Ii${oI+PB z`{kh0wf*h%7YphZRd2aJ7Opp^ieD<9o@fu&-(E?&Mfp2Cg|6iK|i#iYJmZJTJ&-Y7vrEBNa^OJOooL8raZ>WY}!syyKY(ek+MclLd zazTGPzs|K3Xz>QeWvKWoJA4xFRey_P{x0`C%dC6aI7IXOa>JR4IN0;erEeD0E$V!8 zM~d^!U|YZ3r*!>`nJ2**(D7~g7T0HB0XzeyzpdqbGfcfTc&hOEaqvpNyrOi=z0EU} z@ZLKGbsv70{vBmK6xM*z-MobBY0ss}p&tsLZwB-I@~zUf<;csY& zU%D$@8;4#=x<$odehOV@m|rF-UE3aJBp1(7il`ZpKFi+e1;h8&l|p zM)>7!rEAXL&P20Xl5Tg(LtzpmpTFht9+u>O5gN((t8{G~W+&+uISVrgZJR zWKoiCQS*|SDg2F&^2_OGCF;%U?mPkAohfu9Va8u{?eW-I!8#TcUsLeR(^6=e+x_G+Fmp;p4IM0P|nvuRR`b#8!{LMIDd3^)Ec`L?-*?A*E~Ut=^h~ zx<%F7(G>OOO!3P{O4p2&P0_qLNp~^jb?__f06k7dQjC+%G`}2Cy4GLc+JEnF+4+Uf zVpaAIpVGDc?V=>zqWW6{-XoOU-<%noZ=!44SwHk1gLjj3 zFZ!4@cNhRYA$&Q{O>nKO3-_jUIPA8E0`oo|_e!pHC-==sjfPYU;o z(35^?i>~ACtQ}LvXR5OJ#}p+Bhst(k&_up%nf`(XHoC=-Ty%HA%Wf zu0L>-UGjJqd)qI!DqZVu;ERHBD9Ya*ZNx{Nw+9}ho|s2ywop0p=-y7 zd(c}0RW=v&xAB*ZyYMhffNmV;JN&^tNB45~ATL=manSuZ{2}WPIf?j|{)+3PP!)80 zc#85OFli~d=@&6DdN$?pH+vsbbfsUKpz9a|(kg6r!yeGOO}DW21t#?+H`mea`)aJN z_BXc1FZs$}JMIj{R_hiu?krC+?u0(^%QU6?IeOp2Nm~o*UPt*(cmyVaiNm6++&HXE zQE&2@U*1PI9N$Bccd=Oo>p=Va4duP?Hynn_7w|p`a6V>S_u5&#eIlhjohZ67Tv5BbZup5CpPEKYG48Lh7>eCQSPfdY`!~!p;ca*k zOdQIt<{k*vOU9p5c)dh6`{g{Pd(yYOKLgGJty`6HLuds}z#KPi9A>5HZ&7rwQo5I8 z(;f0b>y~Pl#_z{)EgjD0|9YHUltMT1rC&xWT{})bnxtFQI9c(R!sAYOi=X>M67l^E zy={;gE9h@0%0poaj0F?ll>^=Oke}lC7X8{U>y)nXcPVzCgO0-~+h|+R1TF%-uAHC3 z-^jOq`7=q^+)r>FwpzESI4n+~8{Xy@$4QJ2525!AEK1V-f$|?vdOKqTn0d+8n%p1X zlA{@`K2AYWxak9z~(v_58B@gzT-ViFdPQKfi65}!TqVZJYU=);q~~YhpSUh^cA`Dl@oayRZc*der2`AkcVxF; z>L^`1kGgtCL4S*yN3BiK&SJl?POEh7d2A#}x2W^u%wG%li|B7$mqyp|g0~sHUGP_u zZj0}EHU#=XPcX*|bG^mPe_!+BppO^fy^Oy~*PdTY!dBOttuvGVoAZkZy1yvhY3R*{ zc}cpsbRBOeZ$a;N7?-5`I_2fC9@fGko)xzBR=a`gukIJ-1LKvyKVc(3;;Vu0>gk3x zV=?7bVA57{GoG#U?*Fy(hdlmf=OvM&e%{rd@b?F78t!Dx8no^olyiP^b?cEkJZI9O zQ^EO;@i%0?m=sLQk?qP~+mD-Kt96U2w>c^5Et;Mqr<{{$53|vG1-?wu&Hb5sN1-cp z0CT*s*CD5S@zrsNmdugHO4qiB`>@si7S$f+r)Uq6%pAEDT_+wD<~!(ZfS;3eYwhA* zIcN>v4B=XcY7gThh1)~0RE|8UbO&NL8peV4cMfHn-sJzs>u;fxb7ZyBwd2FmBwed% z@}kBEZkdXwFuMEDr8&ma2k5Pa4N1D+QvMnC!n~@?6M633Jkw*^?(+F=KK;T(`;DPn zrLz0nkr6(GUDj^iQ2{y*cTs*2UW9p2j^`vgc60R(dG%I_@A{`-oSGxoDcujS*#KXI z);&V`lPZ(fZbzTJ#?>|2CVkwQwb1w{ z=*Q)9dn5w*YW4bcj!9a z_mthk^FdG}5RzT0ujIT*(~j8_oq--zoRB>u>q(#K;(tVwG|v58X_+C}w=PAG@bP>wZpoH=MMO za~E0{rF#x`b)gSv-3^ovf`32P3!qm+&I2xT>#f13uD@D0 zoJ+l-8}$6`j7=XH3|e@dNo`CGLS>y8JyW5NJ#j8YSdpfadIkE}e23~m)Hc|K# zwC+yI2cXme+8XqtUszpv&h^{8H<(8h<0*80jvPbR@ycgmlM8i0>$aeLC3J!0_mr3O zboFsFSUpE-azBIBy%DHFBg2y8rYyY+i(Apmn!W z-f6b|&Ke_m$7YH5J?DDCKqFDT^MQY{97^PbdyBw$lTDJz}AehveymU40Ddt?j zv@e^CuDzeYshuN>mF|_;TnE>K)*VXu9x!Ptd2RZIaICkQCVzIYh~M)!T8D8RU6x(r z=}~OnhfSb$Px*tj8E6MhAiW3emoeDrm7ebQi?is*3_bA_tCu598UJm6>xRuOFvZyN z2|M3eNqHlD2j;m&`~0WTo$if0qwv+%o7B&d?n?J1u1WrdZLxy|bv-xY*%CgZ*Q<@T zNxHu|=#EypCD42S&f-!!Nq52x#icykOv<>g;O`B&ss(k!=st(86Sv^~B-qx1x=FgN zC|?aG-9X;!62>mDnkLu%B6?AdtW*A)_s{mlZUE@`dS4sQ{>}SmW9S}Kx;Kv$xfRVJ zMd*&>GslasG{_MrHxY;7=-mfXl61TEC@yo@_5$=7oEHDR0o#u+RpUcy?$``)7tp1&n`i8S(bV~uiTBD%I;nD=2mh23n>x+nTR%uwSTevdEV@AK%r z4a<^rzoPsDn6!^P+K*#AgP?9_+F$ddtgoV5){DcR*qm~h-%bMU@41xgfJs$eO;33} zOTYg+itYwxlId}oIZplBHM?qaU9~%73`Ng$v9EN+kM|bjGYhy$Tx5|+^=ni*_62#_8=muK% z8Olpw3v7UjD|j!7r@PrZ&ez4@O;0D>CP&(#>v-jT*c=5pQcyRCa!oL)0eJ(b=;NEy zE=LBSn;*BJJ!8`ru7EVQdE;-%>nZnx`K-;_d6{hs(chUjp>sbvVNYimpAEwp(EB}= zas*6TKpyRtcy86|eapJNop;FPIkF&y?yLW!u5(3>e2nfC&)+C|+u-{o-HfBu4VZN5 z2L9n(*v|V?`5WtyBY&YwSBa-8*w%o0pySZsi;~imZLJ}*4DF9&qCNkaAXZg=zv`p=muK%Cdy$jX}tM6CuYg@W%@z&_$R2ht8%0Xy4K$**vyB8pmh&Z zE^&;$3ss=(5~d4#-1~ha%3u3Rr%;z1>5XoX@7aS;Lu|UhV9>e;jn-ex`=KsGhH+i@ z2e*G6;{2Ug70Su0c*l+Pw|kC^N7uHG8?m_!ZU?P9)o8(sFduqVpx&x6H~pOc>-oDi znuxDlpCc>LwP_hPpTOCFb39<9*ALRCQ~n6{f_Wd}BI0Y>K?BZTObXqUBb(7F8!wsP z8O<#4J7{)3(}?YP-st{seg`dv?$Q4P-B54Nqs~u^D_7vt@7JfvVX*N$lPSzG%H2GF zm(M664bCduuJrkt^vRJ<=-PI5BesL!PSCnzDNlhX;1L)}J=ykJ+dKa?=aaS{#L%6D zu01Z!+M8D3_rFYhjlVCk{cSMmJ@VttJA(N+^78+IZUo&={ttBJX6EBby7P$23!vj` zj!zn$i_E>Zt3d(|Kl4)x2n=zia(#irX+vArTjDe0eivJTRGMOOds2t z%HO^@(jHyg-v(V;Qes`HZ?JJ-_cCs0`!V!PDp@Qu<@#8RE^OoA^vjXkly2itnv8Cl zCSyVCwqSb)FsUjIk+CWEKYbQ2UE(t*y#MG$(6i(JY<%c(EKOb@*M1fs zRzjAt&7_aWN1mNnKQevZq=(h|M)3X|dEMK8WAiaK^XPY*lXORZlrB3x-M!@IdYN69 za#ai74-!Ln4Z68TlynH2A6unK@sb7oJ&kfUm~;+#2gW9Qyt29{akA1h{t4Q_1lG}% zZZ0;<8AEE3>o{COxh0s?p8R;a&cqzqhOSLlVbh4;RPIVnv#|Xjy)WgvU>unJA705F zOVgkCEGKasLC21t5AeB}@HiO%rn@d>w0^RrJkPc_;APPLzam;@-wTW@=w47Wv0k*) z*f1uqB{#Ycd%CB7ktW}=&7_^=sp`q}Q@g$ud>}`zK-aYp*^A978JTh#Xx)~SuYvy1 z3-tPIbehceygWUb^cCouYtH*n1 zMvfd%{vN~Tq?0nG9BADj<#upAbOs&YU(GbbRwu#5edf^FefNdl-t%RCofk?t%SjvW9Ij*aTWP?8R62i_q*GIjrKa z2OBvBO#`v9{o=)kOG<6FwSY#Tbw{c=*mcy%GdYq|J24)#$EGt}2WG3MTf86T(O|}` z=HGMv$8pA_=$ssBguUHgyG}TX&uYKiPrLt`-w4!x*?QOe8$bmyXL+vy7I zeu0zAxN)$$`KM*dC^+qO`ZLIWCI_R_B=7QK5?SHiFWZIrgB@QYOLOEa72g?WFpk1X zF!8mz2PjLqOgS5TpyM0$#upu5=Uv*9(rtiEcNhy=xBHpQ17I_(gCW0hZ{z~zu05GQ z{^^ceS~s$a>+j41ZF?wNK2vJIg`joK`^`GBtv7_g^w<8C-0^UV*G{!=bajr@Lf5Sx z;aRs#84ANe>xL;$1e2zb>w2^8OxK&N$&qHt-$$@{9$o~k`#$AQz@#t8b$qR^_BV!Z zC#Cx>HW?K%r8Q{Xy_AoEQ<1S91`!7y36n$guZVY@QR_ON=13omM>{*fy9!(L{v!O{%3yT#!bHD_eVHTgqid6y zcRze}nry_@Y&HGjMCRSWuX5xYrB|mXzo(1V7AWTFk)<_fyKPhEyCc~B?8S}gr0n4H zN1&pw;Qn1t`4*T4lfb;^XFl`l@${q04bx;0wmNRXuNhY_D7b$wVOM>JJFh;G{j1Ex zE`nZH^i03xHZ^$#t<|s{bUoD0&XgeB2;IT>x$qs1qtwGr>bHNApH3`C`ls;oPHc_$ zC+cSyy)jDfZgeKXWTl5}+H;g&2Xj0s&7d3J#ym{fE#Ys=;VUrnT5p_8_xtH%a3@$> z(|^ZsZevpDN6tT#&SXCK6ubdOXOlYwq;H_S3yy%9AFrctP1(%(P;FPo`H6KwbQ~i} zDwC5bZ_O{kz2k1Yx4AkQT`BhllkOl-HIFs(EXQjK;axeh7v0>rg~!SIe98w{l2xx?i@L*Zo=Phu=yPhgVwz^kSRBTNq3N^(l!3tdAIW$>%{0< zfA7O)20RK{*XUjBFmHj&K##9;yyL-!>_q>UeK}%&N5wIQq~6%Hzb;K~CD*z=*>*SE zOd7%e|C7H>Qg zdcu8P*lvd(K>M3>cBV80liHH&IN0M%9)GjCp+9ou7o~eOHg~~8pmiUwlqoCVF#HNy zxAd)r?+*$6O}+8nS;sg+I_I2BsReaG>mGZ%gtTCrNgc@lQ+#cE2ueWm(Y0~77MqR} z(&VNj-8(3c2a_Hm*Z!u8gA@zMM5Q|mn+5O^Xn$8w{sK&jksnVthVCmW4nJYDh4qMH zl?&?bSf3^VwwY9o{6AekB*gwd^muAS$ z%G<%DUF2n%*V*{m_N(I?EE|w^=r-{DJ%G*0RhdVCj_;z}Oj!cEVJk#$=GflPo!3_*Qxt{K@YMk%DEYP~<&j;9M(qH7M){)wU65~$P7myq#60QY( z$*h~7mnoT$tZOu@v)!!Y==QMIYiD`<-HvDB?0_^y*T(k}?ApQ=NxF|xo(m=|BG-}B9!hcyJq2CW-Q;cqk$kR{6B`qf^CfH6U%!b>bFWzr-d8SA*6ye}0H< zPr;*bK+?{4$vI9=X=FaTs4k{f=ghfMjsKZQJk1*wj0gE}O}6?;MG9b z<3q4sKn^S28Q3g@MWA(eP~HP))X9_*aNrWgi^i^QwijQc`%K|(1K0tZVV!Dc z<2~J(-wD^1-4tvTkVEL&RHkkw^I?vWVCMbX+^R}%O!-Ra2KxM=HZd?M)HoogUXtiv zefZo&m<-y#TJ`83&>OnKtaB6VA4k1@V19>dxGO8srUAJYU7MyD8<+#yzi%o32FF1A z*IgGhE3`EtZ9JO z&8K_^JP6|;yK>?JSx^cAdjPK`)PI7__|?tJ!oCejd*rB^S)I5U#~06 zeHWNyol*iwi#y^1$y8Y0#$FE%0zE`2SHc7W>vovYJ-%K*UGnJ~|^!iW~ z-3QTi;ugHJAH84TNRn=}0rOBe0{cPt>Jf=LU>&HAlf$4=EAq-Q|x zP`a;SQ}WVGxg50amPV}OH|97F9l)%^Rj%fZXUz&fFCOa~kQXmY#9=-*YhWvA-O877 zT?o2ECn!sN?R(4@dE;*$`(oQ~a6mwIE8U^kJOokDx{ZSz6X7nn4UBFVFfmyCXW{jQ z*r0&?q2llsHXp+0pmmQ?KCKDIC^!pry+ytDtNjfP4#-WMKW4^jg!??Oxdbi)t$Quy zn_xH$0<(^7j~89McBXZMw*}+@bZtMr7n`Tx8PK{1DQ7gz6hE8^(F+p4Bii57jd8%X z@eL29zoBc>dDzs024J>sb9W@|8p=0-9dAOz0`}1(as42p>Y5UAcGEPe0lA>t-}Dsi z#JMLRJC$xIlqMgSVtp92uJPe!{$|oZa; zpnHFq*RJE&Z#`Gyf78b&Hwu6Mt@}#^-GS)Zdi(zs-x#_RRU8JgpSQy}NRGo3YDhp?nt5Qj0wmJ6^E6q#eIn8+9ciY*}eyk!a>mf9`bZ` zJBy&Z7hT7zlnv*=PqrrZtk!H#vN9qeSRHz_zSz%z1*dF9=F?m>7OOg&luKBc?`4#3aQj`7{D zzm=`yo@ZRhj@$FA@O=Rpg|6*i8LcwqR5%N?ZVk!}pdB;=9naDW-Em8w4>;ok@-VuN zah}u}o4zm*wC=-{XM;&^kf*x;(!{fY8wLsAACN`px)vfIVDkyA2d#UAaz-BK$Z#s? zm^z-n`g(Y1LO^z@`0lKfE@xwRE@<7jqx^Ft+q=UU0%yiqQ&;soT@&Ab>VIND(wish z{}yaUz*x}rKacY3umrTP4X87dqUh9eb;72+iq9E729y3US-O-QRL}Lr_+wL9;un5^ zc|P`bTpHV&Si^KM`*+Zl$(T*~1u*Fi@>J{1dOq$v7?5u0+V-;)n-%amXx)-+Sf_&y zkOxC9<{I!zZhPGA&A-gLu)R(o(*iOAUDp$y-NU9{?-DYWTv(b= zV;u!u$16XN&9|@{v~I9{ru2mS;7;h(jBB))dAfTO>ps@s;FAG4vqd5fr7}y(0iGv# z3R|svCfgk_sVcedpQ+*yMz=1yw%(pW?-h6>Np}V14Pa7?d=~S%5c6^Ud!72eo$ylu z>42^ix8PMA*zAShLHm2|1HV*Q1Kn5t?w%Bxq8$j!Z zDNlmg@F?ixYM$3W^>qzrc0i`6I6RNd3RnkP_kt@jr7?7ePEffP_b=6O{q5%In)Yk` zjm%+wtNiVa&3KpvTDNKk)^4CLgdjaPF>kIu+non$f1~Ed!?+*TjU3MkV>1gD8e3v% z`|(c7N1^PMoM(aV7r76+?JSSaTYrPk2c!|YHr+dyI>hdLFyoY`oBkZzm%s|p<5b8S zr17}wf^GS8lAE$g2? ze#ncgtE2l*f5P?$qj^<9U88q5+a|(T(EYTRS1hZa zXk?I^t)9PW6)0B%ThB4Mt7cV^y$UCf8DczH?^FaW#ZUf4BVA9p(dVI0{L+eJC1f)!xGzrEn zM6Sc;c9;lScPZsn@D*%?(p(=f$McF?xZdf-bJQ;kfu2reSwJ=@-Cwc!3r@SHpl%b& z?V%@J2U>S?3f*v&>xFF-$FU*UOoRw%e@l1fo;|1s=Yu)k*ypc??@e($UmjpSk%&W2 zYzD$8(7GQ{UJtuq8?3AB&f`rSz+rs zKA6;uT=ySaZ$C5cwvB&6B)lRZ{`QG}&>ov>p*v{Zp_K0dlO~a;Y7d7v|F+ll!Yc!E zJ-XK48Q849pWnYG*Sf1dNRvgL?hR#9uMg|vL}(TBJ9M46Cp-_1?Fv|vr28A?BVbaA zYg5PJb*{fP^>kzn?M(T53O45Xku%A)zvolF2uuo+>-9AqUpqd<(9OC$;cp%`U7#Ci z-IbI#f=SZw|{n*x<^9k`q*R^0ChE4IV+*biw_c6-zU>UptTDKzCM~u&TeCI!L z_$(j|uSkqv+pzfs4gt-^jyvf&*KvOhGy*+-<i0DSH*wv(LqhjYY)lq|mMOKkCY6 z)(ezwZS-10wb>P?Y#Lzah_Kx`($OwhU?Q~niB?aOv3*NE%uya$E3wLsG(y+5-?G^ByCz*al55>1lvjdD>&R2->hr#ERY&eb*Uld{Ve>uw z1X}m7DGzdWU)We8<#DJk%X~HtPOc-1Q^et9G_>xC#vyv1BYRWC;kG2*6OBWth9kAR z7LLP~B;6B@gVc0npwiui-eEYFq-*M{(yeZMbIDWnV;x_q<;VhbZK{b)eF%b?$$H~M z+SQcpTrd9FI*x3@&hZR~@prQZHj3QT%lUSlgz{7{sm(XVWRa72e%EcCfB#)9l&J3r zy6M*?#;eDS?oDYjJ4yF>%CCF6!&zT8>o;Y&7f`R;>h&w<0!Qkg%h$)#GHgGEt)TtA z`!qgH#KskS+_)gsxySxK`YR@H&Px5L*b5N z1%J0^r#BA%R4x&RD7yWX?nvw=!CcU~`-d{NLW5z9>ENs+z6afLCEuGT>3$l?bEIqc zM0`hJGXWj}t-F-+D%b{JfNn=eJ%96vfbFNT){aa-*N!W{V)G}Y-Cj`Fpu;#NBR?zM(}#1shQ6S6 zzoGmWWZ%KD7Gkwo&#mS9xmd+_kJlWWtLPU!68--oZ0>=vpmjHmpikV%nj18LeCA*F zKA>E#yPCeC*AIi&IWqbBMEjkO%?elpTDR+69KRp}Gr{S^JoF0J-(I)5^Dq6pW%x!% zwxVn6%^VMY!0uKeVbGtK7Mt@$`+kJV zUVqBtd)W1O3ify8FSVcF1=Hkbu-7l_xczF+;n$2%Aq}J(#VYziA~#a~~Pl>ki>z4(Fo@e**liDqH}@pBCPJUP(D0ZijC7rb}t& z(hGCl{aopdbH<+=JqIGUJMuQVw!e(V?je{3TKBDc89$-K80Hk@=Dj;HZ+<#_ojYzk z#X1yU6;IK-9XZk~p*s${N8xGEy6;e40h?hR*!i@nmv&x#Yu#Abk-;4AO`A0-hRqtj z=Vx-Qn>LnnAUGF%(4}%>ybpQ0={vXw%j@6HXh*(4w}UGyb+Bm)EkWzfrTj9ifOjFt zoWkD!u*ZwI08-B;0d zEx7K0O&i`N>m=#=ImfN)={Di~Ce{2ZkMI0vT$$j=Zz>M8v26&A!L)m?{g%w5+!3mu z#~M@()?U^p#^fPP*dh}hsnRF0-`DfmJ}?k;Jx!zh9J~#$fWD8TVqN!qI7l5?|00td z>7;Z&#AYpg3R?F|$~Nuf|Hm8mp&qPIKf(bRDl!dSN#j9s{j=h;r!(tQ~_|xIzJT2aumZI1kCYFAN$C^a_035G zInUUb=nn;SXFBpUx^|vc8k<^B7qsqulxMun+Z(YQU<2Ds&zq1_Hf)epPf^CIK%zHrVcB0%H?t$CE ztn+f|K7JmzBt?60o^)gbx=!2^)=;o{0bT~J`wQj6U{Z+(Qr~x1pV&08<88!|w0`b5 z-ii2>#ikY92wHa~<&9A6LGD2$4|9wx9YtpoG1*^CGK=#*#0z=$&(n40IdUnwHuU<8`Vf02Sy;?Jh%VpR#ReF3^S|hgSfz^v)x6s=^<4X%Z zKLEyp-oNsbY3Fb;)PeELcUIPQ+hiB^&-mk`VK(;mFZP@xXPTFXc&QUMy`eAQt{wN& zS5y8O{s!}&+&SmDnv3b1CWRNW4vbE2yhQw`@XjMR7qowmQ+^iSgSVi$lQ`~=_xhtb zj&}8QoR=K=16@1bZNlb9*acem(y3fOhr!SX>NVrJu{*dI{z~3cxzXWT++*ccG?;fKT&vtE{ zw;ZW3Fww8gJbyQz-4E73+H;1P=l{vJVh_3Vd_8V1^8BM2{d0VdqI*@6ZYH*6AX&FO z+X9}hK7UxALO1lbBU90}@oX1NldHkJi@@sQM#j0U4PD1JlX{UK_qhL#Bde9aRq*Fx zXaZK(#GyUqYoRan0(1Tl>+Q~aHmC46yoB|yTN3^zpP$+DfD=7GbCx=CnbIAMFZ1@N zODFDivi_PlnCI2*;BO|4CO7qF=f8F=((NjY?nrc93*K9U&7<%H7~QMA^OmVf<`*~wTKAOcT=Rzj^m(%2b>obe z^RR0OZ9(gPLHRJ8F@w20bZo-0zrO2ly+_?~(99=n|B??JDK#h&hsxMAgvOwC2T>jg zQ(+>Q_S?Ubt2@Zk)&7Q-JMt*H*5A3s~);&nM_`_~|%aW((GXG(W)$5`9I)L+$ zBkwDJ`&CVs!H{KaiHxncyV+LR)1AuyQ?&=}Zy4QO=-PS8`Pg0pEt7NyQXT;lVJv9f z%zAEo^?ibo6~ve8s5Y7V${xn<2{7ZA=kI^KuWUDc%_L`~BWI&y$Ac1MIfsU_p!d5R z@9#JPv3^TcBP3s!HZ@qPu9pv_YkN-#8xxh&|{eS%IrQOXn zM7huG%p`GFSn z=Xs9#?l#(OfBQc#?~e1#^Zo4iIrry0H`}%(&a?iB?o;SGp74zBDGqWCKfmr4S66=1 z`DwLvIhna0GZtNsI7E=|y$NF=zwQoKSHAa_EFbdJD|A<*YxCiM(bf47ME5MNzggW0 zl*vWpt=to6{gwW9D%WBkCn|L*IMM`zjy)!X{Zhm^bLR zK*H(7$#iu-#L)d2T^q_^BkLnxVrgG3oqjz1R?;1y7mQ(8U9(L_P%3t&MKb zwYdPj$m$X%kWcqA(p5pi^~AYJ<}(dfC3Iux_Cz-nw_pt!n^dmDH6hmihDdh=3EhY* zHcOm`INlyP^3GnK-*TFTF{?agoYH*~n*lH!wC*g@i(n_LgN02Jx~0cD<=0E;##VdG z7IbYmg3U12%QJ^L=a+7KOFftLRbbbfJ!?2`dn{3p&ScJe0eC_DvEL7C%l$D*_g!p0gK4037m{8Hf5KL1=jS?Lwo@K8l&(GR zH0wRaaQ!IA@kuy>&FRBg_XMrmiu8T(9CU}OoNG6^$k7eE?MeJyE}gK1jjSi2Yujo5 z^BLQ}9`E@~1l{gRH-aw<`lrS3S+@T2*E8jPxw-r%VLWlNaYg#=ocJEbgg1H2r%HD+ zHgn+z5M8Nfgv<@3{{RUGiT77bTxYfQL5~Na%^vd|y5-{*jH&PNi~;yS>oz8R2Xuvw z(DzQ-bZaMnbKU$sw_f7DZO>MZDce2KF8X34&r`fYtaXQz&IJkMi3@BO=vG3P!-|K= z*ldH!@8;FLJ;GWp`~y2-%39vHki$H(cdDtx{n(Nh@;rVcS0}pHW6tQ2$cG2sqaHyo z(Ecvmk!oIGn}k8cGdb_bfBq%wCjXY(K98w_t{oTO#AZBv4O({_>A&EF_t_481Bvy! zg>L@p=jY6R`UiAvKAeS3C1@q~_-57_ho$daV_;)aBk8rL>Nj}(h zOmo;{UPRZ1&e-&ZH$j??tDF84={4{-$ofXO3G48z-TB{gI_lsN&g+%VsUulqf%8G@ zTt>PoTo1CwHuMZYrwM(5geW>&mClXq_xRxy(~wxabp1)agY^9ML3musL9 zY)W0bIL$2oHPwXQPc!2v66t?vHt`TT!)wm(neev*Ha+2a(7NA{UIsg16I5(&Ot`7j z|Fm<*4Sl`VbEel+L)V6Xu#tL``f=WRlR^44u;miQu9@FKKixfuLD$J~o;Sf}4r~Lhd;2FGKa7D7U?J^wXco`5+{`<^nFmY1 zRgZ(paStqZzSrzV*W;!aVDk&C1+BZA^dTrYitV7EpYQJGpFaN#U*I*RdL?vAVY6dz zswpS-{4LwR+)TO^Na#Q;>-a&+M*OrP&-#wXYpz7s=EI}d$hqee#9H?Xu9fz4b>(?9 zS>Gw;&#SBRA&l;=%HLP9{Ro!i)Af$#J!nuDYC&nrt!oQMH$>khK1+N0H-EFeW}Nc( zVQij;0igXIO?nb6g4r;kYT|kAdTxEt{s#SCGh6BYhRt?3VN71#=A<8m2n>dq_*-=j zV>;(yFS+HWbz-Atl8Jk!4;&HSGmiG6akZm_P`Y(dwKj~QQNnG2u> z==?qBOXl6s92!BF4)oRSopS5=kJB#Xym42&CNgd`@S4Nu+J5k3Y$m~U(7MY=uZ6v^ z9dth!QT>Xo58;MhbM{jS-Ts&H?hx$Eq`bPW8}TT}Z(7&3i#+{nBd@8fbZ^9_HQbv| z_es+IVK6Lco0ezYb3zh-gN?nWhbp%#aP@6$-vONu+TZv2&Gv`ZSBZaOCz}r;bnnAo z5Q+OzkW9HOxjy|&AjUqRcP1N zU(?iU-d6c5-(&J(=Lek+$NC=AoFw@hMt2dq9@pPjA51fq(7Yy}?g+Mz1ql<0^?O}y z9?N&btiLgIkEndO9=-O^FQ0DuWUhrkb+`%!wlyYvuhTBdE^^vM`FaW6NOP~bj5)B) z-&WW>2oHhIhk>NO1PODAcd?!l?3lOz-Nrn(dwdW6Y3Vf~bZxlj_6)NKyQLsoWxU{g zHR~a^_kd*ez~;k23_|F=sr+1y&K5WV+Rt0Q=6*;R27{psbAl%I9Y2S;{kiygPKx7M zthLu{RJvbbvk=yR)(uYKJ_dLidcZ>RbYOc&ce$&3iptke$ZO6DAAS64dF5 z{`}uxv}La2_;>!$+k~FS)wk{HVf3`0(yn^2O~QY*t8uEFV(6BAI?;cJu^kNW zdM>Pl#h~B2J5ogcKW`)A|P z6!u9rZ_xP=M7Jrr*5C5zRe|dHblZ{c0up)>SH&Rzx`p^_*8w7rcuiMy?fj_^HiO^| z(Eg4mJqsi(AWn8YTKWmwPGXOG&3h^ze#T}4YyqvimvqW>NB6*-^!R!9v7SqbboH8P zN>`qDISKnyLF*p(^Df=IW-Yq5o|QrGBDgf4?scSZ0twBDCtOAU_yG64@PScVhlkWl z)Zgf1UX$7V8Mhr-M&0-YI{xusIb@2MO-^c7`1{Y#B-1s~+_M z`>ei+az6{ZY`6?)e*fCnC4DQj0lRi38oS&+OSB}!dV0;p=-GPTiT$5~XF%7ZZ%HqJ zt*{=X-j}C-%5kQD>dZrWgt(VBu8N;ec}*j9-JCJ2$EBFv*zE+T+perKP8`oS2w zkD*)MHT)aBQ)e)T0j(P%-4ULHUNDLAz`pk|>W=HOe#?LH5Dt6IVCC(Wkv;qSE~vn-gZTZU$QSYSK+X!bex7o28er)>pyFS1C6M_4v)s!%SbV z`59f?{@-KrF|=<9)6Ug6Ry~sT?!kT!_8$3zg!b5Vfv%wa8cO<8m=0gTOWY$f>|)2S zvTnJ{b0Sq!9G%FsUQ_kiM7ht!W+^NOt-FKtA&_ve2K9w?S^0jMbEM9{kMNs4-q3Si z(_HDM&tkp`w}aN5OnN1xeaAHc;&JVn&%4*1bN_VuXq}Iq7n#qZYwQ1o*xdlFA&)NU z^>Es3-XjSoG5;?A5B0xoidi@!u`Xf9KhHqcXV9%0KSI9yg3V3P5VYXNX(Ek2Ky3{=Gw}taT&$C`~%T4B4ja;43JFHXpOSFr- zuxSq+LF5su=Z*DL)+%0 z-00ThAr$eN-sswPu^*e%`Q$HX-EyR>!>v#kSdRO5zFDe@)81NB&pO-s`<~a#RQ|Td zraQb0T6Z$(?_mWj1?_KDS2vHpBfMrEy5(K}f5&DY9009*%MW~m0-l4XK)!1~(CyFm zyZu9h5YH>QI*|{(CbNGcf9GSf6qbY5jgj6766AjW^fFGLX7g5J?Qi5GuenI+?!&g^ z0?wB}>((OO5bl6xaFE57`5^1Jx2g7K%PsgZ>j~)E_SP1gN8w4(x}!*c11n$wbYXn7 z?Rbt`fB&Fw=-yV1N&O9>o2zv1 z&)|L+Y%Ao`wQf{l`&!=brgeKI(G8=!MCI>w*mZ=*^XbM&{{f{Ia{Ukd*R!6{oxZYR zin)#Zdu+Mc{x|$7*Bf6*)Q4-ZxfN~)oexJyms`ZW98eqj)?vN9n$!PIa@Xr_+sw5j z_rM|(yk@A<&BbOK{0Lh2AJUnN$zLc7!>(WqVxF)ce+RnxpzB%m3$OV~>0XLWb+{R{ zZb#DHp+EEisb?}K%khs)qH893&9CU%diFXta=!EdvDW>G^cLB+g!V|R&l}T+IsJpK zXOXWsUwSc-zh3MvgDXMnUQfC)NRa!2rGMD(bH+{aS%S_7^EK@a-Td{pMLykQ)!#`; z>RAZgyOgf2zYpfqb&J^~tH1M;=!VgK8Qt=(VOR9}Lce^vi%4&jZA-~tV%?vG+v+MvQM9@I?RZZT-5|Q> zzm%vCwb8o=I_A^;n)H0w3^AB+1@E7z-ypljQA&+xEypo zyhi#R7!RXB)|Da;IlBGa{H@19*?CE5CjAb&w%pp%2hPH74oI-`@?`fh%k!LJ?2lkC z?dn6;(&uBB_A`Eg_G>Qb?NDwR_YAMG^P2E{uQ@QltpsQf zd@L=#Zrc)D*=pDAhqFCbpzRAzOUnE2N=`Im=#_gpah!Le^8`!)eI9!Ma^^GeDTKMU zaNAC z;JZWEtcT5@bq|w1;a5lZG~y@|DtR8#EKcNY8Rkd->aOsbAJDa-3^o_S<)HF4y#eVK za4+a{r*YIt2~l)@Q^(zf{d&NYp#6K6^gxi{AL8`+p0oe^xI@2EkCg74*yh4$(7KaI z&jblS5{r-d*Y%#l)qjtBCD&UACd$e7AItLT#s%Gf^7kLMme%8Us~beOy3)1lvA-Te zw=nCmA$0Flx^kcHYBbj#Ls#z8E$BUhVRWBCSLWS+!AA7{h7v3D=I_O%t3e~E4KWYb zYy8f2o2+r%vq#>_b@E%#kP!XNYu-oK27BG66}GbV-}ZlNs`;Mvt7El)xo+cG#rl|g z{4wnBLg!(45_CPN^=Z0!gKZIbER-4VKl{;#%Jrr5TtD-a*J{>bllVCr`=a<6K`-@H z=X{Rg$&5p1J}d?8r{_23MbHH5L3()(iZMj|tcaf#$WJ++%VD#G@LI+tbZxNt*#g_5 z_!&d5rt4=m0M4t>QJ{)jtnWPU+Bg*JFi zt0aDI#rAmp9Ex@nyOJc$u6`7;_l|CT zCp-VG@1AX5(-K`9Y<<54+vCm8`0=CH!}aq3qRr503mriF*`M^AFbYP1oImt(`;Rbw zcEeWt8U3Ag+$4T}j%`u=^lWGS7CpNT@+CS;;Sgv)o5xsdhcI-7kwMP)>N;b5i^a}d zNAByj{jq1K*DQCBU-EPeHnU(ZH z*aBL GcDLBhqvmADaqPfKS#-`1-<{_gYgtnSg}eqha(qB+;u}M7z=rQdr6@(Tn6JXu=nK-bIBu{p2q&7|8vALt1&9I@|7Td(}J^*(fRHqUM+@?j`8BOw>GzY|E$1_=v@ zThpsUV*8gb@y!L zTEsT4-M}j_f&1(Gg;UL(`YER4mx=e1hTP*e=VhCcLlf=Q_A3Xlm958fel!z<5PDV7 zlae@VP&7`;~LNjZ@%W*R#4 zVL50&pBb5H4zMk42hXhhQX)@&nrk@sqKxZdpX0b?LfP47N)kWM!oDbeM$y~l`niF> zaSl3{Ko!t_HYeQ%I)NQeC%E;g5(k*SKE-_5=7P75&d(m$7sbz@Kif1#Px4d3lj!t^ z0igYya9_IlfNc`y@c#wP!-9cq^OVvZgY86^l23QQ*QsVT+jhc6(7L_c>kYb`Ou1~6 zt8}MbheJClXVCsuygtpWlHUj$h_$XAXSHq+-Nj1xWb`h8D*1H#kbVWm!iOO59~)Yc z`55bi^Se6d4O%yLQMNhnZD${HmhM1Xn)go(ceIM@W5uymtUI77|uFrJ?a6k zvWc$`+4>s0INRKat_`+bRm8SP_23fb14;BM6+v$>{YeD9P4xRtjbRNHo$H|<=;Llq z`W|=?X1>L}8T5O0{A!z6U^eg%Oja{B?_AA|1*z|y> zLF>*S{UdCL4Iueo-*ek~T;`fZRfl6e35iFRZAH=SRmMz+a($I<=jBx63tCS@=8fPmKBwU6r`f6*qP zCG`82`hA4C{%FScpVG{Je9WVJ6aCP;l2cBw_2oNkW$SUx!zj2AdXJ+g#~;G6@6q`i zGWO^7^AXZdK`ulf+=ctF_E8?JFHU0I*ptssPor!zFNvQsusvQss8xF66?0H zX4z(%>+dIIq#?vL15g_uAiZn{0D~+$8A+ zTdzLCwkYKlL$ABillN50b0DMh=@s@pmBF^zW=s;j@kP{&ptlx1TkpR>XFdD@Iv;x- zp-nr{p=|{kI*j(7NkL{{^RIlr$w_U^Du^DUR+Qcit@ZpuRn@r|75AE$^lS*jxcugVwE0 zx(P_QlUUy4Jg^D#8~nBHU!L2u`4H}%Z5~qow#P=+Wx5h;-BF~!g=Me+^!F>4tMR?9 z>t8I)`IxI4qB}T&{aX@TWV5 z9rK-cdY;QR*P&~J?dSSptNba{`e+P;FnaCLv+H{O(HR79fX=rMNq+_srV`8ZE4^q- z`hDd?>Zx*mKHKzjkN*XPW?-`fGD_yvolp8V$ULE>NdcK3mu{Y7y3p>YP#!Or$a~%$ zd@0-foaFdhVylinHUIi>1iP#c6Zv)*`^!A({(N>FNk0y`9I9XjWSi>B&X)gE`RwwS ze+avd*x7vT!~UaT9O!)AK>80j7 z>D|mv&&8%H)BvqJj1M}GhE1><)_=p?_3jko=}mt+BF$_jD=4mi+hy!6j`O2L{@8lu zIXO?h7OGy&r2Pcnre2|E`=tOnx53?@{rrXWRygGp>IQ`9mv%K~&ERL&cOP@kW29ed z>mGk>c(&P!uFco0uz3=`1FidFsgh<9R6VVvsQ|%^tPeiTd(3{~`*5|LesnN(YnQ7V z9L4psK>ru)L@Fa{QO;l8Ie z&iZ4F`^cof8=>3nM9$~XwZYbd6VE*UdJtbHL~k8>QeP#MLZ<@M1MTMm(ktL^_!Fcb z7`M=Q7tv_99_aT;h9+g3tC&ERa%7G7Eb10~4O(|eS?WJrb2j4_jGM!KQ2U+wHSAHR z9_aZ`G@5PtySkhjm+ziTNWMnUD>KSD{*(DzW6+raKZ5r20O^c#OPVv`RFL!eN`A-BgVa|UUu3+) z^>~QQVBAO72J5F6+oJdxoSAKUqG!v$96A-D5@r0-kPucJ#(|om7|Z&*D=@@C11nnbwE$*|1bQl z&(Qe^)`0f&;`2+I%Fr0mvp9OsoWj$lVy`U^)xb%d_~um*S*;Ef-q>^C8XEE zLD&bfRuZ|_UDw*@tiR~{DI-5Hk4kdgFvps)nM)-*I(w)PV<*j^v7%yLe~ac|3_n6lydSc%r@`1ev0OJbf&{B(0(2y zopoVJ6M*w!F!i+d9n`-@DP|XbO8wXURCsZ=`3YS+u3UvpE9eYbcO~gR;5-j=3y5)H za9oTrgZX7HtrRKBmEk@3-aFEm0ag-f@Z1D zShHro$g*s6{@A1QaTNO(B_GXl`X%(Fz6TH(ht3bM7WDB}^fDKM=FkWt4H)m3`^bG{ z-Km%BvDN)@cty5(BZ;36V_OtIW9a>mMDMX8>IHwzHff(G&U1UB(+6GyecWG@o(;=k zA*|;-%&v=8#+*XeivMsZ7QN`gS~Hd6SflE_0XixDa-u}A?%xA|8M<6>UV5+ z7Q+6Pa>j(Q?~J`2zwQ0Nd$8BXW&M+Q`URPJ-ghQ-SAzbYQv}`N%CE&A%dIo?Q^(Lv z$>x0cOsMc3Ac&?f2`x;Du7hFW8PH>i4g)c1y>*bTwX_IGXB|511xv_GRs&jkrX~)%TH^J*;1SmdFQB`I6=$ zxD>SR<)o{DgdE~z{hdC~4x`&h>E47*3up&gcUN}0d5Ud=;6>27?cMgTb%T4e&Hd=w zdLO~&WB3BJuJ}2fZS&we$i;O*%B-r}k3J&DB0CZy==Ma{*88idJWH`#4ib(v{>u0n z#eN|6Hb{G1iEXS9_A-9Qu>TNyTOT`L$uqauZZ3p<33&;~KGva>{qNZAgVQh0n=jXq zZV6%N4y9;gUH-y<>hrM26X#zxUxI&g{Ttni{E18Pa~L+KUBdYn==|<+Dd*mB0Ct0a zBlG$6R1>M2YWBO=hb{~y@;jL6Gmn0r$gis^lr+~tEl~5?^gBs+ghxTf82iqO29%+M z7&?QL&Qt97M7>P&EU~D&<(4{#^gEF2)&ozL&wP%Z&2Rahzz6(30rYVl>w5wNlhn@$ zx@(l~eDrq0k$k#WTvpOt3(cVs$af&@{fHsAe(HK3I>Bf5DBU*LJOO<{`+L(pX=XIr zX2DmW+f&yhx{(uoCTl_>AAZ2*4@kK@uWmKcb)Y3Q2CdsKiEi*@pUFno2ATKWi(Pw= zV9UjpM~MCFvVSoCE9)Ta_cHtd`uN6OL7M_XldWC{>HOT z&QNMRXZlP})-y>oZ~Y$DBU^OErAuFb^EtZGdtL}7vARobv;|2L^pzN8>M>?yUeSY^MTe4 zQQ_*bttH$7TKA-yPQB6ohR^kxzDoBIY@UXGpmpCN{Rw;yP3ZHq?(a$b4W8#S@1tw` zoypkkfy=JWt2>qS8n~ho<1q|fNgsVb&l^+Et1dmdpEf?9DgQ;H+}dLE2)qc|-|?iU z!uKHW&5-ZC+2^)nZhxlp!T5cq9=g`w9cQMR->_W+T6Z()lY>$-Stkz`d|!MJ-S)~~ z`EJyoXza_U8y9r{Da?1HLg+q=t{una`Jn@7`YPx3_gK#lEqC)*KaUeC=QAVFt%@%n zap1ks%dEmU3OXNJRV`^=g+MjdjbP+9t`leRe%{e3rgXqr-(DHzI-Pq=(V9Lp16>=& zVlxe9fEvHj){@=<opzY5h9f0N7xA&;?H0)3P zGV%8>XP;}}TCny^>r>_ZvNhRe`)gCnXDVZ7>qQ-Yy9YXe&W{14hr@Un1ybKu(rHQm zW4Q56;ymMAj?dhJZkC%Nld;(VJ3#A}zm_#?r~$Vwbmn&Ao9LBxb#*6{B7;_!`feS zqtASVu56RA37Zl%N}6(@{arx1>~)+=L2Zb9OJ3}8baTr&_i40QXUu($4ByN2nNpJy z?c+^sK8CTNbvKhf2og%xWIh*UJ*gXWlqHU~_^sC|V~u_0Ds(HxEw~3Co15W5(7Fpr z$Dr)>CCv#?70oG+y5-j0>DStJqQbe=J93-P+=Fg;S6Ai{m9eV^TG#zK9?AMq4LSfB zH^omICOwiEkD}=IMAzdQ9;w7VQE28IL-$sG)AwmvUA=zfY34I;pljPj3v3>MKKXPj z1ew3VaCig49k{mA&TW?;I{Bd6Meq)vDe+aJ{zkD`3hP1VgM1JAtXd^adAI=dcvL<~ zyNI;*nRZI|YHV(R2SDroLb_~DNplm_g4^z*58}LGc|D%-aIY`u`WtKGGw-5nLwjr< zhHjwy6}eyQNw(R3CD_(y7GY=euP?v741+-XGm7+=AR&!!VXV*L{+SzCcljw%<~sj8 z?R+L}aw7j`Vmk+Z0Ih5NEpY>LV9@!ORn3_%>Era=>oYf_>v0WBVN(n42Cci9bZTw- zET{mvPw>16^Va?KxVOTcf1JSD7l#oK(T+azFuF31UBfbC6Ks0Jo1k?o*I_;muR<7d zSz9;FxJJQv^AhceCB*oB=k*;~6YAtOoFjcsww`;^$G5G z=y%A`%`*=O`^<3VudI{Duv-sW*ZHf?zlC{kMi||1mF{NrPQ0n4IUBU@?W8-wKI|N}aCM?D`nV4+ z(f&WdW(mYV>t;7({Sj(I4JdUp_Yq8C>|=gh(QT(2sQYbQ-N*o+>8ErXVRILB0j)cf z^k|p^-$LKktOIe~Pu53TxVpMuiM+ym-pz*)dGixC+u$H*T~8z0J=B70K-Qyg6M z_iRGDkn5g#-Xrmu`uvr6#K z)yQDxrBf5St+9C(z67mXxe3=<;U(w`UE1UCA2`Fc&-5Ng_Y2`SeZ1G-(aj+vzr|)b z>;kRZ;1<>^;SqQccB{%xCUE*9N&xE#=h*+oF_L2)*v;d0fHg z(RmGqfcEo!(qllv1ma}#lMy(YZkeW>GeI@D8f3mY6QmtX za@(zL2cdU-W{mRpHf%z0FKFE-N%sc{1Bs;_v}WAX|izR#R8Em3bLVe>nja$8>AcS(N*Yv31{L)R_eDlO@|jQ2we{>%Y`%sWpmleW{s&4m=e{VA`YZ42lJRW6s~byG^*7gNQol*) zUW(1@Q1kY@y3<=Q&cWj?8FwJWIZ-ex%>+lKm|nr7?=uU1;WO8w%VEXCsjax?1?PbF z_v%BbrY1=6^INj^rq2gr=-!ELR@{Ph&o48~#n@ezPq$91RC5j6B*=RO3M#kYmp;Cq zkkGA(ZF9IMpKgEB@4?qF9%P+aUOFq~){b#UVqG7CU-`^nl@Bwp*#)KV$eRz{N%w_! zUT4~T$q?o_czj8z}(5TaN=Dz858Cr zs>~C*Q(hIYZAO8G(2)?H?lZlT9REq!7v=b4=zXa4N}*F0E(WsRuG^>AA>9Jnf~+ZZ z&vwfGC47_+{nlp=DV-Ddl`x&z_i@lV7qh(*TnoAA2vR2_u8wDh&zvzmQ6A4@|0)at zT^^s1{sJUSC!TNvWpb^fC3+HK{NbGV9$fFA=`*#^we4~)HmhMPXx*&4sDp4W$n(&; zT@FpQZZpeg?p6NE`9V2sF9EIVx)F~Gb03Wd-Pe@vq33um_cbd|zj$SROlTY^+(yc+lHUx zI7|ec4~y>Rydy;41&yG_W6ZPfOW_-ZDQ0u$G$U0=ms?~p*Q;ho&31xq?~|~Vt;gHm z%@Uuv8a-+6yi&+aK_@0!_vH0+59tfraP0tU!<6pS`Hif9@ci;5<`*97miE)L!e@pi z@$)5YkJrzW&<>+FD~aB~BIw2M14nPSd)(tW_QB|kgz=!ur{)_a%sjTOfTbYiZr^J$ zfi^1l4e8^K{pvGiW*%KW8?im!;}$=ID}5#hJ=-5|Mdu$lxouuQA0_<~jE0d=k@LX` zQ#ml!gR=HJ=f&Dj50jTp=*qmO7RRs7!Og6a92(gU?h% z*Y?vn*vP!MA+gq#d2dU$NqCk2*Zs8Z_ZT++?f;|bHbmFMw%5tm5Vns)-+a1J(o110 z#Go_=W${`pAlCNen_cyqHisk{)xsSOi=;QB1`e}Fr zUIBjv=2=%e`B{&7ljMQ;`KRkxWQ)&ys`7O-Hj`i~Xx+V}Prje)?Qk~eeC^`u>U{NV z^O^nVR(1bQO>FAHEueMpC;ccq1HC}kgR;mmi@IlVa;YH{JdsxpOH_I8%hElE!!Fl`j zgFdra`6KU1ka>0lTkB7Jp3U}x-e=9_5feP*7&!k@_ovQ_grkwvF$>{~zJ{ zG`d03gQ%Bj9k>S&t^%z)mh^1c37cSCGuB9BtjTg7w6rGQZ6@os{KnkU)ioJ@Gb+jP zpWCr$VH>TY{Wn?iav$a#wW?wHueu--ZuC=lhqWzlWbd-ZwAnnSOU&yVSKuUpI;I zP@Y!~$PMzG@oH?>f%Yf=bH>5Sesd#s9@lQ^D`{pEHrqh^vz6_Cu}#85?{kl2lJhCO zZW~4SespEND&a7;ncX;d0q zb+Bm+w}IAug7kAB;br1EKE_|_xzo!z|LS=_^cuhUSm_SMW(4Gd)?Ia@JXh}Menrme z>jG9=>xQcO%{+AN{9+ciKf+S5<${YDt4VKzCLDWv`s7`#TU)&s=CMb0zxf><5C1FS zFZRuRjQg-b`&X0n&Cm{7f?N-|4W#b~y7{TEhlH;6n``DJ^0O;8y&c)wD*qr=0>yw~$tB}rtTcAFOuD#B58~#SI)%oeU&To34 zYlH1y?!?ySXJPvnIbRE-7g5K54?69k7id2}AUzJg0=ds$AAcy>@z?b8jV-6VCek-9 zz-|@n2CZAUJN+&+gT}CjIvQ?9|IGbTx%4#yu+{6c!Jyx4O>+EQur12*N6w(VlXWbw0hG9;@Xy*Q0BLEvNO^7RAqCj^A`ZPue}V zahT2M9EQvudHt+EG2L9mw(4*d$onwt`we^HXE$theG1*+H$#*7nS*Un{EVVE4?X^D zJlu#*7>0n(&+VlDhO?ibPlVg(Ai9FwAJEUOPboN>&>sq zF4?#m!R}M+vfMwon*F!IF3`tudhe1Z8zfvtEcIhF=;P4&6K&}?KP!KFZE)7>D`TsV zqZ{AzuEjQc9G+Hwa|k;QDIRX-w-7u4+Ml;ce+0AOYv{@tKY_8nRGkzv&aDU1t~$Fq z!Pb70v%r~;%ce!x?10n5d37g~UIA%Ov;IWfops9n-JRpy<6iH0lyT*BS2q&!n;+4Y z^9Ko6VRs$mfcCc$={rF}JK|*5lVVgiTW>@6`1ux`QxC%Q5uLE<4=;ntzY-HjM`5{0 zH=!QT|4Et1`z0iJ+WJl4M@L7}wqE?GbPC(=&y;>2y=LfnM2xTmowcwN^zokY4D|(S zz?GoC|GwNUpFHDfJHL4XU8#q%4q6YJyPz#--4Uce1qpMAo7_jaGs#(=;avNbIi{|M zk^B8-Sd!ykh^@`XWbMMV_nVonKhKbtOWA)H>;>)5xqVpY0twZKE8W1eGjx`r(M~zM zfUWi?`heeTN#ai}Y?VKSy5B>}!}Flul;$K+@=b!h4p9d^?Wgmr^KW79QwpM6QR&Ka zPB)?1@EE#-W0dMtbK!BbmIvGH@rAIfs_d*EpDDX!^*)MS2s>M!zF_~U z@B`@jw43xH$atQ)9Y?0;b*9GA=UJhie$xkC>DT8%8SE~CN}zRTY|AiB*>*qN2{BLN zI>bQcA#xo;`gNLoJcN7s&3j3X^HFS%H@{_G8$)lF>!$IPI|r^>f<*-bZxNp=gj^^%hxD+ z_o65DiX{+pHae9d2ehA$k$xWDhCv|nj0U{dQv57Wy^{HIJv4G$$0E=A&9h1T9F1*J z%HKT4`kI@c@+Zcj6NR5a`mORq7;4C1;BMOG>! z%~Z@xH7D(pzfNEGwcmV*jX1DUU*6TdC1Gj_K6@Tv_eIH2ZL@fT^ z#^7MA^|Eo)uWk%UH z4ba1U%Dv^S~u>f`_H9y@_xU;whi6h!sxa^x1wuP4c&`q6PJJlcbz_?Vv=_7`8sx( z$$U@wm4p4Qn|ZA#XumF+SAy>aIptnHr{MAlqx+Hat0}e{|428>hLq6bea0PZzYqS) zzZg1mlz;Lb24U^)L^*R5oEdO`H`^r0Zv~aJndLXTly0$=2fC*(OVpp@%1`s1-&9h% z#gz{pbX%cYKAv;*@s!2hyHm~IAi>t3vPtUCd#tZSvG1YmAH%*kjPm7qA9h9`w!IAh zr4yOWIwd-G+>j*|nzvaFwjSb6=6w2wjgD((J8?n%yP4xRQ&qmbjt{x;DOg?GUruJ* zERg@avdeA+r{GE?Kt6?KpUGaA( z>3?L~8@&I6`Y!$&`X6~7AePME@9Edb%q-WLVyo}y-hggV`k%A5^~eLVDnSj^9a&oLBd4hg7VYzqu-piB9Whyv8l#f;yRG-(dOq2wl4skmv$Zz z&&!2eA4MlC{+D?UpkivA?Yv9R`o~Z4^8N`O3G!Qk{-N7W`B#FzPsjoZ*1!MqD}?>a z*xT`7Jo5%Sud#kfzD;BMT##@*bDm^+F$yjxz6b3K-D&9BAnPUHhf>WXVwG=4-PaIY zO9b8fl)q2*&N6plcQ0svhqFBwzJT!{SP!@T@A1y_%+G#PPT3cAo)<&sCUk7QEUxkhE#vyR z(k-s?h@m?`=@wUcnB~+TbZ!6k5cT}O+I%VkD=$!sr@t1Q9-D{L?ag}puh2OMRy2Vw_VRWBGx2WyT z^DF1k%D$-W&aCvCx$5|etKEgs{Zr`{S9zG<{O0^siTYDq<>5iMKDxHuJ^vr=?lra# zKaO@6LAR^Y9f_@7=aPnK=R3*T%aBJHb65Gz+sb|n_HCHU-Is4Z_XXRh!++_R)qeA> z%C}-GXLL6!-C`@}7}qsc|38#7x>eD&o+4*z7ji(HJ_d&?)Zn2yJE^Ug;KBdBo5it#pg4 zJj@o(Q&fJMH+jb)oD34|c$aLw_uN%HH-r5VWq%rWo$GK-5OhCy4%-9ppE_H)Z*Fa( zJaRZEtib+PgFbI;!}d<_7g=z4yq|4*V@=Qwn0 zC((_eJ0^*4qvOzRkwiDLopMIkj-$7uXRqVv{0*_a14wv;IN3O=zZ+n7_)Up*iTe{D z$EGj52wL~h-Kl0U+unv#L#bv@nZ)(nj;_D*9A!@YFH^73t%k1kx3KG%$^6ypMp1Oz zE8X|;C;#<{Gg(8E@+}D7v?N6HLq?)^-4d{Fjy$9JQp)+wo z>q=pCXQOLFVb{50*zGQYU2vD*T(~|_o)bCtvtuR9`Jj(u7TXuP`Lm2TS-$K0am*h) zzk{wV&(~L%FvB1MR+nSU4EIelBiSZl6mc?LU7itiJE3dy{WpBs1^dD3N_l3!#hMxT z;R2BLG5cM|aFX^C-R(C6mA@6Rxf(`~ONrERp&xkOYa!_46x|2-O~OOO1=X(@x+xnH$i?pvybB$8UV- z+Hx882k(1=(V%rdB|RA=OeZeL-w3)*l)ovg8J_~N2lMKl#diMHF zFLZ4vY`KK7`vg0C9#Lv(nrTQqxDE7iUdHySP#0=}elBgWTmR(##T?gx;6CmbQu)_8 zHO+K~o}hJ~BHbS(Oy0)(I;rgW`>A^TW_2Uz?nBqM!#&t0TmL@9_AKu0kZ>w-vhN1z z?-6gnrEI%v~TG*y6 zZxU|e`s{KH^5?HEH_v{~7nHvpu}4* zO80*mw{*Rapqs07&uPc?8MqX*zgLj14iah+7u24D2Y9{+U0cuQbBzCW-oAw2B&;A# zrmOq=7`i)@zw5Bs1xG;pd&=94TTl)>pmnFH{Qb9G{Npz#Y&!n-Zw~rR4eV^aFRpeP zLbnaNHvfvNoyO38R{1N}XRaiFs)Noyxju8?wJeh|$hkfv{ffQsY@wTfx?c$&;yhI8 z7T5eIhVFWFZ76KN96Zc(8k-a4lJR)je~xRX@|y%1*9z=E(Y;>j)*Y5*n!v4~^H21e zvrWPs#0BZb(0%CtLDzGH^+!bL3-<46qM zAJDb^XNHG+0m(l<=zO?{^cnmn;T&T9-6X54`_B+JzwANR6SpwtE_~_$T|w*iCj9~o zg1U_FdOTg9qh2{@mcQTAP;EaKN)4Fj z(XHtEdjK1|KCS&t8^*geLBg5D2a}9@AJ0hWdeQ>s6Lf8Vb!tkMsWLdl+yh#-EZcn` z;S%Cx^9udGmI%5_l)u$hXB>6kG+k3>ZMHWC3C)R@COKbg`9#9saC*S(QvR-^ytcv) zRc=USe$Kt7fA*ClFy%pFHxi2OoVD3aGDu0+zmwg*UQ_wmsNw*Uoa;~2*P7y1cJt%7^Er4%z;sr+i$6#;Z`MdPD~P4EtnMn(v+zg40^)+okB^DOU!-a4@kgt8 zJ_J4ot@|bEWv=d;Lg;$V44A#Y7k@rP(Y=`)D6PN6l@H;w0%o1k-NrHgNj6UZGjIOx zA^oSD4~Gho50NqfGks^m-^_O?lT9VeHG`aaw=K6**nT!h@XJ0)`XAlyf@K3{4d;(G zAFjk^+O?^s`+Lr~Y;~W$w}iRQ)xEJ0y5{VFxr%we(_-WWHq1379_UT7O^1<~^}*>&&~YzaOw|JV=;KTu?s5&|RiN{2!Pd7Uy-B|a5{3{Lr0cmlU^Xh<_ptdG#(>rx zPkJgym_uBUZnRRsRNSA)-{KmFqLl+CtaQ7Ocio{EXn%J+n{Jl4{`N0K{zj@$&;B2D z!`INS|DDK(6wXb?kRA`(-;!)!>H52&5cwOf8Zd2@?hb7B!2!^^he@CCo>Ok6i3=>Z zY60`1(k-s>I9femwkzFZm0Otdl2E8}yEb61JCMlV3pmDda0%#qxSVu#kWibrpnNdb z14Jxx@wOnqa_W|C7jv z&#9EmS*TUQ@cqI)B^g>h3Q@{(9;J%x_9J<$dn!fCtOv zJ&!$^ZD)f7A8|qTEOcYQlslBj-{Pugp1J|kQRyCQ9(7#L$Jb+?s&p^o7=v9hOl4wS zf91Vl)!cl@DMUV)n^@;LoXCd{IM>nlecO58`<#o7cF%_j^SnnG-H_5PuKEzXIbd?p zwdX_iImWx-UaHZj)k%Ds`d9j{~iPFMHuLg+@D z1WXrnZGA`^!L#utGt3#p;xDh+m5|wnbZ;06uYr6I?svWiXO?rn!{0~0cPMgez^qmN z&cLSWNWMb>T6e{VeDm@n)(;^9L+A26fv4SfirshgcZ4Dja6X@sX3EFi;=8TfP@DEK zK7-bMlJsjZ3f_e|KIW?)=RAIn`%K@0bzEx{BSN@iz^p*m6Hl>*ip}q^3$$+2Pk2WX z^n$LSb$7YCbGiR}jjI!VC}0jK-4C$2D=WiHB-XlTjN-X1xDG0V)-8LTlfPQmJRC4* zb8X)G8^WdobOx>4oAe7X2*&^Jya)6pjAU)NlG~0&H^=&mZdG(`{=S9XComSYZrRbi zUk>WR^-w|9uP=AkNnG8ZDl6TtoDa#p1n%Ft1DkemKWN>DNcR8y!24d$4|v?w3mUYit(4V$k_;&X|(sQjk!KID9qVbGypPU#-g$RXju<513!j zwbzLnV{;!o2wHbH>BAu5l(DQWRb)M|QeNG!xV(RRd=JArJE_0Q-?Om!xjWYpiM4K1 z(rrLOH{uBwlgD6vm00IPxF_dB+)rZt4P!F^UInfDHR;(PVJWeG-;>qW{ziHQOf7V6 zeOQUj0XPg=_kmA&UpYt^KpbVce>q93Y5leB!V?adyOi$h*o=NT)qF{;byLUj&S1C> zt^oP2VY{l1Zfmz)WOI4S>PDUkn26G?gH1!Y1+?zlq{qUyFd3wOu=T8qtGktYW_4qI z=zr0*?d=zAr2eia*1GBAxepU0oI{-K`2@O$e|1BB1LmOeH-OD$a3yHn2S|5^7vLF? z_E!5WCm;H{{>t}5t-qmX1Ex$m*M;Mr7&9E3IWQlzZtu@nlYr$g2RyT=7p)xKp|0+h zb;i^{TSD}OfT@D6tq+H>k@|bu=XrJOlD-urym?aIe$v(nslV3W*oy(v6kVIYcVPQT z+YHkopYBJbzl1rE5_aAXW%FUQ>u){&rqvA%2$+YJ?o#Zw!Vb{+P;~;|{eTDHZjk!W z&+FtvG>NWxh5k(G_P}N!3RMMqaBG$df=q3dze3$fV*+d%8~pUm|r zX!bSp2uR;VpY?&GSA+Se_^hv|2S)`=lM;!3=fo*|dj$fZb%&Gw3f96Bn92KtCs0VD z7j(zt!Ss^@-Fjxm223xdYo1Vrb6+(Kf+kb(mv?5$dwCnU`Fl3c#M^ono*6L9(Y0YNHs<6k z^9yk*8#_5wAay6{jBlOy+}6vcJ4X;b?+zr2uP6cy2b8G9-o_RM%%95N9Bd-(v&`MZT6Z4l z&2Sj@fxHLuB(%lXer`R|?LWFSV9w1<8>E54{@^jS03G;1Lg*F zZGCtVo1fqp(7K~$^W7NO0xLk5+h(^tNxAKc|7H4yUjwEmx*S$KoH&R4g9||GUQYTt zkZ>b$l)9gPejwk;Wax>9(8_>$AKi*>x)C;Q;eOD%y-B|a5?&_`(r4$_9nvY$P9whs z%#TWUI5ywF4A8pUNgoCYr_5y@N}poeg{^0zyF9)J=kT$B`3v2kn?4Jh3&96k_a@RU zLBf5+b1vijjC(q)ro$KNkU`|^?{G_*nH@M&4=&_Xx&!dmo(jABn*M>+_y3T zL~pZOf5qRBs~g-LFd=kpefSESo$x1U-9__w*D72%pZBprCB83SsimWP(ACxL*u%pn zebCKv+&5LRsSEW%>pn`lH%NGaxS;wQ+7&Rv(DlSE_~r~YGa99u;lx_^W6~2q!rk2a zkW6I-4JkJpM0b6B5B}N1c!93142kZr{d(V$0O(&4>B=K$Z>GLb( zEjO(jI}kAa(6#OD1#I4ecR=gTC%qgb#E6sCv$^Vd2G2qINu|3Ho1O3{XkF1uS?K6y z5+~EWuXLha#L%6Bu5HKioY=|Om4f`bqAfw*ft5@*lX>00?d?#&{G|LXjo$g-O`=_r&7*sS^L2D>{vQ56_TB?Ls-lnoo!#_JCA0tuIRQ)-gs}7uOD~E< zL1_w$5Q>0Any4siM=W4{Er?N(s;^jIRD?wl5euj^`zpwbz6vO)^xV(vnMo#x1T6o1 zpXc7^PV$}K%sJ=xJ#(hFa~869(Axw|-Uy+xTJqiOW!yqS*9}r`=X`1W@(XM24c;yA z?Eqgnc&D=V|1-x9gC%+DyXQH4Lwg5(-2d48R6C`-0eA-+yvNZ?{g`qL%i%*yr1JVpcRusQK()}JCxq|jM zI#+yTgjdJID0EHUGsQ!L3gRIM@BfVOUIpJx;ByD>>Q9+Z28r94PX&9fWxW1B%5-m6 zWL{sUo9s{ObPITLMb*Tze0DcFi@^Tv<-_~*XM79vbAC$*>;TqL`oMdlL{YyeasIZ` z=XXVJuDH;kE^_gtAR7T zA9L(0uoIZPfeLs-7vzc;jCg4DVT{;^-XY-R9l*I$93O-qFBfuU4Y4Z=)df(+sALPgDzkpzge-#;&;Jz($0A8-!s_|kY&Oq z4g_+=9qb9bo;~#O2Y{Mla?*cW?@;zbI`7BhJE1JP;DaGaJg}?>}?>qlv z3=g7yVonG-o^_3VUYmD=nqTl_mGO#6xnerJZ53}mdR;&tV1{@4&-7102&@JRE@ZBX zMHd;~g(^RM8sImAR6GQx<%&Dum36K(@1e67{0L0m1^fA)5BLOZ23tR3&ToRvyGrry zdz%r{h!f5Y&83h#Jzn-YELw4Hr_J(~z)KK9K-JC1xrIztNgw8tfHZXbn z{F)#}fd$|Ou!;G_;!9Ngs(zB>tz*A>BLZ`C#UOZfJgi1%E7%20-n>K1TY`%~cVPCv zM6sQJ`|!*gI>n}i>jz}4Qlh)bkVn1d1`Nhzq zx#D~EoKmMTW1t@B^#&%dJg3bC?3<}5{>*V*7~W&>dX>_7@C^ckE8rc@F=?)CQ}O$d z2UrKt>Fs|kSEQwt@dgy{gbH{k{{`M+cyr;^`Ex3|^T0horj|;V*t9?Bvx0U&{^r>( z=F{iKxy54kc*yvbc{5^)bHyq6EajcZ^*4jtff=ti9%HTsj5~tbQOaeu~4;2jRH?#KAx>kpwO z<%)~o)#X?3`*_sBtFli-{F&dgD~9)KBfKH%$3<{HMFH6@)jqIahpa@b*UM<%v;`7J==`r3Q8mgVyr3>H;z_h z_y+%vK$>5W57#Jb-*mdk^%u<>+L|l+!RwD`FgJ}(T(n0d0+aU<{LcVs-a~#cg?Xf_ z%D2a#zFo%a-$nj~SDVXDxx~llZBrcA+f94f?}>8#bgtL!cbMyb0lxt=9OuP %NL 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±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
    H9RYgEG)4E<+WY8#q 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

    ps5~SLhDi#*cb0uBJ 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�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

    koLO>|AT=2m$K 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

    *aYH9c0_*=T_F7#3~#Qdlg*k5YmP{4EVCU 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

    3srE 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\Z-TeuF>|OJcd?nUbW;LpZ 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

    lGg+<3`IA+>YvGED(RF1tA&i`|y1HKL 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%0Dx*6*Ml66b*vUD7CA%wm4Hif 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 returns error + +// Return a string that represents the layout to parse the given date-time. +layout, err := dateparse.ParseFormat("May 8, 2009 5:57:51 PM") +> "Jan 2, 2006 3:04:05 PM" + +``` + +cli tool for testing dateformats +---------------------------------- + +[Date Parse CLI](https://github.com/araddon/dateparse/blob/master/dateparse) + + +Extended example +------------------- + +https://github.com/araddon/dateparse/blob/master/example/main.go + +```go +package main + +import ( + "flag" + "fmt" + "time" + + "github.com/apcera/termtables" + "github.com/araddon/dateparse" +) + +var examples = []string{ + "May 8, 2009 5:57:51 PM", + "oct 7, 1970", + "oct 7, '70", + "oct. 7, 1970", + "oct. 7, 70", + "Mon Jan 2 15:04:05 2006", + "Mon Jan 2 15:04:05 MST 2006", + "Mon Jan 02 15:04:05 -0700 2006", + "Monday, 02-Jan-06 15:04:05 MST", + "Mon, 02 Jan 2006 15:04:05 MST", + "Tue, 11 Jul 2017 16:28:13 +0200 (CEST)", + "Mon, 02 Jan 2006 15:04:05 -0700", + "Thu, 4 Jan 2018 17:53:36 +0000", + "Mon Aug 10 15:44:11 UTC+0100 2015", + "Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time)", + "September 17, 2012 10:09am", + "September 17, 2012 at 10:09am PST-08", + "September 17, 2012, 10:10:09", + "October 7, 1970", + "October 7th, 1970", + "12 Feb 2006, 19:17", + "12 Feb 2006 19:17", + "7 oct 70", + "7 oct 1970", + "03 February 2013", + "1 July 2013", + "2013-Feb-03", + // mm/dd/yy + "3/31/2014", + "03/31/2014", + "08/21/71", + "8/1/71", + "4/8/2014 22:05", + "04/08/2014 22:05", + "4/8/14 22:05", + "04/2/2014 03:00:51", + "8/8/1965 12:00:00 AM", + "8/8/1965 01:00:01 PM", + "8/8/1965 01:00 PM", + "8/8/1965 1:00 PM", + "8/8/1965 12:00 AM", + "4/02/2014 03:00:51", + "03/19/2012 10:11:59", + "03/19/2012 10:11:59.3186369", + // yyyy/mm/dd + "2014/3/31", + "2014/03/31", + "2014/4/8 22:05", + "2014/04/08 22:05", + "2014/04/2 03:00:51", + "2014/4/02 03:00:51", + "2012/03/19 10:11:59", + "2012/03/19 10:11:59.3186369", + // Chinese + "2014年04月08日", + // yyyy-mm-ddThh + "2006-01-02T15:04:05+0000", + "2009-08-12T22:15:09-07:00", + "2009-08-12T22:15:09", + "2009-08-12T22:15:09Z", + // yyyy-mm-dd hh:mm:ss + "2014-04-26 17:24:37.3186369", + "2012-08-03 18:31:59.257000000", + "2014-04-26 17:24:37.123", + "2013-04-01 22:43", + "2013-04-01 22:43:22", + "2014-12-16 06:20:00 UTC", + "2014-12-16 06:20:00 GMT", + "2014-04-26 05:24:37 PM", + "2014-04-26 13:13:43 +0800", + "2014-04-26 13:13:43 +0800 +08", + "2014-04-26 13:13:44 +09:00", + "2012-08-03 18:31:59.257000000 +0000 UTC", + "2015-09-30 18:48:56.35272715 +0000 UTC", + "2015-02-18 00:12:00 +0000 GMT", + "2015-02-18 00:12:00 +0000 UTC", + "2015-02-08 03:02:00 +0300 MSK m=+0.000000001", + "2015-02-08 03:02:00.001 +0300 MSK m=+0.000000001", + "2017-07-19 03:21:51+00:00", + "2014-04-26", + "2014-04", + "2014", + "2014-05-11 08:20:13,787", + // mm.dd.yy + "3.31.2014", + "03.31.2014", + "08.21.71", + "2014.03", + "2014.03.30", + // yyyymmdd and similar + "20140601", + "20140722105203", + // unix seconds, ms, micro, nano + "1332151919", + "1384216367189", + "1384216367111222", + "1384216367111222333", +} + +var ( + timezone = "" +) + +func main() { + flag.StringVar(&timezone, "timezone", "UTC", "Timezone aka `America/Los_Angeles` formatted time-zone") + flag.Parse() + + if timezone != "" { + // NOTE: This is very, very important to understand + // time-parsing in go + loc, err := time.LoadLocation(timezone) + if err != nil { + panic(err.Error()) + } + time.Local = loc + } + + table := termtables.CreateTable() + + table.AddHeaders("Input", "Parsed, and Output as %v") + for _, dateExample := range examples { + t, err := dateparse.ParseLocal(dateExample) + if err != nil { + panic(err.Error()) + } + table.AddRow(dateExample, fmt.Sprintf("%v", t)) + } + fmt.Println(table.Render()) +} + +/* ++-------------------------------------------------------+-----------------------------------------+ +| Input | Parsed, and Output as %v | ++-------------------------------------------------------+-----------------------------------------+ +| May 8, 2009 5:57:51 PM | 2009-05-08 17:57:51 +0000 UTC | +| oct 7, 1970 | 1970-10-07 00:00:00 +0000 UTC | +| oct 7, '70 | 1970-10-07 00:00:00 +0000 UTC | +| oct. 7, 1970 | 1970-10-07 00:00:00 +0000 UTC | +| oct. 7, 70 | 1970-10-07 00:00:00 +0000 UTC | +| Mon Jan 2 15:04:05 2006 | 2006-01-02 15:04:05 +0000 UTC | +| Mon Jan 2 15:04:05 MST 2006 | 2006-01-02 15:04:05 +0000 MST | +| Mon Jan 02 15:04:05 -0700 2006 | 2006-01-02 15:04:05 -0700 -0700 | +| Monday, 02-Jan-06 15:04:05 MST | 2006-01-02 15:04:05 +0000 MST | +| Mon, 02 Jan 2006 15:04:05 MST | 2006-01-02 15:04:05 +0000 MST | +| Tue, 11 Jul 2017 16:28:13 +0200 (CEST) | 2017-07-11 16:28:13 +0200 +0200 | +| Mon, 02 Jan 2006 15:04:05 -0700 | 2006-01-02 15:04:05 -0700 -0700 | +| Thu, 4 Jan 2018 17:53:36 +0000 | 2018-01-04 17:53:36 +0000 UTC | +| Mon Aug 10 15:44:11 UTC+0100 2015 | 2015-08-10 15:44:11 +0000 UTC | +| Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time) | 2015-07-03 18:04:07 +0100 GMT | +| September 17, 2012 10:09am | 2012-09-17 10:09:00 +0000 UTC | +| September 17, 2012 at 10:09am PST-08 | 2012-09-17 10:09:00 -0800 PST | +| September 17, 2012, 10:10:09 | 2012-09-17 10:10:09 +0000 UTC | +| October 7, 1970 | 1970-10-07 00:00:00 +0000 UTC | +| October 7th, 1970 | 1970-10-07 00:00:00 +0000 UTC | +| 12 Feb 2006, 19:17 | 2006-02-12 19:17:00 +0000 UTC | +| 12 Feb 2006 19:17 | 2006-02-12 19:17:00 +0000 UTC | +| 7 oct 70 | 1970-10-07 00:00:00 +0000 UTC | +| 7 oct 1970 | 1970-10-07 00:00:00 +0000 UTC | +| 03 February 2013 | 2013-02-03 00:00:00 +0000 UTC | +| 1 July 2013 | 2013-07-01 00:00:00 +0000 UTC | +| 2013-Feb-03 | 2013-02-03 00:00:00 +0000 UTC | +| 3/31/2014 | 2014-03-31 00:00:00 +0000 UTC | +| 03/31/2014 | 2014-03-31 00:00:00 +0000 UTC | +| 08/21/71 | 1971-08-21 00:00:00 +0000 UTC | +| 8/1/71 | 1971-08-01 00:00:00 +0000 UTC | +| 4/8/2014 22:05 | 2014-04-08 22:05:00 +0000 UTC | +| 04/08/2014 22:05 | 2014-04-08 22:05:00 +0000 UTC | +| 4/8/14 22:05 | 2014-04-08 22:05:00 +0000 UTC | +| 04/2/2014 03:00:51 | 2014-04-02 03:00:51 +0000 UTC | +| 8/8/1965 12:00:00 AM | 1965-08-08 00:00:00 +0000 UTC | +| 8/8/1965 01:00:01 PM | 1965-08-08 13:00:01 +0000 UTC | +| 8/8/1965 01:00 PM | 1965-08-08 13:00:00 +0000 UTC | +| 8/8/1965 1:00 PM | 1965-08-08 13:00:00 +0000 UTC | +| 8/8/1965 12:00 AM | 1965-08-08 00:00:00 +0000 UTC | +| 4/02/2014 03:00:51 | 2014-04-02 03:00:51 +0000 UTC | +| 03/19/2012 10:11:59 | 2012-03-19 10:11:59 +0000 UTC | +| 03/19/2012 10:11:59.3186369 | 2012-03-19 10:11:59.3186369 +0000 UTC | +| 2014/3/31 | 2014-03-31 00:00:00 +0000 UTC | +| 2014/03/31 | 2014-03-31 00:00:00 +0000 UTC | +| 2014/4/8 22:05 | 2014-04-08 22:05:00 +0000 UTC | +| 2014/04/08 22:05 | 2014-04-08 22:05:00 +0000 UTC | +| 2014/04/2 03:00:51 | 2014-04-02 03:00:51 +0000 UTC | +| 2014/4/02 03:00:51 | 2014-04-02 03:00:51 +0000 UTC | +| 2012/03/19 10:11:59 | 2012-03-19 10:11:59 +0000 UTC | +| 2012/03/19 10:11:59.3186369 | 2012-03-19 10:11:59.3186369 +0000 UTC | +| 2014年04月08日 | 2014-04-08 00:00:00 +0000 UTC | +| 2006-01-02T15:04:05+0000 | 2006-01-02 15:04:05 +0000 UTC | +| 2009-08-12T22:15:09-07:00 | 2009-08-12 22:15:09 -0700 -0700 | +| 2009-08-12T22:15:09 | 2009-08-12 22:15:09 +0000 UTC | +| 2009-08-12T22:15:09Z | 2009-08-12 22:15:09 +0000 UTC | +| 2014-04-26 17:24:37.3186369 | 2014-04-26 17:24:37.3186369 +0000 UTC | +| 2012-08-03 18:31:59.257000000 | 2012-08-03 18:31:59.257 +0000 UTC | +| 2014-04-26 17:24:37.123 | 2014-04-26 17:24:37.123 +0000 UTC | +| 2013-04-01 22:43 | 2013-04-01 22:43:00 +0000 UTC | +| 2013-04-01 22:43:22 | 2013-04-01 22:43:22 +0000 UTC | +| 2014-12-16 06:20:00 UTC | 2014-12-16 06:20:00 +0000 UTC | +| 2014-12-16 06:20:00 GMT | 2014-12-16 06:20:00 +0000 UTC | +| 2014-04-26 05:24:37 PM | 2014-04-26 17:24:37 +0000 UTC | +| 2014-04-26 13:13:43 +0800 | 2014-04-26 13:13:43 +0800 +0800 | +| 2014-04-26 13:13:43 +0800 +08 | 2014-04-26 13:13:43 +0800 +0800 | +| 2014-04-26 13:13:44 +09:00 | 2014-04-26 13:13:44 +0900 +0900 | +| 2012-08-03 18:31:59.257000000 +0000 UTC | 2012-08-03 18:31:59.257 +0000 UTC | +| 2015-09-30 18:48:56.35272715 +0000 UTC | 2015-09-30 18:48:56.35272715 +0000 UTC | +| 2015-02-18 00:12:00 +0000 GMT | 2015-02-18 00:12:00 +0000 UTC | +| 2015-02-18 00:12:00 +0000 UTC | 2015-02-18 00:12:00 +0000 UTC | +| 2015-02-08 03:02:00 +0300 MSK m=+0.000000001 | 2015-02-08 03:02:00 +0300 +0300 | +| 2015-02-08 03:02:00.001 +0300 MSK m=+0.000000001 | 2015-02-08 03:02:00.001 +0300 +0300 | +| 2017-07-19 03:21:51+00:00 | 2017-07-19 03:21:51 +0000 UTC | +| 2014-04-26 | 2014-04-26 00:00:00 +0000 UTC | +| 2014-04 | 2014-04-01 00:00:00 +0000 UTC | +| 2014 | 2014-01-01 00:00:00 +0000 UTC | +| 2014-05-11 08:20:13,787 | 2014-05-11 08:20:13.787 +0000 UTC | +| 3.31.2014 | 2014-03-31 00:00:00 +0000 UTC | +| 03.31.2014 | 2014-03-31 00:00:00 +0000 UTC | +| 08.21.71 | 1971-08-21 00:00:00 +0000 UTC | +| 2014.03 | 2014-03-01 00:00:00 +0000 UTC | +| 2014.03.30 | 2014-03-30 00:00:00 +0000 UTC | +| 20140601 | 2014-06-01 00:00:00 +0000 UTC | +| 20140722105203 | 2014-07-22 10:52:03 +0000 UTC | +| 1332151919 | 2012-03-19 10:11:59 +0000 UTC | +| 1384216367189 | 2013-11-12 00:32:47.189 +0000 UTC | +| 1384216367111222 | 2013-11-12 00:32:47.111222 +0000 UTC | +| 1384216367111222333 | 2013-11-12 00:32:47.111222333 +0000 UTC | ++-------------------------------------------------------+-----------------------------------------+ +*/ + +``` diff --git a/scripts/token-log-collector/vendor/github.com/araddon/dateparse/parseany.go b/scripts/token-log-collector/vendor/github.com/araddon/dateparse/parseany.go new file mode 100644 index 000000000..5e66aa6d6 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/araddon/dateparse/parseany.go @@ -0,0 +1,1864 @@ +// Package dateparse parses date-strings without knowing the format +// in advance, using a fast lex based approach to eliminate shotgun +// attempts. It leans towards US style dates when there is a conflict. +package dateparse + +import ( + "fmt" + "strconv" + "strings" + "time" + "unicode" + "unicode/utf8" +) + +// func init() { +// gou.SetupLogging("debug") +// gou.SetColorOutput() +// } + +var months = []string{ + "january", + "february", + "march", + "april", + "may", + "june", + "july", + "august", + "september", + "october", + "november", + "december", +} + +type dateState uint8 +type timeState uint8 + +const ( + dateStart dateState = iota // 0 + dateDigit + dateYearDash + dateYearDashAlphaDash + dateYearDashDash + dateYearDashDashWs // 5 + dateYearDashDashT + dateDigitDash + dateDigitDashAlpha + dateDigitDashAlphaDash + dateDigitDot // 10 + dateDigitDotDot + dateDigitSlash + dateDigitChineseYear + dateDigitChineseYearWs + dateDigitWs // 15 + dateDigitWsMoYear + dateDigitWsMolong + dateAlpha + dateAlphaWs + dateAlphaWsDigit // 20 + dateAlphaWsDigitMore + dateAlphaWsDigitMoreWs + dateAlphaWsDigitMoreWsYear + dateAlphaWsMonth + dateAlphaWsMonthMore + dateAlphaWsMonthSuffix + dateAlphaWsMore + dateAlphaWsAtTime + dateAlphaWsAlpha + dateAlphaWsAlphaYearmaybe + dateAlphaPeriodWsDigit + dateWeekdayComma + dateWeekdayAbbrevComma +) +const ( + // Time state + timeIgnore timeState = iota // 0 + timeStart + timeWs + timeWsAlpha + timeWsAlphaWs + timeWsAlphaZoneOffset // 5 + timeWsAlphaZoneOffsetWs + timeWsAlphaZoneOffsetWsYear + timeWsAlphaZoneOffsetWsExtra + timeWsAMPMMaybe + timeWsAMPM // 10 + timeWsOffset + timeWsOffsetWs // 12 + timeWsOffsetColonAlpha + timeWsOffsetColon + timeWsYear // 15 + timeOffset + timeOffsetColon + timeAlpha + timePeriod + timePeriodOffset // 20 + timePeriodOffsetColon + timePeriodOffsetColonWs + timePeriodWs + timePeriodWsAlpha + timePeriodWsOffset // 25 + timePeriodWsOffsetWs + timePeriodWsOffsetWsAlpha + timePeriodWsOffsetColon + timePeriodWsOffsetColonAlpha + timeZ + timeZDigit +) + +var ( + // ErrAmbiguousMMDD for date formats such as 04/02/2014 the mm/dd vs dd/mm are + // ambiguous, so it is an error for strict parse rules. + ErrAmbiguousMMDD = fmt.Errorf("This date has ambiguous mm/dd vs dd/mm type format") +) + +func unknownErr(datestr string) error { + return fmt.Errorf("Could not find format for %q", datestr) +} + +// ParseAny parse an unknown date format, detect the layout. +// Normal parse. Equivalent Timezone rules as time.Parse(). +// NOTE: please see readme on mmdd vs ddmm ambiguous dates. +func ParseAny(datestr string) (time.Time, error) { + p, err := parseTime(datestr, nil) + if err != nil { + return time.Time{}, err + } + return p.parse() +} + +// ParseIn with Location, equivalent to time.ParseInLocation() timezone/offset +// rules. Using location arg, if timezone/offset info exists in the +// datestring, it uses the given location rules for any zone interpretation. +// That is, MST means one thing when using America/Denver and something else +// in other locations. +func ParseIn(datestr string, loc *time.Location) (time.Time, error) { + p, err := parseTime(datestr, loc) + if err != nil { + return time.Time{}, err + } + return p.parse() +} + +// ParseLocal Given an unknown date format, detect the layout, +// using time.Local, parse. +// +// Set Location to time.Local. Same as ParseIn Location but lazily uses +// the global time.Local variable for Location argument. +// +// denverLoc, _ := time.LoadLocation("America/Denver") +// time.Local = denverLoc +// +// t, err := dateparse.ParseLocal("3/1/2014") +// +// Equivalent to: +// +// t, err := dateparse.ParseIn("3/1/2014", denverLoc) +// +func ParseLocal(datestr string) (time.Time, error) { + p, err := parseTime(datestr, time.Local) + if err != nil { + return time.Time{}, err + } + return p.parse() +} + +// MustParse parse a date, and panic if it can't be parsed. Used for testing. +// Not recommended for most use-cases. +func MustParse(datestr string) time.Time { + p, err := parseTime(datestr, nil) + if err != nil { + panic(err.Error()) + } + t, err := p.parse() + if err != nil { + panic(err.Error()) + } + return t +} + +// ParseFormat parse's an unknown date-time string and returns a layout +// string that can parse this (and exact same format) other date-time strings. +// +// layout, err := dateparse.ParseFormat("2013-02-01 00:00:00") +// // layout = "2006-01-02 15:04:05" +// +func ParseFormat(datestr string) (string, error) { + p, err := parseTime(datestr, nil) + if err != nil { + return "", err + } + _, err = p.parse() + if err != nil { + return "", err + } + return string(p.format), nil +} + +// ParseStrict parse an unknown date format. IF the date is ambigous +// mm/dd vs dd/mm then return an error. These return errors: 3.3.2014 , 8/8/71 etc +func ParseStrict(datestr string) (time.Time, error) { + p, err := parseTime(datestr, nil) + if err != nil { + return time.Time{}, err + } + if p.ambiguousMD { + return time.Time{}, ErrAmbiguousMMDD + } + return p.parse() +} + +func parseTime(datestr string, loc *time.Location) (*parser, error) { + + p := newParser(datestr, loc) + i := 0 + + // General strategy is to read rune by rune through the date looking for + // certain hints of what type of date we are dealing with. + // Hopefully we only need to read about 5 or 6 bytes before + // we figure it out and then attempt a parse +iterRunes: + for ; i < len(datestr); i++ { + //r := rune(datestr[i]) + r, bytesConsumed := utf8.DecodeRuneInString(datestr[i:]) + if bytesConsumed > 1 { + i += (bytesConsumed - 1) + } + + //gou.Debugf("i=%d r=%s state=%d %s", i, string(r), p.stateDate, datestr) + switch p.stateDate { + case dateStart: + if unicode.IsDigit(r) { + p.stateDate = dateDigit + } else if unicode.IsLetter(r) { + p.stateDate = dateAlpha + } else { + return nil, unknownErr(datestr) + } + case dateDigit: + + switch r { + case '-', '\u2212': + // 2006-01-02 + // 2013-Feb-03 + // 13-Feb-03 + // 29-Jun-2016 + if i == 4 { + p.stateDate = dateYearDash + p.yeari = 0 + p.yearlen = i + p.moi = i + 1 + p.set(0, "2006") + } else { + p.stateDate = dateDigitDash + } + case '/': + // 03/31/2005 + // 2014/02/24 + p.stateDate = dateDigitSlash + if i == 4 { + p.yearlen = i + p.moi = i + 1 + p.setYear() + } else { + p.ambiguousMD = true + if p.preferMonthFirst { + if p.molen == 0 { + p.molen = i + p.setMonth() + p.dayi = i + 1 + } + } + } + + case '.': + // 3.31.2014 + // 08.21.71 + // 2014.05 + p.stateDate = dateDigitDot + if i == 4 { + p.yearlen = i + p.moi = i + 1 + p.setYear() + } else { + p.ambiguousMD = true + p.moi = 0 + p.molen = i + p.setMonth() + p.dayi = i + 1 + } + + case ' ': + // 18 January 2018 + // 8 January 2018 + // 8 jan 2018 + // 02 Jan 2018 23:59 + // 02 Jan 2018 23:59:34 + // 12 Feb 2006, 19:17 + // 12 Feb 2006, 19:17:22 + p.stateDate = dateDigitWs + p.dayi = 0 + p.daylen = i + case '年': + // Chinese Year + p.stateDate = dateDigitChineseYear + case ',': + return nil, unknownErr(datestr) + default: + continue + } + p.part1Len = i + + case dateYearDash: + // dateYearDashDashT + // 2006-01-02T15:04:05Z07:00 + // dateYearDashDashWs + // 2013-04-01 22:43:22 + // dateYearDashAlphaDash + // 2013-Feb-03 + switch r { + case '-': + p.molen = i - p.moi + p.dayi = i + 1 + p.stateDate = dateYearDashDash + p.setMonth() + default: + if unicode.IsLetter(r) { + p.stateDate = dateYearDashAlphaDash + } + } + + case dateYearDashDash: + // dateYearDashDashT + // 2006-01-02T15:04:05Z07:00 + // dateYearDashDashWs + // 2013-04-01 22:43:22 + switch r { + case ' ': + p.daylen = i - p.dayi + p.stateDate = dateYearDashDashWs + p.stateTime = timeStart + p.setDay() + break iterRunes + case 'T': + p.daylen = i - p.dayi + p.stateDate = dateYearDashDashT + p.stateTime = timeStart + p.setDay() + break iterRunes + } + case dateYearDashAlphaDash: + // 2013-Feb-03 + switch r { + case '-': + p.molen = i - p.moi + p.set(p.moi, "Jan") + p.dayi = i + 1 + } + case dateDigitDash: + // 13-Feb-03 + // 29-Jun-2016 + if unicode.IsLetter(r) { + p.stateDate = dateDigitDashAlpha + p.moi = i + } else { + return nil, unknownErr(datestr) + } + case dateDigitDashAlpha: + // 13-Feb-03 + // 28-Feb-03 + // 29-Jun-2016 + switch r { + case '-': + p.molen = i - p.moi + p.set(p.moi, "Jan") + p.yeari = i + 1 + p.stateDate = dateDigitDashAlphaDash + } + + case dateDigitDashAlphaDash: + // 13-Feb-03 ambiguous + // 28-Feb-03 ambiguous + // 29-Jun-2016 + switch r { + case ' ': + // we need to find if this was 4 digits, aka year + // or 2 digits which makes it ambiguous year/day + length := i - (p.moi + p.molen + 1) + if length == 4 { + p.yearlen = 4 + p.set(p.yeari, "2006") + // We now also know that part1 was the day + p.dayi = 0 + p.daylen = p.part1Len + p.setDay() + } else if length == 2 { + // We have no idea if this is + // yy-mon-dd OR dd-mon-yy + // + // We are going to ASSUME (bad, bad) that it is dd-mon-yy which is a horible assumption + p.ambiguousMD = true + p.yearlen = 2 + p.set(p.yeari, "06") + // We now also know that part1 was the day + p.dayi = 0 + p.daylen = p.part1Len + p.setDay() + } + p.stateTime = timeStart + break iterRunes + } + + case dateDigitSlash: + // 2014/07/10 06:55:38.156283 + // 03/19/2012 10:11:59 + // 04/2/2014 03:00:37 + // 3/1/2012 10:11:59 + // 4/8/2014 22:05 + // 3/1/2014 + // 10/13/2014 + // 01/02/2006 + // 1/2/06 + + switch r { + case ' ': + p.stateTime = timeStart + if p.yearlen == 0 { + p.yearlen = i - p.yeari + p.setYear() + } else if p.daylen == 0 { + p.daylen = i - p.dayi + p.setDay() + } + break iterRunes + case '/': + if p.yearlen > 0 { + // 2014/07/10 06:55:38.156283 + if p.molen == 0 { + p.molen = i - p.moi + p.setMonth() + p.dayi = i + 1 + } + } else if p.preferMonthFirst { + if p.daylen == 0 { + p.daylen = i - p.dayi + p.setDay() + p.yeari = i + 1 + } + } + } + + case dateDigitWs: + // 18 January 2018 + // 8 January 2018 + // 8 jan 2018 + // 1 jan 18 + // 02 Jan 2018 23:59 + // 02 Jan 2018 23:59:34 + // 12 Feb 2006, 19:17 + // 12 Feb 2006, 19:17:22 + switch r { + case ' ': + p.yeari = i + 1 + //p.yearlen = 4 + p.dayi = 0 + p.daylen = p.part1Len + p.setDay() + p.stateTime = timeStart + if i > p.daylen+len(" Sep") { // November etc + // If len greather than space + 3 it must be full month + p.stateDate = dateDigitWsMolong + } else { + // If len=3, the might be Feb or May? Ie ambigous abbreviated but + // we can parse may with either. BUT, that means the + // format may not be correct? + // mo := strings.ToLower(datestr[p.daylen+1 : i]) + p.moi = p.daylen + 1 + p.molen = i - p.moi + p.set(p.moi, "Jan") + p.stateDate = dateDigitWsMoYear + } + } + + case dateDigitWsMoYear: + // 8 jan 2018 + // 02 Jan 2018 23:59 + // 02 Jan 2018 23:59:34 + // 12 Feb 2006, 19:17 + // 12 Feb 2006, 19:17:22 + switch r { + case ',': + p.yearlen = i - p.yeari + p.setYear() + i++ + break iterRunes + case ' ': + p.yearlen = i - p.yeari + p.setYear() + break iterRunes + } + case dateDigitWsMolong: + // 18 January 2018 + // 8 January 2018 + + case dateDigitChineseYear: + // dateDigitChineseYear + // 2014年04月08日 + // weekday %Y年%m月%e日 %A %I:%M %p + // 2013年07月18日 星期四 10:27 上午 + if r == ' ' { + p.stateDate = dateDigitChineseYearWs + break + } + case dateDigitDot: + // This is the 2nd period + // 3.31.2014 + // 08.21.71 + // 2014.05 + // 2018.09.30 + if r == '.' { + if p.moi == 0 { + // 3.31.2014 + p.daylen = i - p.dayi + p.yeari = i + 1 + p.setDay() + p.stateDate = dateDigitDotDot + } else { + // 2018.09.30 + //p.molen = 2 + p.molen = i - p.moi + p.dayi = i + 1 + p.setMonth() + p.stateDate = dateDigitDotDot + } + } + case dateDigitDotDot: + // iterate all the way through + case dateAlpha: + // dateAlphaWS + // Mon Jan _2 15:04:05 2006 + // Mon Jan _2 15:04:05 MST 2006 + // Mon Jan 02 15:04:05 -0700 2006 + // Mon Aug 10 15:44:11 UTC+0100 2015 + // Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time) + // dateAlphaWSDigit + // May 8, 2009 5:57:51 PM + // oct 1, 1970 + // dateAlphaWsMonth + // April 8, 2009 + // dateAlphaWsMore + // dateAlphaWsAtTime + // January 02, 2006 at 3:04pm MST-07 + // + // dateAlphaPeriodWsDigit + // oct. 1, 1970 + // dateWeekdayComma + // Monday, 02 Jan 2006 15:04:05 MST + // Monday, 02-Jan-06 15:04:05 MST + // Monday, 02 Jan 2006 15:04:05 -0700 + // Monday, 02 Jan 2006 15:04:05 +0100 + // dateWeekdayAbbrevComma + // Mon, 02 Jan 2006 15:04:05 MST + // Mon, 02 Jan 2006 15:04:05 -0700 + // Thu, 13 Jul 2017 08:58:40 +0100 + // Tue, 11 Jul 2017 16:28:13 +0200 (CEST) + // Mon, 02-Jan-06 15:04:05 MST + switch { + case r == ' ': + // X + // April 8, 2009 + if i > 3 { + // Check to see if the alpha is name of month? or Day? + month := strings.ToLower(datestr[0:i]) + if isMonthFull(month) { + p.fullMonth = month + // len(" 31, 2018") = 9 + if len(datestr[i:]) < 10 { + // April 8, 2009 + p.stateDate = dateAlphaWsMonth + } else { + p.stateDate = dateAlphaWsMore + } + p.dayi = i + 1 + break + } + + } else { + // This is possibly ambiguous? May will parse as either though. + // So, it could return in-correct format. + // May 05, 2005, 05:05:05 + // May 05 2005, 05:05:05 + // Jul 05, 2005, 05:05:05 + p.stateDate = dateAlphaWs + } + + case r == ',': + // Mon, 02 Jan 2006 + // p.moi = 0 + // p.molen = i + if i == 3 { + p.stateDate = dateWeekdayAbbrevComma + p.set(0, "Mon") + } else { + p.stateDate = dateWeekdayComma + p.skip = i + 2 + i++ + // TODO: lets just make this "skip" as we don't need + // the mon, monday, they are all superfelous and not needed + // just lay down the skip, no need to fill and then skip + } + case r == '.': + // sept. 28, 2017 + // jan. 28, 2017 + p.stateDate = dateAlphaPeriodWsDigit + if i == 3 { + p.molen = i + p.set(0, "Jan") + } else if i == 4 { + // gross + datestr = datestr[0:i-1] + datestr[i:] + return parseTime(datestr, loc) + } else { + return nil, unknownErr(datestr) + } + } + + case dateAlphaWs: + // dateAlphaWsAlpha + // Mon Jan _2 15:04:05 2006 + // Mon Jan _2 15:04:05 MST 2006 + // Mon Jan 02 15:04:05 -0700 2006 + // Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time) + // Mon Aug 10 15:44:11 UTC+0100 2015 + // dateAlphaWsDigit + // May 8, 2009 5:57:51 PM + // May 8 2009 5:57:51 PM + // oct 1, 1970 + // oct 7, '70 + switch { + case unicode.IsLetter(r): + p.set(0, "Mon") + p.stateDate = dateAlphaWsAlpha + p.set(i, "Jan") + case unicode.IsDigit(r): + p.set(0, "Jan") + p.stateDate = dateAlphaWsDigit + p.dayi = i + } + + case dateAlphaWsDigit: + // May 8, 2009 5:57:51 PM + // May 8 2009 5:57:51 PM + // oct 1, 1970 + // oct 7, '70 + // oct. 7, 1970 + if r == ',' { + p.daylen = i - p.dayi + p.setDay() + p.stateDate = dateAlphaWsDigitMore + } else if r == ' ' { + p.daylen = i - p.dayi + p.setDay() + p.yeari = i + 1 + p.stateDate = dateAlphaWsDigitMoreWs + } else if unicode.IsLetter(r) { + p.stateDate = dateAlphaWsMonthSuffix + i-- + } + case dateAlphaWsDigitMore: + // x + // May 8, 2009 5:57:51 PM + // May 05, 2005, 05:05:05 + // May 05 2005, 05:05:05 + // oct 1, 1970 + // oct 7, '70 + if r == ' ' { + p.yeari = i + 1 + p.stateDate = dateAlphaWsDigitMoreWs + } + case dateAlphaWsDigitMoreWs: + // x + // May 8, 2009 5:57:51 PM + // May 05, 2005, 05:05:05 + // oct 1, 1970 + // oct 7, '70 + switch r { + case '\'': + p.yeari = i + 1 + case ' ', ',': + // x + // May 8, 2009 5:57:51 PM + // x + // May 8, 2009, 5:57:51 PM + p.stateDate = dateAlphaWsDigitMoreWsYear + p.yearlen = i - p.yeari + p.setYear() + p.stateTime = timeStart + break iterRunes + } + + case dateAlphaWsAlpha: + // Mon Jan _2 15:04:05 2006 + // Mon Jan 02 15:04:05 -0700 2006 + // Mon Jan _2 15:04:05 MST 2006 + // Mon Aug 10 15:44:11 UTC+0100 2015 + // Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time) + if r == ' ' { + if p.dayi > 0 { + p.daylen = i - p.dayi + p.setDay() + p.yeari = i + 1 + p.stateDate = dateAlphaWsAlphaYearmaybe + p.stateTime = timeStart + } + } else if unicode.IsDigit(r) { + if p.dayi == 0 { + p.dayi = i + } + } + + case dateAlphaWsAlphaYearmaybe: + // x + // Mon Jan _2 15:04:05 2006 + // Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time) + if r == ':' { + i = i - 3 + p.stateDate = dateAlphaWsAlpha + p.yeari = 0 + break iterRunes + } else if r == ' ' { + // must be year format, not 15:04 + p.yearlen = i - p.yeari + p.setYear() + break iterRunes + } + + case dateAlphaWsMonth: + // April 8, 2009 + // April 8 2009 + switch r { + case ' ', ',': + // x + // June 8, 2009 + // x + // June 8 2009 + if p.daylen == 0 { + p.daylen = i - p.dayi + p.setDay() + } + case 's', 'S', 'r', 'R', 't', 'T', 'n', 'N': + // st, rd, nd, st + i-- + p.stateDate = dateAlphaWsMonthSuffix + default: + if p.daylen > 0 && p.yeari == 0 { + p.yeari = i + } + } + case dateAlphaWsMonthMore: + // X + // January 02, 2006, 15:04:05 + // January 02 2006, 15:04:05 + // January 02, 2006 15:04:05 + // January 02 2006 15:04:05 + switch r { + case ',': + p.yearlen = i - p.yeari + p.setYear() + p.stateTime = timeStart + i++ + break iterRunes + case ' ': + p.yearlen = i - p.yeari + p.setYear() + p.stateTime = timeStart + break iterRunes + } + case dateAlphaWsMonthSuffix: + // x + // April 8th, 2009 + // April 8th 2009 + switch r { + case 't', 'T': + if p.nextIs(i, 'h') || p.nextIs(i, 'H') { + if len(datestr) > i+2 { + return parseTime(fmt.Sprintf("%s%s", p.datestr[0:i], p.datestr[i+2:]), loc) + } + } + case 'n', 'N': + if p.nextIs(i, 'd') || p.nextIs(i, 'D') { + if len(datestr) > i+2 { + return parseTime(fmt.Sprintf("%s%s", p.datestr[0:i], p.datestr[i+2:]), loc) + } + } + case 's', 'S': + if p.nextIs(i, 't') || p.nextIs(i, 'T') { + if len(datestr) > i+2 { + return parseTime(fmt.Sprintf("%s%s", p.datestr[0:i], p.datestr[i+2:]), loc) + } + } + case 'r', 'R': + if p.nextIs(i, 'd') || p.nextIs(i, 'D') { + if len(datestr) > i+2 { + return parseTime(fmt.Sprintf("%s%s", p.datestr[0:i], p.datestr[i+2:]), loc) + } + } + } + case dateAlphaWsMore: + // January 02, 2006, 15:04:05 + // January 02 2006, 15:04:05 + // January 2nd, 2006, 15:04:05 + // January 2nd 2006, 15:04:05 + // September 17, 2012 at 5:00pm UTC-05 + switch { + case r == ',': + // x + // January 02, 2006, 15:04:05 + if p.nextIs(i, ' ') { + p.daylen = i - p.dayi + p.setDay() + p.yeari = i + 2 + p.stateDate = dateAlphaWsMonthMore + i++ + } + + case r == ' ': + // x + // January 02 2006, 15:04:05 + p.daylen = i - p.dayi + p.setDay() + p.yeari = i + 1 + p.stateDate = dateAlphaWsMonthMore + case unicode.IsDigit(r): + // XX + // January 02, 2006, 15:04:05 + continue + case unicode.IsLetter(r): + // X + // January 2nd, 2006, 15:04:05 + p.daylen = i - p.dayi + p.setDay() + p.stateDate = dateAlphaWsMonthSuffix + i-- + } + + case dateAlphaPeriodWsDigit: + // oct. 7, '70 + switch { + case r == ' ': + // continue + case unicode.IsDigit(r): + p.stateDate = dateAlphaWsDigit + p.dayi = i + default: + return p, unknownErr(datestr) + } + case dateWeekdayComma: + // Monday, 02 Jan 2006 15:04:05 MST + // Monday, 02 Jan 2006 15:04:05 -0700 + // Monday, 02 Jan 2006 15:04:05 +0100 + // Monday, 02-Jan-06 15:04:05 MST + if p.dayi == 0 { + p.dayi = i + } + switch r { + case ' ', '-': + if p.moi == 0 { + p.moi = i + 1 + p.daylen = i - p.dayi + p.setDay() + } else if p.yeari == 0 { + p.yeari = i + 1 + p.molen = i - p.moi + p.set(p.moi, "Jan") + } else { + p.stateTime = timeStart + break iterRunes + } + } + case dateWeekdayAbbrevComma: + // Mon, 02 Jan 2006 15:04:05 MST + // Mon, 02 Jan 2006 15:04:05 -0700 + // Thu, 13 Jul 2017 08:58:40 +0100 + // Thu, 4 Jan 2018 17:53:36 +0000 + // Tue, 11 Jul 2017 16:28:13 +0200 (CEST) + // Mon, 02-Jan-06 15:04:05 MST + switch r { + case ' ', '-': + if p.dayi == 0 { + p.dayi = i + 1 + } else if p.moi == 0 { + p.daylen = i - p.dayi + p.setDay() + p.moi = i + 1 + } else if p.yeari == 0 { + p.molen = i - p.moi + p.set(p.moi, "Jan") + p.yeari = i + 1 + } else { + p.yearlen = i - p.yeari + p.setYear() + p.stateTime = timeStart + break iterRunes + } + } + + default: + break iterRunes + } + } + p.coalesceDate(i) + if p.stateTime == timeStart { + // increment first one, since the i++ occurs at end of loop + if i < len(p.datestr) { + i++ + } + // ensure we skip any whitespace prefix + for ; i < len(datestr); i++ { + r := rune(datestr[i]) + if r != ' ' { + break + } + } + + iterTimeRunes: + for ; i < len(datestr); i++ { + r := rune(datestr[i]) + + //gou.Debugf("%d %s %d iterTimeRunes %s %s", i, string(r), p.stateTime, p.ds(), p.ts()) + + switch p.stateTime { + case timeStart: + // 22:43:22 + // 22:43 + // timeComma + // 08:20:13,787 + // timeWs + // 05:24:37 PM + // 06:20:00 UTC + // 06:20:00 UTC-05 + // 00:12:00 +0000 UTC + // 22:18:00 +0000 UTC m=+0.000000001 + // 15:04:05 -0700 + // 15:04:05 -07:00 + // 15:04:05 2008 + // timeOffset + // 03:21:51+00:00 + // 19:55:00+0100 + // timePeriod + // 17:24:37.3186369 + // 00:07:31.945167 + // 18:31:59.257000000 + // 00:00:00.000 + // timePeriodOffset + // 19:55:00.799+0100 + // timePeriodOffsetColon + // 15:04:05.999-07:00 + // timePeriodWs + // timePeriodWsOffset + // 00:07:31.945167 +0000 + // 00:00:00.000 +0000 + // timePeriodWsOffsetAlpha + // 00:07:31.945167 +0000 UTC + // 22:18:00.001 +0000 UTC m=+0.000000001 + // 00:00:00.000 +0000 UTC + // timePeriodWsAlpha + // 06:20:00.000 UTC + if p.houri == 0 { + p.houri = i + } + switch r { + case ',': + // hm, lets just swap out comma for period. for some reason go + // won't parse it. + // 2014-05-11 08:20:13,787 + ds := []byte(p.datestr) + ds[i] = '.' + return parseTime(string(ds), loc) + case '-', '+': + // 03:21:51+00:00 + p.stateTime = timeOffset + if p.seci == 0 { + // 22:18+0530 + p.minlen = i - p.mini + } else { + p.seclen = i - p.seci + } + p.offseti = i + case '.': + p.stateTime = timePeriod + p.seclen = i - p.seci + p.msi = i + 1 + case 'Z': + p.stateTime = timeZ + if p.seci == 0 { + p.minlen = i - p.mini + } else { + p.seclen = i - p.seci + } + case 'a', 'A': + if p.nextIs(i, 't') || p.nextIs(i, 'T') { + // x + // September 17, 2012 at 5:00pm UTC-05 + i++ // skip t + if p.nextIs(i, ' ') { + // x + // September 17, 2012 at 5:00pm UTC-05 + i++ // skip ' + p.houri = 0 // reset hour + } + } else { + switch { + case r == 'a' && p.nextIs(i, 'm'): + p.coalesceTime(i) + p.set(i, "am") + case r == 'A' && p.nextIs(i, 'M'): + p.coalesceTime(i) + p.set(i, "PM") + } + } + + case 'p', 'P': + // Could be AM/PM + switch { + case r == 'p' && p.nextIs(i, 'm'): + p.coalesceTime(i) + p.set(i, "pm") + case r == 'P' && p.nextIs(i, 'M'): + p.coalesceTime(i) + p.set(i, "PM") + } + case ' ': + p.coalesceTime(i) + p.stateTime = timeWs + case ':': + if p.mini == 0 { + p.mini = i + 1 + p.hourlen = i - p.houri + } else if p.seci == 0 { + p.seci = i + 1 + p.minlen = i - p.mini + } + } + case timeOffset: + // 19:55:00+0100 + // timeOffsetColon + // 15:04:05+07:00 + // 15:04:05-07:00 + if r == ':' { + p.stateTime = timeOffsetColon + } + case timeWs: + // timeWsAlpha + // 06:20:00 UTC + // 06:20:00 UTC-05 + // 15:44:11 UTC+0100 2015 + // 18:04:07 GMT+0100 (GMT Daylight Time) + // 17:57:51 MST 2009 + // timeWsAMPMMaybe + // 05:24:37 PM + // timeWsOffset + // 15:04:05 -0700 + // 00:12:00 +0000 UTC + // timeWsOffsetColon + // 15:04:05 -07:00 + // 17:57:51 -0700 2009 + // timeWsOffsetColonAlpha + // 00:12:00 +00:00 UTC + // timeWsYear + // 00:12:00 2008 + // timeZ + // 15:04:05.99Z + switch r { + case 'A', 'P': + // Could be AM/PM or could be PST or similar + p.tzi = i + p.stateTime = timeWsAMPMMaybe + case '+', '-': + p.offseti = i + p.stateTime = timeWsOffset + default: + if unicode.IsLetter(r) { + // 06:20:00 UTC + // 06:20:00 UTC-05 + // 15:44:11 UTC+0100 2015 + // 17:57:51 MST 2009 + p.tzi = i + p.stateTime = timeWsAlpha + //break iterTimeRunes + } else if unicode.IsDigit(r) { + // 00:12:00 2008 + p.stateTime = timeWsYear + p.yeari = i + } + } + case timeWsAlpha: + // 06:20:00 UTC + // 06:20:00 UTC-05 + // timeWsAlphaWs + // 17:57:51 MST 2009 + // timeWsAlphaZoneOffset + // timeWsAlphaZoneOffsetWs + // timeWsAlphaZoneOffsetWsExtra + // 18:04:07 GMT+0100 (GMT Daylight Time) + // timeWsAlphaZoneOffsetWsYear + // 15:44:11 UTC+0100 2015 + switch r { + case '+', '-': + p.tzlen = i - p.tzi + if p.tzlen == 4 { + p.set(p.tzi, " MST") + } else if p.tzlen == 3 { + p.set(p.tzi, "MST") + } + p.stateTime = timeWsAlphaZoneOffset + p.offseti = i + case ' ': + // 17:57:51 MST 2009 + p.tzlen = i - p.tzi + if p.tzlen == 4 { + p.set(p.tzi, " MST") + } else if p.tzlen == 3 { + p.set(p.tzi, "MST") + } + p.stateTime = timeWsAlphaWs + p.yeari = i + 1 + } + case timeWsAlphaWs: + // 17:57:51 MST 2009 + + case timeWsAlphaZoneOffset: + // 06:20:00 UTC-05 + // timeWsAlphaZoneOffset + // timeWsAlphaZoneOffsetWs + // timeWsAlphaZoneOffsetWsExtra + // 18:04:07 GMT+0100 (GMT Daylight Time) + // timeWsAlphaZoneOffsetWsYear + // 15:44:11 UTC+0100 2015 + switch r { + case ' ': + p.set(p.offseti, "-0700") + p.yeari = i + 1 + p.stateTime = timeWsAlphaZoneOffsetWs + } + case timeWsAlphaZoneOffsetWs: + // timeWsAlphaZoneOffsetWs + // timeWsAlphaZoneOffsetWsExtra + // 18:04:07 GMT+0100 (GMT Daylight Time) + // timeWsAlphaZoneOffsetWsYear + // 15:44:11 UTC+0100 2015 + if unicode.IsDigit(r) { + p.stateTime = timeWsAlphaZoneOffsetWsYear + } else { + p.extra = i - 1 + p.stateTime = timeWsAlphaZoneOffsetWsExtra + } + case timeWsAlphaZoneOffsetWsYear: + // 15:44:11 UTC+0100 2015 + if unicode.IsDigit(r) { + p.yearlen = i - p.yeari + 1 + if p.yearlen == 4 { + p.setYear() + } + } + case timeWsAMPMMaybe: + // timeWsAMPMMaybe + // timeWsAMPM + // 05:24:37 PM + // timeWsAlpha + // 00:12:00 PST + // 15:44:11 UTC+0100 2015 + if r == 'M' { + //return parse("2006-01-02 03:04:05 PM", datestr, loc) + p.stateTime = timeWsAMPM + p.set(i-1, "PM") + if p.hourlen == 2 { + p.set(p.houri, "03") + } else if p.hourlen == 1 { + p.set(p.houri, "3") + } + } else { + p.stateTime = timeWsAlpha + } + + case timeWsOffset: + // timeWsOffset + // 15:04:05 -0700 + // timeWsOffsetWsOffset + // 17:57:51 -0700 -07 + // timeWsOffsetWs + // 17:57:51 -0700 2009 + // 00:12:00 +0000 UTC + // timeWsOffsetColon + // 15:04:05 -07:00 + // timeWsOffsetColonAlpha + // 00:12:00 +00:00 UTC + switch r { + case ':': + p.stateTime = timeWsOffsetColon + case ' ': + p.set(p.offseti, "-0700") + p.yeari = i + 1 + p.stateTime = timeWsOffsetWs + } + case timeWsOffsetWs: + // 17:57:51 -0700 2009 + // 00:12:00 +0000 UTC + // 22:18:00.001 +0000 UTC m=+0.000000001 + // w Extra + // 17:57:51 -0700 -07 + switch r { + case '=': + // eff you golang + if datestr[i-1] == 'm' { + p.extra = i - 2 + p.trimExtra() + break + } + case '+', '-': + // This really doesn't seem valid, but for some reason when round-tripping a go date + // their is an extra +03 printed out. seems like go bug to me, but, parsing anyway. + // 00:00:00 +0300 +03 + // 00:00:00 +0300 +0300 + p.extra = i - 1 + p.stateTime = timeWsOffset + p.trimExtra() + break + default: + switch { + case unicode.IsDigit(r): + p.yearlen = i - p.yeari + 1 + if p.yearlen == 4 { + p.setYear() + } + case unicode.IsLetter(r): + if p.tzi == 0 { + p.tzi = i + } + } + } + + case timeWsOffsetColon: + // timeWsOffsetColon + // 15:04:05 -07:00 + // timeWsOffsetColonAlpha + // 2015-02-18 00:12:00 +00:00 UTC + if unicode.IsLetter(r) { + // 2015-02-18 00:12:00 +00:00 UTC + p.stateTime = timeWsOffsetColonAlpha + break iterTimeRunes + } + case timePeriod: + // 15:04:05.999999999+07:00 + // 15:04:05.999999999-07:00 + // 15:04:05.999999+07:00 + // 15:04:05.999999-07:00 + // 15:04:05.999+07:00 + // 15:04:05.999-07:00 + // timePeriod + // 17:24:37.3186369 + // 00:07:31.945167 + // 18:31:59.257000000 + // 00:00:00.000 + // timePeriodOffset + // 19:55:00.799+0100 + // timePeriodOffsetColon + // 15:04:05.999-07:00 + // timePeriodWs + // timePeriodWsOffset + // 00:07:31.945167 +0000 + // 00:00:00.000 +0000 + // With Extra + // 00:00:00.000 +0300 +03 + // timePeriodWsOffsetAlpha + // 00:07:31.945167 +0000 UTC + // 00:00:00.000 +0000 UTC + // 22:18:00.001 +0000 UTC m=+0.000000001 + // timePeriodWsAlpha + // 06:20:00.000 UTC + switch r { + case ' ': + p.mslen = i - p.msi + p.stateTime = timePeriodWs + case '+', '-': + // This really shouldn't happen + p.mslen = i - p.msi + p.offseti = i + p.stateTime = timePeriodOffset + default: + if unicode.IsLetter(r) { + // 06:20:00.000 UTC + p.mslen = i - p.msi + p.stateTime = timePeriodWsAlpha + } + } + case timePeriodOffset: + // timePeriodOffset + // 19:55:00.799+0100 + // timePeriodOffsetColon + // 15:04:05.999-07:00 + // 13:31:51.999-07:00 MST + if r == ':' { + p.stateTime = timePeriodOffsetColon + } + case timePeriodOffsetColon: + // timePeriodOffset + // timePeriodOffsetColon + // 15:04:05.999-07:00 + // 13:31:51.999 -07:00 MST + switch r { + case ' ': + p.set(p.offseti, "-07:00") + p.stateTime = timePeriodOffsetColonWs + p.tzi = i + 1 + } + case timePeriodOffsetColonWs: + // continue + case timePeriodWs: + // timePeriodWs + // timePeriodWsOffset + // 00:07:31.945167 +0000 + // 00:00:00.000 +0000 + // timePeriodWsOffsetAlpha + // 00:07:31.945167 +0000 UTC + // 00:00:00.000 +0000 UTC + // timePeriodWsOffsetColon + // 13:31:51.999 -07:00 MST + // timePeriodWsAlpha + // 06:20:00.000 UTC + if p.offseti == 0 { + p.offseti = i + } + switch r { + case '+', '-': + p.mslen = i - p.msi - 1 + p.stateTime = timePeriodWsOffset + default: + if unicode.IsLetter(r) { + // 00:07:31.945167 +0000 UTC + // 00:00:00.000 +0000 UTC + p.stateTime = timePeriodWsOffsetWsAlpha + break iterTimeRunes + } + } + + case timePeriodWsOffset: + // timePeriodWs + // timePeriodWsOffset + // 00:07:31.945167 +0000 + // 00:00:00.000 +0000 + // With Extra + // 00:00:00.000 +0300 +03 + // timePeriodWsOffsetAlpha + // 00:07:31.945167 +0000 UTC + // 00:00:00.000 +0000 UTC + // 03:02:00.001 +0300 MSK m=+0.000000001 + // timePeriodWsOffsetColon + // 13:31:51.999 -07:00 MST + // timePeriodWsAlpha + // 06:20:00.000 UTC + switch r { + case ':': + p.stateTime = timePeriodWsOffsetColon + case ' ': + p.set(p.offseti, "-0700") + case '+', '-': + // This really doesn't seem valid, but for some reason when round-tripping a go date + // their is an extra +03 printed out. seems like go bug to me, but, parsing anyway. + // 00:00:00.000 +0300 +03 + // 00:00:00.000 +0300 +0300 + p.extra = i - 1 + p.trimExtra() + break + default: + if unicode.IsLetter(r) { + // 00:07:31.945167 +0000 UTC + // 00:00:00.000 +0000 UTC + // 03:02:00.001 +0300 MSK m=+0.000000001 + p.stateTime = timePeriodWsOffsetWsAlpha + } + } + case timePeriodWsOffsetWsAlpha: + // 03:02:00.001 +0300 MSK m=+0.000000001 + // eff you golang + if r == '=' && datestr[i-1] == 'm' { + p.extra = i - 2 + p.trimExtra() + break + } + + case timePeriodWsOffsetColon: + // 13:31:51.999 -07:00 MST + switch r { + case ' ': + p.set(p.offseti, "-07:00") + default: + if unicode.IsLetter(r) { + // 13:31:51.999 -07:00 MST + p.tzi = i + p.stateTime = timePeriodWsOffsetColonAlpha + } + } + case timePeriodWsOffsetColonAlpha: + // continue + case timeZ: + // timeZ + // 15:04:05.99Z + // With a time-zone at end after Z + // 2006-01-02T15:04:05.999999999Z07:00 + // 2006-01-02T15:04:05Z07:00 + // RFC3339 = "2006-01-02T15:04:05Z07:00" + // RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00" + if unicode.IsDigit(r) { + p.stateTime = timeZDigit + } + + } + } + + switch p.stateTime { + case timeWsAlphaWs: + p.yearlen = i - p.yeari + p.setYear() + case timeWsYear: + p.yearlen = i - p.yeari + p.setYear() + case timeWsAlphaZoneOffsetWsExtra: + p.trimExtra() + case timeWsAlphaZoneOffset: + // 06:20:00 UTC-05 + if i-p.offseti < 4 { + p.set(p.offseti, "-07") + } else { + p.set(p.offseti, "-0700") + } + + case timePeriod: + p.mslen = i - p.msi + case timeOffset: + // 19:55:00+0100 + p.set(p.offseti, "-0700") + case timeWsOffset: + p.set(p.offseti, "-0700") + case timeWsOffsetWs: + // 17:57:51 -0700 2009 + // 00:12:00 +0000 UTC + case timeWsOffsetColon: + // 17:57:51 -07:00 + p.set(p.offseti, "-07:00") + case timeOffsetColon: + // 15:04:05+07:00 + p.set(p.offseti, "-07:00") + case timePeriodOffset: + // 19:55:00.799+0100 + p.set(p.offseti, "-0700") + case timePeriodOffsetColon: + p.set(p.offseti, "-07:00") + case timePeriodWsOffsetColonAlpha: + p.tzlen = i - p.tzi + switch p.tzlen { + case 3: + p.set(p.tzi, "MST") + case 4: + p.set(p.tzi, "MST ") + } + case timePeriodWsOffset: + p.set(p.offseti, "-0700") + } + p.coalesceTime(i) + } + + switch p.stateDate { + case dateDigit: + // unixy timestamps ish + // example ct type + // 1499979655583057426 19 nanoseconds + // 1499979795437000 16 micro-seconds + // 20180722105203 14 yyyyMMddhhmmss + // 1499979795437 13 milliseconds + // 1332151919 10 seconds + // 20140601 8 yyyymmdd + // 2014 4 yyyy + t := time.Time{} + if len(datestr) == len("1499979655583057426") { // 19 + // nano-seconds + if nanoSecs, err := strconv.ParseInt(datestr, 10, 64); err == nil { + t = time.Unix(0, nanoSecs) + } + } else if len(datestr) == len("1499979795437000") { // 16 + // micro-seconds + if microSecs, err := strconv.ParseInt(datestr, 10, 64); err == nil { + t = time.Unix(0, microSecs*1000) + } + } else if len(datestr) == len("yyyyMMddhhmmss") { // 14 + // yyyyMMddhhmmss + p.format = []byte("20060102150405") + return p, nil + } else if len(datestr) == len("1332151919000") { // 13 + if miliSecs, err := strconv.ParseInt(datestr, 10, 64); err == nil { + t = time.Unix(0, miliSecs*1000*1000) + } + } else if len(datestr) == len("1332151919") { //10 + if secs, err := strconv.ParseInt(datestr, 10, 64); err == nil { + t = time.Unix(secs, 0) + } + } else if len(datestr) == len("20140601") { + p.format = []byte("20060102") + return p, nil + } else if len(datestr) == len("2014") { + p.format = []byte("2006") + return p, nil + } else if len(datestr) < 4 { + return nil, fmt.Errorf("unrecognized format, too short %v", datestr) + } + if !t.IsZero() { + if loc == nil { + p.t = &t + return p, nil + } + t = t.In(loc) + p.t = &t + return p, nil + } + + case dateYearDash: + // 2006-01 + return p, nil + + case dateYearDashDash: + // 2006-01-02 + // 2006-1-02 + // 2006-1-2 + // 2006-01-2 + return p, nil + + case dateYearDashAlphaDash: + // 2013-Feb-03 + // 2013-Feb-3 + p.daylen = i - p.dayi + p.setDay() + return p, nil + + case dateYearDashDashWs: + // 2013-04-01 + return p, nil + + case dateYearDashDashT: + return p, nil + + case dateDigitDashAlphaDash: + // 13-Feb-03 ambiguous + // 28-Feb-03 ambiguous + // 29-Jun-2016 + length := len(datestr) - (p.moi + p.molen + 1) + if length == 4 { + p.yearlen = 4 + p.set(p.yeari, "2006") + // We now also know that part1 was the day + p.dayi = 0 + p.daylen = p.part1Len + p.setDay() + } else if length == 2 { + // We have no idea if this is + // yy-mon-dd OR dd-mon-yy + // + // We are going to ASSUME (bad, bad) that it is dd-mon-yy which is a horible assumption + p.ambiguousMD = true + p.yearlen = 2 + p.set(p.yeari, "06") + // We now also know that part1 was the day + p.dayi = 0 + p.daylen = p.part1Len + p.setDay() + } + + return p, nil + + case dateDigitDot: + // 2014.05 + p.molen = i - p.moi + p.setMonth() + return p, nil + + case dateDigitDotDot: + // 03.31.1981 + // 3.31.2014 + // 3.2.1981 + // 3.2.81 + // 08.21.71 + // 2018.09.30 + return p, nil + + case dateDigitWsMoYear: + // 2 Jan 2018 + // 2 Jan 18 + // 2 Jan 2018 23:59 + // 02 Jan 2018 23:59 + // 12 Feb 2006, 19:17 + return p, nil + + case dateDigitWsMolong: + // 18 January 2018 + // 8 January 2018 + if p.daylen == 2 { + p.format = []byte("02 January 2006") + return p, nil + } + p.format = []byte("2 January 2006") + return p, nil // parse("2 January 2006", datestr, loc) + + case dateAlphaWsMonth: + p.yearlen = i - p.yeari + p.setYear() + return p, nil + + case dateAlphaWsMonthMore: + return p, nil + + case dateAlphaWsDigitMoreWs: + // oct 1, 1970 + p.yearlen = i - p.yeari + p.setYear() + return p, nil + + case dateAlphaWsDigitMoreWsYear: + // May 8, 2009 5:57:51 PM + // Jun 7, 2005, 05:57:51 + return p, nil + + case dateAlphaWsAlpha: + return p, nil + + case dateAlphaWsAlphaYearmaybe: + return p, nil + + case dateDigitSlash: + // 3/1/2014 + // 10/13/2014 + // 01/02/2006 + // 2014/10/13 + return p, nil + + case dateDigitChineseYear: + // dateDigitChineseYear + // 2014年04月08日 + p.format = []byte("2006年01月02日") + return p, nil + + case dateDigitChineseYearWs: + p.format = []byte("2006年01月02日 15:04:05") + return p, nil + + case dateWeekdayComma: + // Monday, 02 Jan 2006 15:04:05 -0700 + // Monday, 02 Jan 2006 15:04:05 +0100 + // Monday, 02-Jan-06 15:04:05 MST + return p, nil + + case dateWeekdayAbbrevComma: + // Mon, 02-Jan-06 15:04:05 MST + // Mon, 02 Jan 2006 15:04:05 MST + return p, nil + + } + + return nil, unknownErr(datestr) +} + +type parser struct { + loc *time.Location + preferMonthFirst bool + ambiguousMD bool + stateDate dateState + stateTime timeState + format []byte + datestr string + fullMonth string + skip int + extra int + part1Len int + yeari int + yearlen int + moi int + molen int + dayi int + daylen int + houri int + hourlen int + mini int + minlen int + seci int + seclen int + msi int + mslen int + offseti int + offsetlen int + tzi int + tzlen int + t *time.Time +} + +func newParser(dateStr string, loc *time.Location) *parser { + p := parser{ + stateDate: dateStart, + stateTime: timeIgnore, + datestr: dateStr, + loc: loc, + preferMonthFirst: true, + } + p.format = []byte(dateStr) + return &p +} + +func (p *parser) nextIs(i int, b byte) bool { + if len(p.datestr) > i+1 && p.datestr[i+1] == b { + return true + } + return false +} + +func (p *parser) set(start int, val string) { + if start < 0 { + return + } + if len(p.format) < start+len(val) { + return + } + for i, r := range val { + p.format[start+i] = byte(r) + } +} +func (p *parser) setMonth() { + if p.molen == 2 { + p.set(p.moi, "01") + } else if p.molen == 1 { + p.set(p.moi, "1") + } +} + +func (p *parser) setDay() { + if p.daylen == 2 { + p.set(p.dayi, "02") + } else if p.daylen == 1 { + p.set(p.dayi, "2") + } +} +func (p *parser) setYear() { + if p.yearlen == 2 { + p.set(p.yeari, "06") + } else if p.yearlen == 4 { + p.set(p.yeari, "2006") + } +} +func (p *parser) coalesceDate(end int) { + if p.yeari > 0 { + if p.yearlen == 0 { + p.yearlen = end - p.yeari + } + p.setYear() + } + if p.moi > 0 && p.molen == 0 { + p.molen = end - p.moi + p.setMonth() + } + if p.dayi > 0 && p.daylen == 0 { + p.daylen = end - p.dayi + p.setDay() + } +} +func (p *parser) ts() string { + return fmt.Sprintf("h:(%d:%d) m:(%d:%d) s:(%d:%d)", p.houri, p.hourlen, p.mini, p.minlen, p.seci, p.seclen) +} +func (p *parser) ds() string { + return fmt.Sprintf("%s d:(%d:%d) m:(%d:%d) y:(%d:%d)", p.datestr, p.dayi, p.daylen, p.moi, p.molen, p.yeari, p.yearlen) +} +func (p *parser) coalesceTime(end int) { + // 03:04:05 + // 15:04:05 + // 3:04:05 + // 3:4:5 + // 15:04:05.00 + if p.houri > 0 { + if p.hourlen == 2 { + p.set(p.houri, "15") + } else if p.hourlen == 1 { + p.set(p.houri, "3") + } + } + if p.mini > 0 { + if p.minlen == 0 { + p.minlen = end - p.mini + } + if p.minlen == 2 { + p.set(p.mini, "04") + } else { + p.set(p.mini, "4") + } + } + if p.seci > 0 { + if p.seclen == 0 { + p.seclen = end - p.seci + } + if p.seclen == 2 { + p.set(p.seci, "05") + } else { + p.set(p.seci, "5") + } + } + + if p.msi > 0 { + for i := 0; i < p.mslen; i++ { + p.format[p.msi+i] = '0' + } + } +} +func (p *parser) setFullMonth(month string) { + if p.moi == 0 { + p.format = []byte(fmt.Sprintf("%s%s", "January", p.format[len(month):])) + } +} + +func (p *parser) trimExtra() { + if p.extra > 0 && len(p.format) > p.extra { + p.format = p.format[0:p.extra] + p.datestr = p.datestr[0:p.extra] + } +} + +// func (p *parser) remove(i, length int) { +// if len(p.format) > i+length { +// //append(a[:i], a[j:]...) +// p.format = append(p.format[0:i], p.format[i+length:]...) +// } +// if len(p.datestr) > i+length { +// //append(a[:i], a[j:]...) +// p.datestr = fmt.Sprintf("%s%s", p.datestr[0:i], p.datestr[i+length:]) +// } +// } + +func (p *parser) parse() (time.Time, error) { + if p.t != nil { + return *p.t, nil + } + if len(p.fullMonth) > 0 { + p.setFullMonth(p.fullMonth) + } + if p.skip > 0 && len(p.format) > p.skip { + p.format = p.format[p.skip:] + p.datestr = p.datestr[p.skip:] + } + //gou.Debugf("parse %q AS %q", p.datestr, string(p.format)) + if p.loc == nil { + return time.Parse(string(p.format), p.datestr) + } + return time.ParseInLocation(string(p.format), p.datestr, p.loc) +} +func isMonthFull(alpha string) bool { + for _, month := range months { + if alpha == month { + return true + } + } + return false +} diff --git a/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/.travis.yml b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/.travis.yml new file mode 100644 index 000000000..01c5dc219 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/.travis.yml @@ -0,0 +1,13 @@ +language: go + +go: + - 1.2 + - 1.3 + - 1.4 + - 1.9 + - "1.10" + - 1.11 + - 1.12 + +script: + - go test diff --git a/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/LICENSE b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/LICENSE new file mode 100644 index 000000000..c33dcc7c9 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/LICENSE @@ -0,0 +1,354 @@ +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. “Contributor” + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. “Contributor Version” + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor’s Contribution. + +1.3. “Contribution” + + means Covered Software of a particular Contributor. + +1.4. “Covered Software” + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. “Incompatible With Secondary Licenses” + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of version + 1.1 or earlier of the License, but not also under the terms of a + Secondary License. + +1.6. “Executable Form” + + means any form of the work other than Source Code Form. + +1.7. “Larger Work” + + means a work that combines Covered Software with other material, in a separate + file or files, that is not Covered Software. + +1.8. “License” + + means this document. + +1.9. “Licensable” + + means having the right to grant, to the maximum extent possible, whether at the + time of the initial grant or subsequently, any and all of the rights conveyed by + this License. + +1.10. “Modifications” + + means any of the following: + + a. any file in Source Code Form that results from an addition to, deletion + from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. “Patent Claims” of a Contributor + + means any patent claim(s), including without limitation, method, process, + and apparatus claims, in any patent Licensable by such Contributor that + would be infringed, but for the grant of the License, by the making, + using, selling, offering for sale, having made, import, or transfer of + either its Contributions or its Contributor Version. + +1.12. “Secondary License” + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. “Source Code Form” + + means the form of the work preferred for making modifications. + +1.14. “You” (or “Your”) + + means an individual or a legal entity exercising rights under this + License. For legal entities, “You” includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, “control” means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or as + part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its Contributions + or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution become + effective for each Contribution on the date the Contributor first distributes + such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under this + License. No additional rights or licenses will be implied from the distribution + or licensing of Covered Software under this License. Notwithstanding Section + 2.1(b) above, no patent license is granted by a Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party’s + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of its + Contributions. + + This License does not grant any rights in the trademarks, service marks, or + logos of any Contributor (except as may be necessary to comply with the + notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this License + (see Section 10.2) or under the terms of a Secondary License (if permitted + under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its Contributions + are its original creation(s) or it has sufficient rights to grant the + rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under applicable + copyright doctrines of fair use, fair dealing, or other equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under the + terms of this License. You must inform recipients that the Source Code Form + of the Covered Software is governed by the terms of this License, and how + they can obtain a copy of this License. You may not attempt to alter or + restrict the recipients’ rights in the Source Code Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this License, + or sublicense it under different terms, provided that the license for + the Executable Form does not attempt to limit or alter the recipients’ + rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for the + Covered Software. If the Larger Work is a combination of Covered Software + with a work governed by one or more Secondary Licenses, and the Covered + Software is not Incompatible With Secondary Licenses, this License permits + You to additionally distribute such Covered Software under the terms of + such Secondary License(s), so that the recipient of the Larger Work may, at + their option, further distribute the Covered Software under the terms of + either this License or such Secondary License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices (including + copyright notices, patent notices, disclaimers of warranty, or limitations + of liability) contained within the Source Code Form of the Covered + Software, except that You may alter any license notices to the extent + required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on behalf + of any Contributor. You must make it absolutely clear that any such + warranty, support, indemnity, or liability obligation is offered by You + alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, judicial + order, or regulation then You must: (a) comply with the terms of this License + to the maximum extent possible; and (b) describe the limitations and the code + they affect. Such description must be placed in a text file included with all + distributions of the Covered Software under this License. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing basis, + if such Contributor fails to notify You of the non-compliance by some + reasonable means prior to 60 days after You have come back into compliance. + Moreover, Your grants from a particular Contributor are reinstated on an + ongoing basis if such Contributor notifies You of the non-compliance by + some reasonable means, this is the first time You have received notice of + non-compliance with this License from such Contributor, and You become + compliant prior to 30 days after Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, counter-claims, + and cross-claims) alleging that a Contributor Version directly or + indirectly infringes any patent, then the rights granted to You by any and + all Contributors for the Covered Software under Section 2.1 of this License + shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an “as is” basis, without + warranty of any kind, either expressed, implied, or statutory, including, + without limitation, warranties that the Covered Software is free of defects, + merchantable, fit for a particular purpose or non-infringing. The entire + risk as to the quality and performance of the Covered Software is with You. + Should any Covered Software prove defective in any respect, You (not any + Contributor) assume the cost of any necessary servicing, repair, or + correction. This disclaimer of warranty constitutes an essential part of this + License. No use of any Covered Software is authorized under this License + except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from such + party’s negligence to the extent applicable law prohibits such limitation. + Some jurisdictions do not allow the exclusion or limitation of incidental or + consequential damages, so this exclusion and limitation may not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts of + a jurisdiction where the defendant maintains its principal place of business + and such litigation shall be governed by laws of that jurisdiction, without + reference to its conflict-of-law provisions. Nothing in this Section shall + prevent a party’s ability to bring cross-claims or counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject matter + hereof. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. Any law or regulation which provides that the language of a + contract shall be construed against the drafter shall not be used to construe + this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version of + the License under which You originally received the Covered Software, or + under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a modified + version of this License if you rename the license and remove any + references to the name of the license steward (except to note that such + modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + If You choose to distribute Source Code Form that is Incompatible With + Secondary Licenses under the terms of this version of the License, the + notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, then +You may include the notice in a location (such as a LICENSE file in a relevant +directory) where a recipient would be likely to look for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - “Incompatible With Secondary Licenses” Notice + + This Source Code Form is “Incompatible + With Secondary Licenses”, as defined by + the Mozilla Public License, v. 2.0. + diff --git a/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/README.md b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/README.md new file mode 100644 index 000000000..6f3a15ce7 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/README.md @@ -0,0 +1,65 @@ +# Versioning Library for Go +[![Build Status](https://travis-ci.org/hashicorp/go-version.svg?branch=master)](https://travis-ci.org/hashicorp/go-version) + +go-version is a library for parsing versions and version constraints, +and verifying versions against a set of constraints. go-version +can sort a collection of versions properly, handles prerelease/beta +versions, can increment versions, etc. + +Versions used with go-version must follow [SemVer](http://semver.org/). + +## Installation and Usage + +Package documentation can be found on +[GoDoc](http://godoc.org/github.com/hashicorp/go-version). + +Installation can be done with a normal `go get`: + +``` +$ go get github.com/hashicorp/go-version +``` + +#### Version Parsing and Comparison + +```go +v1, err := version.NewVersion("1.2") +v2, err := version.NewVersion("1.5+metadata") + +// Comparison example. There is also GreaterThan, Equal, and just +// a simple Compare that returns an int allowing easy >=, <=, etc. +if v1.LessThan(v2) { + fmt.Printf("%s is less than %s", v1, v2) +} +``` + +#### Version Constraints + +```go +v1, err := version.NewVersion("1.2") + +// Constraints example. +constraints, err := version.NewConstraint(">= 1.0, < 1.4") +if constraints.Check(v1) { + fmt.Printf("%s satisfies constraints %s", v1, constraints) +} +``` + +#### Version Sorting + +```go +versionsRaw := []string{"1.1", "0.7.1", "1.4-beta", "1.4", "2"} +versions := make([]*version.Version, len(versionsRaw)) +for i, raw := range versionsRaw { + v, _ := version.NewVersion(raw) + versions[i] = v +} + +// After this, the versions are properly sorted +sort.Sort(version.Collection(versions)) +``` + +## Issues and Contributing + +If you find an issue with this library, please report an issue. If you'd +like, we welcome any contributions. Fork this library and submit a pull +request. diff --git a/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/constraint.go b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/constraint.go new file mode 100644 index 000000000..d05575961 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/constraint.go @@ -0,0 +1,204 @@ +package version + +import ( + "fmt" + "reflect" + "regexp" + "strings" +) + +// Constraint represents a single constraint for a version, such as +// ">= 1.0". +type Constraint struct { + f constraintFunc + check *Version + original string +} + +// Constraints is a slice of constraints. We make a custom type so that +// we can add methods to it. +type Constraints []*Constraint + +type constraintFunc func(v, c *Version) bool + +var constraintOperators map[string]constraintFunc + +var constraintRegexp *regexp.Regexp + +func init() { + constraintOperators = map[string]constraintFunc{ + "": constraintEqual, + "=": constraintEqual, + "!=": constraintNotEqual, + ">": constraintGreaterThan, + "<": constraintLessThan, + ">=": constraintGreaterThanEqual, + "<=": constraintLessThanEqual, + "~>": constraintPessimistic, + } + + ops := make([]string, 0, len(constraintOperators)) + for k := range constraintOperators { + ops = append(ops, regexp.QuoteMeta(k)) + } + + constraintRegexp = regexp.MustCompile(fmt.Sprintf( + `^\s*(%s)\s*(%s)\s*$`, + strings.Join(ops, "|"), + VersionRegexpRaw)) +} + +// NewConstraint will parse one or more constraints from the given +// constraint string. The string must be a comma-separated list of +// constraints. +func NewConstraint(v string) (Constraints, error) { + vs := strings.Split(v, ",") + result := make([]*Constraint, len(vs)) + for i, single := range vs { + c, err := parseSingle(single) + if err != nil { + return nil, err + } + + result[i] = c + } + + return Constraints(result), nil +} + +// Check tests if a version satisfies all the constraints. +func (cs Constraints) Check(v *Version) bool { + for _, c := range cs { + if !c.Check(v) { + return false + } + } + + return true +} + +// Returns the string format of the constraints +func (cs Constraints) String() string { + csStr := make([]string, len(cs)) + for i, c := range cs { + csStr[i] = c.String() + } + + return strings.Join(csStr, ",") +} + +// Check tests if a constraint is validated by the given version. +func (c *Constraint) Check(v *Version) bool { + return c.f(v, c.check) +} + +func (c *Constraint) String() string { + return c.original +} + +func parseSingle(v string) (*Constraint, error) { + matches := constraintRegexp.FindStringSubmatch(v) + if matches == nil { + return nil, fmt.Errorf("Malformed constraint: %s", v) + } + + check, err := NewVersion(matches[2]) + if err != nil { + return nil, err + } + + return &Constraint{ + f: constraintOperators[matches[1]], + check: check, + original: v, + }, nil +} + +func prereleaseCheck(v, c *Version) bool { + switch vPre, cPre := v.Prerelease() != "", c.Prerelease() != ""; { + case cPre && vPre: + // A constraint with a pre-release can only match a pre-release version + // with the same base segments. + return reflect.DeepEqual(c.Segments64(), v.Segments64()) + + case !cPre && vPre: + // A constraint without a pre-release can only match a version without a + // pre-release. + return false + + case cPre && !vPre: + // OK, except with the pessimistic operator + case !cPre && !vPre: + // OK + } + return true +} + +//------------------------------------------------------------------- +// Constraint functions +//------------------------------------------------------------------- + +func constraintEqual(v, c *Version) bool { + return v.Equal(c) +} + +func constraintNotEqual(v, c *Version) bool { + return !v.Equal(c) +} + +func constraintGreaterThan(v, c *Version) bool { + return prereleaseCheck(v, c) && v.Compare(c) == 1 +} + +func constraintLessThan(v, c *Version) bool { + return prereleaseCheck(v, c) && v.Compare(c) == -1 +} + +func constraintGreaterThanEqual(v, c *Version) bool { + return prereleaseCheck(v, c) && v.Compare(c) >= 0 +} + +func constraintLessThanEqual(v, c *Version) bool { + return prereleaseCheck(v, c) && v.Compare(c) <= 0 +} + +func constraintPessimistic(v, c *Version) bool { + // Using a pessimistic constraint with a pre-release, restricts versions to pre-releases + if !prereleaseCheck(v, c) || (c.Prerelease() != "" && v.Prerelease() == "") { + return false + } + + // If the version being checked is naturally less than the constraint, then there + // is no way for the version to be valid against the constraint + if v.LessThan(c) { + return false + } + // We'll use this more than once, so grab the length now so it's a little cleaner + // to write the later checks + cs := len(c.segments) + + // If the version being checked has less specificity than the constraint, then there + // is no way for the version to be valid against the constraint + if cs > len(v.segments) { + return false + } + + // Check the segments in the constraint against those in the version. If the version + // being checked, at any point, does not have the same values in each index of the + // constraints segments, then it cannot be valid against the constraint. + for i := 0; i < c.si-1; i++ { + if v.segments[i] != c.segments[i] { + return false + } + } + + // Check the last part of the segment in the constraint. If the version segment at + // this index is less than the constraints segment at this index, then it cannot + // be valid against the constraint + if c.segments[cs-1] > v.segments[cs-1] { + return false + } + + // If nothing has rejected the version by now, it's valid + return true +} diff --git a/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/version.go b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/version.go new file mode 100644 index 000000000..1032c5606 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/version.go @@ -0,0 +1,380 @@ +package version + +import ( + "bytes" + "fmt" + "reflect" + "regexp" + "strconv" + "strings" +) + +// The compiled regular expression used to test the validity of a version. +var ( + versionRegexp *regexp.Regexp + semverRegexp *regexp.Regexp +) + +// The raw regular expression string used for testing the validity +// of a version. +const ( + VersionRegexpRaw string = `v?([0-9]+(\.[0-9]+)*?)` + + `(-([0-9]+[0-9A-Za-z\-~]*(\.[0-9A-Za-z\-~]+)*)|(-?([A-Za-z\-~]+[0-9A-Za-z\-~]*(\.[0-9A-Za-z\-~]+)*)))?` + + `(\+([0-9A-Za-z\-~]+(\.[0-9A-Za-z\-~]+)*))?` + + `?` + + // SemverRegexpRaw requires a separator between version and prerelease + SemverRegexpRaw string = `v?([0-9]+(\.[0-9]+)*?)` + + `(-([0-9]+[0-9A-Za-z\-~]*(\.[0-9A-Za-z\-~]+)*)|(-([A-Za-z\-~]+[0-9A-Za-z\-~]*(\.[0-9A-Za-z\-~]+)*)))?` + + `(\+([0-9A-Za-z\-~]+(\.[0-9A-Za-z\-~]+)*))?` + + `?` +) + +// Version represents a single version. +type Version struct { + metadata string + pre string + segments []int64 + si int + original string +} + +func init() { + versionRegexp = regexp.MustCompile("^" + VersionRegexpRaw + "$") + semverRegexp = regexp.MustCompile("^" + SemverRegexpRaw + "$") +} + +// NewVersion parses the given version and returns a new +// Version. +func NewVersion(v string) (*Version, error) { + return newVersion(v, versionRegexp) +} + +// NewSemver parses the given version and returns a new +// Version that adheres strictly to SemVer specs +// https://semver.org/ +func NewSemver(v string) (*Version, error) { + return newVersion(v, semverRegexp) +} + +func newVersion(v string, pattern *regexp.Regexp) (*Version, error) { + matches := pattern.FindStringSubmatch(v) + if matches == nil { + return nil, fmt.Errorf("Malformed version: %s", v) + } + segmentsStr := strings.Split(matches[1], ".") + segments := make([]int64, len(segmentsStr)) + si := 0 + for i, str := range segmentsStr { + val, err := strconv.ParseInt(str, 10, 64) + if err != nil { + return nil, fmt.Errorf( + "Error parsing version: %s", err) + } + + segments[i] = int64(val) + si++ + } + + // Even though we could support more than three segments, if we + // got less than three, pad it with 0s. This is to cover the basic + // default usecase of semver, which is MAJOR.MINOR.PATCH at the minimum + for i := len(segments); i < 3; i++ { + segments = append(segments, 0) + } + + pre := matches[7] + if pre == "" { + pre = matches[4] + } + + return &Version{ + metadata: matches[10], + pre: pre, + segments: segments, + si: si, + original: v, + }, nil +} + +// Must is a helper that wraps a call to a function returning (*Version, error) +// and panics if error is non-nil. +func Must(v *Version, err error) *Version { + if err != nil { + panic(err) + } + + return v +} + +// Compare compares this version to another version. This +// returns -1, 0, or 1 if this version is smaller, equal, +// or larger than the other version, respectively. +// +// If you want boolean results, use the LessThan, Equal, +// GreaterThan, GreaterThanOrEqual or LessThanOrEqual methods. +func (v *Version) Compare(other *Version) int { + // A quick, efficient equality check + if v.String() == other.String() { + return 0 + } + + segmentsSelf := v.Segments64() + segmentsOther := other.Segments64() + + // If the segments are the same, we must compare on prerelease info + if reflect.DeepEqual(segmentsSelf, segmentsOther) { + preSelf := v.Prerelease() + preOther := other.Prerelease() + if preSelf == "" && preOther == "" { + return 0 + } + if preSelf == "" { + return 1 + } + if preOther == "" { + return -1 + } + + return comparePrereleases(preSelf, preOther) + } + + // Get the highest specificity (hS), or if they're equal, just use segmentSelf length + lenSelf := len(segmentsSelf) + lenOther := len(segmentsOther) + hS := lenSelf + if lenSelf < lenOther { + hS = lenOther + } + // Compare the segments + // Because a constraint could have more/less specificity than the version it's + // checking, we need to account for a lopsided or jagged comparison + for i := 0; i < hS; i++ { + if i > lenSelf-1 { + // This means Self had the lower specificity + // Check to see if the remaining segments in Other are all zeros + if !allZero(segmentsOther[i:]) { + // if not, it means that Other has to be greater than Self + return -1 + } + break + } else if i > lenOther-1 { + // this means Other had the lower specificity + // Check to see if the remaining segments in Self are all zeros - + if !allZero(segmentsSelf[i:]) { + //if not, it means that Self has to be greater than Other + return 1 + } + break + } + lhs := segmentsSelf[i] + rhs := segmentsOther[i] + if lhs == rhs { + continue + } else if lhs < rhs { + return -1 + } + // Otherwis, rhs was > lhs, they're not equal + return 1 + } + + // if we got this far, they're equal + return 0 +} + +func allZero(segs []int64) bool { + for _, s := range segs { + if s != 0 { + return false + } + } + return true +} + +func comparePart(preSelf string, preOther string) int { + if preSelf == preOther { + return 0 + } + + var selfInt int64 + selfNumeric := true + selfInt, err := strconv.ParseInt(preSelf, 10, 64) + if err != nil { + selfNumeric = false + } + + var otherInt int64 + otherNumeric := true + otherInt, err = strconv.ParseInt(preOther, 10, 64) + if err != nil { + otherNumeric = false + } + + // if a part is empty, we use the other to decide + if preSelf == "" { + if otherNumeric { + return -1 + } + return 1 + } + + if preOther == "" { + if selfNumeric { + return 1 + } + return -1 + } + + if selfNumeric && !otherNumeric { + return -1 + } else if !selfNumeric && otherNumeric { + return 1 + } else if !selfNumeric && !otherNumeric && preSelf > preOther { + return 1 + } else if selfInt > otherInt { + return 1 + } + + return -1 +} + +func comparePrereleases(v string, other string) int { + // the same pre release! + if v == other { + return 0 + } + + // split both pre releases for analyse their parts + selfPreReleaseMeta := strings.Split(v, ".") + otherPreReleaseMeta := strings.Split(other, ".") + + selfPreReleaseLen := len(selfPreReleaseMeta) + otherPreReleaseLen := len(otherPreReleaseMeta) + + biggestLen := otherPreReleaseLen + if selfPreReleaseLen > otherPreReleaseLen { + biggestLen = selfPreReleaseLen + } + + // loop for parts to find the first difference + for i := 0; i < biggestLen; i = i + 1 { + partSelfPre := "" + if i < selfPreReleaseLen { + partSelfPre = selfPreReleaseMeta[i] + } + + partOtherPre := "" + if i < otherPreReleaseLen { + partOtherPre = otherPreReleaseMeta[i] + } + + compare := comparePart(partSelfPre, partOtherPre) + // if parts are equals, continue the loop + if compare != 0 { + return compare + } + } + + return 0 +} + +// Equal tests if two versions are equal. +func (v *Version) Equal(o *Version) bool { + return v.Compare(o) == 0 +} + +// GreaterThan tests if this version is greater than another version. +func (v *Version) GreaterThan(o *Version) bool { + return v.Compare(o) > 0 +} + +// GreaterThanOrEqualTo tests if this version is greater than or equal to another version. +func (v *Version) GreaterThanOrEqual(o *Version) bool { + return v.Compare(o) >= 0 +} + +// LessThan tests if this version is less than another version. +func (v *Version) LessThan(o *Version) bool { + return v.Compare(o) < 0 +} + +// LessThanOrEqualTo tests if this version is less than or equal to another version. +func (v *Version) LessThanOrEqual(o *Version) bool { + return v.Compare(o) <= 0 +} + +// Metadata returns any metadata that was part of the version +// string. +// +// Metadata is anything that comes after the "+" in the version. +// For example, with "1.2.3+beta", the metadata is "beta". +func (v *Version) Metadata() string { + return v.metadata +} + +// Prerelease returns any prerelease data that is part of the version, +// or blank if there is no prerelease data. +// +// Prerelease information is anything that comes after the "-" in the +// version (but before any metadata). For example, with "1.2.3-beta", +// the prerelease information is "beta". +func (v *Version) Prerelease() string { + return v.pre +} + +// Segments returns the numeric segments of the version as a slice of ints. +// +// This excludes any metadata or pre-release information. For example, +// for a version "1.2.3-beta", segments will return a slice of +// 1, 2, 3. +func (v *Version) Segments() []int { + segmentSlice := make([]int, len(v.segments)) + for i, v := range v.segments { + segmentSlice[i] = int(v) + } + return segmentSlice +} + +// Segments64 returns the numeric segments of the version as a slice of int64s. +// +// This excludes any metadata or pre-release information. For example, +// for a version "1.2.3-beta", segments will return a slice of +// 1, 2, 3. +func (v *Version) Segments64() []int64 { + result := make([]int64, len(v.segments)) + copy(result, v.segments) + return result +} + +// String returns the full version string included pre-release +// and metadata information. +// +// This value is rebuilt according to the parsed segments and other +// information. Therefore, ambiguities in the version string such as +// prefixed zeroes (1.04.0 => 1.4.0), `v` prefix (v1.0.0 => 1.0.0), and +// missing parts (1.0 => 1.0.0) will be made into a canonicalized form +// as shown in the parenthesized examples. +func (v *Version) String() string { + var buf bytes.Buffer + fmtParts := make([]string, len(v.segments)) + for i, s := range v.segments { + // We can ignore err here since we've pre-parsed the values in segments + str := strconv.FormatInt(s, 10) + fmtParts[i] = str + } + fmt.Fprintf(&buf, strings.Join(fmtParts, ".")) + if v.pre != "" { + fmt.Fprintf(&buf, "-%s", v.pre) + } + if v.metadata != "" { + fmt.Fprintf(&buf, "+%s", v.metadata) + } + + return buf.String() +} + +// Original returns the original parsed version as-is, including any +// potential whitespace, `v` prefix, etc. +func (v *Version) Original() string { + return v.original +} diff --git a/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/version_collection.go b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/version_collection.go new file mode 100644 index 000000000..cc888d43e --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/hashicorp/go-version/version_collection.go @@ -0,0 +1,17 @@ +package version + +// Collection is a type that implements the sort.Interface interface +// so that versions can be sorted. +type Collection []*Version + +func (v Collection) Len() int { + return len(v) +} + +func (v Collection) Less(i, j int) bool { + return v[i].LessThan(v[j]) +} + +func (v Collection) Swap(i, j int) { + v[i], v[j] = v[j], v[i] +} diff --git a/scripts/token-log-collector/vendor/github.com/kr/pretty/.gitignore b/scripts/token-log-collector/vendor/github.com/kr/pretty/.gitignore new file mode 100644 index 000000000..1f0a99f2f --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/pretty/.gitignore @@ -0,0 +1,4 @@ +[568].out +_go* +_test* +_obj diff --git a/scripts/token-log-collector/vendor/github.com/kr/pretty/License b/scripts/token-log-collector/vendor/github.com/kr/pretty/License new file mode 100644 index 000000000..480a32805 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/pretty/License @@ -0,0 +1,19 @@ +Copyright 2012 Keith Rarick + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/scripts/token-log-collector/vendor/github.com/kr/pretty/Readme b/scripts/token-log-collector/vendor/github.com/kr/pretty/Readme new file mode 100644 index 000000000..c589fc622 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/pretty/Readme @@ -0,0 +1,9 @@ +package pretty + + import "github.com/kr/pretty" + + Package pretty provides pretty-printing for Go values. + +Documentation + + http://godoc.org/github.com/kr/pretty diff --git a/scripts/token-log-collector/vendor/github.com/kr/pretty/diff.go b/scripts/token-log-collector/vendor/github.com/kr/pretty/diff.go new file mode 100644 index 000000000..6aa7f743a --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/pretty/diff.go @@ -0,0 +1,265 @@ +package pretty + +import ( + "fmt" + "io" + "reflect" +) + +type sbuf []string + +func (p *sbuf) Printf(format string, a ...interface{}) { + s := fmt.Sprintf(format, a...) + *p = append(*p, s) +} + +// Diff returns a slice where each element describes +// a difference between a and b. +func Diff(a, b interface{}) (desc []string) { + Pdiff((*sbuf)(&desc), a, b) + return desc +} + +// wprintfer calls Fprintf on w for each Printf call +// with a trailing newline. +type wprintfer struct{ w io.Writer } + +func (p *wprintfer) Printf(format string, a ...interface{}) { + fmt.Fprintf(p.w, format+"\n", a...) +} + +// Fdiff writes to w a description of the differences between a and b. +func Fdiff(w io.Writer, a, b interface{}) { + Pdiff(&wprintfer{w}, a, b) +} + +type Printfer interface { + Printf(format string, a ...interface{}) +} + +// Pdiff prints to p a description of the differences between a and b. +// It calls Printf once for each difference, with no trailing newline. +// The standard library log.Logger is a Printfer. +func Pdiff(p Printfer, a, b interface{}) { + diffPrinter{w: p}.diff(reflect.ValueOf(a), reflect.ValueOf(b)) +} + +type Logfer interface { + Logf(format string, a ...interface{}) +} + +// logprintfer calls Fprintf on w for each Printf call +// with a trailing newline. +type logprintfer struct{ l Logfer } + +func (p *logprintfer) Printf(format string, a ...interface{}) { + p.l.Logf(format, a...) +} + +// Ldiff prints to l a description of the differences between a and b. +// It calls Logf once for each difference, with no trailing newline. +// The standard library testing.T and testing.B are Logfers. +func Ldiff(l Logfer, a, b interface{}) { + Pdiff(&logprintfer{l}, a, b) +} + +type diffPrinter struct { + w Printfer + l string // label +} + +func (w diffPrinter) printf(f string, a ...interface{}) { + var l string + if w.l != "" { + l = w.l + ": " + } + w.w.Printf(l+f, a...) +} + +func (w diffPrinter) diff(av, bv reflect.Value) { + if !av.IsValid() && bv.IsValid() { + w.printf("nil != %# v", formatter{v: bv, quote: true}) + return + } + if av.IsValid() && !bv.IsValid() { + w.printf("%# v != nil", formatter{v: av, quote: true}) + return + } + if !av.IsValid() && !bv.IsValid() { + return + } + + at := av.Type() + bt := bv.Type() + if at != bt { + w.printf("%v != %v", at, bt) + return + } + + switch kind := at.Kind(); kind { + case reflect.Bool: + if a, b := av.Bool(), bv.Bool(); a != b { + w.printf("%v != %v", a, b) + } + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + if a, b := av.Int(), bv.Int(); a != b { + w.printf("%d != %d", a, b) + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + if a, b := av.Uint(), bv.Uint(); a != b { + w.printf("%d != %d", a, b) + } + case reflect.Float32, reflect.Float64: + if a, b := av.Float(), bv.Float(); a != b { + w.printf("%v != %v", a, b) + } + case reflect.Complex64, reflect.Complex128: + if a, b := av.Complex(), bv.Complex(); a != b { + w.printf("%v != %v", a, b) + } + case reflect.Array: + n := av.Len() + for i := 0; i < n; i++ { + w.relabel(fmt.Sprintf("[%d]", i)).diff(av.Index(i), bv.Index(i)) + } + case reflect.Chan, reflect.Func, reflect.UnsafePointer: + if a, b := av.Pointer(), bv.Pointer(); a != b { + w.printf("%#x != %#x", a, b) + } + case reflect.Interface: + w.diff(av.Elem(), bv.Elem()) + case reflect.Map: + ak, both, bk := keyDiff(av.MapKeys(), bv.MapKeys()) + for _, k := range ak { + w := w.relabel(fmt.Sprintf("[%#v]", k)) + w.printf("%q != (missing)", av.MapIndex(k)) + } + for _, k := range both { + w := w.relabel(fmt.Sprintf("[%#v]", k)) + w.diff(av.MapIndex(k), bv.MapIndex(k)) + } + for _, k := range bk { + w := w.relabel(fmt.Sprintf("[%#v]", k)) + w.printf("(missing) != %q", bv.MapIndex(k)) + } + case reflect.Ptr: + switch { + case av.IsNil() && !bv.IsNil(): + w.printf("nil != %# v", formatter{v: bv, quote: true}) + case !av.IsNil() && bv.IsNil(): + w.printf("%# v != nil", formatter{v: av, quote: true}) + case !av.IsNil() && !bv.IsNil(): + w.diff(av.Elem(), bv.Elem()) + } + case reflect.Slice: + lenA := av.Len() + lenB := bv.Len() + if lenA != lenB { + w.printf("%s[%d] != %s[%d]", av.Type(), lenA, bv.Type(), lenB) + break + } + for i := 0; i < lenA; i++ { + w.relabel(fmt.Sprintf("[%d]", i)).diff(av.Index(i), bv.Index(i)) + } + case reflect.String: + if a, b := av.String(), bv.String(); a != b { + w.printf("%q != %q", a, b) + } + case reflect.Struct: + for i := 0; i < av.NumField(); i++ { + w.relabel(at.Field(i).Name).diff(av.Field(i), bv.Field(i)) + } + default: + panic("unknown reflect Kind: " + kind.String()) + } +} + +func (d diffPrinter) relabel(name string) (d1 diffPrinter) { + d1 = d + if d.l != "" && name[0] != '[' { + d1.l += "." + } + d1.l += name + return d1 +} + +// keyEqual compares a and b for equality. +// Both a and b must be valid map keys. +func keyEqual(av, bv reflect.Value) bool { + if !av.IsValid() && !bv.IsValid() { + return true + } + if !av.IsValid() || !bv.IsValid() || av.Type() != bv.Type() { + return false + } + switch kind := av.Kind(); kind { + case reflect.Bool: + a, b := av.Bool(), bv.Bool() + return a == b + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + a, b := av.Int(), bv.Int() + return a == b + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + a, b := av.Uint(), bv.Uint() + return a == b + case reflect.Float32, reflect.Float64: + a, b := av.Float(), bv.Float() + return a == b + case reflect.Complex64, reflect.Complex128: + a, b := av.Complex(), bv.Complex() + return a == b + case reflect.Array: + for i := 0; i < av.Len(); i++ { + if !keyEqual(av.Index(i), bv.Index(i)) { + return false + } + } + return true + case reflect.Chan, reflect.UnsafePointer, reflect.Ptr: + a, b := av.Pointer(), bv.Pointer() + return a == b + case reflect.Interface: + return keyEqual(av.Elem(), bv.Elem()) + case reflect.String: + a, b := av.String(), bv.String() + return a == b + case reflect.Struct: + for i := 0; i < av.NumField(); i++ { + if !keyEqual(av.Field(i), bv.Field(i)) { + return false + } + } + return true + default: + panic("invalid map key type " + av.Type().String()) + } +} + +func keyDiff(a, b []reflect.Value) (ak, both, bk []reflect.Value) { + for _, av := range a { + inBoth := false + for _, bv := range b { + if keyEqual(av, bv) { + inBoth = true + both = append(both, av) + break + } + } + if !inBoth { + ak = append(ak, av) + } + } + for _, bv := range b { + inBoth := false + for _, av := range a { + if keyEqual(av, bv) { + inBoth = true + break + } + } + if !inBoth { + bk = append(bk, bv) + } + } + return +} diff --git a/scripts/token-log-collector/vendor/github.com/kr/pretty/formatter.go b/scripts/token-log-collector/vendor/github.com/kr/pretty/formatter.go new file mode 100644 index 000000000..bf4b598d0 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/pretty/formatter.go @@ -0,0 +1,327 @@ +package pretty + +import ( + "fmt" + "io" + "reflect" + "strconv" + "text/tabwriter" + + "github.com/kr/text" +) + +type formatter struct { + v reflect.Value + force bool + quote bool +} + +// Formatter makes a wrapper, f, that will format x as go source with line +// breaks and tabs. Object f responds to the "%v" formatting verb when both the +// "#" and " " (space) flags are set, for example: +// +// fmt.Sprintf("%# v", Formatter(x)) +// +// If one of these two flags is not set, or any other verb is used, f will +// format x according to the usual rules of package fmt. +// In particular, if x satisfies fmt.Formatter, then x.Format will be called. +func Formatter(x interface{}) (f fmt.Formatter) { + return formatter{v: reflect.ValueOf(x), quote: true} +} + +func (fo formatter) String() string { + return fmt.Sprint(fo.v.Interface()) // unwrap it +} + +func (fo formatter) passThrough(f fmt.State, c rune) { + s := "%" + for i := 0; i < 128; i++ { + if f.Flag(i) { + s += string(rune(i)) + } + } + if w, ok := f.Width(); ok { + s += fmt.Sprintf("%d", w) + } + if p, ok := f.Precision(); ok { + s += fmt.Sprintf(".%d", p) + } + s += string(c) + fmt.Fprintf(f, s, fo.v.Interface()) +} + +func (fo formatter) Format(f fmt.State, c rune) { + if fo.force || c == 'v' && f.Flag('#') && f.Flag(' ') { + w := tabwriter.NewWriter(f, 4, 4, 1, ' ', 0) + p := &printer{tw: w, Writer: w, visited: make(map[visit]int)} + p.printValue(fo.v, true, fo.quote) + w.Flush() + return + } + fo.passThrough(f, c) +} + +type printer struct { + io.Writer + tw *tabwriter.Writer + visited map[visit]int + depth int +} + +func (p *printer) indent() *printer { + q := *p + q.tw = tabwriter.NewWriter(p.Writer, 4, 4, 1, ' ', 0) + q.Writer = text.NewIndentWriter(q.tw, []byte{'\t'}) + return &q +} + +func (p *printer) printInline(v reflect.Value, x interface{}, showType bool) { + if showType { + io.WriteString(p, v.Type().String()) + fmt.Fprintf(p, "(%#v)", x) + } else { + fmt.Fprintf(p, "%#v", x) + } +} + +// printValue must keep track of already-printed pointer values to avoid +// infinite recursion. +type visit struct { + v uintptr + typ reflect.Type +} + +func (p *printer) printValue(v reflect.Value, showType, quote bool) { + if p.depth > 10 { + io.WriteString(p, "!%v(DEPTH EXCEEDED)") + return + } + + switch v.Kind() { + case reflect.Bool: + p.printInline(v, v.Bool(), showType) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + p.printInline(v, v.Int(), showType) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + p.printInline(v, v.Uint(), showType) + case reflect.Float32, reflect.Float64: + p.printInline(v, v.Float(), showType) + case reflect.Complex64, reflect.Complex128: + fmt.Fprintf(p, "%#v", v.Complex()) + case reflect.String: + p.fmtString(v.String(), quote) + case reflect.Map: + t := v.Type() + if showType { + io.WriteString(p, t.String()) + } + writeByte(p, '{') + if nonzero(v) { + expand := !canInline(v.Type()) + pp := p + if expand { + writeByte(p, '\n') + pp = p.indent() + } + keys := v.MapKeys() + for i := 0; i < v.Len(); i++ { + k := keys[i] + mv := v.MapIndex(k) + pp.printValue(k, false, true) + writeByte(pp, ':') + if expand { + writeByte(pp, '\t') + } + showTypeInStruct := t.Elem().Kind() == reflect.Interface + pp.printValue(mv, showTypeInStruct, true) + if expand { + io.WriteString(pp, ",\n") + } else if i < v.Len()-1 { + io.WriteString(pp, ", ") + } + } + if expand { + pp.tw.Flush() + } + } + writeByte(p, '}') + case reflect.Struct: + t := v.Type() + if v.CanAddr() { + addr := v.UnsafeAddr() + vis := visit{addr, t} + if vd, ok := p.visited[vis]; ok && vd < p.depth { + p.fmtString(t.String()+"{(CYCLIC REFERENCE)}", false) + break // don't print v again + } + p.visited[vis] = p.depth + } + + if showType { + io.WriteString(p, t.String()) + } + writeByte(p, '{') + if nonzero(v) { + expand := !canInline(v.Type()) + pp := p + if expand { + writeByte(p, '\n') + pp = p.indent() + } + for i := 0; i < v.NumField(); i++ { + showTypeInStruct := true + if f := t.Field(i); f.Name != "" { + io.WriteString(pp, f.Name) + writeByte(pp, ':') + if expand { + writeByte(pp, '\t') + } + showTypeInStruct = labelType(f.Type) + } + pp.printValue(getField(v, i), showTypeInStruct, true) + if expand { + io.WriteString(pp, ",\n") + } else if i < v.NumField()-1 { + io.WriteString(pp, ", ") + } + } + if expand { + pp.tw.Flush() + } + } + writeByte(p, '}') + case reflect.Interface: + switch e := v.Elem(); { + case e.Kind() == reflect.Invalid: + io.WriteString(p, "nil") + case e.IsValid(): + pp := *p + pp.depth++ + pp.printValue(e, showType, true) + default: + io.WriteString(p, v.Type().String()) + io.WriteString(p, "(nil)") + } + case reflect.Array, reflect.Slice: + t := v.Type() + if showType { + io.WriteString(p, t.String()) + } + if v.Kind() == reflect.Slice && v.IsNil() && showType { + io.WriteString(p, "(nil)") + break + } + if v.Kind() == reflect.Slice && v.IsNil() { + io.WriteString(p, "nil") + break + } + writeByte(p, '{') + expand := !canInline(v.Type()) + pp := p + if expand { + writeByte(p, '\n') + pp = p.indent() + } + for i := 0; i < v.Len(); i++ { + showTypeInSlice := t.Elem().Kind() == reflect.Interface + pp.printValue(v.Index(i), showTypeInSlice, true) + if expand { + io.WriteString(pp, ",\n") + } else if i < v.Len()-1 { + io.WriteString(pp, ", ") + } + } + if expand { + pp.tw.Flush() + } + writeByte(p, '}') + case reflect.Ptr: + e := v.Elem() + if !e.IsValid() { + writeByte(p, '(') + io.WriteString(p, v.Type().String()) + io.WriteString(p, ")(nil)") + } else { + pp := *p + pp.depth++ + writeByte(pp, '&') + pp.printValue(e, true, true) + } + case reflect.Chan: + x := v.Pointer() + if showType { + writeByte(p, '(') + io.WriteString(p, v.Type().String()) + fmt.Fprintf(p, ")(%#v)", x) + } else { + fmt.Fprintf(p, "%#v", x) + } + case reflect.Func: + io.WriteString(p, v.Type().String()) + io.WriteString(p, " {...}") + case reflect.UnsafePointer: + p.printInline(v, v.Pointer(), showType) + case reflect.Invalid: + io.WriteString(p, "nil") + } +} + +func canInline(t reflect.Type) bool { + switch t.Kind() { + case reflect.Map: + return !canExpand(t.Elem()) + case reflect.Struct: + for i := 0; i < t.NumField(); i++ { + if canExpand(t.Field(i).Type) { + return false + } + } + return true + case reflect.Interface: + return false + case reflect.Array, reflect.Slice: + return !canExpand(t.Elem()) + case reflect.Ptr: + return false + case reflect.Chan, reflect.Func, reflect.UnsafePointer: + return false + } + return true +} + +func canExpand(t reflect.Type) bool { + switch t.Kind() { + case reflect.Map, reflect.Struct, + reflect.Interface, reflect.Array, reflect.Slice, + reflect.Ptr: + return true + } + return false +} + +func labelType(t reflect.Type) bool { + switch t.Kind() { + case reflect.Interface, reflect.Struct: + return true + } + return false +} + +func (p *printer) fmtString(s string, quote bool) { + if quote { + s = strconv.Quote(s) + } + io.WriteString(p, s) +} + +func writeByte(w io.Writer, b byte) { + w.Write([]byte{b}) +} + +func getField(v reflect.Value, i int) reflect.Value { + val := v.Field(i) + if val.Kind() == reflect.Interface && !val.IsNil() { + val = val.Elem() + } + return val +} diff --git a/scripts/token-log-collector/vendor/github.com/kr/pretty/pretty.go b/scripts/token-log-collector/vendor/github.com/kr/pretty/pretty.go new file mode 100644 index 000000000..b4ca583c0 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/pretty/pretty.go @@ -0,0 +1,108 @@ +// Package pretty provides pretty-printing for Go values. This is +// useful during debugging, to avoid wrapping long output lines in +// the terminal. +// +// It provides a function, Formatter, that can be used with any +// function that accepts a format string. It also provides +// convenience wrappers for functions in packages fmt and log. +package pretty + +import ( + "fmt" + "io" + "log" + "reflect" +) + +// Errorf is a convenience wrapper for fmt.Errorf. +// +// Calling Errorf(f, x, y) is equivalent to +// fmt.Errorf(f, Formatter(x), Formatter(y)). +func Errorf(format string, a ...interface{}) error { + return fmt.Errorf(format, wrap(a, false)...) +} + +// Fprintf is a convenience wrapper for fmt.Fprintf. +// +// Calling Fprintf(w, f, x, y) is equivalent to +// fmt.Fprintf(w, f, Formatter(x), Formatter(y)). +func Fprintf(w io.Writer, format string, a ...interface{}) (n int, error error) { + return fmt.Fprintf(w, format, wrap(a, false)...) +} + +// Log is a convenience wrapper for log.Printf. +// +// Calling Log(x, y) is equivalent to +// log.Print(Formatter(x), Formatter(y)), but each operand is +// formatted with "%# v". +func Log(a ...interface{}) { + log.Print(wrap(a, true)...) +} + +// Logf is a convenience wrapper for log.Printf. +// +// Calling Logf(f, x, y) is equivalent to +// log.Printf(f, Formatter(x), Formatter(y)). +func Logf(format string, a ...interface{}) { + log.Printf(format, wrap(a, false)...) +} + +// Logln is a convenience wrapper for log.Printf. +// +// Calling Logln(x, y) is equivalent to +// log.Println(Formatter(x), Formatter(y)), but each operand is +// formatted with "%# v". +func Logln(a ...interface{}) { + log.Println(wrap(a, true)...) +} + +// Print pretty-prints its operands and writes to standard output. +// +// Calling Print(x, y) is equivalent to +// fmt.Print(Formatter(x), Formatter(y)), but each operand is +// formatted with "%# v". +func Print(a ...interface{}) (n int, errno error) { + return fmt.Print(wrap(a, true)...) +} + +// Printf is a convenience wrapper for fmt.Printf. +// +// Calling Printf(f, x, y) is equivalent to +// fmt.Printf(f, Formatter(x), Formatter(y)). +func Printf(format string, a ...interface{}) (n int, errno error) { + return fmt.Printf(format, wrap(a, false)...) +} + +// Println pretty-prints its operands and writes to standard output. +// +// Calling Println(x, y) is equivalent to +// fmt.Println(Formatter(x), Formatter(y)), but each operand is +// formatted with "%# v". +func Println(a ...interface{}) (n int, errno error) { + return fmt.Println(wrap(a, true)...) +} + +// Sprint is a convenience wrapper for fmt.Sprintf. +// +// Calling Sprint(x, y) is equivalent to +// fmt.Sprint(Formatter(x), Formatter(y)), but each operand is +// formatted with "%# v". +func Sprint(a ...interface{}) string { + return fmt.Sprint(wrap(a, true)...) +} + +// Sprintf is a convenience wrapper for fmt.Sprintf. +// +// Calling Sprintf(f, x, y) is equivalent to +// fmt.Sprintf(f, Formatter(x), Formatter(y)). +func Sprintf(format string, a ...interface{}) string { + return fmt.Sprintf(format, wrap(a, false)...) +} + +func wrap(a []interface{}, force bool) []interface{} { + w := make([]interface{}, len(a)) + for i, x := range a { + w[i] = formatter{v: reflect.ValueOf(x), force: force} + } + return w +} diff --git a/scripts/token-log-collector/vendor/github.com/kr/pretty/zero.go b/scripts/token-log-collector/vendor/github.com/kr/pretty/zero.go new file mode 100644 index 000000000..abb5b6fc1 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/pretty/zero.go @@ -0,0 +1,41 @@ +package pretty + +import ( + "reflect" +) + +func nonzero(v reflect.Value) bool { + switch v.Kind() { + case reflect.Bool: + return v.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() != 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() != 0 + case reflect.Float32, reflect.Float64: + return v.Float() != 0 + case reflect.Complex64, reflect.Complex128: + return v.Complex() != complex(0, 0) + case reflect.String: + return v.String() != "" + case reflect.Struct: + for i := 0; i < v.NumField(); i++ { + if nonzero(getField(v, i)) { + return true + } + } + return false + case reflect.Array: + for i := 0; i < v.Len(); i++ { + if nonzero(v.Index(i)) { + return true + } + } + return false + case reflect.Map, reflect.Interface, reflect.Slice, reflect.Ptr, reflect.Chan, reflect.Func: + return !v.IsNil() + case reflect.UnsafePointer: + return v.Pointer() != 0 + } + return true +} diff --git a/scripts/token-log-collector/vendor/github.com/kr/text/License b/scripts/token-log-collector/vendor/github.com/kr/text/License new file mode 100644 index 000000000..480a32805 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/text/License @@ -0,0 +1,19 @@ +Copyright 2012 Keith Rarick + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/scripts/token-log-collector/vendor/github.com/kr/text/Readme b/scripts/token-log-collector/vendor/github.com/kr/text/Readme new file mode 100644 index 000000000..7e6e7c068 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/text/Readme @@ -0,0 +1,3 @@ +This is a Go package for manipulating paragraphs of text. + +See http://go.pkgdoc.org/github.com/kr/text for full documentation. diff --git a/scripts/token-log-collector/vendor/github.com/kr/text/doc.go b/scripts/token-log-collector/vendor/github.com/kr/text/doc.go new file mode 100644 index 000000000..cf4c198f9 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/text/doc.go @@ -0,0 +1,3 @@ +// Package text provides rudimentary functions for manipulating text in +// paragraphs. +package text diff --git a/scripts/token-log-collector/vendor/github.com/kr/text/indent.go b/scripts/token-log-collector/vendor/github.com/kr/text/indent.go new file mode 100644 index 000000000..4ebac45c0 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/text/indent.go @@ -0,0 +1,74 @@ +package text + +import ( + "io" +) + +// Indent inserts prefix at the beginning of each non-empty line of s. The +// end-of-line marker is NL. +func Indent(s, prefix string) string { + return string(IndentBytes([]byte(s), []byte(prefix))) +} + +// IndentBytes inserts prefix at the beginning of each non-empty line of b. +// The end-of-line marker is NL. +func IndentBytes(b, prefix []byte) []byte { + var res []byte + bol := true + for _, c := range b { + if bol && c != '\n' { + res = append(res, prefix...) + } + res = append(res, c) + bol = c == '\n' + } + return res +} + +// Writer indents each line of its input. +type indentWriter struct { + w io.Writer + bol bool + pre [][]byte + sel int + off int +} + +// NewIndentWriter makes a new write filter that indents the input +// lines. Each line is prefixed in order with the corresponding +// element of pre. If there are more lines than elements, the last +// element of pre is repeated for each subsequent line. +func NewIndentWriter(w io.Writer, pre ...[]byte) io.Writer { + return &indentWriter{ + w: w, + pre: pre, + bol: true, + } +} + +// The only errors returned are from the underlying indentWriter. +func (w *indentWriter) Write(p []byte) (n int, err error) { + for _, c := range p { + if w.bol { + var i int + i, err = w.w.Write(w.pre[w.sel][w.off:]) + w.off += i + if err != nil { + return n, err + } + } + _, err = w.w.Write([]byte{c}) + if err != nil { + return n, err + } + n++ + w.bol = c == '\n' + if w.bol { + w.off = 0 + if w.sel < len(w.pre)-1 { + w.sel++ + } + } + } + return n, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/kr/text/wrap.go b/scripts/token-log-collector/vendor/github.com/kr/text/wrap.go new file mode 100644 index 000000000..b09bb0373 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/kr/text/wrap.go @@ -0,0 +1,86 @@ +package text + +import ( + "bytes" + "math" +) + +var ( + nl = []byte{'\n'} + sp = []byte{' '} +) + +const defaultPenalty = 1e5 + +// Wrap wraps s into a paragraph of lines of length lim, with minimal +// raggedness. +func Wrap(s string, lim int) string { + return string(WrapBytes([]byte(s), lim)) +} + +// WrapBytes wraps b into a paragraph of lines of length lim, with minimal +// raggedness. +func WrapBytes(b []byte, lim int) []byte { + words := bytes.Split(bytes.Replace(bytes.TrimSpace(b), nl, sp, -1), sp) + var lines [][]byte + for _, line := range WrapWords(words, 1, lim, defaultPenalty) { + lines = append(lines, bytes.Join(line, sp)) + } + return bytes.Join(lines, nl) +} + +// WrapWords is the low-level line-breaking algorithm, useful if you need more +// control over the details of the text wrapping process. For most uses, either +// Wrap or WrapBytes will be sufficient and more convenient. +// +// WrapWords splits a list of words into lines with minimal "raggedness", +// treating each byte as one unit, accounting for spc units between adjacent +// words on each line, and attempting to limit lines to lim units. Raggedness +// is the total error over all lines, where error is the square of the +// difference of the length of the line and lim. Too-long lines (which only +// happen when a single word is longer than lim units) have pen penalty units +// added to the error. +func WrapWords(words [][]byte, spc, lim, pen int) [][][]byte { + n := len(words) + + length := make([][]int, n) + for i := 0; i < n; i++ { + length[i] = make([]int, n) + length[i][i] = len(words[i]) + for j := i + 1; j < n; j++ { + length[i][j] = length[i][j-1] + spc + len(words[j]) + } + } + + nbrk := make([]int, n) + cost := make([]int, n) + for i := range cost { + cost[i] = math.MaxInt32 + } + for i := n - 1; i >= 0; i-- { + if length[i][n-1] <= lim || i == n-1 { + cost[i] = 0 + nbrk[i] = n + } else { + for j := i + 1; j < n; j++ { + d := lim - length[i][j-1] + c := d*d + cost[j] + if length[i][j-1] > lim { + c += pen // too-long lines get a worse penalty + } + if c < cost[i] { + cost[i] = c + nbrk[i] = j + } + } + } + } + + var lines [][][]byte + i := 0 + for i < n { + lines = append(lines, words[i:nbrk[i]]) + i = nbrk[i] + } + return lines +} diff --git a/scripts/token-log-collector/vendor/github.com/peterhellberg/link/.travis.yml b/scripts/token-log-collector/vendor/github.com/peterhellberg/link/.travis.yml new file mode 100644 index 000000000..350f9d423 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/peterhellberg/link/.travis.yml @@ -0,0 +1,7 @@ +language: go + +dist: bionic + +go: + - "1.13.4" + - "1.12.13" diff --git a/scripts/token-log-collector/vendor/github.com/peterhellberg/link/LICENSE b/scripts/token-log-collector/vendor/github.com/peterhellberg/link/LICENSE new file mode 100644 index 000000000..7975bec62 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/peterhellberg/link/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2015-2019 Peter Hellberg https://c7.se + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/scripts/token-log-collector/vendor/github.com/peterhellberg/link/README.md b/scripts/token-log-collector/vendor/github.com/peterhellberg/link/README.md new file mode 100644 index 000000000..c2972328f --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/peterhellberg/link/README.md @@ -0,0 +1,82 @@ +# link + +[![Build Status](https://travis-ci.org/peterhellberg/link.svg?branch=master)](https://travis-ci.org/peterhellberg/link) +[![Go Report Card](https://goreportcard.com/badge/github.com/peterhellberg/link)](https://goreportcard.com/report/github.com/peterhellberg/link) +[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/peterhellberg/link) +[![License MIT](https://img.shields.io/badge/license-MIT-lightgrey.svg?style=flat)](https://github.com/peterhellberg/link#license-mit) + +Parses **Link** headers used for pagination, as defined in [RFC 5988](https://tools.ietf.org/html/rfc5988). + +This package was originally based on , but **Parse** takes a `string` instead of `*http.Request` in this version. +It also has the convenience functions **ParseHeader**, **ParseRequest** and **ParseResponse**. + +## Installation + + go get -u github.com/peterhellberg/link + +## Exported functions + + - [Parse(s string) Group](https://godoc.org/github.com/peterhellberg/link#Parse) + - [ParseHeader(h http.Header) Group](https://godoc.org/github.com/peterhellberg/link#ParseHeader) + - [ParseRequest(req \*http.Request) Group](https://godoc.org/github.com/peterhellberg/link#ParseRequest) + - [ParseResponse(resp \*http.Response) Group](https://godoc.org/github.com/peterhellberg/link#ParseResponse) + +## Usage + +```go +package main + +import ( + "fmt" + "net/http" + + "github.com/peterhellberg/link" +) + +func main() { + for _, l := range link.Parse(`; rel="next"; foo="bar"`) { + fmt.Printf("URI: %q, Rel: %q, Extra: %+v\n", l.URI, l.Rel, l.Extra) + // URI: "https://example.com/?page=2", Rel: "next", Extra: map[foo:bar] + } + + if resp, err := http.Get("https://api.github.com/search/code?q=Println+user:golang"); err == nil { + for _, l := range link.ParseResponse(resp) { + fmt.Printf("URI: %q, Rel: %q, Extra: %+v\n", l.URI, l.Rel, l.Extra) + // URI: "https://api.github.com/search/code?q=Println+user%3Agolang&page=2", Rel: "next", Extra: map[] + // URI: "https://api.github.com/search/code?q=Println+user%3Agolang&page=34", Rel: "last", Extra: map[] + } + } +} +``` + +## Not supported + + - Extended notation ([RFC 5987](https://tools.ietf.org/html/rfc5987)) + +## Alternatives to this package + + - [github.com/tent/http-link-go](https://github.com/tent/http-link-go) + - [github.com/swhite24/link](https://github.com/swhite24/link) + +## License (MIT) + +Copyright (c) 2015-2019 [Peter Hellberg](https://c7.se) + +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: + +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. + +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/scripts/token-log-collector/vendor/github.com/peterhellberg/link/doc.go b/scripts/token-log-collector/vendor/github.com/peterhellberg/link/doc.go new file mode 100644 index 000000000..f3a5f172e --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/peterhellberg/link/doc.go @@ -0,0 +1,40 @@ +/* + +Package link parses Link headers used for pagination, as defined in RFC 5988 + +Installation + +Just go get the package: + + go get -u github.com/peterhellberg/link + +Usage + +A small usage example + + package main + + import ( + "fmt" + "net/http" + + "github.com/peterhellberg/link" + ) + + func main() { + for _, l := range link.Parse(`; rel="next"; foo="bar"`) { + fmt.Printf("URI: %q, Rel: %q, Extra: %+v\n", l.URI, l.Rel, l.Extra) + // URI: "https://example.com/?page=2", Rel: "next", Extra: map[foo:bar] + } + + if resp, err := http.Get("https://api.github.com/search/code?q=Println+user:golang"); err == nil { + for _, l := range link.ParseResponse(resp) { + fmt.Printf("URI: %q, Rel: %q, Extra: %+v\n", l.URI, l.Rel, l.Extra) + // URI: "https://api.github.com/search/code?q=Println+user%3Agolang&page=2", Rel: "next", Extra: map[] + // URI: "https://api.github.com/search/code?q=Println+user%3Agolang&page=34", Rel: "last", Extra: map[] + } + } + } + +*/ +package link diff --git a/scripts/token-log-collector/vendor/github.com/peterhellberg/link/link.go b/scripts/token-log-collector/vendor/github.com/peterhellberg/link/link.go new file mode 100644 index 000000000..8c2f02525 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/peterhellberg/link/link.go @@ -0,0 +1,111 @@ +package link + +import ( + "net/http" + "regexp" + "strings" +) + +var ( + commaRegexp = regexp.MustCompile(`,\s{0,}`) + valueCommaRegexp = regexp.MustCompile(`([^"]),`) + equalRegexp = regexp.MustCompile(` *= *`) + keyRegexp = regexp.MustCompile(`[a-z*]+`) + linkRegexp = regexp.MustCompile(`\A<(.+)>;(.+)\z`) + semiRegexp = regexp.MustCompile(`; +`) + valRegexp = regexp.MustCompile(`"+([^"]+)"+`) +) + +// Group returned by Parse, contains multiple links indexed by "rel" +type Group map[string]*Link + +// Link contains a Link item with URI, Rel, and other non-URI components in Extra. +type Link struct { + URI string + Rel string + Extra map[string]string +} + +// String returns the URI +func (l *Link) String() string { + return l.URI +} + +// ParseRequest parses the provided *http.Request into a Group +func ParseRequest(req *http.Request) Group { + if req == nil { + return nil + } + + return ParseHeader(req.Header) +} + +// ParseResponse parses the provided *http.Response into a Group +func ParseResponse(resp *http.Response) Group { + if resp == nil { + return nil + } + + return ParseHeader(resp.Header) +} + +// ParseHeader retrieves the Link header from the provided http.Header and parses it into a Group +func ParseHeader(h http.Header) Group { + if headers, found := h["Link"]; found { + return Parse(strings.Join(headers, ", ")) + } + + return nil +} + +// Parse parses the provided string into a Group +func Parse(s string) Group { + if s == "" { + return nil + } + + s = valueCommaRegexp.ReplaceAllString(s, "$1") + + group := Group{} + + for _, l := range commaRegexp.Split(s, -1) { + linkMatches := linkRegexp.FindAllStringSubmatch(l, -1) + + if len(linkMatches) == 0 { + return nil + } + + pieces := linkMatches[0] + + link := &Link{URI: pieces[1], Extra: map[string]string{}} + + for _, extra := range semiRegexp.Split(pieces[2], -1) { + vals := equalRegexp.Split(extra, -1) + + key := keyRegexp.FindString(vals[0]) + val := valRegexp.FindStringSubmatch(vals[1])[1] + + if key == "rel" { + vals := strings.Split(val, " ") + rels := []string{vals[0]} + + if len(vals) > 1 { + for _, v := range vals[1:] { + if !strings.HasPrefix(v, "http") { + rels = append(rels, v) + } + } + } + + rel := strings.Join(rels, " ") + + link.Rel = rel + group[rel] = link + } else { + link.Extra[key] = val + } + } + } + + return group +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/LICENSE b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/LICENSE new file mode 100644 index 000000000..09cb542ab --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/LICENSE @@ -0,0 +1,182 @@ +go-vcloud-director + +Copyright (c) 2018 VMware, Inc. All rights reserved + +The Apache 2.0 license (the "License") set forth below applies to +all parts of the go-vcloud-director project except as noted below. +You may not use this file except in compliance with the License. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control +with that entity. For the purposes of this definition, "control" means +(i) the power, direct or indirect, to cause the direction or management +of such entity, whether by contract or otherwise, or (ii) ownership +of fifty percent (50%) or more of the outstanding shares, or (iii) +beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled +object code, generated documentation, and conversions to other media +types. + +"Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a copyright +notice that is included in or attached to the work (an example is provided +in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial +revisions, annotations, elaborations, or other modifications represent, +as a whole, an original work of authorship. For the purposes of this +License, Derivative Works shall not include works that remain separable +from, or merely link (or bind by name) to the interfaces of, the Work +and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the +original version of the Work and any modifications or additions to +that Work or Derivative Works thereof, that is intentionally submitted +to Licensor for inclusion in the Work by the copyright owner or by an +individual or Legal Entity authorized to submit on behalf of the copyright +owner. For the purposes of this definition, "submitted" means any form of +electronic, verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on electronic +mailing lists, source code control systems, and issue tracking systems +that are managed by, or on behalf of, the Licensor for the purpose of +discussing and improving the Work, but excluding communication that is +conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. +Subject to the terms and conditions of this License, each Contributor +hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, +royalty-free, irrevocable copyright license to reproduce, prepare +Derivative Works of, publicly display, publicly perform, sublicense, and +distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. +Subject to the terms and conditions of this License, each Contributor +hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, +royalty- free, irrevocable (except as stated in this section) patent +license to make, have made, use, offer to sell, sell, import, and +otherwise transfer the Work, where such license applies only to those +patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of +their Contribution(s) with the Work to which such Contribution(s) +was submitted. If You institute patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the +Work or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses granted +to You under this License for that Work shall terminate as of the date +such litigation is filed. + +4. Redistribution. +You may reproduce and distribute copies of the Work or Derivative Works +thereof in any medium, with or without modifications, and in Source or +Object form, provided that You meet the following conditions: + + a. You must give any other recipients of the Work or Derivative Works + a copy of this License; and + + b. You must cause any modified files to carry prominent notices stating + that You changed the files; and + + c. You must retain, in the Source form of any Derivative Works that + You distribute, all copyright, patent, trademark, and attribution + notices from the Source form of the Work, excluding those notices + that do not pertain to any part of the Derivative Works; and + + d. If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one of + the following places: within a NOTICE text file distributed as part + of the Derivative Works; within the Source form or documentation, + if provided along with the Derivative Works; or, within a display + generated by the Derivative Works, if and wherever such third-party + notices normally appear. The contents of the NOTICE file are for + informational purposes only and do not modify the License. You + may add Your own attribution notices within Derivative Works that + You distribute, alongside or as an addendum to the NOTICE text + from the Work, provided that such additional attribution notices + cannot be construed as modifying the License. You may add Your own + copyright statement to Your modifications and may provide additional + or different license terms and conditions for use, reproduction, or + distribution of Your modifications, or for any such Derivative Works + as a whole, provided Your use, reproduction, and distribution of the + Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. +Unless You explicitly state otherwise, any Contribution intentionally +submitted for inclusion in the Work by You to the Licensor shall be +under the terms and conditions of this License, without any additional +terms or conditions. Notwithstanding the above, nothing herein shall +supersede or modify the terms of any separate license agreement you may +have executed with Licensor regarding such Contributions. + +6. Trademarks. +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. +Unless required by applicable law or agreed to in writing, Licensor +provides the Work (and each Contributor provides its Contributions) on +an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +express or implied, including, without limitation, any warranties or +conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR +A PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any risks +associated with Your exercise of permissions under this License. + +8. Limitation of Liability. +In no event and under no legal theory, whether in tort (including +negligence), contract, or otherwise, unless required by applicable law +(such as deliberate and grossly negligent acts) or agreed to in writing, +shall any Contributor be liable to You for damages, including any direct, +indirect, special, incidental, or consequential damages of any character +arising as a result of this License or out of the use or inability to +use the Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all other +commercial damages or losses), even if such Contributor has been advised +of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. +While redistributing the Work or Derivative Works thereof, You may +choose to offer, and charge a fee for, acceptance of support, warranty, +indemnity, or other liability obligations and/or rights consistent with +this License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf of +any other Contributor, and only if You agree to indemnify, defend, and +hold each Contributor harmless for any liability incurred by, or claims +asserted against, such Contributor by reason of your accepting any such +warranty or additional liability. + +END OF TERMS AND CONDITIONS + diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/NOTICE b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/NOTICE new file mode 100644 index 000000000..86b037a8f --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/NOTICE @@ -0,0 +1,12 @@ +go-vcloud-director + +Copyright (c) 2018 VMware, Inc. All Rights Reserved. + +This product is licensed to you under the Apache 2.0 license (the +"License"). You may not use this product except in compliance with +the Apache 2.0 License. + +This product may include a number of subcomponents with separate +copyright notices and license terms. Your use of these subcomponents +is subject to the terms and conditions of the subcomponent's license, +as noted in the LICENSE file. diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/access_control.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/access_control.go new file mode 100644 index 000000000..016497b42 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/access_control.go @@ -0,0 +1,356 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "bytes" + "encoding/xml" + "fmt" + "net/http" + "net/url" + "strings" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// orgInfoCache is a cache to save org information, avoid repeated calls to compute the same result. +// The keys to this map are the requesting objects IDs. +var orgInfoCache = make(map[string]*TenantContext) + +// GetAccessControl retrieves the access control information for the requested entity +func (client Client) GetAccessControl(href, entityType, entityName string, headerValues map[string]string) (*types.ControlAccessParams, error) { + + href += "/controlAccess" + var controlAccess types.ControlAccessParams + + acUrl, err := url.ParseRequestURI(href) + if err != nil { + return nil, fmt.Errorf("[client.GetAccessControl] error parsing HREF %s: %s", href, err) + } + var additionalHeader = make(http.Header) + + if len(headerValues) > 0 { + for k, v := range headerValues { + additionalHeader.Add(k, v) + } + } + req := client.newRequest( + nil, // params + nil, // notEncodedParams + http.MethodGet, // method + *acUrl, // reqUrl + nil, // body + client.APIVersion, // apiVersion + additionalHeader, // additionalHeader + ) + + resp, err := checkResp(client.Http.Do(req)) + if err != nil { + return nil, fmt.Errorf("[client.GetAccessControl] error checking response to request %s: %s", href, err) + } + if resp == nil { + return nil, fmt.Errorf("[client.GetAccessControl] nil response received") + } + if err = decodeBody(types.BodyTypeXML, resp, &controlAccess); err != nil { + return nil, fmt.Errorf("[client.GetAccessControl] error decoding response: %s", err) + } + + return &controlAccess, nil +} + +// SetAccessControl changes the access control information for this entity +// There are two ways of setting the access: +// with accessControl.IsSharedToEveryone = true we give access to everyone +// with accessControl.IsSharedToEveryone = false, accessControl.AccessSettings defines which subjects can access the vApp +// For each setting we must provide: +// * The subject (HREF and Type are mandatory) +// * The access level (one of ReadOnly, Change, FullControl) +func (client *Client) SetAccessControl(accessControl *types.ControlAccessParams, href, entityType, entityName string, headerValues map[string]string) error { + + href += "/action/controlAccess" + // Make sure that subjects in the setting list are used only once + if accessControl.AccessSettings != nil && len(accessControl.AccessSettings.AccessSetting) > 0 { + if accessControl.IsSharedToEveryone { + return fmt.Errorf("[client.SetAccessControl] can't set IsSharedToEveryone and AccessSettings at the same time for %s %s (%s)", entityType, entityName, href) + } + var used = make(map[string]bool) + for _, setting := range accessControl.AccessSettings.AccessSetting { + _, seen := used[setting.Subject.HREF] + if seen { + return fmt.Errorf("[client.SetAccessControl] subject %s (%s) used more than once", setting.Subject.Name, setting.Subject.HREF) + } + used[setting.Subject.HREF] = true + if setting.Subject.Type == "" { + return fmt.Errorf("[client.SetAccessControl] subject %s (%s) has no type defined", setting.Subject.Name, setting.Subject.HREF) + } + } + } + + accessControl.Xmlns = types.XMLNamespaceVCloud + queryUrl, err := url.ParseRequestURI(href) + if err != nil { + return fmt.Errorf("[client.SetAccessControl] error parsing HREF %s: %s", href, err) + } + + var header = make(http.Header) + if len(headerValues) > 0 { + for k, v := range headerValues { + header.Add(k, v) + } + } + + marshaledXml, err := xml.MarshalIndent(accessControl, " ", " ") + if err != nil { + return fmt.Errorf("[client.SetAccessControl] error marshalling xml data: %s", err) + } + body := bytes.NewBufferString(xml.Header + string(marshaledXml)) + + req := client.newRequest( + nil, // params + nil, // notEncodedParams + http.MethodPost, // method + *queryUrl, // reqUrl + body, // body + client.APIVersion, // apiVersion + header, // additionalHeader + ) + + resp, err := checkResp(client.Http.Do(req)) + + if err != nil { + return fmt.Errorf("[client.SetAccessControl] error checking response to HREF %s: %s", href, err) + } + if resp == nil { + return fmt.Errorf("[client.SetAccessControl] nil response received") + } + _, err = checkResp(resp, err) + return err +} + +// GetAccessControl retrieves the access control information for this vApp +func (vapp VApp) GetAccessControl(useTenantContext bool) (*types.ControlAccessParams, error) { + + if vapp.VApp.HREF == "" { + return nil, fmt.Errorf("vApp HREF is empty") + } + // if useTenantContext is false, we use an empty header (= default behavior) + // if it is true, we use a header populated with tenant context values + accessControlHeader, err := vapp.getAccessControlHeader(useTenantContext) + if err != nil { + return nil, err + } + return vapp.client.GetAccessControl(vapp.VApp.HREF, "vApp", vapp.VApp.Name, accessControlHeader) +} + +// SetAccessControl changes the access control information for this vApp +func (vapp VApp) SetAccessControl(accessControl *types.ControlAccessParams, useTenantContext bool) error { + + if vapp.VApp.HREF == "" { + return fmt.Errorf("vApp HREF is empty") + } + + // if useTenantContext is false, we use an empty header (= default behavior) + // if it is true, we use a header populated with tenant context values + accessControlHeader, err := vapp.getAccessControlHeader(useTenantContext) + if err != nil { + return err + } + return vapp.client.SetAccessControl(accessControl, vapp.VApp.HREF, "vApp", vapp.VApp.Name, accessControlHeader) + +} + +// RemoveAccessControl is a shortcut to SetAccessControl with all access disabled +func (vapp VApp) RemoveAccessControl(useTenantContext bool) error { + return vapp.SetAccessControl(&types.ControlAccessParams{IsSharedToEveryone: false}, useTenantContext) +} + +// IsShared shows whether a vApp is shared or not, regardless of the number of subjects sharing it +func (vapp VApp) IsShared(useTenantContext bool) (bool, error) { + settings, err := vapp.GetAccessControl(useTenantContext) + if err != nil { + return false, err + } + if settings.IsSharedToEveryone { + return true, nil + } + return settings.AccessSettings != nil, nil +} + +// GetAccessControl retrieves the access control information for this catalog +func (adminCatalog AdminCatalog) GetAccessControl(useTenantContext bool) (*types.ControlAccessParams, error) { + + if adminCatalog.AdminCatalog.HREF == "" { + return nil, fmt.Errorf("catalog HREF is empty") + } + href := strings.Replace(adminCatalog.AdminCatalog.HREF, "/admin/", "/", 1) + + // if useTenantContext is false, we use an empty header (= default behavior) + // if it is true, we use a header populated with tenant context values + accessControlHeader, err := adminCatalog.getAccessControlHeader(useTenantContext) + if err != nil { + return nil, err + } + return adminCatalog.client.GetAccessControl(href, "catalog", adminCatalog.AdminCatalog.Name, accessControlHeader) +} + +// SetAccessControl changes the access control information for this catalog +func (adminCatalog AdminCatalog) SetAccessControl(accessControl *types.ControlAccessParams, useTenantContext bool) error { + + if adminCatalog.AdminCatalog.HREF == "" { + return fmt.Errorf("catalog HREF is empty") + } + href := strings.Replace(adminCatalog.AdminCatalog.HREF, "/admin/", "/", 1) + + // if useTenantContext is false, we use an empty header (= default behavior) + // if it is true, we use a header populated with tenant context values + accessControlHeader, err := adminCatalog.getAccessControlHeader(useTenantContext) + if err != nil { + return err + } + return adminCatalog.client.SetAccessControl(accessControl, href, "catalog", adminCatalog.AdminCatalog.Name, accessControlHeader) +} + +// RemoveAccessControl is a shortcut to SetAccessControl with all access disabled +func (adminCatalog AdminCatalog) RemoveAccessControl(useTenantContext bool) error { + return adminCatalog.SetAccessControl(&types.ControlAccessParams{IsSharedToEveryone: false}, useTenantContext) +} + +// IsShared shows whether a catalog is shared or not, regardless of the number of subjects sharing it +func (adminCatalog AdminCatalog) IsShared(useTenantContext bool) (bool, error) { + settings, err := adminCatalog.GetAccessControl(useTenantContext) + if err != nil { + return false, err + } + if settings.IsSharedToEveryone { + return true, nil + } + return settings.AccessSettings != nil, nil +} + +// GetVappAccessControl is a convenience method to retrieve access control for a vApp +// from a VDC. +// The input variable vappIdentifier can be either the vApp name or its ID +func (vdc *Vdc) GetVappAccessControl(vappIdentifier string, useTenantContext bool) (*types.ControlAccessParams, error) { + vapp, err := vdc.GetVAppByNameOrId(vappIdentifier, true) + if err != nil { + return nil, fmt.Errorf("error retrieving vApp %s: %s", vappIdentifier, err) + } + return vapp.GetAccessControl(useTenantContext) +} + +// GetCatalogAccessControl is a convenience method to retrieve access control for a catalog +// from an organization. +// The input variable catalogIdentifier can be either the catalog name or its ID +func (org *AdminOrg) GetCatalogAccessControl(catalogIdentifier string, useTenantContext bool) (*types.ControlAccessParams, error) { + catalog, err := org.GetAdminCatalogByNameOrId(catalogIdentifier, true) + if err != nil { + return nil, fmt.Errorf("error retrieving catalog %s: %s", catalogIdentifier, err) + } + return catalog.GetAccessControl(useTenantContext) +} + +// GetCatalogAccessControl is a convenience method to retrieve access control for a catalog +// from an organization. +// The input variable catalogIdentifier can be either the catalog name or its ID +func (org *Org) GetCatalogAccessControl(catalogIdentifier string, useTenantContext bool) (*types.ControlAccessParams, error) { + catalog, err := org.GetCatalogByNameOrId(catalogIdentifier, true) + if err != nil { + return nil, fmt.Errorf("error retrieving catalog %s: %s", catalogIdentifier, err) + } + return catalog.GetAccessControl(useTenantContext) +} + +// GetAccessControl retrieves the access control information for this catalog +func (catalog Catalog) GetAccessControl(useTenantContext bool) (*types.ControlAccessParams, error) { + + if catalog.Catalog.HREF == "" { + return nil, fmt.Errorf("catalog HREF is empty") + } + href := strings.Replace(catalog.Catalog.HREF, "/admin/", "/", 1) + accessControlHeader, err := catalog.getAccessControlHeader(useTenantContext) + if err != nil { + return nil, err + } + return catalog.client.GetAccessControl(href, "catalog", catalog.Catalog.Name, accessControlHeader) +} + +// SetAccessControl changes the access control information for this catalog +func (catalog Catalog) SetAccessControl(accessControl *types.ControlAccessParams, useTenantContext bool) error { + + if catalog.Catalog.HREF == "" { + return fmt.Errorf("catalog HREF is empty") + } + + href := strings.Replace(catalog.Catalog.HREF, "/admin/", "/", 1) + + // if useTenantContext is false, we use an empty header (= default behavior) + // if it is true, we use a header populated with tenant context values + accessControlHeader, err := catalog.getAccessControlHeader(useTenantContext) + if err != nil { + return err + } + return catalog.client.SetAccessControl(accessControl, href, "catalog", catalog.Catalog.Name, accessControlHeader) +} + +// RemoveAccessControl is a shortcut to SetAccessControl with all access disabled +func (catalog Catalog) RemoveAccessControl(useTenantContext bool) error { + return catalog.SetAccessControl(&types.ControlAccessParams{IsSharedToEveryone: false}, useTenantContext) +} + +// IsShared shows whether a catalog is shared or not, regardless of the number of subjects sharing it +func (catalog Catalog) IsShared(useTenantContext bool) (bool, error) { + settings, err := catalog.GetAccessControl(useTenantContext) + if err != nil { + return false, err + } + if settings.IsSharedToEveryone { + return true, nil + } + return settings.AccessSettings != nil, nil +} + +// getAccessControlHeader builds the data needed to set the header when tenant context is required. +// If useTenantContext is false, it returns an empty map. +// Otherwise, it finds the Org ID and name (going up in the hierarchy through the VDC) +// and creates the header data +func (vapp *VApp) getAccessControlHeader(useTenantContext bool) (map[string]string, error) { + if !useTenantContext { + return map[string]string{}, nil + } + orgInfo, err := vapp.getOrgInfo() + if err != nil { + return nil, err + } + return map[string]string{types.HeaderTenantContext: orgInfo.OrgId, types.HeaderAuthContext: orgInfo.OrgName}, nil +} + +// getAccessControlHeader builds the data needed to set the header when tenant context is required. +// If useTenantContext is false, it returns an empty map. +// Otherwise, it finds the Org ID and name and creates the header data +func (catalog *Catalog) getAccessControlHeader(useTenantContext bool) (map[string]string, error) { + if !useTenantContext { + return map[string]string{}, nil + } + orgInfo, err := catalog.getOrgInfo() + if err != nil { + return nil, err + } + return map[string]string{types.HeaderTenantContext: orgInfo.OrgId, types.HeaderAuthContext: orgInfo.OrgName}, nil +} + +// getAccessControlHeader builds the data needed to set the header when tenant context is required. +// If useTenantContext is false, it returns an empty map. +// Otherwise, it finds the Org ID and name and creates the header data +func (adminCatalog *AdminCatalog) getAccessControlHeader(useTenantContext bool) (map[string]string, error) { + if !useTenantContext { + return map[string]string{}, nil + } + orgInfo, err := adminCatalog.getOrgInfo() + + if err != nil { + return nil, err + } + return map[string]string{types.HeaderTenantContext: orgInfo.OrgId, types.HeaderAuthContext: orgInfo.OrgName}, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/admincatalog.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/admincatalog.go new file mode 100644 index 000000000..da3f9614a --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/admincatalog.go @@ -0,0 +1,94 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// AdminCatalog is a admin view of a vCloud Director Catalog +// To be able to get an AdminCatalog representation, users must have +// admin credentials to the System org. AdminCatalog is used +// for creating, updating, and deleting a Catalog. +// Definition: https://code.vmware.com/apis/220/vcloud#/doc/doc/types/AdminCatalogType.html +type AdminCatalog struct { + AdminCatalog *types.AdminCatalog + client *Client + parent organization +} + +func NewAdminCatalog(client *Client) *AdminCatalog { + return &AdminCatalog{ + AdminCatalog: new(types.AdminCatalog), + client: client, + } +} + +// Delete deletes the Catalog, returning an error if the vCD call fails. +// Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Catalog.html +func (adminCatalog *AdminCatalog) Delete(force, recursive bool) error { + catalog := NewCatalog(adminCatalog.client) + catalog.Catalog = &adminCatalog.AdminCatalog.Catalog + return catalog.Delete(force, recursive) +} + +// Update updates the Catalog definition from current Catalog struct contents. +// Any differences that may be legally applied will be updated. +// Returns an error if the call to vCD fails. Update automatically performs +// a refresh with the admin catalog it gets back from the rest api +// Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/PUT-Catalog.html +func (adminCatalog *AdminCatalog) Update() error { + reqCatalog := &types.Catalog{ + Name: adminCatalog.AdminCatalog.Catalog.Name, + Description: adminCatalog.AdminCatalog.Description, + } + vcomp := &types.AdminCatalog{ + Xmlns: types.XMLNamespaceVCloud, + Catalog: *reqCatalog, + CatalogStorageProfiles: adminCatalog.AdminCatalog.CatalogStorageProfiles, + IsPublished: adminCatalog.AdminCatalog.IsPublished, + } + catalog := &types.AdminCatalog{} + _, err := adminCatalog.client.ExecuteRequest(adminCatalog.AdminCatalog.HREF, http.MethodPut, + "application/vnd.vmware.admin.catalog+xml", "error updating catalog: %s", vcomp, catalog) + adminCatalog.AdminCatalog = catalog + return err +} + +// UploadOvf uploads an ova file to a catalog. This method only uploads bits to vCD spool area. +// Returns errors if any occur during upload from vCD or upload process. On upload fail client may need to +// remove vCD catalog item which waits for files to be uploaded. Files from ova are extracted to system +// temp folder "govcd+random number" and left for inspection on error. +func (adminCatalog *AdminCatalog) UploadOvf(ovaFileName, itemName, description string, uploadPieceSize int64) (UploadTask, error) { + catalog := NewCatalog(adminCatalog.client) + catalog.Catalog = &adminCatalog.AdminCatalog.Catalog + catalog.parent = adminCatalog.parent + return catalog.UploadOvf(ovaFileName, itemName, description, uploadPieceSize) +} + +func (adminCatalog *AdminCatalog) Refresh() error { + if *adminCatalog == (AdminCatalog{}) || adminCatalog.AdminCatalog.HREF == "" { + return fmt.Errorf("cannot refresh, Object is empty or HREF is empty") + } + + refreshedCatalog := &types.AdminCatalog{} + + _, err := adminCatalog.client.ExecuteRequest(adminCatalog.AdminCatalog.HREF, http.MethodGet, + "", "error refreshing VDC: %s", nil, refreshedCatalog) + if err != nil { + return err + } + adminCatalog.AdminCatalog = refreshedCatalog + + return nil +} + +// getOrgInfo finds the organization to which the admin catalog belongs, and returns its name and ID +func (adminCatalog *AdminCatalog) getOrgInfo() (*TenantContext, error) { + return adminCatalog.getTenantContext() +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminorg.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminorg.go new file mode 100644 index 000000000..793ad12eb --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminorg.go @@ -0,0 +1,777 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + "net/url" + "regexp" + "strconv" + "strings" + + "github.com/vmware/go-vcloud-director/v2/util" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// AdminOrg gives an admin representation of an org. +// Administrators can delete and update orgs with an admin org object. +// AdminOrg includes all members of the Org element, and adds several +// elements that can be viewed and modified only by system administrators. +// Definition: https://code.vmware.com/apis/220/vcloud#/doc/doc/types/AdminOrgType.html +type AdminOrg struct { + AdminOrg *types.AdminOrg + client *Client + TenantContext *TenantContext +} + +func NewAdminOrg(cli *Client) *AdminOrg { + return &AdminOrg{ + AdminOrg: new(types.AdminOrg), + client: cli, + } +} + +// CreateCatalog creates a catalog with given name and description under the +// the given organization. Returns an AdminCatalog that contains a creation +// task. +// API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/POST-CreateCatalog.html +func (adminOrg *AdminOrg) CreateCatalog(name, description string) (AdminCatalog, error) { + catalog, err := adminOrg.CreateCatalogWithStorageProfile(name, description, nil) + if err != nil { + return AdminCatalog{}, err + } + catalog.parent = adminOrg + return *catalog, nil +} + +// CreateCatalogWithStorageProfile is like CreateCatalog, but allows to specify storage profile +func (adminOrg *AdminOrg) CreateCatalogWithStorageProfile(name, description string, storageProfiles *types.CatalogStorageProfiles) (*AdminCatalog, error) { + return CreateCatalogWithStorageProfile(adminOrg.client, adminOrg.AdminOrg.Link, name, description, storageProfiles) +} + +// GetAllVDCs returns all depending VDCs for a particular Org +func (adminOrg *AdminOrg) GetAllVDCs(refresh bool) ([]*Vdc, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + + allVdcs := make([]*Vdc, len(adminOrg.AdminOrg.Vdcs.Vdcs)) + for vdcIndex, vdc := range adminOrg.AdminOrg.Vdcs.Vdcs { + vdc, err := adminOrg.GetVDCByHref(vdc.HREF) + if err != nil { + return nil, fmt.Errorf("error retrieving VDC '%s': %s", vdc.Vdc.Name, err) + } + allVdcs[vdcIndex] = vdc + + } + + return allVdcs, nil +} + +// GetAllStorageProfileReferences traverses all depending VDCs and returns a slice of storage profile references +// available in those VDCs +func (adminOrg *AdminOrg) GetAllStorageProfileReferences(refresh bool) ([]*types.Reference, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + + allVdcs, err := adminOrg.GetAllVDCs(refresh) + if err != nil { + return nil, fmt.Errorf("could not retrieve storage profile references: %s", err) + } + + allStorageProfileReferences := make([]*types.Reference, 0) + for _, vdc := range allVdcs { + if len(vdc.Vdc.VdcStorageProfiles.VdcStorageProfile) > 0 { + allStorageProfileReferences = append(allStorageProfileReferences, vdc.Vdc.VdcStorageProfiles.VdcStorageProfile...) + } + } + + return allStorageProfileReferences, nil +} + +// GetStorageProfileReferenceById finds storage profile reference by specified ID in Org or returns ErrorEntityNotFound +func (adminOrg *AdminOrg) GetStorageProfileReferenceById(id string, refresh bool) (*types.Reference, error) { + allStorageProfiles, err := adminOrg.GetAllStorageProfileReferences(refresh) + if err != nil { + return nil, fmt.Errorf("error getting all storage profiles: %s", err) + } + + for _, storageProfileReference := range allStorageProfiles { + if storageProfileReference.ID == id { + return storageProfileReference, nil + } + } + + return nil, fmt.Errorf("%s: storage profile with ID '%s' not found in Org '%s'", + ErrorEntityNotFound, id, adminOrg.AdminOrg.Name) +} + +// Deletes the org, returning an error if the vCD call fails. +// API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Organization.html +func (adminOrg *AdminOrg) Delete(force bool, recursive bool) error { + if force && recursive { + //undeploys vapps + err := adminOrg.undeployAllVApps() + if err != nil { + return fmt.Errorf("error could not undeploy: %s", err) + } + //removes vapps + err = adminOrg.removeAllVApps() + if err != nil { + return fmt.Errorf("error could not remove vapp: %s", err) + } + //removes catalogs + err = adminOrg.removeCatalogs() + if err != nil { + return fmt.Errorf("error could not remove all catalogs: %s", err) + } + //removes networks + err = adminOrg.removeAllOrgNetworks() + if err != nil { + return fmt.Errorf("error could not remove all networks: %s", err) + } + //removes org vdcs + err = adminOrg.removeAllOrgVDCs() + if err != nil { + return fmt.Errorf("error could not remove all vdcs: %s", err) + } + } + // Disable org + err := adminOrg.Disable() + if err != nil { + return fmt.Errorf("error disabling Org %s: %s", adminOrg.AdminOrg.Name, err) + } + // Get admin HREF + orgHREF, err := url.ParseRequestURI(adminOrg.AdminOrg.HREF) + if err != nil { + return fmt.Errorf("error getting AdminOrg HREF %s : %s", adminOrg.AdminOrg.HREF, err) + } + req := adminOrg.client.NewRequest(map[string]string{ + "force": strconv.FormatBool(force), + "recursive": strconv.FormatBool(recursive), + }, http.MethodDelete, *orgHREF, nil) + resp, err := checkResp(adminOrg.client.Http.Do(req)) + if err != nil { + return fmt.Errorf("error deleting Org %s: %s", adminOrg.AdminOrg.ID, err) + } + + task := NewTask(adminOrg.client) + if err = decodeBody(types.BodyTypeXML, resp, task.Task); err != nil { + return fmt.Errorf("error decoding task response: %s", err) + } + return task.WaitTaskCompletion() +} + +// Disables the org. Returns an error if the call to vCD fails. +// API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/POST-DisableOrg.html +func (adminOrg *AdminOrg) Disable() error { + orgHREF, err := url.ParseRequestURI(adminOrg.AdminOrg.HREF) + if err != nil { + return fmt.Errorf("error getting AdminOrg HREF %s : %s", adminOrg.AdminOrg.HREF, err) + } + orgHREF.Path += "/action/disable" + + return adminOrg.client.ExecuteRequestWithoutResponse(orgHREF.String(), http.MethodPost, "", "error disabling organization: %s", nil) +} + +// Updates the Org definition from current org struct contents. +// Any differences that may be legally applied will be updated. +// Returns an error if the call to vCD fails. +// API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/PUT-Organization.html +func (adminOrg *AdminOrg) Update() (Task, error) { + vcomp := &types.AdminOrg{ + Xmlns: types.XMLNamespaceVCloud, + Name: adminOrg.AdminOrg.Name, + IsEnabled: adminOrg.AdminOrg.IsEnabled, + FullName: adminOrg.AdminOrg.FullName, + Description: adminOrg.AdminOrg.Description, + OrgSettings: adminOrg.AdminOrg.OrgSettings, + } + + // Same workaround used in Org creation, where OrgGeneralSettings properties + // are not set unless UseServerBootSequence is also set + if vcomp.OrgSettings.OrgGeneralSettings != nil { + vcomp.OrgSettings.OrgGeneralSettings.UseServerBootSequence = true + } + + // Return the task + return adminOrg.client.ExecuteTaskRequest(adminOrg.AdminOrg.HREF, http.MethodPut, + "application/vnd.vmware.admin.organization+xml", "error updating Org: %s", vcomp) +} + +// Undeploys every vapp within an organization +func (adminOrg *AdminOrg) undeployAllVApps() error { + for _, vdcs := range adminOrg.AdminOrg.Vdcs.Vdcs { + adminVdcHREF, err := url.Parse(vdcs.HREF) + if err != nil { + return err + } + vdc, err := adminOrg.getVdcByAdminHREF(adminVdcHREF) + if err != nil { + return fmt.Errorf("error retrieving vapp with url: %s and with error %s", adminVdcHREF.Path, err) + } + err = vdc.undeployAllVdcVApps() + if err != nil { + return fmt.Errorf("error deleting vapp: %s", err) + } + } + return nil +} + +// Deletes every vapp within an organization +func (adminOrg *AdminOrg) removeAllVApps() error { + for _, vdcs := range adminOrg.AdminOrg.Vdcs.Vdcs { + adminVdcHREF, err := url.Parse(vdcs.HREF) + if err != nil { + return err + } + vdc, err := adminOrg.getVdcByAdminHREF(adminVdcHREF) + if err != nil { + return fmt.Errorf("error retrieving vapp with url: %s and with error %s", adminVdcHREF.Path, err) + } + err = vdc.removeAllVdcVApps() + if err != nil { + return fmt.Errorf("error deleting vapp: %s", err) + } + } + return nil +} + +// Given an adminorg with a valid HREF, the function refetches the adminorg +// and updates the user's adminorg data. Otherwise if the function fails, +// it returns an error. Users should use refresh whenever they have +// a stale org due to the creation/update/deletion of a resource +// within the org or the org itself. +func (adminOrg *AdminOrg) Refresh() error { + if *adminOrg == (AdminOrg{}) { + return fmt.Errorf("cannot refresh, Object is empty") + } + + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + unmarshalledAdminOrg := &types.AdminOrg{} + + _, err := adminOrg.client.ExecuteRequest(adminOrg.AdminOrg.HREF, http.MethodGet, + "", "error refreshing organization: %s", nil, unmarshalledAdminOrg) + if err != nil { + return err + } + adminOrg.AdminOrg = unmarshalledAdminOrg + + return nil +} + +// Gets a vdc within org associated with an admin vdc url +func (adminOrg *AdminOrg) getVdcByAdminHREF(adminVdcUrl *url.URL) (*Vdc, error) { + // get non admin vdc path + vdcURL := adminOrg.client.VCDHREF + vdcURL.Path += strings.Split(adminVdcUrl.Path, "/api/admin")[1] //gets id + + vdc := NewVdc(adminOrg.client) + + vdc.parent = adminOrg + + _, err := adminOrg.client.ExecuteRequest(vdcURL.String(), http.MethodGet, + "", "error retrieving vdc: %s", nil, vdc.Vdc) + + return vdc, err +} + +// Removes all vdcs in a org +func (adminOrg *AdminOrg) removeAllOrgVDCs() error { + for _, vdcs := range adminOrg.AdminOrg.Vdcs.Vdcs { + + adminVdcUrl := adminOrg.client.VCDHREF + splitVdcId := strings.Split(vdcs.HREF, "/api/vdc/") + if len(splitVdcId) == 1 { + adminVdcUrl.Path += "/admin/vdc/" + strings.Split(vdcs.HREF, "/api/admin/vdc/")[1] + "/action/disable" + } else { + adminVdcUrl.Path += "/admin/vdc/" + splitVdcId[1] + "/action/disable" + } + + req := adminOrg.client.NewRequest(map[string]string{}, http.MethodPost, adminVdcUrl, nil) + _, err := checkResp(adminOrg.client.Http.Do(req)) + if err != nil { + return fmt.Errorf("error disabling vdc: %s", err) + } + // Get admin vdc HREF for normal deletion + adminVdcUrl.Path = strings.Split(adminVdcUrl.Path, "/action/disable")[0] + req = adminOrg.client.NewRequest(map[string]string{ + "recursive": "true", + "force": "true", + }, http.MethodDelete, adminVdcUrl, nil) + resp, err := checkResp(adminOrg.client.Http.Do(req)) + if err != nil { + return fmt.Errorf("error deleting vdc: %s", err) + } + task := NewTask(adminOrg.client) + if err = decodeBody(types.BodyTypeXML, resp, task.Task); err != nil { + return fmt.Errorf("error decoding task response: %s", err) + } + if task.Task.Status == "error" { + return fmt.Errorf("vdc not properly destroyed") + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("couldn't finish removing vdc %s", err) + } + + } + + return nil +} + +// Removes All networks in the org +func (adminOrg *AdminOrg) removeAllOrgNetworks() error { + for _, networks := range adminOrg.AdminOrg.Networks.Networks { + // Get Network HREF + networkHREF := adminOrg.client.VCDHREF + networkHREF.Path += "/admin/network/" + strings.Split(networks.HREF, "/api/admin/network/")[1] //gets id + + task, err := adminOrg.client.ExecuteTaskRequest(networkHREF.String(), http.MethodDelete, + "", "error deleting network: %s", nil) + if err != nil { + return err + } + + if task.Task.Status == "error" { + return fmt.Errorf("network not properly destroyed") + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("couldn't finish removing network %s", err) + } + } + return nil +} + +// removeCatalogs force removal of all organization catalogs +func (adminOrg *AdminOrg) removeCatalogs() error { + for _, catalog := range adminOrg.AdminOrg.Catalogs.Catalog { + isCatalogFromSameOrg, err := isCatalogFromSameOrg(adminOrg, catalog.Name) + if err != nil { + return fmt.Errorf("error deleting catalog: %s", err) + } + if isCatalogFromSameOrg { + // Get Catalog HREF + catalogHREF := adminOrg.client.VCDHREF + catalogHREF.Path += "/admin/catalog/" + strings.Split(catalog.HREF, "/api/admin/catalog/")[1] //gets id + req := adminOrg.client.NewRequest(map[string]string{ + "force": "true", + "recursive": "true", + }, http.MethodDelete, catalogHREF, nil) + _, err := checkResp(adminOrg.client.Http.Do(req)) + if err != nil { + return fmt.Errorf("error deleting catalog: %s, %s", err, catalogHREF.Path) + } + } + } + return nil + +} + +// isCatalogFromSameOrg checks if catalog is in same Org. Shared catalogs from other Org are showed as normal one +// in some API responses. +func isCatalogFromSameOrg(adminOrg *AdminOrg, catalogName string) (bool, error) { + foundCatalogs, err := adminOrg.FindAdminCatalogRecords(catalogName) + if err != nil { + return false, err + } + + if len(foundCatalogs) == 1 { + return true, nil + } + return false, nil +} + +// FindAdminCatalogRecords uses catalog name to return AdminCatalogRecord information. +func (adminOrg *AdminOrg) FindAdminCatalogRecords(name string) ([]*types.CatalogRecord, error) { + util.Logger.Printf("[DEBUG] FindAdminCatalogRecords with name: %s and org name: %s", name, adminOrg.AdminOrg.Name) + results, err := adminOrg.client.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "adminCatalog", + "filter": fmt.Sprintf("name==%s;orgName==%s", url.QueryEscape(name), url.QueryEscape(adminOrg.AdminOrg.Name)), + "filterEncoded": "true", + }) + if err != nil { + return nil, err + } + + util.Logger.Printf("[DEBUG] FindAdminCatalogRecords returned with : %#v and error: %s", results.Results.AdminCatalogRecord, err) + return results.Results.AdminCatalogRecord, nil +} + +// Given a valid catalog name, FindAdminCatalog returns an AdminCatalog object. +// If no catalog is found, then returns an empty AdminCatalog and no error. +// Otherwise it returns an error. Function allows user to use an AdminOrg +// to also fetch a Catalog. If user does not have proper credentials to +// perform administrator tasks then function returns an error. +// API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/GET-Catalog-AdminView.html +// Deprecated: Use adminOrg.GetAdminCatalog instead +func (adminOrg *AdminOrg) FindAdminCatalog(catalogName string) (AdminCatalog, error) { + for _, catalog := range adminOrg.AdminOrg.Catalogs.Catalog { + // Get Catalog HREF + if catalog.Name == catalogName { + adminCatalog := NewAdminCatalog(adminOrg.client) + _, err := adminOrg.client.ExecuteRequest(catalog.HREF, http.MethodGet, + "", "error retrieving catalog: %s", nil, adminCatalog.AdminCatalog) + // The request was successful + return *adminCatalog, err + } + } + return AdminCatalog{}, nil +} + +// Given a valid catalog name, FindCatalog returns a Catalog object. +// If no catalog is found, then returns an empty catalog and no error. +// Otherwise it returns an error. Function allows user to use an AdminOrg +// to also fetch a Catalog. +// Deprecated: Use adminOrg.GetCatalogByName instead +func (adminOrg *AdminOrg) FindCatalog(catalogName string) (Catalog, error) { + for _, catalog := range adminOrg.AdminOrg.Catalogs.Catalog { + // Get Catalog HREF + if catalog.Name == catalogName { + catalogURL := adminOrg.client.VCDHREF + catalogURL.Path += "/catalog/" + strings.Split(catalog.HREF, "/api/admin/catalog/")[1] //gets id + + cat := NewCatalog(adminOrg.client) + + _, err := adminOrg.client.ExecuteRequest(catalogURL.String(), http.MethodGet, + "", "error retrieving catalog: %s", nil, cat.Catalog) + + // The request was successful + return *cat, err + } + } + return Catalog{}, nil +} + +// GetCatalogByHref finds a Catalog by HREF +// On success, returns a pointer to the Catalog structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetCatalogByHref(catalogHref string) (*Catalog, error) { + splitByAdminHREF := strings.Split(catalogHref, "/api/admin") + + // admin user and normal user will have different urls + var catalogHREF string + if len(splitByAdminHREF) == 1 { + catalogHREF = catalogHref + } else { + catalogHREF = splitByAdminHREF[0] + "/api" + splitByAdminHREF[1] + } + + cat := NewCatalog(adminOrg.client) + + _, err := adminOrg.client.ExecuteRequest(catalogHREF, http.MethodGet, + "", "error retrieving catalog: %s", nil, cat.Catalog) + + if err != nil { + return nil, err + } + cat.parent = adminOrg + // The request was successful + return cat, nil +} + +// GetCatalogByName finds a Catalog by Name +// On success, returns a pointer to the Catalog structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetCatalogByName(catalogName string, refresh bool) (*Catalog, error) { + + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + + for _, catalog := range adminOrg.AdminOrg.Catalogs.Catalog { + if catalog.Name == catalogName { + return adminOrg.GetCatalogByHref(catalog.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// Extracts an UUID from a string, regardless of surrounding text +// Returns an empty string if no UUID was found +func extractUuid(input string) string { + reGetID := regexp.MustCompile(`([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})`) + matchListId := reGetID.FindAllStringSubmatch(input, -1) + if len(matchListId) > 0 && len(matchListId[0]) > 0 { + return matchListId[0][1] + } + return "" +} + +// equalIds compares two IDs and return true if they are the same +// The comparison happens by extracting the bare UUID from both the +// wanted ID and the found one. +// When the found ID is empty, it used the HREF for such comparison, +// This function is useful when the reference structure in the parent lookup list +// may lack the ID (such as in Org.Links, AdminOrg.Catalogs) or has an ID +// that is only a UUID without prefixes (such as in CatalogItem list) +// +// wantedId is the input string to compare +// foundId is the ID field in the reference record (can be empty) +// foundHref is the HREF field in the reference record (should never be empty) +func equalIds(wantedId, foundId, foundHref string) bool { + + wantedUuid := extractUuid(wantedId) + foundUuid := "" + + if wantedUuid == "" { + return false + } + if foundId != "" { + // In some entities, the ID is a simple UUID without prefix + foundUuid = extractUuid(foundId) + } else { + foundUuid = extractUuid(foundHref) + } + return foundUuid == wantedUuid +} + +// GetCatalogById finds a Catalog by ID +// On success, returns a pointer to the Catalog structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetCatalogById(catalogId string, refresh bool) (*Catalog, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + for _, catalog := range adminOrg.AdminOrg.Catalogs.Catalog { + if equalIds(catalogId, catalog.ID, catalog.HREF) { + return adminOrg.GetCatalogByHref(catalog.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetCatalogByNameOrId finds a Catalog by name or ID +// On success, returns a pointer to the Catalog structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetCatalogByNameOrId(identifier string, refresh bool) (*Catalog, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return adminOrg.GetCatalogByName(name, refresh) } + getById := func(id string, refresh bool) (interface{}, error) { return adminOrg.GetCatalogById(id, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, refresh) + if entity == nil { + return nil, err + } + return entity.(*Catalog), err +} + +// GetAdminCatalogByHref finds an AdminCatalog by HREF +// On success, returns a pointer to the Catalog structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetAdminCatalogByHref(catalogHref string) (*AdminCatalog, error) { + adminCatalog := NewAdminCatalog(adminOrg.client) + + _, err := adminOrg.client.ExecuteRequest(catalogHref, http.MethodGet, + "", "error retrieving catalog: %s", nil, adminCatalog.AdminCatalog) + + if err != nil { + return nil, err + } + + adminCatalog.parent = adminOrg + // The request was successful + return adminCatalog, nil +} + +// GetCatalogByName finds an AdminCatalog by Name +// On success, returns a pointer to the AdminCatalog structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetAdminCatalogByName(catalogName string, refresh bool) (*AdminCatalog, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + for _, catalog := range adminOrg.AdminOrg.Catalogs.Catalog { + // Get Catalog HREF + if catalog.Name == catalogName { + return adminOrg.GetAdminCatalogByHref(catalog.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetCatalogById finds an AdminCatalog by ID +// On success, returns a pointer to the AdminCatalog structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetAdminCatalogById(catalogId string, refresh bool) (*AdminCatalog, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + for _, catalog := range adminOrg.AdminOrg.Catalogs.Catalog { + // Get Catalog HREF + if equalIds(catalogId, catalog.ID, catalog.HREF) { + return adminOrg.GetAdminCatalogByHref(catalog.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetAdminCatalogByNameOrId finds an AdminCatalog by name or ID +// On success, returns a pointer to the AdminCatalog structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetAdminCatalogByNameOrId(identifier string, refresh bool) (*AdminCatalog, error) { + getByName := func(name string, refresh bool) (interface{}, error) { + return adminOrg.GetAdminCatalogByName(name, refresh) + } + getById := func(id string, refresh bool) (interface{}, error) { + return adminOrg.GetAdminCatalogById(id, refresh) + } + entity, err := getEntityByNameOrId(getByName, getById, identifier, refresh) + if entity == nil { + return nil, err + } + return entity.(*AdminCatalog), err +} + +// GetVDCByHref retrieves a VDC using a direct call with the HREF +func (adminOrg *AdminOrg) GetVDCByHref(vdcHref string) (*Vdc, error) { + splitByAdminHREF := strings.Split(vdcHref, "/api/admin") + + // admin user and normal user will have different urls + var vdcHREF string + if len(splitByAdminHREF) == 1 { + vdcHREF = vdcHref + } else { + vdcHREF = splitByAdminHREF[0] + "/api" + splitByAdminHREF[1] + } + + vdc := NewVdc(adminOrg.client) + + _, err := adminOrg.client.ExecuteRequest(vdcHREF, http.MethodGet, + "", "error getting vdc: %s", nil, vdc.Vdc) + + if err != nil { + return nil, err + } + vdc.parent = adminOrg + + return vdc, nil +} + +// GetVDCByName finds a VDC by Name +// On success, returns a pointer to the Vdc structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetVDCByName(vdcName string, refresh bool) (*Vdc, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + for _, vdc := range adminOrg.AdminOrg.Vdcs.Vdcs { + if vdc.Name == vdcName { + return adminOrg.GetVDCByHref(vdc.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetVDCById finds a VDC by ID +// On success, returns a pointer to the Vdc structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetVDCById(vdcId string, refresh bool) (*Vdc, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + for _, vdc := range adminOrg.AdminOrg.Vdcs.Vdcs { + if equalIds(vdcId, vdc.ID, vdc.HREF) { + return adminOrg.GetVDCByHref(vdc.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetVDCByNameOrId finds a VDC by name or ID +// On success, returns a pointer to the VDC structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetVDCByNameOrId(identifier string, refresh bool) (*Vdc, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return adminOrg.GetVDCByName(name, refresh) } + getById := func(id string, refresh bool) (interface{}, error) { return adminOrg.GetVDCById(id, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, refresh) + if entity == nil { + return nil, err + } + return entity.(*Vdc), err +} + +// If user specifies valid vdc name then this returns a vdc object. +// If no vdc is found, then it returns an empty vdc and no error. +// Otherwise it returns an empty vdc and an error. This function +// allows users to use an AdminOrg to fetch a vdc as well. +// Deprecated: Use adminOrg.GetVDCByName instead +func (adminOrg *AdminOrg) GetVdcByName(vdcname string) (Vdc, error) { + for _, vdcs := range adminOrg.AdminOrg.Vdcs.Vdcs { + if vdcs.Name == vdcname { + splitByAdminHREF := strings.Split(vdcs.HREF, "/api/admin") + + // admin user and normal user will have different urls + var vdcHREF string + if len(splitByAdminHREF) == 1 { + vdcHREF = vdcs.HREF + } else { + vdcHREF = splitByAdminHREF[0] + "/api" + splitByAdminHREF[1] + } + + vdc := NewVdc(adminOrg.client) + + _, err := adminOrg.client.ExecuteRequest(vdcHREF, http.MethodGet, + "", "error getting vdc: %s", nil, vdc.Vdc) + + return *vdc, err + } + } + return Vdc{}, nil +} + +// QueryCatalogList returns a list of catalogs for this organization +func (adminOrg *AdminOrg) QueryCatalogList() ([]*types.CatalogRecord, error) { + util.Logger.Printf("[DEBUG] QueryCatalogList with org name %s", adminOrg.AdminOrg.Name) + queryType := types.QtCatalog + if adminOrg.client.IsSysAdmin { + queryType = types.QtAdminCatalog + } + results, err := adminOrg.client.cumulativeQuery(queryType, nil, map[string]string{ + "type": queryType, + "filter": fmt.Sprintf("orgName==%s", url.QueryEscape(adminOrg.AdminOrg.Name)), + "filterEncoded": "true", + }) + if err != nil { + return nil, err + } + + var catalogs []*types.CatalogRecord + + if adminOrg.client.IsSysAdmin { + catalogs = results.Results.AdminCatalogRecord + } else { + catalogs = results.Results.CatalogRecord + } + util.Logger.Printf("[DEBUG] QueryCatalogList returned with : %#v and error: %s", catalogs, err) + return catalogs, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminorg_administration.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminorg_administration.go new file mode 100644 index 000000000..e6413f07e --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminorg_administration.go @@ -0,0 +1,61 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// LdapConfigure allows to configure LDAP mode in use by the Org +func (adminOrg *AdminOrg) LdapConfigure(settings *types.OrgLdapSettingsType) (*types.OrgLdapSettingsType, error) { + util.Logger.Printf("[DEBUG] Configuring LDAP mode for Org name %s", adminOrg.AdminOrg.Name) + + // Xmlns field is not mandatory when `types.OrgLdapSettingsType` is set as part of whole + // `AdminOrg` structure but it must be set when directly updating LDAP. For that reason + // `types.OrgLdapSettingsType` Xmlns struct tag has 'omitempty' set + settings.Xmlns = types.XMLNamespaceVCloud + + href := adminOrg.AdminOrg.HREF + "/settings/ldap" + _, err := adminOrg.client.ExecuteRequest(href, http.MethodPut, types.MimeOrgLdapSettings, + "error updating LDAP settings: %s", settings, nil) + if err != nil { + return nil, fmt.Errorf("error updating LDAP mode for Org name '%s': %s", adminOrg.AdminOrg.Name, err) + } + + ldapSettings, err := adminOrg.GetLdapConfiguration() + if err != nil { + return nil, fmt.Errorf("error retrieving LDAP configuration: %s", err) + } + + return ldapSettings, nil +} + +// LdapDisable wraps LdapConfigure to disable LDAP configuration for org +func (adminOrg *AdminOrg) LdapDisable() error { + _, err := adminOrg.LdapConfigure(&types.OrgLdapSettingsType{OrgLdapMode: types.LdapModeNone}) + return err +} + +// GetLdapConfiguration retrieves LDAP configuration structure +func (adminOrg *AdminOrg) GetLdapConfiguration() (*types.OrgLdapSettingsType, error) { + util.Logger.Printf("[DEBUG] Reading LDAP configuration for Org name %s", adminOrg.AdminOrg.Name) + + ldapSettings := &types.OrgLdapSettingsType{} + + href := adminOrg.AdminOrg.HREF + "/settings/ldap" + + _, err := adminOrg.client.ExecuteRequest(href, http.MethodGet, types.MimeOrgLdapSettings, + "error getting LDAP settings: %s", nil, ldapSettings) + + if err != nil { + return nil, err + } + + return ldapSettings, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminvdc.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminvdc.go new file mode 100644 index 000000000..5f58785bb --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/adminvdc.go @@ -0,0 +1,594 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type AdminVdc struct { + AdminVdc *types.AdminVdc + client *Client + parent organization +} + +func NewAdminVdc(cli *Client) *AdminVdc { + return &AdminVdc{ + AdminVdc: new(types.AdminVdc), + client: cli, + } +} + +// vdcVersionedFuncs is a generic representation of VDC CRUD operations across multiple versions +type vdcVersionedFuncs struct { + SupportedVersion string + CreateVdc func(adminOrg *AdminOrg, vdcConfiguration *types.VdcConfiguration) (*Vdc, error) + CreateVdcAsync func(adminOrg *AdminOrg, vdcConfiguration *types.VdcConfiguration) (Task, error) + UpdateVdc func(adminVdc *AdminVdc) (*AdminVdc, error) + UpdateVdcAsync func(adminVdc *AdminVdc) (Task, error) +} + +// VDC function mapping for API version 32.0 (from vCD 9.7) +var vdcVersionedFuncsV97 = vdcVersionedFuncs{ + SupportedVersion: "32.0", + CreateVdc: createVdcV97, + CreateVdcAsync: createVdcAsyncV97, + UpdateVdc: updateVdcV97, + UpdateVdcAsync: updateVdcAsyncV97, +} + +// vdcVersionedFuncsByVcdVersion is a map of VDC functions by vCD version +var vdcVersionedFuncsByVcdVersion = map[string]vdcVersionedFuncs{ + "vdc9.7": vdcVersionedFuncsV97, + + // If we add a new function to this list, we also need to update the "default" entry + // The "default" entry will hold the highest currently available function + "default": vdcVersionedFuncsV97, +} + +// getVdcVersionedFuncsByVdcVersion is a wrapper function that retrieves the requested versioned VDC function +// When the wanted version does not exist in the map, it returns the highest available one. +func getVdcVersionedFuncsByVdcVersion(version string) vdcVersionedFuncs { + f, ok := vdcVersionedFuncsByVcdVersion[version] + if ok { + return f + } else { + return vdcVersionedFuncsByVcdVersion["default"] + } +} + +// GetAdminVdcByName function uses a valid VDC name and returns a admin VDC object. +// If no VDC is found, then it returns an empty VDC and no error. +// Otherwise it returns an empty VDC and an error. +// Deprecated: Use adminOrg.GetAdminVDCByName +func (adminOrg *AdminOrg) GetAdminVdcByName(vdcname string) (AdminVdc, error) { + for _, vdcs := range adminOrg.AdminOrg.Vdcs.Vdcs { + if vdcs.Name == vdcname { + adminVdc := NewAdminVdc(adminOrg.client) + _, err := adminOrg.client.ExecuteRequest(vdcs.HREF, http.MethodGet, + "", "error getting vdc: %s", nil, adminVdc.AdminVdc) + return *adminVdc, err + } + } + return AdminVdc{}, nil +} + +// GetAdminVDCByHref retrieves a VDC using a direct call with the HREF +func (adminOrg *AdminOrg) GetAdminVDCByHref(vdcHref string) (*AdminVdc, error) { + adminVdc := NewAdminVdc(adminOrg.client) + adminVdc.parent = adminOrg + _, err := adminOrg.client.ExecuteRequest(vdcHref, http.MethodGet, + "", "error getting vdc: %s", nil, adminVdc.AdminVdc) + + if err != nil { + return nil, err + } + return adminVdc, nil +} + +// GetAdminVDCByName finds an Admin VDC by Name +// On success, returns a pointer to the AdminVdc structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetAdminVDCByName(vdcName string, refresh bool) (*AdminVdc, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + for _, vdc := range adminOrg.AdminOrg.Vdcs.Vdcs { + if vdc.Name == vdcName { + return adminOrg.GetAdminVDCByHref(vdc.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetAdminVDCById finds an Admin VDC by ID +// On success, returns a pointer to the AdminVdc structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetAdminVDCById(vdcId string, refresh bool) (*AdminVdc, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + for _, vdc := range adminOrg.AdminOrg.Vdcs.Vdcs { + if equalIds(vdcId, vdc.ID, vdc.HREF) { + return adminOrg.GetAdminVDCByHref(vdc.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetAdminVDCByNameOrId finds an Admin VDC by Name Or ID +// On success, returns a pointer to the AdminVdc structure and a nil error +// On failure, returns a nil pointer and an error +func (adminOrg *AdminOrg) GetAdminVDCByNameOrId(identifier string, refresh bool) (*AdminVdc, error) { + getByName := func(name string, refresh bool) (interface{}, error) { + return adminOrg.GetAdminVDCByName(name, refresh) + } + getById := func(id string, refresh bool) (interface{}, error) { return adminOrg.GetAdminVDCById(id, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, refresh) + if entity == nil { + return nil, err + } + return entity.(*AdminVdc), err +} + +// CreateVdc creates a VDC with the given params under the given organization. +// Returns an AdminVdc. +// API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/POST-VdcConfiguration.html +// Deprecated in favor of adminOrg.CreateOrgVdcAsync +func (adminOrg *AdminOrg) CreateVdc(vdcConfiguration *types.VdcConfiguration) (Task, error) { + err := validateVdcConfiguration(vdcConfiguration) + if err != nil { + return Task{}, err + } + + vdcConfiguration.Xmlns = types.XMLNamespaceVCloud + + vdcCreateHREF, err := url.ParseRequestURI(adminOrg.AdminOrg.HREF) + if err != nil { + return Task{}, fmt.Errorf("error parsing admin org url: %s", err) + } + vdcCreateHREF.Path += "/vdcsparams" + + adminVdc := NewAdminVdc(adminOrg.client) + + _, err = adminOrg.client.ExecuteRequest(vdcCreateHREF.String(), http.MethodPost, + "application/vnd.vmware.admin.createVdcParams+xml", "error creating VDC: %s", vdcConfiguration, adminVdc.AdminVdc) + if err != nil { + return Task{}, err + } + + // Return the task + task := NewTask(adminOrg.client) + task.Task = adminVdc.AdminVdc.Tasks.Task[0] + return *task, nil +} + +// Creates the VDC and waits for the asynchronous task to complete. +// Deprecated in favor of adminOrg.CreateOrgVdc +func (adminOrg *AdminOrg) CreateVdcWait(vdcDefinition *types.VdcConfiguration) error { + task, err := adminOrg.CreateVdc(vdcDefinition) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("couldn't finish creating VDC %s", err) + } + return nil +} + +// Given an adminVdc with a valid HREF, the function refresh the adminVdc +// and updates the adminVdc data. Returns an error on failure +// Users should use refresh whenever they suspect +// a stale VDC due to the creation/update/deletion of a resource +// within the the VDC itself. +func (adminVdc *AdminVdc) Refresh() error { + if *adminVdc == (AdminVdc{}) || adminVdc.AdminVdc.HREF == "" { + return fmt.Errorf("cannot refresh, Object is empty or HREF is empty") + } + + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + unmarshalledAdminVdc := &types.AdminVdc{} + + _, err := adminVdc.client.ExecuteRequest(adminVdc.AdminVdc.HREF, http.MethodGet, + "", "error refreshing VDC: %s", nil, unmarshalledAdminVdc) + if err != nil { + return err + } + adminVdc.AdminVdc = unmarshalledAdminVdc + + return nil +} + +// UpdateAsync updates VDC from current VDC struct contents. +// Any differences that may be legally applied will be updated. +// Returns an error if the call to vCD fails. +// API Documentation: https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/operations/PUT-Vdc.html +func (adminVdc *AdminVdc) UpdateAsync() (Task, error) { + apiVersion, err := adminVdc.client.MaxSupportedVersion() + if err != nil { + return Task{}, err + } + vdcFunctions := getVdcVersionedFuncsByVdcVersion("vdc" + apiVersionToVcdVersion[apiVersion]) + if vdcFunctions.UpdateVdcAsync == nil { + return Task{}, fmt.Errorf("function UpdateVdcAsync is not defined for %s", "vdc"+apiVersion) + } + util.Logger.Printf("[DEBUG] UpdateAsync call function for version %s", vdcFunctions.SupportedVersion) + + return vdcFunctions.UpdateVdcAsync(adminVdc) + +} + +// Update function updates an Admin VDC from current VDC struct contents. +// Any differences that may be legally applied will be updated. +// Returns an empty AdminVdc struct and error if the call to vCD fails. +// API Documentation: https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/operations/PUT-Vdc.html +func (adminVdc *AdminVdc) Update() (AdminVdc, error) { + apiVersion, err := adminVdc.client.MaxSupportedVersion() + if err != nil { + return AdminVdc{}, err + } + + vdcFunctions := getVdcVersionedFuncsByVdcVersion("vdc" + apiVersionToVcdVersion[apiVersion]) + if vdcFunctions.UpdateVdc == nil { + return AdminVdc{}, fmt.Errorf("function UpdateVdc is not defined for %s", "vdc"+apiVersion) + } + + util.Logger.Printf("[DEBUG] Update call function for version %s", vdcFunctions.SupportedVersion) + + updatedAdminVdc, err := vdcFunctions.UpdateVdc(adminVdc) + if err != nil { + return AdminVdc{}, err + } + return *updatedAdminVdc, err +} + +// CreateOrgVdc creates a VDC with the given params under the given organization +// and waits for the asynchronous task to complete. +// Returns an AdminVdc pointer and an error. +func (adminOrg *AdminOrg) CreateOrgVdc(vdcConfiguration *types.VdcConfiguration) (*Vdc, error) { + apiVersion, err := adminOrg.client.MaxSupportedVersion() + if err != nil { + return nil, err + } + vdcFunctions := getVdcVersionedFuncsByVdcVersion("vdc" + apiVersionToVcdVersion[apiVersion]) + if vdcFunctions.CreateVdc == nil { + return nil, fmt.Errorf("function CreateVdc is not defined for %s", "vdc"+apiVersion) + } + + util.Logger.Printf("[DEBUG] CreateOrgVdc call function for version %s", vdcFunctions.SupportedVersion) + return vdcFunctions.CreateVdc(adminOrg, vdcConfiguration) +} + +// CreateOrgVdcAsync creates a VDC with the given params under the given organization. +// Returns a Task and an error. +func (adminOrg *AdminOrg) CreateOrgVdcAsync(vdcConfiguration *types.VdcConfiguration) (Task, error) { + apiVersion, err := adminOrg.client.MaxSupportedVersion() + if err != nil { + return Task{}, err + } + vdcFunctions := getVdcVersionedFuncsByVdcVersion("vdc" + apiVersionToVcdVersion[apiVersion]) + if vdcFunctions.CreateVdcAsync == nil { + return Task{}, fmt.Errorf("function CreateVdcAsync is not defined for %s", "vdc"+apiVersion) + } + + util.Logger.Printf("[DEBUG] CreateOrgVdcAsync call function for version %s", vdcFunctions.SupportedVersion) + + return vdcFunctions.CreateVdcAsync(adminOrg, vdcConfiguration) +} + +// updateVdcAsyncV97 updates a VDC with the given params. Supports Flex type allocation. +// Needs vCD 9.7+ to work. Returns a Task and an error. +func updateVdcAsyncV97(adminVdc *AdminVdc) (Task, error) { + util.Logger.Printf("[TRACE] updateVdcAsyncV97 called %#v", *adminVdc) + adminVdc.AdminVdc.Xmlns = types.XMLNamespaceVCloud + + // Return the task + return adminVdc.client.ExecuteTaskRequest(adminVdc.AdminVdc.HREF, http.MethodPut, + types.MimeAdminVDC, "error updating VDC: %s", adminVdc.AdminVdc) +} + +// updateVdcV97 updates a VDC with the given params +// and waits for the asynchronous task to complete. Supports Flex type allocation. +// Needs vCD 9.7+ to work. Returns an AdminVdc pointer and an error. +func updateVdcV97(adminVdc *AdminVdc) (*AdminVdc, error) { + util.Logger.Printf("[TRACE] updateVdcV97 called %#v", *adminVdc) + task, err := updateVdcAsyncV97(adminVdc) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, err + } + err = adminVdc.Refresh() + if err != nil { + return nil, err + } + return adminVdc, nil +} + +// createVdcV97 creates a VDC with the given params under the given organization +// and waits for the asynchronous task to complete. Supports Flex type allocation. +// Needs vCD 9.7+ to work. Returns a Vdc pointer and error. +func createVdcV97(adminOrg *AdminOrg, vdcConfiguration *types.VdcConfiguration) (*Vdc, error) { + util.Logger.Printf("[TRACE] createVdcV97 called %#v", *vdcConfiguration) + task, err := createVdcAsyncV97(adminOrg, vdcConfiguration) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("couldn't finish creating VDC %s", err) + } + + vdc, err := adminOrg.GetVDCByName(vdcConfiguration.Name, true) + if err != nil { + return nil, err + } + return vdc, nil +} + +// createVdcAsyncV97 creates a VDC with the given params under the given organization. Supports Flex type allocation. +// Needs vCD 9.7+ to work. Returns a Task and an error +func createVdcAsyncV97(adminOrg *AdminOrg, vdcConfiguration *types.VdcConfiguration) (Task, error) { + util.Logger.Printf("[TRACE] createVdcAsyncV97 called %#v", *vdcConfiguration) + err := validateVdcConfigurationV97(*vdcConfiguration) + if err != nil { + return Task{}, err + } + + vdcConfiguration.Xmlns = types.XMLNamespaceVCloud + + vdcCreateHREF, err := url.ParseRequestURI(adminOrg.AdminOrg.HREF) + if err != nil { + return Task{}, fmt.Errorf("error parsing admin org url: %s", err) + } + vdcCreateHREF.Path += "/vdcsparams" + + adminVdc := NewAdminVdc(adminOrg.client) + + _, err = adminOrg.client.ExecuteRequest(vdcCreateHREF.String(), http.MethodPost, + "application/vnd.vmware.admin.createVdcParams+xml", "error creating VDC: %s", + vdcConfiguration, adminVdc.AdminVdc) + if err != nil { + return Task{}, err + } + + // Return the task + task := NewTask(adminOrg.client) + task.Task = adminVdc.AdminVdc.Tasks.Task[0] + return *task, nil +} + +// validateVdcConfigurationV97 uses validateVdcConfiguration and additionally checks Flex dependent values +func validateVdcConfigurationV97(vdcDefinition types.VdcConfiguration) error { + err := validateVdcConfiguration(&vdcDefinition) + if err != nil { + return err + } + if vdcDefinition.AllocationModel == "Flex" && vdcDefinition.IsElastic == nil { + return errors.New("VdcConfiguration missing required field: IsElastic") + } + if vdcDefinition.AllocationModel == "Flex" && vdcDefinition.IncludeMemoryOverhead == nil { + return errors.New("VdcConfiguration missing required field: IncludeMemoryOverhead") + } + return nil +} + +// GetVappList returns the list of vApps for an Admin VDC +func (vdc *AdminVdc) GetVappList() []*types.ResourceReference { + var list []*types.ResourceReference + for _, resourceEntities := range vdc.AdminVdc.ResourceEntities { + for _, resourceReference := range resourceEntities.ResourceEntity { + if resourceReference.Type == types.MimeVApp { + list = append(list, resourceReference) + } + } + } + return list +} + +// UpdateStorageProfile updates VDC storage profile and returns refreshed VDC or error. +func (vdc *AdminVdc) UpdateStorageProfile(storageProfileId string, storageProfile *types.AdminVdcStorageProfile) (*types.AdminVdcStorageProfile, error) { + if vdc.client.VCDHREF.String() == "" { + return nil, fmt.Errorf("cannot update VDC storage profile, VCD HREF is unset") + } + + queryUrl := vdc.client.VCDHREF + queryUrl.Path += "/admin/vdcStorageProfile/" + storageProfileId + + storageProfile.Xmlns = types.XMLNamespaceVCloud + updateAdminVdcStorageProfile := &types.AdminVdcStorageProfile{} + + _, err := vdc.client.ExecuteRequest(queryUrl.String(), http.MethodPut, + types.MimeStorageProfile, "error updating VDC storage profile: %s", storageProfile, updateAdminVdcStorageProfile) + if err != nil { + return nil, fmt.Errorf("cannot update VDC storage profile, error: %s", err) + } + + return updateAdminVdcStorageProfile, err +} + +// AddStorageProfile adds a storage profile to a VDC +func (vdc *AdminVdc) AddStorageProfile(storageProfile *types.VdcStorageProfileConfiguration, description string) (Task, error) { + if vdc.client.VCDHREF.String() == "" { + return Task{}, fmt.Errorf("cannot add VDC storage profile, VCD HREF is unset") + } + + href := vdc.AdminVdc.HREF + "/vdcStorageProfiles" + + var updateStorageProfile = types.UpdateVdcStorageProfiles{ + Xmlns: types.XMLNamespaceVCloud, + Name: storageProfile.ProviderVdcStorageProfile.Name, + Description: description, + AddStorageProfile: storageProfile, + RemoveStorageProfile: nil, + } + + task, err := vdc.client.ExecuteTaskRequest(href, http.MethodPost, + types.MimeUpdateVdcStorageProfiles, "error adding VDC storage profile: %s", &updateStorageProfile) + if err != nil { + return Task{}, fmt.Errorf("cannot add VDC storage profile, error: %s", err) + } + + return task, nil +} + +// AddStorageProfileWait adds a storage profile to a VDC and return a refreshed VDC +func (vdc *AdminVdc) AddStorageProfileWait(storageProfile *types.VdcStorageProfileConfiguration, description string) error { + task, err := vdc.AddStorageProfile(storageProfile, description) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return err + } + return vdc.Refresh() +} + +// RemoveStorageProfile remove a storage profile from a VDC +func (vdc *AdminVdc) RemoveStorageProfile(storageProfileName string) (Task, error) { + if vdc.client.VCDHREF.String() == "" { + return Task{}, fmt.Errorf("cannot remove VDC storage profile: VCD HREF is unset") + } + + var storageProfile *types.Reference + for _, sp := range vdc.AdminVdc.VdcStorageProfiles.VdcStorageProfile { + if sp.Name == storageProfileName { + storageProfile = sp + } + } + if storageProfile == nil { + return Task{}, fmt.Errorf("cannot remove VDC storage profile: storage profile '%s' not found in VDC", storageProfileName) + } + + vdcStorageProfileDetails, err := vdc.client.GetStorageProfileByHref(storageProfile.HREF) + if err != nil { + return Task{}, fmt.Errorf("cannot retrieve VDC storage profile '%s' details: %s", storageProfileName, err) + } + if vdcStorageProfileDetails.Enabled { + _, err = vdc.UpdateStorageProfile(extractUuid(storageProfile.HREF), &types.AdminVdcStorageProfile{ + Name: vdcStorageProfileDetails.Name, + Units: vdcStorageProfileDetails.Units, + Limit: vdcStorageProfileDetails.Limit, + Default: false, + Enabled: takeBoolPointer(false), + ProviderVdcStorageProfile: &types.Reference{ + HREF: vdcStorageProfileDetails.ProviderVdcStorageProfile.HREF, + }, + }, + ) + if err != nil { + return Task{}, fmt.Errorf("cannot disable VDC storage profile '%s': %s", storageProfileName, err) + } + } + + href := vdc.AdminVdc.HREF + "/vdcStorageProfiles" + + var updateStorageProfile = types.UpdateVdcStorageProfiles{ + Xmlns: types.XMLNamespaceVCloud, + Name: vdcStorageProfileDetails.Name, + Description: "", + RemoveStorageProfile: storageProfile, + } + + task, err := vdc.client.ExecuteTaskRequest(href, http.MethodPost, + types.MimeUpdateVdcStorageProfiles, "error removing VDC storage profile: %s", &updateStorageProfile) + if err != nil { + return Task{}, fmt.Errorf("cannot remove VDC storage profile, error: %s", err) + } + + return task, nil +} + +// RemoveStorageProfileWait removes a storege profile from a VDC and returns a refreshed VDC or an error +func (vdc *AdminVdc) RemoveStorageProfileWait(storageProfileName string) error { + task, err := vdc.RemoveStorageProfile(storageProfileName) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return err + } + return vdc.Refresh() +} + +// SetDefaultStorageProfile sets a given storage profile as default +// This operation will automatically unset the previous default storage profile. +func (vdc *AdminVdc) SetDefaultStorageProfile(storageProfileName string) error { + if vdc.client.VCDHREF.String() == "" { + return fmt.Errorf("cannot set VDC default storage profile: VCD HREF is unset") + } + + var storageProfile *types.Reference + for _, sp := range vdc.AdminVdc.VdcStorageProfiles.VdcStorageProfile { + if sp.Name == storageProfileName { + storageProfile = sp + } + } + if storageProfile == nil { + return fmt.Errorf("cannot set VDC default storage profile: storage profile '%s' not found in VDC", storageProfileName) + } + + vdcStorageProfileDetails, err := vdc.client.GetStorageProfileByHref(storageProfile.HREF) + if err != nil { + return fmt.Errorf("cannot retrieve VDC storage profile '%s' details: %s", storageProfileName, err) + } + _, err = vdc.UpdateStorageProfile(extractUuid(storageProfile.HREF), &types.AdminVdcStorageProfile{ + Name: vdcStorageProfileDetails.Name, + Units: vdcStorageProfileDetails.Units, + Limit: vdcStorageProfileDetails.Limit, + Default: true, + Enabled: takeBoolPointer(true), + ProviderVdcStorageProfile: &types.Reference{ + HREF: vdcStorageProfileDetails.ProviderVdcStorageProfile.HREF, + }, + }, + ) + if err != nil { + return fmt.Errorf("cannot set VDC default storage profile '%s': %s", storageProfileName, err) + } + return vdc.Refresh() +} + +// GetDefaultStorageProfileReference finds the default storage profile for the VDC +func (adminVdc *AdminVdc) GetDefaultStorageProfileReference() (*types.Reference, error) { + var defaultSp *types.Reference + if adminVdc.AdminVdc.VdcStorageProfiles == nil || adminVdc.AdminVdc.VdcStorageProfiles.VdcStorageProfile == nil { + return nil, fmt.Errorf("no storage profiles found in VDC %s", adminVdc.AdminVdc.Name) + } + for _, sp := range adminVdc.AdminVdc.VdcStorageProfiles.VdcStorageProfile { + fullSp, err := adminVdc.client.GetStorageProfileByHref(sp.HREF) + if err != nil { + return nil, fmt.Errorf("error retrieving storage profile %s for VDC %s: %s", sp.Name, adminVdc.AdminVdc.Name, err) + } + if fullSp.Default { + if defaultSp != nil { + return nil, fmt.Errorf("more than one default storage profile found for VDC %s: '%s' and '%s'", adminVdc.AdminVdc.Name, sp.Name, defaultSp.Name) + } + defaultSp = sp + } + } + if defaultSp != nil { + return defaultSp, nil + } + return nil, fmt.Errorf("no default storage profile found for VDC %s", adminVdc.AdminVdc.Name) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api.go new file mode 100644 index 000000000..1b848e923 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api.go @@ -0,0 +1,773 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +// Package govcd provides a simple binding for vCloud Director REST APIs. +package govcd + +import ( + "bytes" + "encoding/json" + "encoding/xml" + "fmt" + "io" + "io/ioutil" + "net/http" + "net/url" + "os" + "regexp" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// Client provides a client to vCloud Director, values can be populated automatically using the Authenticate method. +type Client struct { + APIVersion string // The API version required + VCDToken string // Access Token (authorization header) + VCDAuthHeader string // Authorization header + VCDHREF url.URL // VCD API ENDPOINT + Http http.Client // HttpClient is the client to use. Default will be used if not provided. + IsSysAdmin bool // flag if client is connected as system administrator + UsingBearerToken bool // flag if client is using a bearer token + UsingAccessToken bool // flag if client is using an API token + + // MaxRetryTimeout specifies a time limit (in seconds) for retrying requests made by the SDK + // where vCloud director may take time to respond and retry mechanism is needed. + // This must be >0 to avoid instant timeout errors. + MaxRetryTimeout int + + // UseSamlAdfs specifies if SAML auth is used for authenticating vCD instead of local login. + // The following conditions must be met so that authentication SAML authentication works: + // * SAML IdP (Identity Provider) is Active Directory Federation Service (ADFS) + // * Authentication endpoint "/adfs/services/trust/13/usernamemixed" must be enabled on ADFS + // server + UseSamlAdfs bool + // CustomAdfsRptId allows to set custom Relaying Party Trust identifier. By default vCD Entity + // ID is used as Relaying Party Trust identifier. + CustomAdfsRptId string + + // UserAgent to send for API queries. Standard format is described as: + // "User-Agent: / " + UserAgent string + + supportedVersions SupportedVersions // Versions from /api/versions endpoint + customHeader http.Header +} + +// AuthorizationHeader header key used by default to set the authorization token. +const AuthorizationHeader = "X-Vcloud-Authorization" + +// BearerTokenHeader is the header key containing a bearer token +const BearerTokenHeader = "X-Vmware-Vcloud-Access-Token" + +const ApiTokenHeader = "API-token" + +// General purpose error to be used whenever an entity is not found from a "GET" request +// Allows a simpler checking of the call result +// such as +// if err == ErrorEntityNotFound { +// // do what is needed in case of not found +// } +var errorEntityNotFoundMessage = "[ENF] entity not found" +var ErrorEntityNotFound = fmt.Errorf(errorEntityNotFoundMessage) + +// Triggers for debugging functions that show requests and responses +var debugShowRequestEnabled = os.Getenv("GOVCD_SHOW_REQ") != "" +var debugShowResponseEnabled = os.Getenv("GOVCD_SHOW_RESP") != "" + +// Enables the debugging hook to show requests as they are processed. +//lint:ignore U1000 this function is used on request for debugging purposes +func enableDebugShowRequest() { + debugShowRequestEnabled = true +} + +// Disables the debugging hook to show requests as they are processed. +//lint:ignore U1000 this function is used on request for debugging purposes +func disableDebugShowRequest() { + debugShowRequestEnabled = false + err := os.Setenv("GOVCD_SHOW_REQ", "") + if err != nil { + util.Logger.Printf("[DEBUG - disableDebugShowRequest] error setting environment variable: %s", err) + } +} + +// Enables the debugging hook to show responses as they are processed. +//lint:ignore U1000 this function is used on request for debugging purposes +func enableDebugShowResponse() { + debugShowResponseEnabled = true +} + +// Disables the debugging hook to show responses as they are processed. +//lint:ignore U1000 this function is used on request for debugging purposes +func disableDebugShowResponse() { + debugShowResponseEnabled = false + err := os.Setenv("GOVCD_SHOW_RESP", "") + if err != nil { + util.Logger.Printf("[DEBUG - disableDebugShowResponse] error setting environment variable: %s", err) + } +} + +// On-the-fly debug hook. If either debugShowRequestEnabled or the environment +// variable "GOVCD_SHOW_REQ" are enabled, this function will show the contents +// of the request as it is being processed. +func debugShowRequest(req *http.Request, payload string) { + if debugShowRequestEnabled { + header := "[\n" + for key, value := range util.SanitizedHeader(req.Header) { + header += fmt.Sprintf("\t%s => %s\n", key, value) + } + header += "]\n" + fmt.Println("** REQUEST **") + fmt.Printf("time: %s\n", time.Now().Format("2006-01-02T15:04:05.000Z")) + fmt.Printf("method: %s\n", req.Method) + fmt.Printf("host: %s\n", req.Host) + fmt.Printf("length: %d\n", req.ContentLength) + fmt.Printf("URL: %s\n", req.URL.String()) + fmt.Printf("header: %s\n", header) + fmt.Printf("payload: %s\n", payload) + fmt.Println() + } +} + +// On-the-fly debug hook. If either debugShowResponseEnabled or the environment +// variable "GOVCD_SHOW_RESP" are enabled, this function will show the contents +// of the response as it is being processed. +func debugShowResponse(resp *http.Response, body []byte) { + if debugShowResponseEnabled { + fmt.Println("## RESPONSE ##") + fmt.Printf("time: %s\n", time.Now().Format("2006-01-02T15:04:05.000Z")) + fmt.Printf("status: %d - %s \n", resp.StatusCode, resp.Status) + fmt.Printf("length: %d\n", resp.ContentLength) + fmt.Printf("header: %v\n", util.SanitizedHeader(resp.Header)) + fmt.Printf("body: %s\n", body) + fmt.Println() + } +} + +// IsNotFound is a convenience function, similar to os.IsNotExist that checks whether a given error +// is a "Not found" error, such as +// if isNotFound(err) { +// // do what is needed in case of not found +// } +func IsNotFound(err error) bool { + return err != nil && err == ErrorEntityNotFound +} + +// ContainsNotFound is a convenience function, similar to os.IsNotExist that checks whether a given error +// contains a "Not found" error. It is almost the same as `IsNotFound` but checks if an error contains substring +// ErrorEntityNotFound +func ContainsNotFound(err error) bool { + return err != nil && strings.Contains(err.Error(), ErrorEntityNotFound.Error()) +} + +// NewRequestWitNotEncodedParams allows passing complex values params that shouldn't be encoded like for queries. e.g. /query?filter=name=foo +func (client *Client) NewRequestWitNotEncodedParams(params map[string]string, notEncodedParams map[string]string, method string, reqUrl url.URL, body io.Reader) *http.Request { + return client.NewRequestWitNotEncodedParamsWithApiVersion(params, notEncodedParams, method, reqUrl, body, client.APIVersion) +} + +// NewRequestWitNotEncodedParamsWithApiVersion allows passing complex values params that shouldn't be encoded like for queries. e.g. /query?filter=name=foo +// * params - request parameters +// * notEncodedParams - request parameters which will be added not encoded +// * method - request type +// * reqUrl - request url +// * body - request body +// * apiVersion - provided Api version overrides default Api version value used in request parameter +func (client *Client) NewRequestWitNotEncodedParamsWithApiVersion(params map[string]string, notEncodedParams map[string]string, method string, reqUrl url.URL, body io.Reader, apiVersion string) *http.Request { + return client.newRequest(params, notEncodedParams, method, reqUrl, body, apiVersion, nil) +} + +// newRequest is the parent of many "specific" "NewRequest" functions. +// Note. It is kept private to avoid breaking public API on every new field addition. +func (client *Client) newRequest(params map[string]string, notEncodedParams map[string]string, method string, reqUrl url.URL, body io.Reader, apiVersion string, additionalHeader http.Header) *http.Request { + reqValues := url.Values{} + + // Build up our request parameters + for key, value := range params { + reqValues.Add(key, value) + } + + // Add the params to our URL + reqUrl.RawQuery = reqValues.Encode() + + for key, value := range notEncodedParams { + if key != "" && value != "" { + reqUrl.RawQuery += "&" + key + "=" + value + } + } + + // If the body contains data - try to read all contents for logging and re-create another + // io.Reader with all contents to use it down the line + var readBody []byte + var err error + if body != nil { + readBody, err = ioutil.ReadAll(body) + if err != nil { + util.Logger.Printf("[DEBUG - newRequest] error reading body: %s", err) + } + body = bytes.NewReader(readBody) + } + + req, err := http.NewRequest(method, reqUrl.String(), body) + if err != nil { + util.Logger.Printf("[DEBUG - newRequest] error getting new request: %s", err) + } + + if client.VCDAuthHeader != "" && client.VCDToken != "" { + // Add the authorization header + req.Header.Add(client.VCDAuthHeader, client.VCDToken) + } + if (client.VCDAuthHeader != "" && client.VCDToken != "") || + (additionalHeader != nil && additionalHeader.Get("Authorization") != "") { + // Add the Accept header for VCD + req.Header.Add("Accept", "application/*+xml;version="+apiVersion) + } + // The deprecated authorization token is 32 characters long + // The bearer token is 612 characters long + if len(client.VCDToken) > 32 { + req.Header.Add("X-Vmware-Vcloud-Token-Type", "Bearer") + req.Header.Add("Authorization", "bearer "+client.VCDToken) + } + + // Merge in additional headers before logging if any where specified in additionalHeader + // parameter + if additionalHeader != nil && len(additionalHeader) > 0 { + for headerName, headerValueSlice := range additionalHeader { + for _, singleHeaderValue := range headerValueSlice { + req.Header.Add(headerName, singleHeaderValue) + } + } + } + if client.customHeader != nil { + for k, v := range client.customHeader { + for _, v1 := range v { + req.Header.Add(k, v1) + } + } + } + + setHttpUserAgent(client.UserAgent, req) + + // Avoids passing data if the logging of requests is disabled + if util.LogHttpRequest { + payload := "" + if req.ContentLength > 0 { + payload = string(readBody) + } + util.ProcessRequestOutput(util.FuncNameCallStack(), method, reqUrl.String(), payload, req) + debugShowRequest(req, payload) + } + + return req + +} + +// NewRequest creates a new HTTP request and applies necessary auth headers if set. +func (client *Client) NewRequest(params map[string]string, method string, reqUrl url.URL, body io.Reader) *http.Request { + return client.NewRequestWitNotEncodedParams(params, nil, method, reqUrl, body) +} + +// NewRequestWithApiVersion creates a new HTTP request and applies necessary auth headers if set. +// Allows to override default request API Version +func (client *Client) NewRequestWithApiVersion(params map[string]string, method string, reqUrl url.URL, body io.Reader, apiVersion string) *http.Request { + return client.NewRequestWitNotEncodedParamsWithApiVersion(params, nil, method, reqUrl, body, apiVersion) +} + +// ParseErr takes an error XML resp, error interface for unmarshalling and returns a single string for +// use in error messages. +func ParseErr(bodyType types.BodyType, resp *http.Response, errType error) error { + // if there was an error decoding the body, just return that + if err := decodeBody(bodyType, resp, errType); err != nil { + util.Logger.Printf("[ParseErr]: unhandled response <--\n%+v\n-->\n", resp) + return fmt.Errorf("[ParseErr]: error parsing error body for non-200 request: %s (%+v)", err, resp) + } + + // response body maybe empty for some error, such like 416, 400 + if errType.Error() == "API Error: 0: " { + errType = fmt.Errorf(resp.Status) + } + + return errType +} + +// decodeBody is used to decode a response body of types.BodyType +func decodeBody(bodyType types.BodyType, resp *http.Response, out interface{}) error { + body, err := ioutil.ReadAll(resp.Body) + + // In case of JSON, body does not have indents in response therefore it must be indented + if bodyType == types.BodyTypeJSON { + body, err = indentJsonBody(body) + if err != nil { + return err + } + } + + util.ProcessResponseOutput(util.FuncNameCallStack(), resp, string(body)) + if err != nil { + return err + } + + debugShowResponse(resp, body) + + // only attempt to unmarshal if body is not empty + if len(body) > 0 { + switch bodyType { + case types.BodyTypeXML: + if err = xml.Unmarshal(body, &out); err != nil { + return err + } + case types.BodyTypeJSON: + if err = json.Unmarshal(body, &out); err != nil { + return err + } + + default: + panic(fmt.Sprintf("unknown body type: %d", bodyType)) + } + } + + return nil +} + +// indentJsonBody indents raw JSON body for easier readability +func indentJsonBody(body []byte) ([]byte, error) { + var prettyJSON bytes.Buffer + err := json.Indent(&prettyJSON, body, "", " ") + if err != nil { + return nil, fmt.Errorf("error indenting response JSON: %s", err) + } + body = prettyJSON.Bytes() + return body, nil +} + +// checkResp wraps http.Client.Do() and verifies the request, if status code +// is 2XX it passes back the response, if it's a known invalid status code it +// parses the resultant XML error and returns a descriptive error, if the +// status code is not handled it returns a generic error with the status code. +func checkResp(resp *http.Response, err error) (*http.Response, error) { + return checkRespWithErrType(types.BodyTypeXML, resp, err, &types.Error{}) +} + +// checkRespWithErrType allows to specify custom error errType for checkResp unmarshaling +// the error. +func checkRespWithErrType(bodyType types.BodyType, resp *http.Response, err, errType error) (*http.Response, error) { + if err != nil { + return resp, err + } + + switch resp.StatusCode { + // Valid request, return the response. + case + http.StatusOK, // 200 + http.StatusCreated, // 201 + http.StatusAccepted, // 202 + http.StatusNoContent, // 204 + http.StatusFound: // 302 + return resp, nil + // Invalid request, parse the XML error returned and return it. + case + http.StatusBadRequest, // 400 + http.StatusUnauthorized, // 401 + http.StatusForbidden, // 403 + http.StatusNotFound, // 404 + http.StatusMethodNotAllowed, // 405 + http.StatusNotAcceptable, // 406 + http.StatusProxyAuthRequired, // 407 + http.StatusRequestTimeout, // 408 + http.StatusConflict, // 409 + http.StatusGone, // 410 + http.StatusLengthRequired, // 411 + http.StatusPreconditionFailed, // 412 + http.StatusRequestEntityTooLarge, // 413 + http.StatusRequestURITooLong, // 414 + http.StatusUnsupportedMediaType, // 415 + http.StatusRequestedRangeNotSatisfiable, // 416 + http.StatusLocked, // 423 + http.StatusFailedDependency, // 424 + http.StatusUpgradeRequired, // 426 + http.StatusPreconditionRequired, // 428 + http.StatusTooManyRequests, // 429 + http.StatusRequestHeaderFieldsTooLarge, // 431 + http.StatusUnavailableForLegalReasons, // 451 + http.StatusInternalServerError, // 500 + http.StatusServiceUnavailable, // 503 + http.StatusGatewayTimeout: // 504 + return nil, ParseErr(bodyType, resp, errType) + // Unhandled response. + default: + return nil, fmt.Errorf("unhandled API response, please report this issue, status code: %s", resp.Status) + } +} + +// ExecuteTaskRequest helper function creates request, runs it, checks response and parses task from response. +// pathURL - request URL +// requestType - HTTP method type +// contentType - value to set for "Content-Type" +// errorMessage - error message to return when error happens +// payload - XML struct which will be marshalled and added as body/payload +// E.g. client.ExecuteTaskRequest(updateDiskLink.HREF, http.MethodPut, updateDiskLink.Type, "error updating disk: %s", xmlPayload) +func (client *Client) ExecuteTaskRequest(pathURL, requestType, contentType, errorMessage string, payload interface{}) (Task, error) { + return client.executeTaskRequest(pathURL, requestType, contentType, errorMessage, payload, client.APIVersion) +} + +// ExecuteTaskRequestWithApiVersion helper function creates request, runs it, checks response and parses task from response. +// pathURL - request URL +// requestType - HTTP method type +// contentType - value to set for "Content-Type" +// errorMessage - error message to return when error happens +// payload - XML struct which will be marshalled and added as body/payload +// apiVersion - api version which will be used in request +// E.g. client.ExecuteTaskRequest(updateDiskLink.HREF, http.MethodPut, updateDiskLink.Type, "error updating disk: %s", xmlPayload) +func (client *Client) ExecuteTaskRequestWithApiVersion(pathURL, requestType, contentType, errorMessage string, payload interface{}, apiVersion string) (Task, error) { + return client.executeTaskRequest(pathURL, requestType, contentType, errorMessage, payload, apiVersion) +} + +// Helper function creates request, runs it, checks response and parses task from response. +// pathURL - request URL +// requestType - HTTP method type +// contentType - value to set for "Content-Type" +// errorMessage - error message to return when error happens +// payload - XML struct which will be marshalled and added as body/payload +// apiVersion - api version which will be used in request +// E.g. client.ExecuteTaskRequest(updateDiskLink.HREF, http.MethodPut, updateDiskLink.Type, "error updating disk: %s", xmlPayload) +func (client *Client) executeTaskRequest(pathURL, requestType, contentType, errorMessage string, payload interface{}, apiVersion string) (Task, error) { + + if !isMessageWithPlaceHolder(errorMessage) { + return Task{}, fmt.Errorf("error message has to include place holder for error") + } + + resp, err := executeRequestWithApiVersion(pathURL, requestType, contentType, payload, client, apiVersion) + if err != nil { + return Task{}, fmt.Errorf(errorMessage, err) + } + + task := NewTask(client) + + if err = decodeBody(types.BodyTypeXML, resp, task.Task); err != nil { + return Task{}, fmt.Errorf("error decoding Task response: %s", err) + } + + err = resp.Body.Close() + if err != nil { + return Task{}, fmt.Errorf(errorMessage, err) + } + + // The request was successful + return *task, nil +} + +// ExecuteRequestWithoutResponse helper function creates request, runs it, checks response and do not expect any values from it. +// pathURL - request URL +// requestType - HTTP method type +// contentType - value to set for "Content-Type" +// errorMessage - error message to return when error happens +// payload - XML struct which will be marshalled and added as body/payload +// E.g. client.ExecuteRequestWithoutResponse(catalogItemHREF.String(), http.MethodDelete, "", "error deleting Catalog item: %s", nil) +func (client *Client) ExecuteRequestWithoutResponse(pathURL, requestType, contentType, errorMessage string, payload interface{}) error { + return client.executeRequestWithoutResponse(pathURL, requestType, contentType, errorMessage, payload, client.APIVersion) +} + +// ExecuteRequestWithoutResponseWithApiVersion helper function creates request, runs it, checks response and do not expect any values from it. +// pathURL - request URL +// requestType - HTTP method type +// contentType - value to set for "Content-Type" +// errorMessage - error message to return when error happens +// payload - XML struct which will be marshalled and added as body/payload +// apiVersion - api version which will be used in request +// E.g. client.ExecuteRequestWithoutResponse(catalogItemHREF.String(), http.MethodDelete, "", "error deleting Catalog item: %s", nil) +func (client *Client) ExecuteRequestWithoutResponseWithApiVersion(pathURL, requestType, contentType, errorMessage string, payload interface{}, apiVersion string) error { + return client.executeRequestWithoutResponse(pathURL, requestType, contentType, errorMessage, payload, apiVersion) +} + +// Helper function creates request, runs it, checks response and do not expect any values from it. +// pathURL - request URL +// requestType - HTTP method type +// contentType - value to set for "Content-Type" +// errorMessage - error message to return when error happens +// payload - XML struct which will be marshalled and added as body/payload +// apiVersion - api version which will be used in request +// E.g. client.ExecuteRequestWithoutResponse(catalogItemHREF.String(), http.MethodDelete, "", "error deleting Catalog item: %s", nil) +func (client *Client) executeRequestWithoutResponse(pathURL, requestType, contentType, errorMessage string, payload interface{}, apiVersion string) error { + + if !isMessageWithPlaceHolder(errorMessage) { + return fmt.Errorf("error message has to include place holder for error") + } + + resp, err := executeRequestWithApiVersion(pathURL, requestType, contentType, payload, client, apiVersion) + if err != nil { + return fmt.Errorf(errorMessage, err) + } + + // log response explicitly because decodeBody() was not triggered + util.ProcessResponseOutput(util.FuncNameCallStack(), resp, fmt.Sprintf("%s", resp.Body)) + + debugShowResponse(resp, []byte("SKIPPED RESPONSE")) + err = resp.Body.Close() + if err != nil { + return fmt.Errorf("error closing response body: %s", err) + } + + // The request was successful + return nil +} + +// ExecuteRequest helper function creates request, runs it, check responses and parses out interface from response. +// pathURL - request URL +// requestType - HTTP method type +// contentType - value to set for "Content-Type" +// errorMessage - error message to return when error happens +// payload - XML struct which will be marshalled and added as body/payload +// out - structure to be used for unmarshalling xml +// E.g. unmarshalledAdminOrg := &types.AdminOrg{} +// client.ExecuteRequest(adminOrg.AdminOrg.HREF, http.MethodGet, "", "error refreshing organization: %s", nil, unmarshalledAdminOrg) +func (client *Client) ExecuteRequest(pathURL, requestType, contentType, errorMessage string, payload, out interface{}) (*http.Response, error) { + return client.executeRequest(pathURL, requestType, contentType, errorMessage, payload, out, client.APIVersion) +} + +// ExecuteRequestWithApiVersion helper function creates request, runs it, check responses and parses out interface from response. +// pathURL - request URL +// requestType - HTTP method type +// contentType - value to set for "Content-Type" +// errorMessage - error message to return when error happens +// payload - XML struct which will be marshalled and added as body/payload +// out - structure to be used for unmarshalling xml +// apiVersion - api version which will be used in request +// E.g. unmarshalledAdminOrg := &types.AdminOrg{} +// client.ExecuteRequest(adminOrg.AdminOrg.HREF, http.MethodGet, "", "error refreshing organization: %s", nil, unmarshalledAdminOrg) +func (client *Client) ExecuteRequestWithApiVersion(pathURL, requestType, contentType, errorMessage string, payload, out interface{}, apiVersion string) (*http.Response, error) { + return client.executeRequest(pathURL, requestType, contentType, errorMessage, payload, out, apiVersion) +} + +// Helper function creates request, runs it, check responses and parses out interface from response. +// pathURL - request URL +// requestType - HTTP method type +// contentType - value to set for "Content-Type" +// errorMessage - error message to return when error happens +// payload - XML struct which will be marshalled and added as body/payload +// out - structure to be used for unmarshalling xml +// apiVersion - api version which will be used in request +// E.g. unmarshalledAdminOrg := &types.AdminOrg{} +// client.ExecuteRequest(adminOrg.AdminOrg.HREF, http.MethodGet, "", "error refreshing organization: %s", nil, unmarshalledAdminOrg) +func (client *Client) executeRequest(pathURL, requestType, contentType, errorMessage string, payload, out interface{}, apiVersion string) (*http.Response, error) { + + if !isMessageWithPlaceHolder(errorMessage) { + return &http.Response{}, fmt.Errorf("error message has to include place holder for error") + } + + resp, err := executeRequestWithApiVersion(pathURL, requestType, contentType, payload, client, apiVersion) + if err != nil { + return resp, fmt.Errorf(errorMessage, err) + } + + if err = decodeBody(types.BodyTypeXML, resp, out); err != nil { + return resp, fmt.Errorf("error decoding response: %s", err) + } + + err = resp.Body.Close() + if err != nil { + return resp, fmt.Errorf("error closing response body: %s", err) + } + + // The request was successful + return resp, nil +} + +// ExecuteRequestWithCustomError sends the request and checks for 2xx response. If the returned status code +// was not as expected - the returned error will be unmarshalled to `errType` which implements Go's standard `error` +// interface. +func (client *Client) ExecuteRequestWithCustomError(pathURL, requestType, contentType, errorMessage string, + payload interface{}, errType error) (*http.Response, error) { + return client.ExecuteParamRequestWithCustomError(pathURL, map[string]string{}, requestType, contentType, + errorMessage, payload, errType) +} + +// ExecuteParamRequestWithCustomError behaves exactly like ExecuteRequestWithCustomError but accepts +// query parameter specification +func (client *Client) ExecuteParamRequestWithCustomError(pathURL string, params map[string]string, + requestType, contentType, errorMessage string, payload interface{}, errType error) (*http.Response, error) { + if !isMessageWithPlaceHolder(errorMessage) { + return &http.Response{}, fmt.Errorf("error message has to include place holder for error") + } + + resp, err := executeRequestCustomErr(pathURL, params, requestType, contentType, payload, client, errType, client.APIVersion) + if err != nil { + return &http.Response{}, fmt.Errorf(errorMessage, err) + } + + // read from resp.Body io.Reader for debug output if it has body + var bodyBytes []byte + if resp.Body != nil { + bodyBytes, err = ioutil.ReadAll(resp.Body) + if err != nil { + return &http.Response{}, fmt.Errorf("could not read response body: %s", err) + } + // Restore the io.ReadCloser to its original state with no-op closer + resp.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes)) + } + + util.ProcessResponseOutput(util.FuncNameCallStack(), resp, string(bodyBytes)) + debugShowResponse(resp, bodyBytes) + + return resp, nil +} + +// executeRequest does executeRequestCustomErr and checks for vCD errors in API response +func executeRequestWithApiVersion(pathURL, requestType, contentType string, payload interface{}, client *Client, apiVersion string) (*http.Response, error) { + return executeRequestCustomErr(pathURL, map[string]string{}, requestType, contentType, payload, client, &types.Error{}, apiVersion) +} + +// executeRequestCustomErr performs request and unmarshals API error to errType if not 2xx status was returned +func executeRequestCustomErr(pathURL string, params map[string]string, requestType, contentType string, payload interface{}, client *Client, errType error, apiVersion string) (*http.Response, error) { + requestURI, err := url.ParseRequestURI(pathURL) + if err != nil { + return nil, fmt.Errorf("couldn't parse path request URI '%s': %s", pathURL, err) + } + + var req *http.Request + switch { + // Only send data (and xml.Header) if the payload is actually provided to avoid sending empty body with XML header + // (some Web Application Firewalls block requests when empty XML header is set but not body provided) + case payload != nil: + marshaledXml, err := xml.MarshalIndent(payload, " ", " ") + if err != nil { + return &http.Response{}, fmt.Errorf("error marshalling xml data %s", err) + } + body := bytes.NewBufferString(xml.Header + string(marshaledXml)) + + req = client.NewRequestWithApiVersion(params, requestType, *requestURI, body, apiVersion) + + default: + req = client.NewRequestWithApiVersion(params, requestType, *requestURI, nil, apiVersion) + } + + if contentType != "" { + req.Header.Add("Content-Type", contentType) + } + + setHttpUserAgent(client.UserAgent, req) + + resp, err := client.Http.Do(req) + if err != nil { + return resp, err + } + + return checkRespWithErrType(types.BodyTypeXML, resp, err, errType) +} + +// setHttpUserAgent adds User-Agent string to HTTP request. When supplied string is empty - header will not be set +func setHttpUserAgent(userAgent string, req *http.Request) { + if userAgent != "" { + req.Header.Set("User-Agent", userAgent) + } +} + +func isMessageWithPlaceHolder(message string) bool { + err := fmt.Errorf(message, "test error") + return !strings.Contains(err.Error(), "%!(EXTRA") +} + +// combinedTaskErrorMessage is a general purpose function +// that returns the contents of the operation error and, if found, the error +// returned by the associated task +func combinedTaskErrorMessage(task *types.Task, err error) string { + extendedError := err.Error() + if task.Error != nil { + extendedError = fmt.Sprintf("operation error: %s - task error: [%d - %s] %s", + err, task.Error.MajorErrorCode, task.Error.MinorErrorCode, task.Error.Message) + } + return extendedError +} + +func takeBoolPointer(value bool) *bool { + return &value +} + +// takeIntAddress is a helper that returns the address of an `int` +func takeIntAddress(x int) *int { + return &x +} + +// takeStringPointer is a helper that returns the address of a `string` +func takeStringPointer(x string) *string { + return &x +} + +// IsUuid returns true if the identifier is a bare UUID +func IsUuid(identifier string) bool { + reUuid := regexp.MustCompile(`^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$`) + return reUuid.MatchString(identifier) +} + +// isUrn validates if supplied identifier is of URN format (e.g. urn:vcloud:nsxtmanager:09722307-aee0-4623-af95-7f8e577c9ebc) +// it checks for the following criteria: +// 1. idenfifier is not empty +// 2. identifier has 4 elements separated by ':' +// 3. element 1 is 'urn' and element 4 is valid UUID +func isUrn(identifier string) bool { + if identifier == "" { + return false + } + + ss := strings.Split(identifier, ":") + if len(ss) != 4 { + return false + } + + if ss[0] != "urn" && !IsUuid(ss[3]) { + return false + } + + return true +} + +// BuildUrnWithUuid helps to build valid URNs where APIs require URN format, but other API responds with UUID (or +// extracted from HREF) +func BuildUrnWithUuid(urnPrefix, uuid string) (string, error) { + if !IsUuid(uuid) { + return "", fmt.Errorf("supplied uuid '%s' is not valid UUID", uuid) + } + + urn := urnPrefix + uuid + if !isUrn(urn) { + return "", fmt.Errorf("failed building valid URN '%s'", urn) + } + + return urn, nil +} + +// takeFloatAddress is a helper that returns the address of an `float64` +func takeFloatAddress(x float64) *float64 { + return &x +} + +// SetCustomHeader adds custom HTTP header values to a client +func (client *Client) SetCustomHeader(values map[string]string) { + if len(client.customHeader) == 0 { + client.customHeader = make(http.Header) + } + for k, v := range values { + client.customHeader.Add(k, v) + } +} + +// RemoveCustomHeader remove custom header values from the client +func (client *Client) RemoveCustomHeader() { + if client.customHeader != nil { + client.customHeader = nil + } +} + +// --------------------------------------------------------------------- +// The following functions are needed to avoid strict Coverity warnings +// --------------------------------------------------------------------- + +// urlParseRequestURI returns a URL, discarding the error +func urlParseRequestURI(href string) *url.URL { + apiEndpoint, err := url.ParseRequestURI(href) + if err != nil { + util.Logger.Printf("[DEBUG - urlParseRequestURI] error parsing request URI: %s", err) + } + return apiEndpoint +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_token.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_token.go new file mode 100644 index 000000000..0b30b1594 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_token.go @@ -0,0 +1,111 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "bytes" + "encoding/json" + "fmt" + "io/ioutil" + "net/http" + "net/url" + "strings" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// SetApiToken behaves similarly to SetToken, with the difference that it will +// return full information about the bearer token, so that the caller can make decisions about token expiration +func (vcdClient *VCDClient) SetApiToken(org, apiToken string) (*types.ApiTokenRefresh, error) { + tokenRefresh, err := vcdClient.GetBearerTokenFromApiToken(org, apiToken) + if err != nil { + return nil, err + } + err = vcdClient.SetToken(org, BearerTokenHeader, tokenRefresh.AccessToken) + if err != nil { + return nil, err + } + return tokenRefresh, nil +} + +// GetBearerTokenFromApiToken uses an API token to retrieve a bearer token +// using the refresh token operation. +func (vcdClient *VCDClient) GetBearerTokenFromApiToken(org, token string) (*types.ApiTokenRefresh, error) { + if vcdClient.Client.APIVCDMaxVersionIs("< 36.1") { + version, err := vcdClient.Client.GetVcdFullVersion() + if err == nil { + return nil, fmt.Errorf("minimum version for API token is 10.3.1 - Version detected: %s", version.Version) + } + // If we can't get the VCD version, we return API version info + return nil, fmt.Errorf("minimum API version for API token is 36.1 - Version detected: %s", vcdClient.Client.APIVersion) + } + var userDef string + urlStr := strings.Replace(vcdClient.Client.VCDHREF.String(), "/api", "", 1) + if strings.EqualFold(org, "system") { + userDef = "provider" + } else { + userDef = fmt.Sprintf("tenant/%s", org) + } + reqUrl := fmt.Sprintf("%s/oauth/%s/token", urlStr, userDef) + reqHref, err := url.ParseRequestURI(reqUrl) + if err != nil { + return nil, fmt.Errorf("error getting request URL from %s : %s", reqUrl, err) + } + + data := bytes.NewBufferString(fmt.Sprintf("grant_type=refresh_token&refresh_token=%s", token)) + req := vcdClient.Client.NewRequest(nil, http.MethodPost, *reqHref, data) + req.Header.Add("Accept", "application/*;version=36.1") + + resp, err := vcdClient.Client.Http.Do(req) + if err != nil { + return nil, err + } + + var body []byte + var tokenDef types.ApiTokenRefresh + if resp.Body != nil { + body, err = ioutil.ReadAll(resp.Body) + } + + // The default response data to show in the logs is a string of asterisks + responseData := "[" + strings.Repeat("*", 10) + "]" + // If users request to see sensitive data, we pass the unchanged response body + if util.LogPasswords { + responseData = string(body) + } + util.ProcessResponseOutput("GetBearerTokenFromApiToken", resp, responseData) + if len(body) == 0 { + return nil, fmt.Errorf("refresh token was empty: %s", resp.Status) + } + if err != nil { + return nil, fmt.Errorf("error extracting refresh token: %s", err) + } + + err = json.Unmarshal(body, &tokenDef) + if err != nil { + return nil, fmt.Errorf("error decoding token text: %s", err) + } + if tokenDef.AccessToken == "" { + // If the access token is empty, the body should contain a composite error message. + // Attempting to decode it and return as much information as possible + var errorBody map[string]string + err2 := json.Unmarshal(body, &errorBody) + if err2 == nil { + errorMessage := "" + for k, v := range errorBody { + if v == "null" || v == "" { + continue + } + errorMessage += fmt.Sprintf("%s: %s - ", k, v) + } + return nil, fmt.Errorf("%s: %s", errorMessage, resp.Status) + } + + // If decoding the error fails, we return the raw body (possibly an unencoded internal server error) + return nil, fmt.Errorf("access token retrieved from API token was empty - %s %s", resp.Status, string(body)) + } + return &tokenDef, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd.go new file mode 100644 index 000000000..7bc70cb41 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd.go @@ -0,0 +1,310 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "crypto/tls" + "fmt" + "net/http" + "net/url" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// VCDClientOption defines signature for customizing VCDClient using +// functional options pattern. +type VCDClientOption func(*VCDClient) error + +type VCDClient struct { + Client Client // Client for the underlying VCD instance + sessionHREF url.URL // HREF for the session API + QueryHREF url.URL // HREF for the query API +} + +func (vcdClient *VCDClient) vcdloginurl() error { + if err := vcdClient.Client.validateAPIVersion(); err != nil { + return fmt.Errorf("could not find valid version for login: %s", err) + } + + // find login address matching the API version + var neededVersion VersionInfo + for _, versionInfo := range vcdClient.Client.supportedVersions.VersionInfos { + if versionInfo.Version == vcdClient.Client.APIVersion { + neededVersion = versionInfo + break + } + } + + loginUrl, err := url.Parse(neededVersion.LoginUrl) + if err != nil { + return fmt.Errorf("couldn't find a LoginUrl for version %s", vcdClient.Client.APIVersion) + } + vcdClient.sessionHREF = *loginUrl + return nil +} + +// vcdCloudApiAuthorize performs the authorization to VCD using open API +func (vcdClient *VCDClient) vcdCloudApiAuthorize(user, pass, org string) (*http.Response, error) { + var missingItems []string + if user == "" { + missingItems = append(missingItems, "user") + } + if pass == "" { + missingItems = append(missingItems, "password") + } + if org == "" { + missingItems = append(missingItems, "org") + } + if len(missingItems) > 0 { + return nil, fmt.Errorf("authorization is not possible because of these missing items: %v", missingItems) + } + + util.Logger.Println("[TRACE] Connecting to VCD using cloudapi") + // This call can only be used by tenants + rawUrl := vcdClient.sessionHREF.Scheme + "://" + vcdClient.sessionHREF.Host + "/cloudapi/1.0.0/sessions" + + // If we are connecting as provider, we need to qualify the request. + if strings.EqualFold(org, "system") { + rawUrl += "/provider" + } + util.Logger.Printf("[TRACE] URL %s\n", rawUrl) + loginUrl, err := url.Parse(rawUrl) + if err != nil { + return nil, fmt.Errorf("error parsing URL %s", rawUrl) + } + vcdClient.sessionHREF = *loginUrl + req := vcdClient.Client.NewRequest(map[string]string{}, http.MethodPost, *loginUrl, nil) + // Set Basic Authentication Header + req.SetBasicAuth(user+"@"+org, pass) + // Add the Accept header. The version must be at least 33.0 for cloudapi to work + req.Header.Add("Accept", "application/*;version="+vcdClient.Client.APIVersion) + resp, err := vcdClient.Client.Http.Do(req) + if err != nil { + return nil, err + } + + defer resp.Body.Close() + // Store the authorization header + vcdClient.Client.VCDToken = resp.Header.Get(BearerTokenHeader) + vcdClient.Client.VCDAuthHeader = BearerTokenHeader + vcdClient.Client.IsSysAdmin = strings.EqualFold(org, "system") + // Get query href + vcdClient.QueryHREF = vcdClient.Client.VCDHREF + vcdClient.QueryHREF.Path += "/query" + return resp, nil +} + +// NewVCDClient initializes VMware vCloud Director client with reasonable defaults. +// It accepts functions of type VCDClientOption for adjusting defaults. +func NewVCDClient(vcdEndpoint url.URL, insecure bool, options ...VCDClientOption) *VCDClient { + // Setting defaults + vcdClient := &VCDClient{ + Client: Client{ + APIVersion: "33.0", // supported by 10.0+ + // UserAgent cannot embed exact version by default because this is source code and is supposed to be used by programs, + // but any client can customize or disable it at all using WithHttpUserAgent() configuration options function. + UserAgent: "go-vcloud-director", + VCDHREF: vcdEndpoint, + Http: http.Client{ + Transport: &http.Transport{ + TLSClientConfig: &tls.Config{ + InsecureSkipVerify: insecure, + }, + Proxy: http.ProxyFromEnvironment, + TLSHandshakeTimeout: 120 * time.Second, // Default timeout for TSL hand shake + }, + Timeout: 600 * time.Second, // Default value for http request+response timeout + }, + MaxRetryTimeout: 60, // Default timeout in seconds for retries calls in functions + }, + } + + // Override defaults with functional options + for _, option := range options { + err := option(vcdClient) + if err != nil { + // We do not have error in return of this function signature. + // To avoid breaking API the only thing we can do is panic. + panic(fmt.Sprintf("unable to initialize vCD client: %s", err)) + } + } + return vcdClient +} + +// Authenticate is a helper function that performs a login in vCloud Director. +func (vcdClient *VCDClient) Authenticate(username, password, org string) error { + _, err := vcdClient.GetAuthResponse(username, password, org) + return err +} + +// GetAuthResponse performs authentication and returns the full HTTP response +// The purpose of this function is to preserve information that is useful +// for token-based authentication +func (vcdClient *VCDClient) GetAuthResponse(username, password, org string) (*http.Response, error) { + // LoginUrl + err := vcdClient.vcdloginurl() + if err != nil { + return nil, fmt.Errorf("error finding LoginUrl: %s", err) + } + + // Choose correct auth mechanism based on what type of authentication is used. The end result + // for each of the below functions is to set authorization token vcdCli.Client.VCDToken. + var resp *http.Response + switch { + case vcdClient.Client.UseSamlAdfs: + err = vcdClient.authorizeSamlAdfs(username, password, org, vcdClient.Client.CustomAdfsRptId) + if err != nil { + return nil, fmt.Errorf("error authorizing SAML: %s", err) + } + default: + // Authorize + resp, err = vcdClient.vcdCloudApiAuthorize(username, password, org) + if err != nil { + return nil, fmt.Errorf("error authorizing: %s", err) + } + } + + vcdClient.LogSessionInfo() + return resp, nil +} + +// SetToken will set the authorization token in the client, without using other credentials +// Up to version 29, token authorization uses the header key x-vcloud-authorization +// In version 30+ it also uses X-Vmware-Vcloud-Access-Token:TOKEN coupled with +// X-Vmware-Vcloud-Token-Type:"bearer" +func (vcdClient *VCDClient) SetToken(org, authHeader, token string) error { + if authHeader == ApiTokenHeader { + util.Logger.Printf("[DEBUG] Attempt authentication using API token") + apiToken, err := vcdClient.GetBearerTokenFromApiToken(org, token) + if err != nil { + util.Logger.Printf("[DEBUG] Authentication using API token was UNSUCCESSFUL: %s", err) + return err + } + token = apiToken.AccessToken + authHeader = BearerTokenHeader + vcdClient.Client.UsingAccessToken = true + util.Logger.Printf("[DEBUG] Authentication using API token was SUCCESSFUL") + } + if !vcdClient.Client.UsingAccessToken { + vcdClient.Client.UsingBearerToken = true + } + vcdClient.Client.VCDAuthHeader = authHeader + vcdClient.Client.VCDToken = token + + err := vcdClient.vcdloginurl() + if err != nil { + return fmt.Errorf("error finding LoginUrl: %s", err) + } + + vcdClient.Client.IsSysAdmin = strings.EqualFold(org, "system") + // Get query href + vcdClient.QueryHREF = vcdClient.Client.VCDHREF + vcdClient.QueryHREF.Path += "/query" + + // The client is now ready to connect using the token, but has not communicated with the vCD yet. + // To make sure that it is working, we run a request for the org list. + // This list should work always: when run as system administrator, it retrieves all organizations. + // When run as org user, it only returns the organization the user is authorized to. + // In both cases, we discard the list, as we only use it to certify that the token works. + orgListHREF := vcdClient.Client.VCDHREF + orgListHREF.Path += "/org" + + orgList := new(types.OrgList) + + _, err = vcdClient.Client.ExecuteRequest(orgListHREF.String(), http.MethodGet, + "", "error connecting to vCD using token: %s", nil, orgList) + if err != nil { + return err + } + vcdClient.LogSessionInfo() + return nil +} + +// Disconnect performs a disconnection from the vCloud Director API endpoint. +func (vcdClient *VCDClient) Disconnect() error { + if vcdClient.Client.VCDToken == "" && vcdClient.Client.VCDAuthHeader == "" { + return fmt.Errorf("cannot disconnect, client is not authenticated") + } + req := vcdClient.Client.NewRequest(map[string]string{}, http.MethodDelete, vcdClient.sessionHREF, nil) + // Add the Accept header for vCA + req.Header.Add("Accept", "application/xml;version="+vcdClient.Client.APIVersion) + // Set Authorization Header + req.Header.Add(vcdClient.Client.VCDAuthHeader, vcdClient.Client.VCDToken) + if _, err := checkResp(vcdClient.Client.Http.Do(req)); err != nil { + return fmt.Errorf("error processing session delete for vCloud Director: %s", err) + } + return nil +} + +// WithMaxRetryTimeout allows default vCDClient MaxRetryTimeout value override +func WithMaxRetryTimeout(timeoutSeconds int) VCDClientOption { + return func(vcdClient *VCDClient) error { + vcdClient.Client.MaxRetryTimeout = timeoutSeconds + return nil + } +} + +// WithAPIVersion allows to override default API version. Please be cautious +// about changing the version as the default specified is the most tested. +func WithAPIVersion(version string) VCDClientOption { + return func(vcdClient *VCDClient) error { + vcdClient.Client.APIVersion = version + return nil + } +} + +// WithHttpTimeout allows to override default http timeout +func WithHttpTimeout(timeout int64) VCDClientOption { + return func(vcdClient *VCDClient) error { + vcdClient.Client.Http.Timeout = time.Duration(timeout) * time.Second + return nil + } +} + +// WithSamlAdfs specifies if SAML auth is used for authenticating to vCD instead of local login. +// The following conditions must be met so that SAML authentication works: +// * SAML IdP (Identity Provider) is Active Directory Federation Service (ADFS) +// * WS-Trust authentication endpoint "/adfs/services/trust/13/usernamemixed" must be enabled on +// ADFS server +// By default vCD SAML Entity ID will be used as Relaying Party Trust Identifier unless +// customAdfsRptId is specified +func WithSamlAdfs(useSaml bool, customAdfsRptId string) VCDClientOption { + return func(vcdClient *VCDClient) error { + vcdClient.Client.UseSamlAdfs = useSaml + vcdClient.Client.CustomAdfsRptId = customAdfsRptId + return nil + } +} + +// WithHttpUserAgent allows to specify HTTP user-agent which can be useful for statistics tracking. +// By default User-Agent is set to "go-vcloud-director". It can be unset by supplying empty value. +func WithHttpUserAgent(userAgent string) VCDClientOption { + return func(vcdClient *VCDClient) error { + vcdClient.Client.UserAgent = userAgent + return nil + } +} + +// WithHttpHeader allows to specify custom HTTP header values. +// Typical usage of this function is to inject a tenant context into the client. +// +// WARNING: Using this function in an environment with concurrent operations may result in negative side effects, +// such as operations as system administrator and as tenant using the same client. +// This setting is justified when we want to start a session where the additional header is always needed. +// For cases where we need system administrator and tenant operations in the same environment we can either +// a) use two separate clients +// or b) use the `additionalHeader` parameter in *newRequest* functions +func WithHttpHeader(options map[string]string) VCDClientOption { + return func(vcdClient *VCDClient) error { + vcdClient.Client.customHeader = make(http.Header) + for k, v := range options { + vcdClient.Client.customHeader.Add(k, v) + } + return nil + } +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd_test_unit.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd_test_unit.go new file mode 100644 index 000000000..c6f5c27cc --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd_test_unit.go @@ -0,0 +1,48 @@ +//go:build unit || ALL +// +build unit ALL + +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "io/ioutil" + "os" + "testing" +) + +// goldenString is a test helper to manage Golden files. It supports `update` parameter which may be +// useful for writing such files (manual or automated way). +func goldenString(t *testing.T, goldenFile string, actual string, update bool) string { + t.Helper() + + goldenPath := "../test-resources/golden/" + t.Name() + "_" + goldenFile + ".golden" + + f, err := os.OpenFile(goldenPath, os.O_RDWR|os.O_CREATE, 0644) + if err != nil { + t.Fatalf("unable to find golden file '%s': %s", goldenPath, err) + } + defer f.Close() + + if update { + _, err := f.WriteString(actual) + if err != nil { + t.Fatalf("error writing to file %s: %s", goldenPath, err) + } + + return actual + } + + content, err := ioutil.ReadAll(f) + if err != nil { + t.Fatalf("error opening file %s: %s", goldenPath, err) + } + return string(content) +} + +// goldenBytes wraps goldenString and returns []byte +func goldenBytes(t *testing.T, goldenFile string, actual []byte, update bool) []byte { + return []byte(goldenString(t, goldenFile, string(actual), update)) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd_versions.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd_versions.go new file mode 100644 index 000000000..e49242e07 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/api_vcd_versions.go @@ -0,0 +1,355 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + "regexp" + "sort" + "strings" + "time" + + "github.com/araddon/dateparse" + semver "github.com/hashicorp/go-version" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type VersionInfo struct { + Version string `xml:"Version"` + LoginUrl string `xml:"LoginUrl"` + Deprecated bool `xml:"deprecated,attr,omitempty"` +} + +type VersionInfos []VersionInfo + +type SupportedVersions struct { + VersionInfos `xml:"VersionInfo"` +} + +// VcdVersion contains the full information about a VCD version +type VcdVersion struct { + Version *semver.Version + Time time.Time +} + +// apiVersionToVcdVersion gets the vCD version from max supported API version +var apiVersionToVcdVersion = map[string]string{ + "29.0": "9.0", + "30.0": "9.1", + "31.0": "9.5", + "32.0": "9.7", + "33.0": "10.0", + "34.0": "10.1", + "35.0": "10.2", + "36.0": "10.3", // Provisional version for non-GA release. It may change later +} + +// vcdVersionToApiVersion gets the max supported API version from vCD version +var vcdVersionToApiVersion = map[string]string{ + "9.0": "29.0", + "9.1": "30.0", + "9.5": "31.0", + "9.7": "32.0", + "10.0": "33.0", + "10.1": "34.0", + "10.2": "35.0", + "10.3": "36.0", // Provisional version for non-GA release. It may change later +} + +// to make vcdVersionToApiVersion used +var _ = vcdVersionToApiVersion + +// APIVCDMaxVersionIs compares against maximum vCD supported API version from /api/versions (not necessarily +// the currently used one). This allows to check what is the maximum API version that vCD instance +// supports and can be used to guess vCD product version. API 31.0 support was first introduced in +// vCD 9.5 (as per https://code.vmware.com/doc/preview?id=8072). Therefore APIMaxVerIs(">= 31.0") +// implies that you have vCD 9.5 or newer running inside. +// It does not require for the client to be authenticated. +// +// Format: ">= 27.0, < 32.0", ">= 30.0", "= 27.0" +// +// vCD version mapping to API version support https://code.vmware.com/doc/preview?id=8072 +func (client *Client) APIVCDMaxVersionIs(versionConstraint string) bool { + err := client.vcdFetchSupportedVersions() + if err != nil { + util.Logger.Printf("[ERROR] could not retrieve supported versions: %s", err) + return false + } + + util.Logger.Printf("[TRACE] checking max API version against constraints '%s'", versionConstraint) + maxVersion, err := client.MaxSupportedVersion() + if err != nil { + util.Logger.Printf("[ERROR] unable to find max supported version : %s", err) + return false + } + + isSupported, err := client.apiVersionMatchesConstraint(maxVersion, versionConstraint) + if err != nil { + util.Logger.Printf("[ERROR] unable to find max supported version : %s", err) + return false + } + + return isSupported +} + +// APIClientVersionIs allows to compare against currently used API version VCDClient.Client.APIVersion. +// Can be useful to validate if a certain feature can be used or not. +// It does not require for the client to be authenticated. +// +// Format: ">= 27.0, < 32.0", ">= 30.0", "= 27.0" +// +// vCD version mapping to API version support https://code.vmware.com/doc/preview?id=8072 +func (client *Client) APIClientVersionIs(versionConstraint string) bool { + + util.Logger.Printf("[TRACE] checking current API version against constraints '%s'", versionConstraint) + + isSupported, err := client.apiVersionMatchesConstraint(client.APIVersion, versionConstraint) + if err != nil { + util.Logger.Printf("[ERROR] unable to find supported version : %s", err) + return false + } + + return isSupported +} + +// vcdFetchSupportedVersions retrieves list of supported versions from +// /api/versions endpoint and stores them in VCDClient for future uses. +// It only does it once. +func (client *Client) vcdFetchSupportedVersions() error { + // Only fetch /versions if it is not stored already + numVersions := len(client.supportedVersions.VersionInfos) + if numVersions > 0 { + util.Logger.Printf("[TRACE] skipping fetch of versions because %d are stored", numVersions) + return nil + } + + apiEndpoint := client.VCDHREF + apiEndpoint.Path += "/versions" + + suppVersions := new(SupportedVersions) + _, err := client.ExecuteRequest(apiEndpoint.String(), http.MethodGet, + "", "error fetching versions: %s", nil, suppVersions) + + client.supportedVersions = *suppVersions + + // Log all supported API versions in one line to help identify vCD version from logs + allApiVersions := make([]string, len(client.supportedVersions.VersionInfos)) + for versionIndex, version := range client.supportedVersions.VersionInfos { + allApiVersions[versionIndex] = version.Version + } + util.Logger.Printf("[DEBUG] supported API versions : %s", strings.Join(allApiVersions, ",")) + + return err +} + +// MaxSupportedVersion parses supported version list and returns the highest version in string format. +func (client *Client) MaxSupportedVersion() (string, error) { + versions := make([]*semver.Version, len(client.supportedVersions.VersionInfos)) + for index, versionInfo := range client.supportedVersions.VersionInfos { + version, err := semver.NewVersion(versionInfo.Version) + if err != nil { + return "", fmt.Errorf("error parsing version %s: %s", versionInfo.Version, err) + } + versions[index] = version + } + // Sort supported versions in order lowest-highest + sort.Sort(semver.Collection(versions)) + + switch { + case len(versions) > 1: + return versions[len(versions)-1].Original(), nil + case len(versions) == 1: + return versions[0].Original(), nil + default: + return "", fmt.Errorf("could not identify supported versions") + } +} + +// vcdCheckSupportedVersion checks if there is at least one specified version exactly matching listed ones. +// Format example "27.0" +func (client *Client) vcdCheckSupportedVersion(version string) error { + return client.checkSupportedVersionConstraint(fmt.Sprintf("= %s", version)) +} + +// Checks if there is at least one specified version matching the list returned by vCD. +// Constraint format can be in format ">= 27.0, < 32",">= 30" ,"= 27.0". +func (client *Client) checkSupportedVersionConstraint(versionConstraint string) error { + for _, versionInfo := range client.supportedVersions.VersionInfos { + versionMatch, err := client.apiVersionMatchesConstraint(versionInfo.Version, versionConstraint) + if err != nil { + return fmt.Errorf("cannot match version: %s", err) + } + + if versionMatch { + return nil + } + } + return fmt.Errorf("version %s is not supported", versionConstraint) +} + +func (client *Client) apiVersionMatchesConstraint(version, versionConstraint string) (bool, error) { + + checkVer, err := semver.NewVersion(version) + if err != nil { + return false, fmt.Errorf("[ERROR] unable to parse version %s : %s", version, err) + } + // Create a provided constraint to check against current max version + constraints, err := semver.NewConstraint(versionConstraint) + if err != nil { + return false, fmt.Errorf("[ERROR] unable to parse given version constraint '%s' : %s", versionConstraint, err) + } + if constraints.Check(checkVer) { + util.Logger.Printf("[INFO] API version %s satisfies constraints '%s'", checkVer, constraints) + return true, nil + } + + util.Logger.Printf("[TRACE] API version %s does not satisfy constraints '%s'", checkVer, constraints) + return false, nil +} + +// validateAPIVersion fetches API versions +func (client *Client) validateAPIVersion() error { + err := client.vcdFetchSupportedVersions() + if err != nil { + return fmt.Errorf("could not retrieve supported versions: %s", err) + } + + // Check if version is supported + err = client.vcdCheckSupportedVersion(client.APIVersion) + if err != nil { + return fmt.Errorf("API version %s is not supported: %s", client.APIVersion, err) + } + + return nil +} + +// GetSpecificApiVersionOnCondition returns default version or wantedApiVersion if it is connected to version +// described in vcdApiVersionCondition +// f.e. values ">= 32.0", "32.0" returns 32.0 if vCD version is above or 9.7 +func (client *Client) GetSpecificApiVersionOnCondition(vcdApiVersionCondition, wantedApiVersion string) string { + apiVersion := client.APIVersion + if client.APIVCDMaxVersionIs(vcdApiVersionCondition) { + apiVersion = wantedApiVersion + } + return apiVersion +} + +// GetVcdVersion finds the VCD version and the time of build +func (client *Client) GetVcdVersion() (string, time.Time, error) { + + path := client.VCDHREF + path.Path += "/admin" + var admin types.VCloud + _, err := client.ExecuteRequest(path.String(), http.MethodGet, + "", "error retrieving admin info: %s", nil, &admin) + if err != nil { + return "", time.Time{}, err + } + description := admin.Description + + if description == "" { + return "", time.Time{}, fmt.Errorf("no version information found") + } + reVersion := regexp.MustCompile(`^\s*(\S+)\s+(.*)`) + + versionList := reVersion.FindAllStringSubmatch(description, -1) + + if len(versionList) == 0 || len(versionList[0]) < 2 { + return "", time.Time{}, fmt.Errorf("error getting version information from description %s", description) + } + version := versionList[0][1] + versionDate := versionList[0][2] + versionTime, err := dateparse.ParseStrict(versionDate) + if err != nil { + return "", time.Time{}, fmt.Errorf("[version %s] could not convert date %s to formal date: %s", version, versionDate, err) + } + + return version, versionTime, nil +} + +// GetVcdShortVersion returns the VCD version (three digits, no build info) +func (client *Client) GetVcdShortVersion() (string, error) { + + vcdVersion, err := client.GetVcdFullVersion() + if err != nil { + return "", fmt.Errorf("error getting version digits: %s", err) + } + digits := vcdVersion.Version.Segments() + return fmt.Sprintf("%d.%d.%d", digits[0], digits[1], digits[2]), nil +} + +// GetVcdFullVersion returns the full VCD version information as a structure +func (client *Client) GetVcdFullVersion() (VcdVersion, error) { + var vcdVersion VcdVersion + version, versionTime, err := client.GetVcdVersion() + if err != nil { + return VcdVersion{}, err + } + + vcdVersion.Version, err = semver.NewVersion(version) + if err != nil { + return VcdVersion{}, err + } + if len(vcdVersion.Version.Segments()) < 4 { + return VcdVersion{}, fmt.Errorf("error getting version digits from version %s", version) + } + vcdVersion.Time = versionTime + return vcdVersion, nil +} + +// intListToVersion converts a list of integers into a dot-separated string +func intListToVersion(digits []int, atMost int) string { + result := "" + for i, digit := range digits { + if result != "" { + result += "." + } + if i >= atMost { + result += "0" + } else { + result += fmt.Sprintf("%d", digit) + } + } + return result +} + +// VersionEqualOrGreater return true if the current version is the same or greater than the one being compared. +// If howManyDigits is > 3, the comparison includes the build. +// Examples: +// client version is 1.2.3.1234 +// compare version is 1.2.3.2000 +// function return true if howManyDigits is <= 3, but false if howManyDigits is > 3 +// +// client version is 1.2.3.1234 +// compare version is 1.1.1.0 +// function returns true regardless of value of howManyDigits +func (client *Client) VersionEqualOrGreater(compareTo string, howManyDigits int) (bool, error) { + + fullVersion, err := client.GetVcdFullVersion() + if err != nil { + return false, err + } + compareToVersion, err := semver.NewVersion(compareTo) + if err != nil { + return false, err + } + if howManyDigits < 4 { + currentString := intListToVersion(fullVersion.Version.Segments(), howManyDigits) + compareToString := intListToVersion(compareToVersion.Segments(), howManyDigits) + fullVersion.Version, err = semver.NewVersion(currentString) + if err != nil { + return false, err + } + compareToVersion, err = semver.NewVersion(compareToString) + if err != nil { + return false, err + } + } + + return fullVersion.Version.GreaterThanOrEqual(compareToVersion), nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/catalog.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/catalog.go new file mode 100644 index 000000000..5b053daa3 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/catalog.go @@ -0,0 +1,838 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "bytes" + "encoding/xml" + "errors" + "fmt" + "io" + "io/ioutil" + "math" + "net/http" + "net/url" + "os" + "path" + "path/filepath" + "strconv" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +const ( + defaultPieceSize int64 = 1024 * 1024 +) + +type Catalog struct { + Catalog *types.Catalog + client *Client + parent organization +} + +func NewCatalog(client *Client) *Catalog { + return &Catalog{ + Catalog: new(types.Catalog), + client: client, + } +} + +// Delete deletes the Catalog, returning an error if the vCD call fails. +// Link to API call: https://code.vmware.com/apis/1046/vmware-cloud-director/doc/doc/operations/DELETE-Catalog.html +func (catalog *Catalog) Delete(force, recursive bool) error { + + adminCatalogHREF := catalog.client.VCDHREF + catalogID, err := getBareEntityUuid(catalog.Catalog.ID) + if err != nil { + return err + } + if catalogID == "" { + return fmt.Errorf("empty ID returned for catalog %s", catalog.Catalog.Name) + } + adminCatalogHREF.Path += "/admin/catalog/" + catalogID + + req := catalog.client.NewRequest(map[string]string{ + "force": strconv.FormatBool(force), + "recursive": strconv.FormatBool(recursive), + }, http.MethodDelete, adminCatalogHREF, nil) + + resp, err := checkResp(catalog.client.Http.Do(req)) + if err != nil { + return fmt.Errorf("error deleting Catalog %s: %s", catalog.Catalog.Name, err) + } + task := NewTask(catalog.client) + if err = decodeBody(types.BodyTypeXML, resp, task.Task); err != nil { + return fmt.Errorf("error decoding task response: %s", err) + } + if task.Task.Status == "error" { + return fmt.Errorf(combinedTaskErrorMessage(task.Task, fmt.Errorf("catalog %s not properly destroyed", catalog.Catalog.Name))) + } + return task.WaitTaskCompletion() +} + +// Envelope is a ovf description root element. File contains information for vmdk files. +// Namespace: http://schemas.dmtf.org/ovf/envelope/1 +// Description: Envelope is a ovf description root element. File contains information for vmdk files.. +type Envelope struct { + File []struct { + HREF string `xml:"href,attr"` + ID string `xml:"id,attr"` + Size int `xml:"size,attr"` + ChunkSize int `xml:"chunkSize,attr"` + } `xml:"References>File"` +} + +// If catalog item is a valid CatalogItem and the call succeeds, +// then the function returns a CatalogItem. If the item does not +// exist, then it returns an empty CatalogItem. If the call fails +// at any point, it returns an error. +// Deprecated: use GetCatalogItemByName instead +func (cat *Catalog) FindCatalogItem(catalogItemName string) (CatalogItem, error) { + for _, catalogItems := range cat.Catalog.CatalogItems { + for _, catalogItem := range catalogItems.CatalogItem { + if catalogItem.Name == catalogItemName && catalogItem.Type == "application/vnd.vmware.vcloud.catalogItem+xml" { + + cat := NewCatalogItem(cat.client) + + _, err := cat.client.ExecuteRequest(catalogItem.HREF, http.MethodGet, + "", "error retrieving catalog: %s", nil, cat.CatalogItem) + return *cat, err + } + } + } + + return CatalogItem{}, nil +} + +// UploadOvf uploads an ova/ovf file to a catalog. This method only uploads bits to vCD spool area. +// ovaFileName should be the path of OVA or OVF file(not ovf folder) itself. For OVF, +// user need to make sure all the files that OVF depends on exist and locate under the same folder. +// Returns errors if any occur during upload from vCD or upload process. On upload fail client may need to +// remove vCD catalog item which waits for files to be uploaded. Files from ova are extracted to system +// temp folder "govcd+random number" and left for inspection on error. +func (cat *Catalog) UploadOvf(ovaFileName, itemName, description string, uploadPieceSize int64) (UploadTask, error) { + + // On a very high level the flow is as follows + // 1. Makes a POST call to vCD to create the catalog item (also creates a transfer folder in the spool area and as result will give a sparse catalog item resource XML). + // 2. Wait for the links to the transfer folder to appear in the resource representation of the catalog item. + // 3. Start uploading bits to the transfer folder + // 4. Wait on the import task to finish on vCD side -> task success = upload complete + + if *cat == (Catalog{}) { + return UploadTask{}, errors.New("catalog can not be empty or nil") + } + + ovaFileName, err := validateAndFixFilePath(ovaFileName) + if err != nil { + return UploadTask{}, err + } + + for _, catalogItemName := range getExistingCatalogItems(cat) { + if catalogItemName == itemName { + return UploadTask{}, fmt.Errorf("catalog item '%s' already exists. Upload with different name", itemName) + } + } + + isOvf := false + fileContentType, err := util.GetFileContentType(ovaFileName) + if err != nil { + return UploadTask{}, err + } + if strings.Contains(fileContentType, "text/xml") { + isOvf = true + } + ovfFilePath := ovaFileName + tmpDir := path.Dir(ovaFileName) + filesAbsPaths := []string{ovfFilePath} + if !isOvf { + filesAbsPaths, tmpDir, err = util.Unpack(ovaFileName) + if err != nil { + return UploadTask{}, fmt.Errorf("%s. Unpacked files for checking are accessible in: %s", err, tmpDir) + } + ovfFilePath, err = getOvfPath(filesAbsPaths) + if err != nil { + return UploadTask{}, fmt.Errorf("%s. Unpacked files for checking are accessible in: %s", err, tmpDir) + } + } + + ovfFileDesc, err := getOvf(ovfFilePath) + if err != nil { + return UploadTask{}, fmt.Errorf("%s. OVF/Unpacked files for checking are accessible in: %s", err, tmpDir) + } + + if !isOvf { + err = validateOvaContent(filesAbsPaths, &ovfFileDesc, tmpDir) + if err != nil { + return UploadTask{}, fmt.Errorf("%s. Unpacked files for checking are accessible in: %s", err, tmpDir) + } + } else { + dir := path.Dir(ovfFilePath) + for _, fileItem := range ovfFileDesc.File { + dependFile := path.Join(dir, fileItem.HREF) + dependFile, err := validateAndFixFilePath(dependFile) + if err != nil { + return UploadTask{}, err + } + filesAbsPaths = append(filesAbsPaths, dependFile) + } + } + + catalogItemUploadURL, err := findCatalogItemUploadLink(cat, "application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml") + if err != nil { + return UploadTask{}, err + } + + vappTemplateUrl, err := createItemForUpload(cat.client, catalogItemUploadURL, itemName, description) + if err != nil { + return UploadTask{}, err + } + + vappTemplate, err := queryVappTemplate(cat.client, vappTemplateUrl, itemName) + if err != nil { + return UploadTask{}, err + } + + ovfUploadHref, err := getUploadLink(vappTemplate.Files) + if err != nil { + return UploadTask{}, err + } + + err = uploadOvfDescription(cat.client, ovfFilePath, ovfUploadHref) + if err != nil { + removeCatalogItemOnError(cat.client, vappTemplateUrl, itemName) + return UploadTask{}, err + } + + vappTemplate, err = waitForTempUploadLinks(cat.client, vappTemplateUrl, itemName) + if err != nil { + removeCatalogItemOnError(cat.client, vappTemplateUrl, itemName) + return UploadTask{}, err + } + + progressCallBack, uploadProgress := getProgressCallBackFunction() + + uploadError := *new(error) + + // sending upload process to background, this allows not to lock and return task to client + // The error should be captured in uploadError, but just in case, we add a logging for the + // main error + go func() { + err = uploadFiles(cat.client, vappTemplate, &ovfFileDesc, tmpDir, filesAbsPaths, uploadPieceSize, progressCallBack, &uploadError, isOvf) + if err != nil { + util.Logger.Println(strings.Repeat("*", 80)) + util.Logger.Printf("*** [DEBUG - UploadOvf] error calling uploadFiles: %s\n", err) + util.Logger.Println(strings.Repeat("*", 80)) + } + }() + + var task Task + for _, item := range vappTemplate.Tasks.Task { + task, err = createTaskForVcdImport(cat.client, item.HREF) + if err != nil { + removeCatalogItemOnError(cat.client, vappTemplateUrl, itemName) + return UploadTask{}, err + } + if task.Task.Status == "error" { + removeCatalogItemOnError(cat.client, vappTemplateUrl, itemName) + return UploadTask{}, fmt.Errorf("task did not complete succesfully: %s", task.Task.Description) + } + } + + uploadTask := NewUploadTask(&task, uploadProgress, &uploadError) + + util.Logger.Printf("[TRACE] Upload finished and task for vcd import created. \n") + + return *uploadTask, nil +} + +// Upload files for vCD created upload links. Different approach then vmdk file are +// chunked (e.g. test.vmdk.000000000, test.vmdk.000000001 or test.vmdk). vmdk files are chunked if +// in description file attribute ChunkSize is not zero. +// params: +// client - client for requests +// vappTemplate - parsed from response vApp template +// ovfFileDesc - parsed from xml part containing ova files definition +// tempPath - path where extracted files are +// filesAbsPaths - array of extracted files +// uploadPieceSize - size of chunks in which the file will be uploaded to the catalog. +// callBack a function with signature //function(bytesUpload, totalSize) to let the caller monitor progress of the upload operation. +// uploadError - error to be ready be task +func uploadFiles(client *Client, vappTemplate *types.VAppTemplate, ovfFileDesc *Envelope, tempPath string, filesAbsPaths []string, uploadPieceSize int64, progressCallBack func(bytesUpload, totalSize int64), uploadError *error, isOvf bool) error { + var uploadedBytes int64 + for _, item := range vappTemplate.Files.File { + if item.BytesTransferred == 0 { + number, err := getFileFromDescription(item.Name, ovfFileDesc) + if err != nil { + util.Logger.Printf("[Error] Error uploading files: %#v", err) + *uploadError = err + return err + } + if ovfFileDesc.File[number].ChunkSize != 0 { + chunkFilePaths := getChunkedFilePaths(tempPath, ovfFileDesc.File[number].HREF, ovfFileDesc.File[number].Size, ovfFileDesc.File[number].ChunkSize) + details := uploadDetails{ + uploadLink: item.Link[0].HREF, + uploadedBytes: uploadedBytes, + fileSizeToUpload: int64(ovfFileDesc.File[number].Size), + uploadPieceSize: uploadPieceSize, + uploadedBytesForCallback: uploadedBytes, + allFilesSize: getAllFileSizeSum(ovfFileDesc), + callBack: progressCallBack, + uploadError: uploadError, + } + tempVar, err := uploadMultiPartFile(client, chunkFilePaths, details) + if err != nil { + util.Logger.Printf("[Error] Error uploading files: %#v", err) + *uploadError = err + return err + } + uploadedBytes += tempVar + } else { + details := uploadDetails{ + uploadLink: item.Link[0].HREF, + uploadedBytes: 0, + fileSizeToUpload: item.Size, + uploadPieceSize: uploadPieceSize, + uploadedBytesForCallback: uploadedBytes, + allFilesSize: getAllFileSizeSum(ovfFileDesc), + callBack: progressCallBack, + uploadError: uploadError, + } + tempVar, err := uploadFile(client, findFilePath(filesAbsPaths, item.Name), details) + if err != nil { + util.Logger.Printf("[Error] Error uploading files: %#v", err) + *uploadError = err + return err + } + uploadedBytes += tempVar + } + } + } + + //remove extracted files with temp dir + //If isOvf flag is true, means tempPath is origin OVF folder, not extracted, won't delete + if !isOvf { + err := os.RemoveAll(tempPath) + if err != nil { + util.Logger.Printf("[Error] Error removing temporary files: %#v", err) + *uploadError = err + return err + } + } + uploadError = nil + return nil +} + +func getFileFromDescription(fileToFind string, ovfFileDesc *Envelope) (int, error) { + for fileInArray, item := range ovfFileDesc.File { + if item.HREF == fileToFind { + util.Logger.Printf("[TRACE] getFileFromDescription - found matching file: %s in array: %d\n", fileToFind, fileInArray) + return fileInArray, nil + } + } + return -1, errors.New("file expected from vcd didn't match any description file") +} + +func getAllFileSizeSum(ovfFileDesc *Envelope) (sizeSum int64) { + sizeSum = 0 + for _, item := range ovfFileDesc.File { + sizeSum += int64(item.Size) + } + return +} + +// Uploads chunked ova file for vCD created upload link. +// params: +// client - client for requests +// vappTemplate - parsed from response vApp template +// filePaths - all chunked vmdk file paths +// uploadDetails - file upload settings and data +func uploadMultiPartFile(client *Client, filePaths []string, uDetails uploadDetails) (int64, error) { + util.Logger.Printf("[TRACE] Upload multi part file: %v\n, href: %s, size: %v", filePaths, uDetails.uploadLink, uDetails.fileSizeToUpload) + + var uploadedBytes int64 + + for i, filePath := range filePaths { + util.Logger.Printf("[TRACE] Uploading file: %v\n", i+1) + uDetails.uploadedBytesForCallback += uploadedBytes // previous files uploaded size plus current upload size + uDetails.uploadedBytes = uploadedBytes + tempVar, err := uploadFile(client, filePath, uDetails) + if err != nil { + return uploadedBytes, err + } + uploadedBytes += tempVar + } + return uploadedBytes, nil +} + +// Function waits until vCD provides temporary file upload links. +func waitForTempUploadLinks(client *Client, vappTemplateUrl *url.URL, newItemName string) (*types.VAppTemplate, error) { + var vAppTemplate *types.VAppTemplate + var err error + for { + util.Logger.Printf("[TRACE] Sleep... for 5 seconds.\n") + time.Sleep(time.Second * 5) + vAppTemplate, err = queryVappTemplate(client, vappTemplateUrl, newItemName) + if err != nil { + return nil, err + } + if vAppTemplate.Files != nil && len(vAppTemplate.Files.File) > 1 { + util.Logger.Printf("[TRACE] upload link prepared.\n") + break + } + } + return vAppTemplate, nil +} + +func queryVappTemplate(client *Client, vappTemplateUrl *url.URL, newItemName string) (*types.VAppTemplate, error) { + util.Logger.Printf("[TRACE] Querying vapp template: %s\n", vappTemplateUrl) + + vappTemplateParsed := &types.VAppTemplate{} + + _, err := client.ExecuteRequest(vappTemplateUrl.String(), http.MethodGet, + "", "error querying vApp template: %s", nil, vappTemplateParsed) + if err != nil { + return nil, err + } + + for _, task := range vappTemplateParsed.Tasks.Task { + if task.Status == "error" && newItemName == task.Owner.Name { + util.Logger.Printf("[Error] %#v", task.Error) + return vappTemplateParsed, fmt.Errorf("error in vcd returned error code: %d, error: %s and message: %s ", task.Error.MajorErrorCode, task.Error.MinorErrorCode, task.Error.Message) + } + } + + return vappTemplateParsed, nil +} + +// Uploads ovf description file from unarchived provided ova file. As a result vCD will generate temporary upload links which has to be queried later. +// Function will return parsed part for upload files from description xml. +func uploadOvfDescription(client *Client, ovfFile string, ovfUploadUrl *url.URL) error { + util.Logger.Printf("[TRACE] Uploding ovf description with file: %s and url: %s\n", ovfFile, ovfUploadUrl) + // #nosec G304 - linter does not like 'filePath' to be a variable. However this is necessary for file uploads. + openedFile, err := os.Open(ovfFile) + if err != nil { + return err + } + + var buf bytes.Buffer + ovfReader := io.TeeReader(openedFile, &buf) + + request := client.NewRequest(map[string]string{}, http.MethodPut, *ovfUploadUrl, ovfReader) + request.Header.Add("Content-Type", "text/xml") + + _, err = checkResp(client.Http.Do(request)) + if err != nil { + return err + } + + err = openedFile.Close() + if err != nil { + util.Logger.Printf("[Error] Error closing file: %#v", err) + return err + } + + return nil +} + +func parseOvfFileDesc(file *os.File, ovfFileDesc *Envelope) error { + ovfXml, err := ioutil.ReadAll(file) + if err != nil { + return err + } + + err = xml.Unmarshal(ovfXml, &ovfFileDesc) + if err != nil { + return err + } + return nil +} + +func findCatalogItemUploadLink(catalog *Catalog, applicationType string) (*url.URL, error) { + for _, item := range catalog.Catalog.Link { + if item.Type == applicationType && item.Rel == "add" { + util.Logger.Printf("[TRACE] Found Catalong link for upload: %s\n", item.HREF) + + uploadURL, err := url.ParseRequestURI(item.HREF) + if err != nil { + return nil, err + } + + util.Logger.Printf("[TRACE] findCatalogItemUploadLink - catalog item upload url found: %s \n", uploadURL) + return uploadURL, nil + } + } + return nil, errors.New("catalog upload URL not found") +} + +func getExistingCatalogItems(catalog *Catalog) (catalogItemNames []string) { + for _, catalogItems := range catalog.Catalog.CatalogItems { + for _, catalogItem := range catalogItems.CatalogItem { + catalogItemNames = append(catalogItemNames, catalogItem.Name) + } + } + return +} + +func findFilePath(filesAbsPaths []string, fileName string) string { + for _, item := range filesAbsPaths { + _, file := filepath.Split(item) + if file == fileName { + return item + } + } + return "" +} + +// Initiates creation of item and returns ovf upload url for created item. +func createItemForUpload(client *Client, createHREF *url.URL, catalogItemName string, itemDescription string) (*url.URL, error) { + util.Logger.Printf("[TRACE] createItemForUpload: %s, item name: %v, description: %v \n", createHREF, catalogItemName, itemDescription) + reqBody := bytes.NewBufferString( + "" + + "" + itemDescription + "" + + "") + + request := client.NewRequest(map[string]string{}, http.MethodPost, *createHREF, reqBody) + request.Header.Add("Content-Type", "application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml") + + response, err := checkResp(client.Http.Do(request)) + if err != nil { + return nil, err + } + defer response.Body.Close() + + catalogItemParsed := &types.CatalogItem{} + if err = decodeBody(types.BodyTypeXML, response, catalogItemParsed); err != nil { + return nil, err + } + + util.Logger.Printf("[TRACE] Catalog item parsed: %#v\n", catalogItemParsed) + + ovfUploadUrl, err := url.ParseRequestURI(catalogItemParsed.Entity.HREF) + if err != nil { + return nil, err + } + + return ovfUploadUrl, nil +} + +// Helper method to get path to multi-part files. +//For example a file called test.vmdk with total_file_size = 100 bytes and part_size = 40 bytes, implies the file is made of *3* part files. +// - test.vmdk.000000000 = 40 bytes +// - test.vmdk.000000001 = 40 bytes +// - test.vmdk.000000002 = 20 bytes +//Say base_dir = /dummy_path/, and base_file_name = test.vmdk then +//the output of this function will be [/dummy_path/test.vmdk.000000000, +// /dummy_path/test.vmdk.000000001, /dummy_path/test.vmdk.000000002] +func getChunkedFilePaths(baseDir, baseFileName string, totalFileSize, partSize int) []string { + var filePaths []string + numbParts := math.Ceil(float64(totalFileSize) / float64(partSize)) + for i := 0; i < int(numbParts); i++ { + temp := "000000000" + strconv.Itoa(i) + postfix := temp[len(temp)-9:] + filePath := path.Join(baseDir, baseFileName+"."+postfix) + filePaths = append(filePaths, filePath) + } + + util.Logger.Printf("[TRACE] Chunked files file paths: %s \n", filePaths) + return filePaths +} + +func getOvfPath(filesAbsPaths []string) (string, error) { + for _, filePath := range filesAbsPaths { + if filepath.Ext(filePath) == ".ovf" { + return filePath, nil + } + } + return "", errors.New("ova is not correct - missing ovf file") +} + +func getOvf(ovfFilePath string) (Envelope, error) { + // #nosec G304 - linter does not like 'filePath' to be a variable. However this is necessary for file uploads. + openedFile, err := os.Open(ovfFilePath) + if err != nil { + return Envelope{}, err + } + + var ovfFileDesc Envelope + err = parseOvfFileDesc(openedFile, &ovfFileDesc) + if err != nil { + return Envelope{}, err + } + + err = openedFile.Close() + if err != nil { + util.Logger.Printf("[Error] Error closing file: %#v", err) + return Envelope{}, err + } + + return ovfFileDesc, nil +} + +func validateOvaContent(filesAbsPaths []string, ovfFileDesc *Envelope, tempPath string) error { + for _, fileDescription := range ovfFileDesc.File { + if fileDescription.ChunkSize == 0 { + err := checkIfFileMatchesDescription(filesAbsPaths, fileDescription) + if err != nil { + return err + } + // check chunked ova content + } else { + chunkFilePaths := getChunkedFilePaths(tempPath, fileDescription.HREF, fileDescription.Size, fileDescription.ChunkSize) + for part, chunkedFilePath := range chunkFilePaths { + _, fileName := filepath.Split(chunkedFilePath) + chunkedFileSize := fileDescription.Size - part*fileDescription.ChunkSize + if chunkedFileSize > fileDescription.ChunkSize { + chunkedFileSize = fileDescription.ChunkSize + } + chunkedFileDescription := struct { + HREF string `xml:"href,attr"` + ID string `xml:"id,attr"` + Size int `xml:"size,attr"` + ChunkSize int `xml:"chunkSize,attr"` + }{fileName, "", chunkedFileSize, fileDescription.ChunkSize} + err := checkIfFileMatchesDescription(filesAbsPaths, chunkedFileDescription) + if err != nil { + return err + } + } + } + } + return nil +} + +func checkIfFileMatchesDescription(filesAbsPaths []string, fileDescription struct { + HREF string `xml:"href,attr"` + ID string `xml:"id,attr"` + Size int `xml:"size,attr"` + ChunkSize int `xml:"chunkSize,attr"` +}) error { + filePath := findFilePath(filesAbsPaths, fileDescription.HREF) + if filePath == "" { + return fmt.Errorf("file '%s' described in ovf was not found in ova", fileDescription.HREF) + } + if fileInfo, err := os.Stat(filePath); err == nil { + if fileDescription.Size > 0 && (fileInfo.Size() != int64(fileDescription.Size)) { + return fmt.Errorf("file size didn't match described in ovf: %s", filePath) + } + } else { + return err + } + return nil +} + +func removeCatalogItemOnError(client *Client, vappTemplateLink *url.URL, itemName string) { + if vappTemplateLink != nil { + util.Logger.Printf("[TRACE] Deleting Catalog item %v", vappTemplateLink) + + // wait for task, cancel it and catalog item will be removed. + var vAppTemplate *types.VAppTemplate + var err error + for { + util.Logger.Printf("[TRACE] Sleep... for 5 seconds.\n") + time.Sleep(time.Second * 5) + vAppTemplate, err = queryVappTemplate(client, vappTemplateLink, itemName) + if err != nil { + util.Logger.Printf("[Error] Error deleting Catalog item %s: %s", vappTemplateLink, err) + } + if len(vAppTemplate.Tasks.Task) > 0 { + util.Logger.Printf("[TRACE] Task found. Will try to cancel.\n") + break + } + } + + for _, taskItem := range vAppTemplate.Tasks.Task { + if itemName == taskItem.Owner.Name { + task := NewTask(client) + task.Task = taskItem + err = task.CancelTask() + if err != nil { + util.Logger.Printf("[ERROR] Error canceling task for catalog item upload %#v", err) + } + } + } + } else { + util.Logger.Printf("[Error] Failed to delete catalog item created with error: %v", vappTemplateLink) + } +} + +func (cat *Catalog) UploadMediaImage(mediaName, mediaDescription, filePath string, uploadPieceSize int64) (UploadTask, error) { + + if *cat == (Catalog{}) { + return UploadTask{}, errors.New("catalog can not be empty or nil") + } + + mediaFilePath, err := validateAndFixFilePath(filePath) + if err != nil { + return UploadTask{}, err + } + + isISOGood, err := verifyIso(mediaFilePath) + if err != nil || !isISOGood { + return UploadTask{}, fmt.Errorf("[ERROR] File %s isn't correct iso file: %#v", mediaFilePath, err) + } + + file, e := os.Stat(mediaFilePath) + if e != nil { + return UploadTask{}, fmt.Errorf("[ERROR] Issue finding file: %#v", e) + } + fileSize := file.Size() + + for _, catalogItemName := range getExistingCatalogItems(cat) { + if catalogItemName == mediaName { + return UploadTask{}, fmt.Errorf("media item '%s' already exists. Upload with different name", mediaName) + } + } + + catalogItemUploadURL, err := findCatalogItemUploadLink(cat, "application/vnd.vmware.vcloud.media+xml") + if err != nil { + return UploadTask{}, err + } + + media, err := createMedia(cat.client, catalogItemUploadURL.String(), mediaName, mediaDescription, fileSize) + if err != nil { + return UploadTask{}, fmt.Errorf("[ERROR] Issue creating media: %#v", err) + } + + createdMedia, err := queryMedia(cat.client, media.Entity.HREF, mediaName) + if err != nil { + return UploadTask{}, err + } + + return executeUpload(cat.client, createdMedia, mediaFilePath, mediaName, fileSize, uploadPieceSize) +} + +// Refresh gets a fresh copy of the catalog from vCD +func (cat *Catalog) Refresh() error { + if cat == nil || *cat == (Catalog{}) || cat.Catalog.HREF == "" { + return fmt.Errorf("cannot refresh, Object is empty or HREF is empty") + } + + refreshedCatalog := &types.Catalog{} + + _, err := cat.client.ExecuteRequest(cat.Catalog.HREF, http.MethodGet, + "", "error refreshing VDC: %s", nil, refreshedCatalog) + if err != nil { + return err + } + cat.Catalog = refreshedCatalog + + return nil +} + +// GetCatalogItemByHref finds a CatalogItem by HREF +// On success, returns a pointer to the CatalogItem structure and a nil error +// On failure, returns a nil pointer and an error +func (cat *Catalog) GetCatalogItemByHref(catalogItemHref string) (*CatalogItem, error) { + + catItem := NewCatalogItem(cat.client) + + _, err := cat.client.ExecuteRequest(catalogItemHref, http.MethodGet, + "", "error retrieving catalog item: %s", nil, catItem.CatalogItem) + if err != nil { + return nil, err + } + return catItem, nil +} + +// GetVappTemplateByHref finds a vApp template by HREF +// On success, returns a pointer to the vApp template structure and a nil error +// On failure, returns a nil pointer and an error +func (cat *Catalog) GetVappTemplateByHref(href string) (*VAppTemplate, error) { + + vappTemplate := NewVAppTemplate(cat.client) + + _, err := cat.client.ExecuteRequest(href, http.MethodGet, + "", "error retrieving catalog item: %s", nil, vappTemplate.VAppTemplate) + if err != nil { + return nil, err + } + return vappTemplate, nil +} + +// GetCatalogItemByName finds a CatalogItem by Name +// On success, returns a pointer to the CatalogItem structure and a nil error +// On failure, returns a nil pointer and an error +func (cat *Catalog) GetCatalogItemByName(catalogItemName string, refresh bool) (*CatalogItem, error) { + if refresh { + err := cat.Refresh() + if err != nil { + return nil, err + } + } + for _, catalogItems := range cat.Catalog.CatalogItems { + for _, catalogItem := range catalogItems.CatalogItem { + if catalogItem.Name == catalogItemName && catalogItem.Type == "application/vnd.vmware.vcloud.catalogItem+xml" { + return cat.GetCatalogItemByHref(catalogItem.HREF) + } + } + } + return nil, ErrorEntityNotFound +} + +// GetCatalogItemById finds a Catalog Item by ID +// On success, returns a pointer to the CatalogItem structure and a nil error +// On failure, returns a nil pointer and an error +func (cat *Catalog) GetCatalogItemById(catalogItemId string, refresh bool) (*CatalogItem, error) { + if refresh { + err := cat.Refresh() + if err != nil { + return nil, err + } + } + for _, catalogItems := range cat.Catalog.CatalogItems { + for _, catalogItem := range catalogItems.CatalogItem { + if equalIds(catalogItemId, catalogItem.ID, catalogItem.HREF) && catalogItem.Type == "application/vnd.vmware.vcloud.catalogItem+xml" { + return cat.GetCatalogItemByHref(catalogItem.HREF) + } + } + } + return nil, ErrorEntityNotFound +} + +// GetCatalogItemByNameOrId finds a Catalog Item by Name or ID +// On success, returns a pointer to the CatalogItem structure and a nil error +// On failure, returns a nil pointer and an error +func (cat *Catalog) GetCatalogItemByNameOrId(identifier string, refresh bool) (*CatalogItem, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return cat.GetCatalogItemByName(name, refresh) } + getById := func(id string, refresh bool) (interface{}, error) { return cat.GetCatalogItemById(id, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, refresh) + if entity == nil { + return nil, err + } + return entity.(*CatalogItem), err +} + +// QueryMediaList retrieves a list of media items for the catalog +func (catalog *Catalog) QueryMediaList() ([]*types.MediaRecordType, error) { + typeMedia := "media" + if catalog.client.IsSysAdmin { + typeMedia = "adminMedia" + } + + filter := fmt.Sprintf("catalog==" + url.QueryEscape(catalog.Catalog.HREF)) + results, err := catalog.client.QueryWithNotEncodedParams(nil, map[string]string{"type": typeMedia, "filter": filter, "filterEncoded": "true"}) + if err != nil { + return nil, fmt.Errorf("error querying medias %s", err) + } + + mediaResults := results.Results.MediaRecord + if catalog.client.IsSysAdmin { + mediaResults = results.Results.AdminMediaRecord + } + return mediaResults, nil +} + +// getOrgInfo finds the organization to which the catalog belongs, and returns its name and ID +func (catalog *Catalog) getOrgInfo() (*TenantContext, error) { + org := catalog.parent + if org == nil { + return nil, fmt.Errorf("no parent found for catalog %s", catalog.Catalog.Name) + } + + return org.tenantContext() +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/catalogitem.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/catalogitem.go new file mode 100644 index 000000000..06f7ab2cf --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/catalogitem.go @@ -0,0 +1,128 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type CatalogItem struct { + CatalogItem *types.CatalogItem + client *Client +} + +func NewCatalogItem(cli *Client) *CatalogItem { + return &CatalogItem{ + CatalogItem: new(types.CatalogItem), + client: cli, + } +} + +func (catalogItem *CatalogItem) GetVAppTemplate() (VAppTemplate, error) { + + cat := NewVAppTemplate(catalogItem.client) + + _, err := catalogItem.client.ExecuteRequest(catalogItem.CatalogItem.Entity.HREF, http.MethodGet, + "", "error retrieving vApp template: %s", nil, cat.VAppTemplate) + + // The request was successful + return *cat, err + +} + +// Delete deletes the Catalog Item, returning an error if the vCD call fails. +// Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-CatalogItem.html +func (catalogItem *CatalogItem) Delete() error { + util.Logger.Printf("[TRACE] Deleting catalog item: %#v", catalogItem.CatalogItem) + catalogItemHREF := catalogItem.client.VCDHREF + catalogItemHREF.Path += "/catalogItem/" + catalogItem.CatalogItem.ID[23:] + + util.Logger.Printf("[TRACE] Url for deleting catalog item: %#v and name: %s", catalogItemHREF, catalogItem.CatalogItem.Name) + + return catalogItem.client.ExecuteRequestWithoutResponse(catalogItemHREF.String(), http.MethodDelete, + "", "error deleting Catalog item: %s", nil) +} + +// queryCatalogItemList returns a list of Catalog Item for the given parent +func queryCatalogItemList(client *Client, parentField, parentValue string) ([]*types.QueryResultCatalogItemType, error) { + + catalogItemType := types.QtCatalogItem + if client.IsSysAdmin { + catalogItemType = types.QtAdminCatalogItem + } + + filterText := fmt.Sprintf("%s==%s", parentField, url.QueryEscape(parentValue)) + + results, err := client.cumulativeQuery(catalogItemType, nil, map[string]string{ + "type": catalogItemType, + "filter": filterText, + }) + if err != nil { + return nil, fmt.Errorf("error querying catalog items %s", err) + } + + if client.IsSysAdmin { + return results.Results.AdminCatalogItemRecord, nil + } else { + return results.Results.CatalogItemRecord, nil + } +} + +// QueryCatalogItemList returns a list of Catalog Item for the given catalog +func (catalog *Catalog) QueryCatalogItemList() ([]*types.QueryResultCatalogItemType, error) { + return queryCatalogItemList(catalog.client, "catalog", catalog.Catalog.ID) +} + +// QueryCatalogItemList returns a list of Catalog Item for the given VDC +func (vdc *Vdc) QueryCatalogItemList() ([]*types.QueryResultCatalogItemType, error) { + return queryCatalogItemList(vdc.client, "vdc", vdc.Vdc.ID) +} + +// QueryCatalogItemList returns a list of Catalog Item for the given Admin VDC +func (vdc *AdminVdc) QueryCatalogItemList() ([]*types.QueryResultCatalogItemType, error) { + return queryCatalogItemList(vdc.client, "vdc", vdc.AdminVdc.ID) +} + +// queryVappTemplateList returns a list of vApp templates for the given parent +func queryVappTemplateList(client *Client, parentField, parentValue string) ([]*types.QueryResultVappTemplateType, error) { + + vappTemplateType := types.QtVappTemplate + if client.IsSysAdmin { + vappTemplateType = types.QtAdminVappTemplate + } + results, err := client.cumulativeQuery(vappTemplateType, nil, map[string]string{ + "type": vappTemplateType, + "filter": fmt.Sprintf("%s==%s", parentField, url.QueryEscape(parentValue)), + }) + if err != nil { + return nil, fmt.Errorf("error querying vApp templates %s", err) + } + + if client.IsSysAdmin { + return results.Results.AdminVappTemplateRecord, nil + } else { + return results.Results.VappTemplateRecord, nil + } +} + +// QueryVappTemplateList returns a list of vApp templates for the given VDC +func (vdc *Vdc) QueryVappTemplateList() ([]*types.QueryResultVappTemplateType, error) { + return queryVappTemplateList(vdc.client, "vdcName", vdc.Vdc.Name) +} + +// QueryVappTemplateList returns a list of vApp templates for the given VDC +func (vdc *AdminVdc) QueryVappTemplateList() ([]*types.QueryResultVappTemplateType, error) { + return queryVappTemplateList(vdc.client, "vdcName", vdc.AdminVdc.Name) +} + +// QueryVappTemplateList returns a list of vApp templates for the given catalog +func (catalog *Catalog) QueryVappTemplateList() ([]*types.QueryResultVappTemplateType, error) { + return queryVappTemplateList(catalog.client, "catalogName", catalog.Catalog.Name) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/certificate_management.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/certificate_management.go new file mode 100644 index 000000000..58bbf62a2 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/certificate_management.go @@ -0,0 +1,300 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "github.com/vmware/go-vcloud-director/v2/types/v56" + "net/url" +) + +// Certificate is a structure defining a certificate in VCD +// It is called "Certificate Library" in the UI, and "Certificate Library item" in the API +type Certificate struct { + CertificateLibrary *types.CertificateLibraryItem + Href string + client *Client +} + +// GetCertificateFromLibraryById Returns certificate from library of certificates +func getCertificateFromLibraryById(client *Client, id string, additionalHeader map[string]string) (*Certificate, error) { + endpoint, err := getEndpointByVersion(client) + if err != nil { + return nil, err + } + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty certificate ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + certificate := &Certificate{ + CertificateLibrary: &types.CertificateLibraryItem{}, + client: client, + Href: urlRef.String(), + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, nil, certificate.CertificateLibrary, additionalHeader) + if err != nil { + return nil, err + } + + return certificate, nil +} + +func getEndpointByVersion(client *Client) (string, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointSSLCertificateLibrary + newerApiVersion, err := client.VersionEqualOrGreater("10.3", 3) + if err != nil { + return "", err + } + if !newerApiVersion { + // in previous version exist only API with mistype in name + endpoint = types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointSSLCertificateLibraryOld + } + return endpoint, err +} + +// GetCertificateFromLibraryById Returns certificate from library of certificates from System Context +func (client *Client) GetCertificateFromLibraryById(id string) (*Certificate, error) { + return getCertificateFromLibraryById(client, id, nil) +} + +// GetCertificateFromLibraryById Returns certificate from library of certificates from Org context +func (adminOrg *AdminOrg) GetCertificateFromLibraryById(id string) (*Certificate, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return getCertificateFromLibraryById(adminOrg.client, id, getTenantContextHeader(tenantContext)) +} + +// addCertificateToLibrary uploads certificates with configuration details +func addCertificateToLibrary(client *Client, certificateConfig *types.CertificateLibraryItem, + additionalHeader map[string]string) (*Certificate, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointSSLCertificateLibrary + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponse := &Certificate{ + CertificateLibrary: &types.CertificateLibraryItem{}, + client: client, + Href: urlRef.String(), + } + + err = client.OpenApiPostItem(apiVersion, urlRef, nil, + certificateConfig, typeResponse.CertificateLibrary, additionalHeader) + if err != nil { + return nil, err + } + + return typeResponse, nil +} + +// AddCertificateToLibrary uploads certificates with configuration details +func (adminOrg *AdminOrg) AddCertificateToLibrary(certificateConfig *types.CertificateLibraryItem) (*Certificate, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return addCertificateToLibrary(adminOrg.client, certificateConfig, getTenantContextHeader(tenantContext)) +} + +// AddCertificateToLibrary uploads certificates with configuration details +func (client *Client) AddCertificateToLibrary(certificateConfig *types.CertificateLibraryItem) (*Certificate, error) { + return addCertificateToLibrary(client, certificateConfig, nil) +} + +// getAllCertificateFromLibrary retrieves all certificates. Query parameters can be supplied to perform additional +// filtering +func getAllCertificateFromLibrary(client *Client, queryParameters url.Values, additionalHeader map[string]string) ([]*Certificate, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointSSLCertificateLibrary + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + responses := []*types.CertificateLibraryItem{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &responses, additionalHeader) + if err != nil { + return nil, err + } + + var wrappedCertificates []*Certificate + for _, response := range responses { + urlRef, err := client.OpenApiBuildEndpoint(endpoint, response.Id) + if err != nil { + return nil, err + } + wrappedCertificate := &Certificate{ + CertificateLibrary: response, + client: client, + Href: urlRef.String(), + } + wrappedCertificates = append(wrappedCertificates, wrappedCertificate) + } + + return wrappedCertificates, nil +} + +// GetAllCertificatesFromLibrary retrieves all available certificates from certificate library. +// Query parameters can be supplied to perform additional filtering +func (client *Client) GetAllCertificatesFromLibrary(queryParameters url.Values) ([]*Certificate, error) { + return getAllCertificateFromLibrary(client, queryParameters, nil) +} + +// GetAllCertificatesFromLibrary r retrieves all available certificates from certificate library. +// Query parameters can be supplied to perform additional filtering +func (adminOrg *AdminOrg) GetAllCertificatesFromLibrary(queryParameters url.Values) ([]*Certificate, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return getAllCertificateFromLibrary(adminOrg.client, queryParameters, getTenantContextHeader(tenantContext)) +} + +// getCertificateFromLibraryByName retrieves certificate from certificate library by given name +// When the alias contains commas, semicolons or asterisks, the encoding is rejected by the API in VCD 10.2 version. +// For this reason, when one or more commas, semicolons or asterisks are present we run the search brute force, +// by fetching all certificates and comparing the alias. Yet, this not needed anymore in VCD 10.3 version. +// Also, url.QueryEscape as well as url.Values.Encode() both encode the space as a + character. So we use +// search brute force too. Reference to issue: +// https://github.com/golang/go/issues/4013 +// https://github.com/czos/goamz/pull/11/files +func getCertificateFromLibraryByName(client *Client, name string, additionalHeader map[string]string) (*Certificate, error) { + slowSearch, params, err := shouldDoSlowSearch("alias", name, client) + if err != nil { + return nil, err + } + + var foundCertificates []*Certificate + certificates, err := getAllCertificateFromLibrary(client, params, additionalHeader) + if err != nil { + return nil, err + } + if len(certificates) == 0 { + return nil, ErrorEntityNotFound + } + foundCertificates = append(foundCertificates, certificates[0]) + + if slowSearch { + foundCertificates = nil + for _, certificate := range certificates { + if certificate.CertificateLibrary.Alias == name { + foundCertificates = append(foundCertificates, certificate) + } + } + if len(foundCertificates) == 0 { + return nil, ErrorEntityNotFound + } + if len(foundCertificates) > 1 { + return nil, fmt.Errorf("more than one certificate found with name '%s'", name) + } + } + + if len(certificates) > 1 && !slowSearch { + { + return nil, fmt.Errorf("more than one certificate found with name '%s'", name) + } + } + return foundCertificates[0], nil +} + +// GetCertificateFromLibraryByName retrieves certificate from certificate library by given name +func (client *Client) GetCertificateFromLibraryByName(name string) (*Certificate, error) { + return getCertificateFromLibraryByName(client, name, nil) +} + +// GetCertificateFromLibraryByName retrieves certificate from certificate library by given name +func (adminOrg *AdminOrg) GetCertificateFromLibraryByName(name string) (*Certificate, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return getCertificateFromLibraryByName(adminOrg.client, name, getTenantContextHeader(tenantContext)) +} + +// Update updates existing Certificate. Allows changing only alias and description +func (certificate *Certificate) Update() (*Certificate, error) { + endpoint, err := getEndpointByVersion(certificate.client) + if err != nil { + return nil, err + } + minimumApiVersion, err := certificate.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if certificate.CertificateLibrary.Id == "" { + return nil, fmt.Errorf("cannot update certificate without id") + } + + urlRef, err := certificate.client.OpenApiBuildEndpoint(endpoint, certificate.CertificateLibrary.Id) + if err != nil { + return nil, err + } + + returnCertificate := &Certificate{ + CertificateLibrary: &types.CertificateLibraryItem{}, + client: certificate.client, + } + + err = certificate.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, certificate.CertificateLibrary, + returnCertificate.CertificateLibrary, nil) + if err != nil { + return nil, fmt.Errorf("error updating certificate: %s", err) + } + + return returnCertificate, nil +} + +// Delete deletes certificate from Certificate library +func (certificate *Certificate) Delete() error { + endpoint, err := getEndpointByVersion(certificate.client) + if err != nil { + return err + } + minimumApiVersion, err := certificate.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if certificate.CertificateLibrary.Id == "" { + return fmt.Errorf("cannot delete certificate without id") + } + + urlRef, err := certificate.client.OpenApiBuildEndpoint(endpoint, certificate.CertificateLibrary.Id) + if err != nil { + return err + } + + err = certificate.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting certificate: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/disk.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/disk.go new file mode 100644 index 000000000..24c1242f7 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/disk.go @@ -0,0 +1,431 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/http" + "net/url" + "strings" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// Independent disk +type Disk struct { + Disk *types.Disk + client *Client +} + +// Independent disk query record +type DiskRecord struct { + Disk *types.DiskRecordType + client *Client +} + +// Init independent disk struct +func NewDisk(cli *Client) *Disk { + return &Disk{ + Disk: new(types.Disk), + client: cli, + } +} + +// Create instance with reference to types.DiskRecordType +func NewDiskRecord(cli *Client) *DiskRecord { + return &DiskRecord{ + Disk: new(types.DiskRecordType), + client: cli, + } +} + +// Create an independent disk in VDC +// Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0 PDF Page 102 - 103, +// https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ +// 241956dd-e128-4fcc-8131-bf66e1edd895/vcloud_sp_api_guide_30_0.pdf +func (vdc *Vdc) CreateDisk(diskCreateParams *types.DiskCreateParams) (Task, error) { + util.Logger.Printf("[TRACE] Create disk, name: %s, size: %d \n", + diskCreateParams.Disk.Name, + diskCreateParams.Disk.SizeMb, + ) + + if diskCreateParams.Disk.Name == "" { + return Task{}, fmt.Errorf("disk name is required") + } + + var err error + var createDiskLink *types.Link + + // Find the proper link for request + for _, vdcLink := range vdc.Vdc.Link { + if vdcLink.Rel == types.RelAdd && vdcLink.Type == types.MimeDiskCreateParams { + util.Logger.Printf("[TRACE] Create disk - found the proper link for request, HREF: %s, name: %s, type: %s, id: %s, rel: %s \n", + vdcLink.HREF, + vdcLink.Name, + vdcLink.Type, + vdcLink.ID, + vdcLink.Rel) + createDiskLink = vdcLink + break + } + } + + if createDiskLink == nil { + return Task{}, fmt.Errorf("could not find request URL for create disk in vdc Link") + } + + // Prepare the request payload + diskCreateParams.Xmlns = types.XMLNamespaceVCloud + + disk := NewDisk(vdc.client) + + _, err = vdc.client.ExecuteRequest(createDiskLink.HREF, http.MethodPost, + createDiskLink.Type, "error create disk: %s", diskCreateParams, disk.Disk) + if err != nil { + return Task{}, err + } + // Obtain disk task + if disk.Disk.Tasks.Task == nil || len(disk.Disk.Tasks.Task) == 0 { + return Task{}, errors.New("error cannot find disk creation task in API response") + } + task := NewTask(vdc.client) + task.Task = disk.Disk.Tasks.Task[0] + + util.Logger.Printf("[TRACE] AFTER CREATE DISK\n %s\n", prettyDisk(*disk.Disk)) + // Return the disk + return *task, nil +} + +// Update an independent disk +// 1 Verify the independent disk is not connected to any VM +// 2 Use newDiskInfo to change update the independent disk +// 3 Return task of independent disk update +// If the independent disk is connected to a VM, the task will be failed. +// Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0 PDF Page 104 - 106, +// https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ +// 241956dd-e128-4fcc-8131-bf66e1edd895/vcloud_sp_api_guide_30_0.pdf +func (disk *Disk) Update(newDiskInfo *types.Disk) (Task, error) { + util.Logger.Printf("[TRACE] Update disk, name: %s, size: %d, HREF: %s \n", + newDiskInfo.Name, + newDiskInfo.SizeMb, + disk.Disk.HREF, + ) + + var err error + + if newDiskInfo.Name == "" { + return Task{}, fmt.Errorf("disk name is required") + } + + // Verify the independent disk is not connected to any VM + vmRef, err := disk.AttachedVM() + if err != nil { + return Task{}, fmt.Errorf("error find attached VM: %s", err) + } + if vmRef != nil { + return Task{}, errors.New("error disk is attached") + } + + var updateDiskLink *types.Link + + // Find the proper link for request + for _, diskLink := range disk.Disk.Link { + if diskLink.Rel == types.RelEdit && diskLink.Type == types.MimeDisk { + util.Logger.Printf("[TRACE] Update disk - found the proper link for request, HREF: %s, name: %s, type: %s,id: %s, rel: %s \n", + diskLink.HREF, + diskLink.Name, + diskLink.Type, + diskLink.ID, + diskLink.Rel) + updateDiskLink = diskLink + break + } + } + + if updateDiskLink == nil { + return Task{}, fmt.Errorf("could not find request URL for update disk in disk Link") + } + + // Prepare the request payload + xmlPayload := &types.Disk{ + Xmlns: types.XMLNamespaceVCloud, + Description: newDiskInfo.Description, + SizeMb: newDiskInfo.SizeMb, + Name: newDiskInfo.Name, + StorageProfile: newDiskInfo.StorageProfile, + Owner: newDiskInfo.Owner, + } + + // Return the task + return disk.client.ExecuteTaskRequest(updateDiskLink.HREF, http.MethodPut, + updateDiskLink.Type, "error updating disk: %s", xmlPayload) +} + +// Remove an independent disk +// 1 Verify the independent disk is not connected to any VM +// 2 Delete the independent disk. Make a DELETE request to the URL in the rel="remove" link in the Disk +// 3 Return task of independent disk deletion +// If the independent disk is connected to a VM, the task will be failed. +// Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0 PDF Page 106 - 107, +// https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ +// 241956dd-e128-4fcc-8131-bf66e1edd895/vcloud_sp_api_guide_30_0.pdf +func (disk *Disk) Delete() (Task, error) { + util.Logger.Printf("[TRACE] Delete disk, HREF: %s \n", disk.Disk.HREF) + + var err error + + // Verify the independent disk is not connected to any VM + vmRef, err := disk.AttachedVM() + if err != nil { + return Task{}, fmt.Errorf("error find attached VM: %s", err) + } + if vmRef != nil { + return Task{}, errors.New("error disk is attached") + } + + var deleteDiskLink *types.Link + + // Find the proper link for request + for _, diskLink := range disk.Disk.Link { + if diskLink.Rel == types.RelRemove { + util.Logger.Printf("[TRACE] Delete disk - found the proper link for request, HREF: %s, name: %s, type: %s,id: %s, rel: %s \n", + diskLink.HREF, + diskLink.Name, + diskLink.Type, + diskLink.ID, + diskLink.Rel) + deleteDiskLink = diskLink + break + } + } + + if deleteDiskLink == nil { + return Task{}, fmt.Errorf("could not find request URL for delete disk in disk Link") + } + + // Return the task + return disk.client.ExecuteTaskRequest(deleteDiskLink.HREF, http.MethodDelete, + "", "error delete disk: %s", nil) +} + +// Refresh the disk information by disk href +func (disk *Disk) Refresh() error { + if disk.Disk == nil || disk.Disk.HREF == "" { + return fmt.Errorf("cannot refresh, Object is empty") + } + util.Logger.Printf("[TRACE] Disk refresh, HREF: %s\n", disk.Disk.HREF) + + unmarshalledDisk := &types.Disk{} + + _, err := disk.client.ExecuteRequest(disk.Disk.HREF, http.MethodGet, + "", "error refreshing independent disk: %s", nil, unmarshalledDisk) + if err != nil { + return err + } + disk.Disk = unmarshalledDisk + + // The request was successful + return nil +} + +// Get a VM that is attached the disk +// An independent disk can be attached to at most one virtual machine. +// If the disk isn't attached to any VM, return empty VM reference and no error. +// Otherwise return the first VM reference and no error. +// Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0 PDF Page 107, +// https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ +// 241956dd-e128-4fcc-8131-bf66e1edd895/vcloud_sp_api_guide_30_0.pdf +func (disk *Disk) AttachedVM() (*types.Reference, error) { + util.Logger.Printf("[TRACE] Disk attached VM, HREF: %s\n", disk.Disk.HREF) + + var attachedVMLink *types.Link + + // Find the proper link for request + for _, diskLink := range disk.Disk.Link { + if diskLink.Type == types.MimeVMs { + util.Logger.Printf("[TRACE] Disk attached VM - found the proper link for request, HREF: %s, name: %s, type: %s,id: %s, rel: %s \n", + diskLink.HREF, + diskLink.Name, + diskLink.Type, + diskLink.ID, + diskLink.Rel) + + attachedVMLink = diskLink + break + } + } + + if attachedVMLink == nil { + return nil, fmt.Errorf("could not find request URL for attached vm in disk Link") + } + + // Decode request + var vms = new(types.Vms) + + _, err := disk.client.ExecuteRequest(attachedVMLink.HREF, http.MethodGet, + attachedVMLink.Type, "error getting attached vms: %s", nil, vms) + if err != nil { + return nil, err + } + + // If disk is not attached to any VM + if vms.VmReference == nil { + return nil, nil + } + + // An independent disk can be attached to at most one virtual machine so return the first result of VM reference + return vms.VmReference, nil +} + +// Find an independent disk by disk href in VDC +// Deprecated: Use VDC.GetDiskByHref() +func (vdc *Vdc) FindDiskByHREF(href string) (*Disk, error) { + util.Logger.Printf("[TRACE] VDC find disk By HREF: %s\n", href) + + return FindDiskByHREF(vdc.client, href) +} + +// Find an independent disk by VDC client and disk href +// Deprecated: Use VDC.GetDiskByHref() +func FindDiskByHREF(client *Client, href string) (*Disk, error) { + util.Logger.Printf("[TRACE] Find disk By HREF: %s\n", href) + + disk := NewDisk(client) + + _, err := client.ExecuteRequest(href, http.MethodGet, + "", "error finding disk: %s", nil, disk.Disk) + + // Return the disk + return disk, err + +} + +// QueryDisk find independent disk using disk name. Returns DiskRecord type +func (vdc *Vdc) QueryDisk(diskName string) (DiskRecord, error) { + + if diskName == "" { + return DiskRecord{}, fmt.Errorf("disk name can not be empty") + } + + typeMedia := "disk" + if vdc.client.IsSysAdmin { + typeMedia = "adminDisk" + } + + results, err := vdc.QueryWithNotEncodedParams(nil, map[string]string{"type": typeMedia, "filter": "name==" + url.QueryEscape(diskName), "filterEncoded": "true"}) + if err != nil { + return DiskRecord{}, fmt.Errorf("error querying disk %s", err) + } + + diskResults := results.Results.DiskRecord + if vdc.client.IsSysAdmin { + diskResults = results.Results.AdminDiskRecord + } + + newDisk := NewDiskRecord(vdc.client) + + if len(diskResults) == 1 { + newDisk.Disk = diskResults[0] + } else { + return DiskRecord{}, fmt.Errorf("found results %d", len(diskResults)) + } + + return *newDisk, nil +} + +// QueryDisks find independent disks using disk name. Returns list of DiskRecordType +func (vdc *Vdc) QueryDisks(diskName string) (*[]*types.DiskRecordType, error) { + + if diskName == "" { + return nil, fmt.Errorf("disk name can't be empty") + } + + typeMedia := "disk" + if vdc.client.IsSysAdmin { + typeMedia = "adminDisk" + } + + results, err := vdc.QueryWithNotEncodedParams(nil, map[string]string{"type": typeMedia, "filter": "name==" + url.QueryEscape(diskName), "filterEncoded": "true"}) + if err != nil { + return nil, fmt.Errorf("error querying disks %s", err) + } + + diskResults := results.Results.DiskRecord + if vdc.client.IsSysAdmin { + diskResults = results.Results.AdminDiskRecord + } + + return &diskResults, nil +} + +// GetDiskByHref finds a Disk by HREF +// On success, returns a pointer to the Disk structure and a nil error +// On failure, returns a nil pointer and an error +func (vdc *Vdc) GetDiskByHref(diskHref string) (*Disk, error) { + util.Logger.Printf("[TRACE] Get Disk By Href: %s\n", diskHref) + Disk := NewDisk(vdc.client) + + _, err := vdc.client.ExecuteRequest(diskHref, http.MethodGet, + "", "error retrieving Disk: %#v", nil, Disk.Disk) + if err != nil && strings.Contains(err.Error(), "MajorErrorCode:403") { + return nil, ErrorEntityNotFound + } + if err != nil { + return nil, err + } + return Disk, nil +} + +// GetDisksByName finds one or more Disks by Name +// On success, returns a pointer to the Disk list and a nil error +// On failure, returns a nil pointer and an error +func (vdc *Vdc) GetDisksByName(diskName string, refresh bool) (*[]Disk, error) { + util.Logger.Printf("[TRACE] Get Disk By Name: %s\n", diskName) + var diskList []Disk + if refresh { + err := vdc.Refresh() + if err != nil { + return nil, err + } + } + for _, resourceEntities := range vdc.Vdc.ResourceEntities { + for _, resourceEntity := range resourceEntities.ResourceEntity { + if resourceEntity.Name == diskName && resourceEntity.Type == "application/vnd.vmware.vcloud.disk+xml" { + disk, err := vdc.GetDiskByHref(resourceEntity.HREF) + if err != nil { + return nil, err + } + diskList = append(diskList, *disk) + } + } + } + if len(diskList) == 0 { + return nil, ErrorEntityNotFound + } + return &diskList, nil +} + +// GetDiskById finds a Disk by ID +// On success, returns a pointer to the Disk structure and a nil error +// On failure, returns a nil pointer and an error +func (vdc *Vdc) GetDiskById(diskId string, refresh bool) (*Disk, error) { + util.Logger.Printf("[TRACE] Get Disk By Id: %s\n", diskId) + if refresh { + err := vdc.Refresh() + if err != nil { + return nil, err + } + } + for _, resourceEntities := range vdc.Vdc.ResourceEntities { + for _, resourceEntity := range resourceEntities.ResourceEntity { + if equalIds(diskId, resourceEntity.ID, resourceEntity.HREF) && resourceEntity.Type == "application/vnd.vmware.vcloud.disk+xml" { + return vdc.GetDiskByHref(resourceEntity.HREF) + } + } + } + return nil, ErrorEntityNotFound +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/edgegateway.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/edgegateway.go new file mode 100644 index 000000000..1ce36e4ed --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/edgegateway.go @@ -0,0 +1,1433 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "bytes" + "crypto/rand" + "encoding/xml" + "fmt" + "net/http" + "net/url" + "regexp" + "strconv" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type EdgeGateway struct { + EdgeGateway *types.EdgeGateway + client *Client +} + +// Simplified structure used to list networks connected to an edge gateway +type SimpleNetworkIdentifier struct { + Name string + InterfaceType string +} + +var reErrorBusy = regexp.MustCompile(`is busy completing an operation.$`) + +func NewEdgeGateway(cli *Client) *EdgeGateway { + return &EdgeGateway{ + EdgeGateway: new(types.EdgeGateway), + client: cli, + } +} + +// Struct which covers NAT rule fields +type NatRule struct { + NatType string + NetworkHref string + ExternalIP string + ExternalPort string + InternalIP string + InternalPort string + Protocol string + IcmpSubType string + Description string +} + +// AddDhcpPool adds (or updates) the DHCP pool connected to a specific network. +// TODO: this is legacy code from 2015, which requires a Terraform structure to work. It may need some re-thinking. +func (egw *EdgeGateway) AddDhcpPool(network *types.OrgVDCNetwork, dhcppool []interface{}) (Task, error) { + newEdgeConfig := egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration + util.Logger.Printf("[DEBUG] EDGE GATEWAY: %#v", newEdgeConfig) + util.Logger.Printf("[DEBUG] EDGE GATEWAY SERVICE: %#v", newEdgeConfig.GatewayDhcpService) + newDchpService := &types.GatewayDhcpService{} + if newEdgeConfig.GatewayDhcpService.Pool == nil { + newDchpService.IsEnabled = true + } else { + newDchpService.IsEnabled = newEdgeConfig.GatewayDhcpService.IsEnabled + + for _, dhcpPoolService := range newEdgeConfig.GatewayDhcpService.Pool { + + // Kludgy IF to avoid deleting DNAT rules not created by us. + // If matches, let's skip it and continue the loop + // Note: a simple comparison of HREF fields may fail if one of them is + // from a tenant object and the other from a provider object. They may have the + // same ID but different paths. Using 'equalIds' we determine equality even with + // different paths + if equalIds(network.HREF, "", dhcpPoolService.Network.HREF) { + continue + } + + newDchpService.Pool = append(newDchpService.Pool, dhcpPoolService) + } + } + + for _, item := range dhcppool { + data := item.(map[string]interface{}) + + if data["default_lease_time"] == nil { + data["default_lease_time"] = 3600 + } + + if data["max_lease_time"] == nil { + data["max_lease_time"] = 7200 + } + + dhcpRule := &types.DhcpPoolService{ + IsEnabled: true, + Network: &types.Reference{ + HREF: network.HREF, + Name: network.Name, + }, + DefaultLeaseTime: data["default_lease_time"].(int), + MaxLeaseTime: data["max_lease_time"].(int), + LowIPAddress: data["start_address"].(string), + HighIPAddress: data["end_address"].(string), + } + newDchpService.Pool = append(newDchpService.Pool, dhcpRule) + } + + newRules := &types.EdgeGatewayServiceConfiguration{ + Xmlns: types.XMLNamespaceVCloud, + GatewayDhcpService: newDchpService, + } + + output, err := xml.MarshalIndent(newRules, " ", " ") + if err != nil { + return Task{}, fmt.Errorf("error reconfiguring Edge Gateway: %s", err) + } + + var resp *http.Response + for { + buffer := bytes.NewBufferString(xml.Header + string(output)) + + apiEndpoint := urlParseRequestURI(egw.EdgeGateway.HREF) + apiEndpoint.Path += "/action/configureServices" + + req := egw.client.NewRequest(map[string]string{}, http.MethodPost, *apiEndpoint, buffer) + util.Logger.Printf("[DEBUG] POSTING TO URL: %s", apiEndpoint.Path) + util.Logger.Printf("[DEBUG] XML TO SEND:\n%s", buffer) + + req.Header.Add("Content-Type", "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml") + + resp, err = checkResp(egw.client.Http.Do(req)) + if err != nil { + if reErrorBusy.MatchString(err.Error()) { + time.Sleep(3 * time.Second) + continue + } + return Task{}, fmt.Errorf("error reconfiguring Edge Gateway: %s", err) + } + break + } + + task := NewTask(egw.client) + + if err = decodeBody(types.BodyTypeXML, resp, task.Task); err != nil { + return Task{}, fmt.Errorf("error decoding Task response: %s", err) + } + + // The request was successful + return *task, nil + +} + +// Deprecated: use one of RemoveNATRuleAsync, RemoveNATRule +func (egw *EdgeGateway) RemoveNATMapping(natType, externalIP, internalIP, port string) (Task, error) { + return egw.RemoveNATPortMapping(natType, externalIP, port, internalIP, port) +} + +// Deprecated: use one of RemoveNATRuleAsync, RemoveNATRule +func (egw *EdgeGateway) RemoveNATPortMapping(natType, externalIP, externalPort, internalIP, internalPort string) (Task, error) { + // Find uplink interface + var uplink types.Reference + for _, gi := range egw.EdgeGateway.Configuration.GatewayInterfaces.GatewayInterface { + if gi.InterfaceType != "uplink" { + continue + } + uplink = *gi.Network + } + + newEdgeConfig := egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration + + // Take care of the NAT service + newNatService := &types.NatService{} + + newNatService.IsEnabled = newEdgeConfig.NatService.IsEnabled + newNatService.NatType = newEdgeConfig.NatService.NatType + newNatService.Policy = newEdgeConfig.NatService.Policy + newNatService.ExternalIP = newEdgeConfig.NatService.ExternalIP + + for _, natRule := range newEdgeConfig.NatService.NatRule { + + if natRule.RuleType == natType && + natRule.GatewayNatRule.OriginalIP == externalIP && + natRule.GatewayNatRule.OriginalPort == externalPort && + natRule.GatewayNatRule.Interface.HREF == uplink.HREF { + util.Logger.Printf("[DEBUG] REMOVING %s Rule: %#v", natRule.RuleType, natRule.GatewayNatRule) + continue + } + util.Logger.Printf("[DEBUG] KEEPING %s Rule: %#v", natRule.RuleType, natRule.GatewayNatRule) + newNatService.NatRule = append(newNatService.NatRule, natRule) + } + + newEdgeConfig.NatService = newNatService + + newRules := &types.EdgeGatewayServiceConfiguration{ + Xmlns: types.XMLNamespaceVCloud, + NatService: newNatService, + } + + apiEndpoint := urlParseRequestURI(egw.EdgeGateway.HREF) + apiEndpoint.Path += "/action/configureServices" + + // Return the task + return egw.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml", "error reconfiguring Edge Gateway: %s", newRules) + +} + +// RemoveNATRule removes NAT removes NAT rule identified by ID and handles task. Returns error if issues rise. +// Old functions RemoveNATPortMapping and RemoveNATMapping removed using rule details +// and expected interface to be of external network type. +func (egw *EdgeGateway) RemoveNATRule(id string) error { + task, err := egw.RemoveNATRuleAsync(id) + if err != nil { + return fmt.Errorf("error removing DNAT rule: %s", err) + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + return nil +} + +// RemoveNATRuleAsync removes NAT rule or returns an error. +// Old functions RemoveNATPortMapping and RemoveNATMapping removed using rule details +// and expected interface to be of external network type. +func (egw *EdgeGateway) RemoveNATRuleAsync(id string) (Task, error) { + if id == "" { + return Task{}, fmt.Errorf("provided id is empty") + } + + err := egw.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing edge gateway: %s", err) + } + + natServiceToUpdate := egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration.NatService + ruleIndex := -1 + if natServiceToUpdate != nil { + for n, existingNatRule := range natServiceToUpdate.NatRule { + if existingNatRule.ID == id { + ruleIndex = n + break + } + } + } else { + return Task{}, fmt.Errorf("edge gateway doesn't have NAT rules") + } + + if ruleIndex == -1 { + return Task{}, fmt.Errorf("edge gateway doesn't have rule with such ID") + } + + if len(natServiceToUpdate.NatRule) > 1 { + natServiceToUpdate.NatRule = append(natServiceToUpdate.NatRule[:ruleIndex], natServiceToUpdate.NatRule[ruleIndex+1:]...) + } else { + natServiceToUpdate.NatRule = nil + } + + newRules := &types.EdgeGatewayServiceConfiguration{ + Xmlns: types.XMLNamespaceVCloud, + NatService: natServiceToUpdate, + } + + egwConfigureHref := urlParseRequestURI(egw.EdgeGateway.HREF) + egwConfigureHref.Path += "/action/configureServices" + + // Return the task + return egw.client.ExecuteTaskRequest(egwConfigureHref.String(), http.MethodPost, + "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml", "error reconfiguring Edge Gateway: %s", newRules) +} + +// AddDNATRule creates DNAT rule and returns the NAT struct that was created or an error. +// Allows assigning a specific Org VDC or an external network. +// When edge gateway is advanced vCD API uses element to map with NSX edge gateway ID. A known issue is +// that updating rule using User interface resets and as result mapping is lost. +// Getting using NatRule.ID won't be valid anymore. +// Old functions AddNATPortMapping and AddNATMapping assigned rule only to first external network +func (egw *EdgeGateway) AddDNATRule(ruleDetails NatRule) (*types.NatRule, error) { + mappingId, err := getPseudoUuid() + if err != nil { + return nil, err + } + originalDescription := ruleDetails.Description + ruleDetails.Description = mappingId + + ruleDetails.NatType = "DNAT" + task, err := egw.AddNATRuleAsync(ruleDetails) + if err != nil { + return nil, fmt.Errorf("error creating DNAT rule: %s", err) + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + var createdNatRule *types.NatRule + + err = egw.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing edge gateway: %s", err) + } + + for _, natRule := range egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration.NatService.NatRule { + if natRule.Description == mappingId { + createdNatRule = natRule + break + } + } + + if createdNatRule == nil { + return nil, fmt.Errorf("error creating DNAT rule, didn't match created rule") + } + + createdNatRule.Description = originalDescription + + return egw.UpdateNatRule(createdNatRule) +} + +// AddSNATRule creates SNAT rule and returns created NAT rule or error. +// Allows assigning a specific Org VDC or an external network. +// Old functions AddNATPortMapping and AddNATMapping aren't correct as assigned rule only to first external network +func (egw *EdgeGateway) AddSNATRule(networkHref, externalIP, internalIP, description string) (*types.NatRule, error) { + + // As vCD API doesn't return rule ID we get it manually: + // * create rule with description which value is our generated ID + // * find rule which has description with our generated ID + // * get the real (vCD's) rule ID + // * update description with real value and return nat rule + + mappingId, err := getPseudoUuid() + if err != nil { + return nil, err + } + + task, err := egw.AddNATRuleAsync(NatRule{NetworkHref: networkHref, NatType: "SNAT", ExternalIP: externalIP, + ExternalPort: "any", InternalIP: internalIP, InternalPort: "any", + IcmpSubType: "", Protocol: "any", Description: mappingId}) + if err != nil { + return nil, fmt.Errorf("error creating SNAT rule: %s", err) + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + var createdNatRule *types.NatRule + + err = egw.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing edge gateway: %s", err) + } + + for _, natRule := range egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration.NatService.NatRule { + if natRule.Description == mappingId { + createdNatRule = natRule + break + } + } + + if createdNatRule == nil { + return nil, fmt.Errorf("error creating SNAT rule, didn't match created rule") + } + + createdNatRule.Description = description + + return egw.UpdateNatRule(createdNatRule) +} + +// getPseudoUuid creates unique ID/UUID +func getPseudoUuid() (string, error) { + + b := make([]byte, 16) + _, err := rand.Read(b) + if err != nil { + return "", err + } + + uuid := fmt.Sprintf("%X-%X-%X-%X-%X", b[0:4], b[4:6], b[6:8], b[8:10], b[10:]) + + return uuid, nil +} + +// UpdateNatRule updates NAT rule and handles task. Returns updated NAT rule or error. +func (egw *EdgeGateway) UpdateNatRule(natRule *types.NatRule) (*types.NatRule, error) { + task, err := egw.UpdateNatRuleAsync(natRule) + if err != nil { + return nil, fmt.Errorf("error updating NAT rule: %s", err) + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + return egw.GetNatRule(natRule.ID) +} + +// UpdateNatRuleAsync updates NAT rule and returns task or error. +func (egw *EdgeGateway) UpdateNatRuleAsync(natRule *types.NatRule) (Task, error) { + if natRule.GatewayNatRule.Protocol != "" && !isValidProtocol(natRule.GatewayNatRule.Protocol) { + return Task{}, fmt.Errorf("provided protocol is not one of TCP, UDP, TCPUDP, ICMP, ANY") + } + + if strings.ToUpper(natRule.GatewayNatRule.Protocol) == "ICMP" && !isValidIcmpSubType(natRule.GatewayNatRule.IcmpSubType) { + return Task{}, fmt.Errorf("provided icmp sub type is not correct") + } + + err := egw.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing edge gateway: %s", err) + } + + natServiceToUpdate := egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration.NatService + + if natServiceToUpdate != nil { + for n, existingNatRule := range natServiceToUpdate.NatRule { + if existingNatRule.ID == natRule.ID { + natServiceToUpdate.NatRule[n] = natRule + } + } + } else { + return Task{}, fmt.Errorf("edge gateway doesn't have such nat rule") + } + + newRules := &types.EdgeGatewayServiceConfiguration{ + Xmlns: types.XMLNamespaceVCloud, + NatService: natServiceToUpdate, + } + + egwConfigureHref := urlParseRequestURI(egw.EdgeGateway.HREF) + egwConfigureHref.Path += "/action/configureServices" + + // Return the task + return egw.client.ExecuteTaskRequest(egwConfigureHref.String(), http.MethodPost, + "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml", "error reconfiguring Edge Gateway: %s", newRules) +} + +// GetNatRule returns NAT rule or error. +func (egw *EdgeGateway) GetNatRule(id string) (*types.NatRule, error) { + err := egw.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing edge gateway: %s", err) + } + + if egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration.NatService != nil { + for _, natRule := range egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration.NatService.NatRule { + if natRule.ID == id { + return natRule, nil + } + } + } + + return nil, ErrorEntityNotFound +} + +// AddNATRuleAsync creates NAT rule and return task or err +// Allows assigning specific network Org VDC or external. Old function AddNATPortMapping and +// AddNATMapping function shouldn't be used because assigns rule to first external network +func (egw *EdgeGateway) AddNATRuleAsync(ruleDetails NatRule) (Task, error) { + if !isValidProtocol(ruleDetails.Protocol) { + return Task{}, fmt.Errorf("provided protocol is not one of TCP, UDP, TCPUDP, ICMP, ANY") + } + + if strings.ToUpper(ruleDetails.Protocol) == "ICMP" && !isValidIcmpSubType(ruleDetails.IcmpSubType) { + return Task{}, fmt.Errorf("provided icmp sub type is not correct") + } + + currentEdgeConfig := egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration + + // Take care of the NAT service + newNatService := &types.NatService{} + + if currentEdgeConfig.NatService == nil { + newNatService.IsEnabled = true + } else { + newNatService.IsEnabled = currentEdgeConfig.NatService.IsEnabled + newNatService.NatType = currentEdgeConfig.NatService.NatType + newNatService.Policy = currentEdgeConfig.NatService.Policy + newNatService.ExternalIP = currentEdgeConfig.NatService.ExternalIP + newNatService.NatRule = currentEdgeConfig.NatService.NatRule + } + + //construct new rule + natRule := &types.NatRule{ + RuleType: ruleDetails.NatType, + IsEnabled: takeBoolPointer(true), + Description: ruleDetails.Description, + GatewayNatRule: &types.GatewayNatRule{ + Interface: &types.Reference{ + HREF: ruleDetails.NetworkHref, + }, + OriginalIP: ruleDetails.ExternalIP, + OriginalPort: ruleDetails.ExternalPort, + TranslatedIP: ruleDetails.InternalIP, + TranslatedPort: ruleDetails.InternalPort, + Protocol: ruleDetails.Protocol, + IcmpSubType: ruleDetails.IcmpSubType, + }, + } + + newNatService.NatRule = append(newNatService.NatRule, natRule) + currentEdgeConfig.NatService = newNatService + newRules := &types.EdgeGatewayServiceConfiguration{ + Xmlns: types.XMLNamespaceVCloud, + NatService: newNatService, + } + + egwConfigureHref := urlParseRequestURI(egw.EdgeGateway.HREF) + egwConfigureHref.Path += "/action/configureServices" + + // Return the task + return egw.client.ExecuteTaskRequest(egwConfigureHref.String(), http.MethodPost, + "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml", "error reconfiguring Edge Gateway: %s", newRules) +} + +// Deprecated: Use eGW.AddSNATRule() or eGW.AddDNATRule() +func (egw *EdgeGateway) AddNATRule(network *types.OrgVDCNetwork, natType, externalIP, internalIP string) (Task, error) { + return egw.AddNATPortMappingWithUplink(network, natType, externalIP, "any", internalIP, "any", "any", "") +} + +// Deprecated: Use eGW.AddNATRule() +func (egw *EdgeGateway) AddNATMapping(natType, externalIP, internalIP string) (Task, error) { + return egw.AddNATPortMapping(natType, externalIP, "any", internalIP, "any", "any", "") +} + +// Deprecated: Use eGW.AddNATPortMappingWithUplink() +func (egw *EdgeGateway) AddNATPortMapping(natType, externalIP, externalPort, internalIP, internalPort, protocol, icmpSubType string) (Task, error) { + return egw.AddNATPortMappingWithUplink(nil, natType, externalIP, externalPort, internalIP, internalPort, protocol, icmpSubType) +} + +// Deprecated: creates not good behaviour of functionality +func (egw *EdgeGateway) getFirstUplink() types.Reference { + var uplink types.Reference + for _, gi := range egw.EdgeGateway.Configuration.GatewayInterfaces.GatewayInterface { + if gi.InterfaceType != "uplink" { + continue + } + uplink = *gi.Network + } + return uplink +} + +// Values are matched with VCD UI when creating DNAT for edge gateway. +func isValidProtocol(protocol string) bool { + switch strings.ToUpper(protocol) { + case + "TCP", + "UDP", + "TCPUDP", + "ICMP", + "ANY": + return true + } + return false +} + +// Used values are named here https://code.vmware.com/apis/287/vcloud#/doc/doc/types/GatewayNatRuleType.html +// Also can be matched in VCD UI when creating DNAT for edge gateway. +func isValidIcmpSubType(protocol string) bool { + switch strings.ToLower(protocol) { + case + "address-mask-request", + "address-mask-reply", + "destination-unreachable", + "echo-request", + "echo-reply", + "parameter-problem", + "redirect", + "router-advertisement", + "router-solicitation", + "source-quench", + "time-exceeded", + "timestamp-request", + "timestamp-reply", + "any": + return true + } + return false +} + +// Deprecated: Use eGW.AddDNATRule() or eGW.CreateNsxvNatRule() for NSX-V +func (egw *EdgeGateway) AddNATPortMappingWithUplink(network *types.OrgVDCNetwork, natType, externalIP, externalPort, internalIP, internalPort, protocol, icmpSubType string) (Task, error) { + // if a network is provided take it, otherwise find first uplink on the edge gateway + var uplinkRef string + + if network != nil { + uplinkRef = network.HREF + } else { + // TODO: remove when method used this removed + uplinkRef = egw.getFirstUplink().HREF + } + + if !isValidProtocol(protocol) { + return Task{}, fmt.Errorf("provided protocol is not one of TCP, UDP, TCPUDP, ICMP, ANY") + } + + if strings.ToUpper(protocol) == "ICMP" && !isValidIcmpSubType(icmpSubType) { + return Task{}, fmt.Errorf("provided icmp sub type is not correct") + } + + newEdgeConfig := egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration + + // Take care of the NAT service + newNatService := &types.NatService{} + + if newEdgeConfig.NatService == nil { + newNatService.IsEnabled = true + } else { + newNatService.IsEnabled = newEdgeConfig.NatService.IsEnabled + newNatService.NatType = newEdgeConfig.NatService.NatType + newNatService.Policy = newEdgeConfig.NatService.Policy + newNatService.ExternalIP = newEdgeConfig.NatService.ExternalIP + + for _, natRule := range newEdgeConfig.NatService.NatRule { + + // Kludgy IF to avoid deleting DNAT rules not created by us. + // If matches, let's skip it and continue the loop + if natRule.RuleType == natType && + natRule.GatewayNatRule.OriginalIP == externalIP && + natRule.GatewayNatRule.OriginalPort == externalPort && + natRule.GatewayNatRule.TranslatedIP == internalIP && + natRule.GatewayNatRule.TranslatedPort == internalPort && + natRule.GatewayNatRule.Interface.HREF == uplinkRef { + continue + } + + newNatService.NatRule = append(newNatService.NatRule, natRule) + } + } + + //add rule + natRule := &types.NatRule{ + RuleType: natType, + IsEnabled: takeBoolPointer(true), + GatewayNatRule: &types.GatewayNatRule{ + Interface: &types.Reference{ + HREF: uplinkRef, + }, + OriginalIP: externalIP, + OriginalPort: externalPort, + TranslatedIP: internalIP, + TranslatedPort: internalPort, + Protocol: protocol, + IcmpSubType: icmpSubType, + }, + } + newNatService.NatRule = append(newNatService.NatRule, natRule) + + newEdgeConfig.NatService = newNatService + + newRules := &types.EdgeGatewayServiceConfiguration{ + Xmlns: types.XMLNamespaceVCloud, + NatService: newNatService, + } + + apiEndpoint := urlParseRequestURI(egw.EdgeGateway.HREF) + apiEndpoint.Path += "/action/configureServices" + + // Return the task + return egw.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml", "error reconfiguring Edge Gateway: %s", newRules) +} + +func (egw *EdgeGateway) CreateFirewallRules(defaultAction string, rules []*types.FirewallRule) (Task, error) { + err := egw.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error: %s", err) + } + + newRules := &types.EdgeGatewayServiceConfiguration{ + Xmlns: types.XMLNamespaceVCloud, + FirewallService: &types.FirewallService{ + IsEnabled: true, + DefaultAction: defaultAction, + LogDefaultAction: true, + FirewallRule: rules, + }, + } + + output, err := xml.MarshalIndent(newRules, " ", " ") + if err != nil { + return Task{}, fmt.Errorf("error: %s", err) + } + + var resp *http.Response + for { + buffer := bytes.NewBufferString(xml.Header + string(output)) + + apiEndpoint := urlParseRequestURI(egw.EdgeGateway.HREF) + apiEndpoint.Path += "/action/configureServices" + + req := egw.client.NewRequest(map[string]string{}, http.MethodPost, *apiEndpoint, buffer) + util.Logger.Printf("[DEBUG] POSTING TO URL: %s", apiEndpoint.Path) + util.Logger.Printf("[DEBUG] XML TO SEND:\n%s", buffer) + + req.Header.Add("Content-Type", "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml") + + resp, err = checkResp(egw.client.Http.Do(req)) + if err != nil { + if reErrorBusy.MatchString(err.Error()) { + time.Sleep(3 * time.Second) + continue + } + return Task{}, fmt.Errorf("error reconfiguring Edge Gateway: %s", err) + } + break + } + + task := NewTask(egw.client) + + if err = decodeBody(types.BodyTypeXML, resp, task.Task); err != nil { + return Task{}, fmt.Errorf("error decoding Task response: %s", err) + } + + // The request was successful + return *task, nil +} + +func (egw *EdgeGateway) Refresh() error { + + if egw.EdgeGateway == nil { + return fmt.Errorf("cannot refresh, Object is empty") + } + + url := egw.EdgeGateway.HREF + + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + egw.EdgeGateway = &types.EdgeGateway{} + + _, err := egw.client.ExecuteRequest(url, http.MethodGet, + "", "error retrieving Edge Gateway: %s", nil, egw.EdgeGateway) + + return err +} + +func (egw *EdgeGateway) Remove1to1Mapping(internal, external string) (Task, error) { + + // Refresh EdgeGateway rules + err := egw.Refresh() + if err != nil { + fmt.Printf("error: %s\n", err) + } + + var uplinkif string + for _, gifs := range egw.EdgeGateway.Configuration.GatewayInterfaces.GatewayInterface { + if gifs.InterfaceType == "uplink" { + uplinkif = gifs.Network.HREF + } + } + + newEdgeConfig := egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration + + // Take care of the NAT service + newNatService := &types.NatService{} + + // Copy over the NAT configuration + newNatService.IsEnabled = newEdgeConfig.NatService.IsEnabled + newNatService.NatType = newEdgeConfig.NatService.NatType + newNatService.Policy = newEdgeConfig.NatService.Policy + newNatService.ExternalIP = newEdgeConfig.NatService.ExternalIP + + for i, natRule := range newEdgeConfig.NatService.NatRule { + + // Kludgy IF to avoid deleting DNAT rules not created by us. + // If matches, let's skip it and continue the loop + if natRule.RuleType == "DNAT" && + natRule.GatewayNatRule.OriginalIP == external && + natRule.GatewayNatRule.TranslatedIP == internal && + natRule.GatewayNatRule.OriginalPort == "any" && + natRule.GatewayNatRule.TranslatedPort == "any" && + natRule.GatewayNatRule.Protocol == "any" && + natRule.GatewayNatRule.Interface.HREF == uplinkif { + continue + } + + // Kludgy IF to avoid deleting SNAT rules not created by us. + // If matches, let's skip it and continue the loop + if natRule.RuleType == "SNAT" && + natRule.GatewayNatRule.OriginalIP == internal && + natRule.GatewayNatRule.TranslatedIP == external && + natRule.GatewayNatRule.Interface.HREF == uplinkif { + continue + } + + // If doesn't match the above IFs, it's something we need to preserve, + // let's add it to the new NatService struct + newNatService.NatRule = append(newNatService.NatRule, newEdgeConfig.NatService.NatRule[i]) + + } + + // Fill the new NatService Section + newEdgeConfig.NatService = newNatService + + // Take care of the Firewall service + newFwService := &types.FirewallService{} + + // Copy over the firewall configuration + newFwService.IsEnabled = newEdgeConfig.FirewallService.IsEnabled + newFwService.DefaultAction = newEdgeConfig.FirewallService.DefaultAction + newFwService.LogDefaultAction = newEdgeConfig.FirewallService.LogDefaultAction + + for i, firewallRule := range newEdgeConfig.FirewallService.FirewallRule { + + // Kludgy IF to avoid deleting inbound FW rules not created by us. + // If matches, let's skip it and continue the loop + if firewallRule.Policy == "allow" && + firewallRule.Protocols.Any && + firewallRule.DestinationPortRange == "Any" && + firewallRule.SourcePortRange == "Any" && + firewallRule.SourceIP == "Any" && + firewallRule.DestinationIP == external { + continue + } + + // Kludgy IF to avoid deleting outbound FW rules not created by us. + // If matches, let's skip it and continue the loop + if firewallRule.Policy == "allow" && + firewallRule.Protocols.Any && + firewallRule.DestinationPortRange == "Any" && + firewallRule.SourcePortRange == "Any" && + firewallRule.SourceIP == internal && + firewallRule.DestinationIP == "Any" { + continue + } + + // If doesn't match the above IFs, it's something we need to preserve, + // let's add it to the new FirewallService struct + newFwService.FirewallRule = append(newFwService.FirewallRule, newEdgeConfig.FirewallService.FirewallRule[i]) + + } + + // Fill the new FirewallService Section + newEdgeConfig.FirewallService = newFwService + + // Fix + newEdgeConfig.NatService.IsEnabled = true + + apiEndpoint := urlParseRequestURI(egw.EdgeGateway.HREF) + apiEndpoint.Path += "/action/configureServices" + + // Return the task + return egw.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml", "error reconfiguring Edge Gateway: %s", newEdgeConfig) + +} + +func (egw *EdgeGateway) Create1to1Mapping(internal, external, description string) (Task, error) { + + // Refresh EdgeGateway rules + err := egw.Refresh() + if err != nil { + fmt.Printf("error: %s\n", err) + } + + var uplinkif string + for _, gifs := range egw.EdgeGateway.Configuration.GatewayInterfaces.GatewayInterface { + if gifs.InterfaceType == "uplink" { + uplinkif = gifs.Network.HREF + } + } + + newEdgeConfig := egw.EdgeGateway.Configuration.EdgeGatewayServiceConfiguration + + snat := &types.NatRule{ + Description: description, + RuleType: "SNAT", + IsEnabled: takeBoolPointer(true), + GatewayNatRule: &types.GatewayNatRule{ + Interface: &types.Reference{ + HREF: uplinkif, + }, + OriginalIP: internal, + TranslatedIP: external, + Protocol: "any", + }, + } + + if newEdgeConfig.NatService == nil { + newEdgeConfig.NatService = &types.NatService{} + } + newEdgeConfig.NatService.NatRule = append(newEdgeConfig.NatService.NatRule, snat) + + dnat := &types.NatRule{ + Description: description, + RuleType: "DNAT", + IsEnabled: takeBoolPointer(true), + GatewayNatRule: &types.GatewayNatRule{ + Interface: &types.Reference{ + HREF: uplinkif, + }, + OriginalIP: external, + OriginalPort: "any", + TranslatedIP: internal, + TranslatedPort: "any", + Protocol: "any", + }, + } + + newEdgeConfig.NatService.NatRule = append(newEdgeConfig.NatService.NatRule, dnat) + + fwin := &types.FirewallRule{ + Description: description, + IsEnabled: true, + Policy: "allow", + Protocols: &types.FirewallRuleProtocols{ + Any: true, + }, + DestinationPortRange: "Any", + DestinationIP: external, + SourcePortRange: "Any", + SourceIP: "Any", + EnableLogging: false, + } + + newEdgeConfig.FirewallService.FirewallRule = append(newEdgeConfig.FirewallService.FirewallRule, fwin) + + fwout := &types.FirewallRule{ + Description: description, + IsEnabled: true, + Policy: "allow", + Protocols: &types.FirewallRuleProtocols{ + Any: true, + }, + DestinationPortRange: "Any", + DestinationIP: "Any", + SourcePortRange: "Any", + SourceIP: internal, + EnableLogging: false, + } + + newEdgeConfig.FirewallService.FirewallRule = append(newEdgeConfig.FirewallService.FirewallRule, fwout) + + apiEndpoint := urlParseRequestURI(egw.EdgeGateway.HREF) + apiEndpoint.Path += "/action/configureServices" + + // Return the task + return egw.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml", "error reconfiguring Edge Gateway: %s", newEdgeConfig) + +} + +func (egw *EdgeGateway) AddIpsecVPN(ipsecVPNConfig *types.EdgeGatewayServiceConfiguration) (Task, error) { + + err := egw.Refresh() + if err != nil { + fmt.Printf("error: %s\n", err) + } + + ipsecVPNConfig.Xmlns = types.XMLNamespaceVCloud + + apiEndpoint := urlParseRequestURI(egw.EdgeGateway.HREF) + apiEndpoint.Path += "/action/configureServices" + + // Return the task + return egw.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml", "error reconfiguring Edge Gateway: %s", ipsecVPNConfig) + +} + +// Removes an Edge Gateway VPN, by passing an empty configuration +func (egw *EdgeGateway) RemoveIpsecVPN() (Task, error) { + err := egw.Refresh() + if err != nil { + fmt.Printf("error: %s\n", err) + } + ipsecVPNConfig := &types.EdgeGatewayServiceConfiguration{ + Xmlns: types.XMLNamespaceVCloud, + GatewayIpsecVpnService: &types.GatewayIpsecVpnService{ + IsEnabled: false, + }, + } + return egw.AddIpsecVPN(ipsecVPNConfig) +} + +// Deletes the edge gateway, returning a task and an error with the operation result. +// https://code.vmware.com/apis/442/vcloud-director/doc/doc/operations/DELETE-EdgeGateway.html +func (egw *EdgeGateway) DeleteAsync(force bool, recursive bool) (Task, error) { + util.Logger.Printf("[TRACE] EdgeGateway.Delete - deleting edge gateway with force: %t, recursive: %t", force, recursive) + + if egw.EdgeGateway.HREF == "" { + return Task{}, fmt.Errorf("cannot delete, HREF is missing") + } + + egwUrl, err := url.ParseRequestURI(egw.EdgeGateway.HREF) + if err != nil { + return Task{}, fmt.Errorf("error parsing edge gateway url: %s", err) + } + + req := egw.client.NewRequest(map[string]string{ + "force": strconv.FormatBool(force), + "recursive": strconv.FormatBool(recursive), + }, http.MethodDelete, *egwUrl, nil) + resp, err := checkResp(egw.client.Http.Do(req)) + if err != nil { + return Task{}, fmt.Errorf("error deleting edge gateway: %s", err) + } + task := NewTask(egw.client) + if err = decodeBody(types.BodyTypeXML, resp, task.Task); err != nil { + return Task{}, fmt.Errorf("error decoding task response: %s", err) + } + return *task, err +} + +// Deletes the edge gateway, returning an error with the operation result. +// https://code.vmware.com/apis/442/vcloud-director/doc/doc/operations/DELETE-EdgeGateway.html +func (egw *EdgeGateway) Delete(force bool, recursive bool) error { + + task, err := egw.DeleteAsync(force, recursive) + if err != nil { + return err + } + if task.Task.Status == "error" { + return fmt.Errorf(combinedTaskErrorMessage(task.Task, fmt.Errorf("edge gateway not properly destroyed"))) + } + + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf(combinedTaskErrorMessage(task.Task, err)) + } + + return nil +} + +// GetNetworks returns the list of networks associated with an edge gateway +// In the return structure, an interfaceType of "uplink" indicates an external network, +// while "internal" is for Org VDC routed networks +func (egw *EdgeGateway) GetNetworks() ([]SimpleNetworkIdentifier, error) { + var networks []SimpleNetworkIdentifier + err := egw.Refresh() + if err != nil { + return networks, err + } + for _, net := range egw.EdgeGateway.Configuration.GatewayInterfaces.GatewayInterface { + netIdentifier := SimpleNetworkIdentifier{ + Name: net.Name, + InterfaceType: net.InterfaceType, + } + networks = append(networks, netIdentifier) + } + + return networks, nil +} + +// HasDefaultGateway returns true if the edge gateway uses one of the external +// networks as default gateway +func (egw *EdgeGateway) HasDefaultGateway() bool { + if egw.EdgeGateway.Configuration != nil && + egw.EdgeGateway.Configuration.GatewayInterfaces != nil { + for _, gw := range egw.EdgeGateway.Configuration.GatewayInterfaces.GatewayInterface { + // Check if the interface is used for default route + if gw.UseForDefaultRoute { + // Look for a specific subnet which is used as a default route + for _, subnetParticipation := range gw.SubnetParticipation { + if subnetParticipation.UseForDefaultRoute && + subnetParticipation.Gateway != "" && + subnetParticipation.Netmask != "" { + return true + } + } + } + } + } + return false +} + +// HasAdvancedNetworking returns true if the edge gateway has advanced network configuration enabled +func (egw *EdgeGateway) HasAdvancedNetworking() bool { + return egw.EdgeGateway.Configuration != nil && + egw.EdgeGateway.Configuration.AdvancedNetworkingEnabled != nil && + *egw.EdgeGateway.Configuration.AdvancedNetworkingEnabled +} + +// buildProxiedEdgeEndpointURL helps to get root endpoint for Edge Gateway using the +// NSX API Proxy and can append optionalSuffix which must have its own leading / +func (egw *EdgeGateway) buildProxiedEdgeEndpointURL(optionalSuffix string) (string, error) { + apiEndpoint, err := url.ParseRequestURI(egw.EdgeGateway.HREF) + if err != nil { + return "", fmt.Errorf("unable to process edge gateway URL: %s", err) + } + edgeID := strings.Split(egw.EdgeGateway.ID, ":") + if len(edgeID) != 4 { + return "", fmt.Errorf("unable to find edge gateway id: %s", egw.EdgeGateway.ID) + } + hostname := apiEndpoint.Scheme + "://" + apiEndpoint.Host + "/network/edges/" + edgeID[3] + + if optionalSuffix != "" { + return hostname + optionalSuffix, nil + } + + return hostname, nil +} + +// GetLBGeneralParams retrieves load balancer configuration of `&types.LoadBalancer` and can be used +// to access global configuration options. These are 4 fields only: +// LoadBalancer.Enabled, LoadBalancer.AccelerationEnabled, LoadBalancer.Logging.Enable, +// LoadBalancer.Logging.LogLevel +func (egw *EdgeGateway) GetLBGeneralParams() (*types.LbGeneralParamsWithXml, error) { + if !egw.HasAdvancedNetworking() { + return nil, fmt.Errorf("only advanced edge gateway supports load balancing") + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbConfigPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + loadBalancerConfig := &types.LbGeneralParamsWithXml{} + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to read load balancer configuration: %s", nil, loadBalancerConfig) + + if err != nil { + return nil, err + } + + return loadBalancerConfig, nil +} + +// UpdateLBGeneralParams allows to update global load balancer configuration. +// It accepts four fields (Enabled, AccelerationEnabled, Logging.Enable, Logging.LogLevel) and uses +// them to construct types.LbGeneralParamsWithXml without altering other options to prevent config +// corruption. +// They are represented in load balancer global configuration tab in the UI. +func (egw *EdgeGateway) UpdateLBGeneralParams(enabled, accelerationEnabled, loggingEnabled bool, logLevel string) (*types.LbGeneralParamsWithXml, error) { + if !egw.HasAdvancedNetworking() { + return nil, fmt.Errorf("only advanced edge gateway supports load balancing") + } + + if err := validateUpdateLBGeneralParams(logLevel); err != nil { + return nil, err + } + // Retrieve load balancer to work on latest configuration + currentLb, err := egw.GetLBGeneralParams() + if err != nil { + return nil, fmt.Errorf("unable to retrieve load balancer before update: %s", err) + } + + // Check if change is needed. If not - return early. + if currentLb.Logging != nil && + currentLb.Enabled == enabled && currentLb.AccelerationEnabled == accelerationEnabled && + currentLb.Logging.Enable == loggingEnabled && currentLb.Logging.LogLevel == logLevel { + return currentLb, nil + } + + // Modify only the global configuration settings + currentLb.Enabled = enabled + currentLb.AccelerationEnabled = accelerationEnabled + currentLb.Logging = &types.LbLogging{ + Enable: loggingEnabled, + LogLevel: logLevel, + } + // Omit the version as it is updated automatically with each put + currentLb.Version = "" + + // Push updated configuration + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbConfigPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + "error while updating load balancer config: %s", currentLb, &types.NSXError{}) + if err != nil { + return nil, err + } + + // Retrieve configuration after update + updatedLb, err := egw.GetLBGeneralParams() + if err != nil { + return nil, fmt.Errorf("unable to retrieve load balancer config after update: %s", err) + } + + return updatedLb, nil +} + +// GetFirewallConfig retrieves firewall configuration and can be used +// to alter master configuration options. These are 3 fields only: +// FirewallConfigWithXml.Enabled, FirewallConfigWithXml.DefaultPolicy.LoggingEnabled and +// FirewallConfigWithXml.DefaultPolicy.Action +func (egw *EdgeGateway) GetFirewallConfig() (*types.FirewallConfigWithXml, error) { + if !egw.HasAdvancedNetworking() { + return nil, fmt.Errorf("only advanced edge gateway support firewall configuration") + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeFirewallPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + firewallConfig := &types.FirewallConfigWithXml{} + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to read firewall configuration: %s", nil, firewallConfig) + + if err != nil { + return nil, err + } + + return firewallConfig, nil +} + +// UpdateFirewallConfig allows to update firewall configuration. +// It accepts three fields (Enabled, DefaultLoggingEnabled, DefaultAction) and uses +// them to construct types.FirewallConfigWithXml without altering other options to prevent config +// corruption. +// They are represented in firewall configuration page in the UI. +func (egw *EdgeGateway) UpdateFirewallConfig(enabled, defaultLoggingEnabled bool, defaultAction string) (*types.FirewallConfigWithXml, error) { + if !egw.HasAdvancedNetworking() { + return nil, fmt.Errorf("only advanced edge gateway supports load balancing") + } + + if defaultAction != "accept" && defaultAction != "deny" { + return nil, fmt.Errorf("default action must be either 'accept' or 'deny'") + } + + // Retrieve firewall latest configuration + currentFw, err := egw.GetFirewallConfig() + if err != nil { + return nil, fmt.Errorf("unable to retrieve firewall config before update: %s", err) + } + + // Check if change is needed. If not - return early. + if currentFw.Enabled == enabled && currentFw.DefaultPolicy.LoggingEnabled == defaultLoggingEnabled && + currentFw.DefaultPolicy.Action == defaultAction { + return currentFw, nil + } + + // Modify only the global configuration settings + currentFw.Enabled = enabled + currentFw.DefaultPolicy.LoggingEnabled = defaultLoggingEnabled + currentFw.DefaultPolicy.Action = defaultAction + + // Omit the version as it is updated automatically with each put + currentFw.Version = "" + + // Push updated configuration + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeFirewallPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + "error while updating firewall configuration : %s", currentFw, &types.NSXError{}) + if err != nil { + return nil, err + } + + // Retrieve configuration after update + updatedFw, err := egw.GetFirewallConfig() + if err != nil { + return nil, fmt.Errorf("unable to retrieve firewall after update: %s", err) + } + + return updatedFw, nil +} + +// validateUpdateLoadBalancer validates mandatory fields for global load balancer configuration +// settings +func validateUpdateLBGeneralParams(logLevel string) error { + if logLevel == "" { + return fmt.Errorf("field Logging.LogLevel must be set to update load balancer") + } + + return nil +} + +// getVdcNetworks retrieves a structure of type EdgeGatewayInterfaces which contains network +// interfaces available in Edge Gateway (uses "/vdcNetworks" endpoint) +func (egw *EdgeGateway) getVdcNetworks() (*types.EdgeGatewayInterfaces, error) { + if !egw.HasAdvancedNetworking() { + return nil, fmt.Errorf("only advanced edge gateway supports vNics") + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL("/vdcNetworks") + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + vnicConfig := &types.EdgeGatewayInterfaces{} + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to edge gateway vnic configuration: %s", nil, vnicConfig) + + if err != nil { + return nil, err + } + + return vnicConfig, nil +} + +// GetVnicIndexByNetworkNameAndType returns *int of vNic index for specified network name and network type +// networkType one of: 'internal', 'uplink', 'trunk', 'subinterface' +// networkName cannot be empty +func (egw *EdgeGateway) GetVnicIndexByNetworkNameAndType(networkName, networkType string) (*int, error) { + vnics, err := egw.getVdcNetworks() + if err != nil { + return nil, fmt.Errorf("cannot retrieve vNic configuration: %s", err) + } + return getVnicIndexByNetworkNameAndType(networkName, networkType, vnics) +} + +// GetAnyVnicIndexByNetworkName parses XML structure of vNic mapping to networks in edge gateway XML +// and returns *int of vNic index and network type by network name +// networkName cannot be empty +// networkType will be one of: 'internal', 'uplink', 'trunk', 'subinterface' +// +// Warning: this function assumes that there are no duplicate network names attached. If it is so +// this function will return the first network +func (egw *EdgeGateway) GetAnyVnicIndexByNetworkName(networkName string) (*int, string, error) { + vnics, err := egw.getVdcNetworks() + if err != nil { + return nil, "", fmt.Errorf("cannot retrieve vNic configuration: %s", err) + } + + var foundVnicIndex *int + var foundVnicType string + + possibleNicTypes := []string{types.EdgeGatewayVnicTypeUplink, types.EdgeGatewayVnicTypeInternal, + types.EdgeGatewayVnicTypeTrunk, types.EdgeGatewayVnicTypeSubinterface} + + for _, nicType := range possibleNicTypes { + vNicIndex, err := getVnicIndexByNetworkNameAndType(networkName, nicType, vnics) + if err == nil { // nil error means we have found nic + foundVnicIndex = vNicIndex + foundVnicType = nicType + break + } + } + + if foundVnicIndex == nil && foundVnicType == "" { + return nil, "", ErrorEntityNotFound + } + return foundVnicIndex, foundVnicType, nil +} + +// GetNetworkNameAndTypeByVnicIndex returns network name and network type for given vNic index +// returned networkType can be one of: 'internal', 'uplink', 'trunk', 'subinterface' +func (egw *EdgeGateway) GetNetworkNameAndTypeByVnicIndex(vNicIndex int) (string, string, error) { + vnics, err := egw.getVdcNetworks() + if err != nil { + return "", "", fmt.Errorf("cannot retrieve vNic configuration: %s", err) + } + return getNetworkNameAndTypeByVnicIndex(vNicIndex, vnics) +} + +// getVnicIndexByNetworkNameAndType is wrapped and used by public function GetVnicIndexByNetworkNameAndType +func getVnicIndexByNetworkNameAndType(networkName, networkType string, vnics *types.EdgeGatewayInterfaces) (*int, error) { + if networkName == "" { + return nil, fmt.Errorf("network name cannot be empty") + } + if networkType != types.EdgeGatewayVnicTypeUplink && + networkType != types.EdgeGatewayVnicTypeInternal && + networkType != types.EdgeGatewayVnicTypeTrunk && + networkType != types.EdgeGatewayVnicTypeSubinterface { + return nil, fmt.Errorf("networkType must be one of 'uplink', 'internal', 'trunk', 'subinterface'") + } + + var foundIndex *int + foundCount := 0 + + for _, vnic := range vnics.EdgeInterface { + // Look for matching portgroup name and network type. If the PortgroupName is not empty - + // check that it contains network name as well. + if vnic.Name == networkName && vnic.Type == networkType && + (vnic.PortgroupName == networkName || vnic.PortgroupName == "") { + foundIndex = vnic.Index + foundCount++ + } + } + + if foundCount > 1 { + return nil, fmt.Errorf("more than one (%d) networks of type '%s' with name '%s' found", + foundCount, networkType, networkName) + } + + if foundCount == 0 { + return nil, ErrorEntityNotFound + } + + return foundIndex, nil +} + +// getNetworkNameAndTypeByVnicIndex looks up network type and name in list of edge gateway interfaces +func getNetworkNameAndTypeByVnicIndex(vNicIndex int, vnics *types.EdgeGatewayInterfaces) (string, string, error) { + if vNicIndex < 0 { + return "", "", fmt.Errorf("vNic index cannot be negative") + } + + foundCount := 0 + var networkName, networkType string + + for _, vnic := range vnics.EdgeInterface { + if vnic.Index != nil && *vnic.Index == vNicIndex { + foundCount++ + networkName = vnic.Name + networkType = vnic.Type + } + } + + if foundCount > 1 { + return "", "", fmt.Errorf("more than one networks found for vNic %d", vNicIndex) + } + + if foundCount == 0 { + return "", "", ErrorEntityNotFound + } + + return networkName, networkType, nil +} + +// UpdateAsync updates the edge gateway in place with the information contained in the internal structure +func (egw *EdgeGateway) UpdateAsync() (Task, error) { + + egw.EdgeGateway.Xmlns = types.XMLNamespaceVCloud + egw.EdgeGateway.Configuration.Xmlns = types.XMLNamespaceVCloud + egw.EdgeGateway.Tasks = nil + + // Return the task + return egw.client.ExecuteTaskRequest(egw.EdgeGateway.HREF, http.MethodPut, + types.MimeEdgeGateway, "error updating Edge Gateway: %s", egw.EdgeGateway) +} + +// Update is a wrapper around UpdateAsync +// The pointer receiver is refreshed after update +func (egw *EdgeGateway) Update() error { + + task, err := egw.UpdateAsync() + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return err + } + return egw.Refresh() +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/ejecttask.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/ejecttask.go new file mode 100644 index 000000000..bde44e83c --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/ejecttask.go @@ -0,0 +1,92 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +type EjectTask struct { + *Task + vm *VM +} + +var timeBetweenRefresh = 3 * time.Second + +// Question Message from vCD API +const questionMessage = "Disconnect anyway and override the lock?" + +// Creates wrapped Task which is dedicated for eject media functionality and +// provides additional functionality to answer VM questions +func NewEjectTask(task *Task, vm *VM) *EjectTask { + return &EjectTask{ + task, + vm, + } +} + +// Checks the status of the task every 3 seconds and returns when the +// eject task is either completed or failed +func (ejectTask *EjectTask) WaitTaskCompletion(isAnswerYes bool) error { + return ejectTask.WaitInspectTaskCompletion(isAnswerYes, timeBetweenRefresh) +} + +// function which handles answers for ejecting +func (ejectTask *EjectTask) WaitInspectTaskCompletion(isAnswerYes bool, delay time.Duration) error { + + if ejectTask.Task == nil { + return fmt.Errorf("cannot refresh, Object is empty") + } + + for { + err := ejectTask.Refresh() + if err != nil { + return fmt.Errorf("error retrieving task: %s", err) + } + + // If task is not in a waiting status we're done, check if there's an error and return it. + if ejectTask.Task.Task.Status != "queued" && ejectTask.Task.Task.Status != "preRunning" && ejectTask.Task.Task.Status != "running" { + if ejectTask.Task.Task.Status == "error" { + return fmt.Errorf("task did not complete succesfully: %s", ejectTask.Task.Task.Error.Message) + } + return nil + } + + question, err := ejectTask.vm.GetQuestion() + if err != nil { + return fmt.Errorf("task did not complete succesfully: %s, quering question for VM failed: %s", ejectTask.Task.Task.Description, err.Error()) + } + + if question.QuestionId != "" && strings.Contains(question.Question, questionMessage) { + var choiceToUse *types.VmQuestionAnswerChoiceType + for _, choice := range question.Choices { + if isAnswerYes { + if strings.Contains(choice.Text, "yes") { + choiceToUse = choice + } + } else { + if strings.Contains(choice.Text, "no") { + choiceToUse = choice + } + } + } + + if choiceToUse != nil { + err = ejectTask.vm.AnswerQuestion(question.QuestionId, choiceToUse.Id) + if err != nil { + return fmt.Errorf("task did not complete succesfully: %s, answering question for eject in VM failed: %s", ejectTask.Task.Task.Description, err.Error()) + } + } + + } + + // Sleep for a given period and try again. + time.Sleep(delay) + } +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/entity.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/entity.go new file mode 100644 index 000000000..a885c4832 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/entity.go @@ -0,0 +1,71 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +type genericGetter func(string, bool) (interface{}, error) + +// getEntityByNameOrId finds a generic entity by Name Or ID +// On success, returns an empty interface representing a pointer to the structure and a nil error +// On failure, returns a nil pointer and an error +// Example usage: +// +// func (org *Org) GetCatalogByNameOrId(identifier string, refresh bool) (*Catalog, error) { +// getByName := func(name string, refresh bool) (interface{}, error) { +// return org.GetCatalogByName(name, refresh) +// } +// getById := func(id string, refresh bool) (interface{}, error) { +// return org.GetCatalogById(id, refresh) +// } +// entity, err := getEntityByNameOrId(getByName, getById, identifier, refresh) +// if entity != nil { +// return nil, err +// } +// return entity.(*Catalog), err +// } +func getEntityByNameOrId(getByName, getById genericGetter, identifier string, refresh bool) (interface{}, error) { + + var byNameErr, byIdErr error + var entity interface{} + + entity, byIdErr = getById(identifier, refresh) + if byIdErr == nil { + // Found by ID + return entity, nil + } + if IsNotFound(byIdErr) { + // Not found by ID, try by name + entity, byNameErr = getByName(identifier, false) + return entity, byNameErr + } else { + // On any other error, we return it + return nil, byIdErr + } +} + +// getEntityByNameOrIdSkipNonId is like getEntityByNameOrId, but it does not even attempt to lookup "ById" if the +// identifier does not look like URN or UUID +func getEntityByNameOrIdSkipNonId(getByName, getById genericGetter, identifier string, refresh bool) (interface{}, error) { + + var byNameErr, byIdErr error + var entity interface{} + + // Only check by Id if it is an ID or an URN + if isUrn(identifier) || IsUuid(identifier) { + entity, byIdErr = getById(identifier, refresh) + if byIdErr == nil { + // Found by ID + return entity, nil + } + } + + if IsNotFound(byIdErr) || byIdErr == nil { + // Not found by ID, try by name + entity, byNameErr = getByName(identifier, false) + return entity, byNameErr + } else { + // On any other error, we return it + return nil, byIdErr + } +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/extension.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/extension.go new file mode 100644 index 000000000..1995ebed4 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/extension.go @@ -0,0 +1,34 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "github.com/vmware/go-vcloud-director/v2/types/v56" + "net/http" +) + +// Deprecated: please use GetExternalNetwork function instead +func GetExternalNetworkByName(vcdClient *VCDClient, networkName string) (*types.ExternalNetworkReference, error) { + extNetworkRefs := &types.ExternalNetworkReferences{} + + extNetworkHREF, err := getExternalNetworkHref(&vcdClient.Client) + if err != nil { + return &types.ExternalNetworkReference{}, err + } + + _, err = vcdClient.Client.ExecuteRequest(extNetworkHREF, http.MethodGet, + "", "error retrieving external networks: %s", nil, extNetworkRefs) + if err != nil { + return &types.ExternalNetworkReference{}, err + } + + for _, netRef := range extNetworkRefs.ExternalNetworkReference { + if netRef.Name == networkName { + return netRef, nil + } + } + + return &types.ExternalNetworkReference{}, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/external_network_v2.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/external_network_v2.go new file mode 100644 index 000000000..89128eff1 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/external_network_v2.go @@ -0,0 +1,192 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// ExternalNetworkV2 is a type for version 2 of external network which uses OpenAPI endpoint to +// manage external networks of both types (NSX-V and NSX-T) +type ExternalNetworkV2 struct { + ExternalNetwork *types.ExternalNetworkV2 + client *Client +} + +// CreateExternalNetworkV2 creates a new external network using OpenAPI endpoint. It can create +// NSX-V and NSX-T backed networks based on what ExternalNetworkV2.NetworkBackings is +// provided. types.ExternalNetworkV2 has documented fields. +func CreateExternalNetworkV2(vcdClient *VCDClient, newExtNet *types.ExternalNetworkV2) (*ExternalNetworkV2, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointExternalNetworks + apiVersion, err := vcdClient.Client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := vcdClient.Client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnExtNet := &ExternalNetworkV2{ + ExternalNetwork: &types.ExternalNetworkV2{}, + client: &vcdClient.Client, + } + + err = vcdClient.Client.OpenApiPostItem(apiVersion, urlRef, nil, newExtNet, returnExtNet.ExternalNetwork, nil) + if err != nil { + return nil, fmt.Errorf("error creating external network: %s", err) + } + + return returnExtNet, nil +} + +// GetExternalNetworkV2ById retrieves external network by given ID using OpenAPI endpoint +func GetExternalNetworkV2ById(vcdClient *VCDClient, id string) (*ExternalNetworkV2, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointExternalNetworks + apiVersion, err := vcdClient.Client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty external network id") + } + + urlRef, err := vcdClient.Client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + extNet := &ExternalNetworkV2{ + ExternalNetwork: &types.ExternalNetworkV2{}, + client: &vcdClient.Client, + } + + err = vcdClient.Client.OpenApiGetItem(apiVersion, urlRef, nil, extNet.ExternalNetwork, nil) + if err != nil { + return nil, err + } + + return extNet, nil +} + +// GetExternalNetworkV2ByName retrieves external network by given name using OpenAPI endpoint. +// Returns an error if not exactly one network is found. +func GetExternalNetworkV2ByName(vcdClient *VCDClient, name string) (*ExternalNetworkV2, error) { + + if name == "" { + return nil, fmt.Errorf("name cannot be empty") + } + + queryParams := url.Values{} + queryParams.Add("filter", "name=="+name) + + res, err := GetAllExternalNetworksV2(vcdClient, queryParams) + if err != nil { + return nil, fmt.Errorf("could not find external network by name: %s", err) + } + + if len(res) == 0 { + return nil, fmt.Errorf("%s: expected exactly one external network with name '%s'. Got %d", ErrorEntityNotFound, name, len(res)) + } + + if len(res) > 1 { + return nil, fmt.Errorf("expected exactly one external network with name '%s'. Got %d", name, len(res)) + } + + return res[0], nil +} + +// GetAllExternalNetworksV2 retrieves all external networks using OpenAPI endpoint. Query parameters can be supplied to +// perform additional filtering +func GetAllExternalNetworksV2(vcdClient *VCDClient, queryParameters url.Values) ([]*ExternalNetworkV2, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointExternalNetworks + apiVersion, err := vcdClient.Client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := vcdClient.Client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.ExternalNetworkV2{{}} + err = vcdClient.Client.OpenApiGetAllItems(apiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into external network types with client + returnExtNetworks := make([]*ExternalNetworkV2, len(typeResponses)) + for sliceIndex := range typeResponses { + returnExtNetworks[sliceIndex] = &ExternalNetworkV2{ + ExternalNetwork: typeResponses[sliceIndex], + client: &vcdClient.Client, + } + } + + return returnExtNetworks, nil +} + +// Update updates existing external network using OpenAPI endpoint +func (extNet *ExternalNetworkV2) Update() (*ExternalNetworkV2, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointExternalNetworks + apiVersion, err := extNet.client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return nil, err + } + + if extNet.ExternalNetwork.ID == "" { + return nil, fmt.Errorf("cannot update external network without id") + } + + urlRef, err := extNet.client.OpenApiBuildEndpoint(endpoint, extNet.ExternalNetwork.ID) + if err != nil { + return nil, err + } + + returnExtNet := &ExternalNetworkV2{ + ExternalNetwork: &types.ExternalNetworkV2{}, + client: extNet.client, + } + + err = extNet.client.OpenApiPutItem(apiVersion, urlRef, nil, extNet.ExternalNetwork, returnExtNet.ExternalNetwork, nil) + if err != nil { + return nil, fmt.Errorf("error updating external network: %s", err) + } + + return returnExtNet, nil +} + +// Delete deletes external network using OpenAPI endpoint +func (extNet *ExternalNetworkV2) Delete() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointExternalNetworks + apiVersion, err := extNet.client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return err + } + + if extNet.ExternalNetwork.ID == "" { + return fmt.Errorf("cannot delete external network without id") + } + + urlRef, err := extNet.client.OpenApiBuildEndpoint(endpoint, extNet.ExternalNetwork.ID) + if err != nil { + return err + } + + err = extNet.client.OpenApiDeleteItem(apiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting extNet: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/externalnetwork.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/externalnetwork.go new file mode 100644 index 000000000..9e28cacc3 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/externalnetwork.go @@ -0,0 +1,83 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" + "net/http" +) + +type ExternalNetwork struct { + ExternalNetwork *types.ExternalNetwork + client *Client +} + +func NewExternalNetwork(cli *Client) *ExternalNetwork { + return &ExternalNetwork{ + ExternalNetwork: new(types.ExternalNetwork), + client: cli, + } +} + +func getExternalNetworkHref(client *Client) (string, error) { + extensions, err := getExtension(client) + if err != nil { + return "", err + } + + for _, extensionLink := range extensions.Link { + if extensionLink.Type == "application/vnd.vmware.admin.vmwExternalNetworkReferences+xml" { + return extensionLink.HREF, nil + } + } + + return "", errors.New("external network link wasn't found") +} + +func (externalNetwork ExternalNetwork) Refresh() error { + + if !externalNetwork.client.IsSysAdmin { + return fmt.Errorf("functionality requires System Administrator privileges") + } + + _, err := externalNetwork.client.ExecuteRequest(externalNetwork.ExternalNetwork.HREF, http.MethodGet, + "", "error refreshing external network: %s", nil, externalNetwork.ExternalNetwork) + + return err +} + +func validateExternalNetwork(externalNetwork *types.ExternalNetwork) error { + if externalNetwork.Name == "" { + return errors.New("external Network missing required field: Name") + } + return nil +} + +func (externalNetwork *ExternalNetwork) Delete() (Task, error) { + util.Logger.Printf("[TRACE] ExternalNetwork.Delete") + + if !externalNetwork.client.IsSysAdmin { + return Task{}, fmt.Errorf("functionality requires System Administrator privileges") + } + + // Return the task + return externalNetwork.client.ExecuteTaskRequest(externalNetwork.ExternalNetwork.HREF, http.MethodDelete, + "", "error deleting external network: %s", nil) +} + +func (externalNetwork *ExternalNetwork) DeleteWait() error { + task, err := externalNetwork.Delete() + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("couldn't finish removing external network %#v", err) + } + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_condition.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_condition.go new file mode 100644 index 000000000..ac9e0861c --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_condition.go @@ -0,0 +1,186 @@ +package govcd + +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +import ( + "fmt" + "regexp" + + "github.com/kr/pretty" +) + +// A conditionDef is the data being carried by the filter engine when performing comparisons +type conditionDef struct { + conditionType string // it's one of SupportedFilters + stored interface{} // Any value as handled by the filter being used +} + +// A dateCondition can evaluate a date expression +type dateCondition struct { + dateExpression string +} + +// A regexpCondition is a generic filter that is the basis for other filters that require a regular expression +type regexpCondition struct { + regExpression *regexp.Regexp +} + +// an ipCondition is a condition that compares an IP using a regexp +type ipCondition regexpCondition + +// a nameCondition is a condition that compares a name using a regexp +type nameCondition regexpCondition + +// a metadataRegexpCondition compares the values corresponding to the given key using a regexp +type metadataRegexpCondition struct { + key string + regExpression *regexp.Regexp +} + +// a parentCondition compares the entity parent name with the one stored +type parentCondition struct { + parentName string +} + +// a parentIdCondition compares the entity parent ID with the one stored +type parentIdCondition struct { + parentId string +} + +// matchParent matches the wanted parent name (passed in 'stored') to the parent of the queryItem +// Input: +// * stored: the data of the condition (a parentCondition) +// * item: a QueryItem +// Returns: +// * bool: the result of the comparison +// * string: a description of the operation +// * error: an error when the input is not as expected +func matchParent(stored, item interface{}) (bool, string, error) { + condition, ok := stored.(parentCondition) + if !ok { + return false, "", fmt.Errorf("stored value is not a Parent condition (%# v)", pretty.Formatter(stored)) + } + queryItem, ok := item.(QueryItem) + if !ok { + return false, "", fmt.Errorf("item is not a queryItem searchable by parent: %# v", pretty.Formatter(item)) + } + parent := queryItem.GetParentName() + + return condition.parentName == parent, fmt.Sprintf("%s == %s", condition.parentName, queryItem.GetParentName()), nil +} + +// matchParentId matches the wanted parent ID (passed in 'stored') to the parent ID of the queryItem +// The IDs being compared are filtered through extractUuid, to make them homogeneous +// Input: +// * stored: the data of the condition (a parentCondition) +// * item: a QueryItem +// Returns: +// * bool: the result of the comparison +// * string: a description of the operation +// * error: an error when the input is not as expected +func matchParentId(stored, item interface{}) (bool, string, error) { + condition, ok := stored.(parentIdCondition) + if !ok { + return false, "", fmt.Errorf("stored value is not a parent ID condition (%# v)", pretty.Formatter(stored)) + } + queryItem, ok := item.(QueryItem) + if !ok { + return false, "", fmt.Errorf("item is not a queryItem searchable by parent ID: %# v", pretty.Formatter(item)) + } + parentId := queryItem.GetParentId() + parentId = extractUuid(parentId) + condition.parentId = extractUuid(condition.parentId) + + return condition.parentId == parentId, fmt.Sprintf("%s =~ %s", condition.parentId, parentId), nil +} + +// matchName matches a name (passed in 'stored') to the name of the queryItem +// Input: +// * stored: the data of the condition (a nameCondition) +// * item: a QueryItem +// Returns: +// * bool: the result of the comparison +// * string: a description of the operation +// * error: an error when the input is not as expected +func matchName(stored, item interface{}) (bool, string, error) { + re, ok := stored.(nameCondition) + if !ok { + return false, "", fmt.Errorf("stored value is not a Name Regexp (%# v)", pretty.Formatter(stored)) + } + queryItem, ok := item.(QueryItem) + if !ok { + return false, "", fmt.Errorf("item is not a queryItem searchable by regex: %# v", pretty.Formatter(item)) + } + return re.regExpression.MatchString(queryItem.GetName()), fmt.Sprintf("%s =~ %s", re.regExpression.String(), queryItem.GetName()), nil +} + +// matchIp matches an IP (passed in 'stored') to the IP of the queryItem +// Input: +// * stored: the data of the condition (an ipCondition) +// * item: a QueryItem +// Returns: +// * bool: the result of the comparison +// * string: a description of the operation +// * error: an error when the input is not as expected +func matchIp(stored, item interface{}) (bool, string, error) { + re, ok := stored.(ipCondition) + if !ok { + return false, "", fmt.Errorf("stored value is not a Condition Regexp (%# v)", pretty.Formatter(stored)) + } + queryItem, ok := item.(QueryItem) + if !ok { + return false, "", fmt.Errorf("item is not a queryItem searchable by Ip: %# v", pretty.Formatter(item)) + } + ip := queryItem.GetIp() + if ip == "" { + return false, "", fmt.Errorf("%s %s doesn't have an IP", queryItem.GetType(), queryItem.GetName()) + } + return re.regExpression.MatchString(ip), fmt.Sprintf("%s =~ %s", re.regExpression.String(), queryItem.GetIp()), nil +} + +// matchDate matches a date (passed in 'stored') to the date of the queryItem +// Input: +// * stored: the data of the condition (a dateCondition) +// * item: a QueryItem +// Returns: +// * bool: the result of the comparison +// * string: a description of the operation +// * error: an error when the input is not as expected +func matchDate(stored, item interface{}) (bool, string, error) { + expr, ok := stored.(dateCondition) + if !ok { + return false, "", fmt.Errorf("stored value is not a condition date (%# v)", pretty.Formatter(stored)) + } + queryItem, ok := item.(QueryItem) + if !ok { + return false, "", fmt.Errorf("item is not a queryItem searchable by date: %# v", pretty.Formatter(item)) + } + if queryItem.GetDate() == "" { + return false, "", nil + } + + result, err := compareDate(expr.dateExpression, queryItem.GetDate()) + return result, fmt.Sprintf("%s %s", queryItem.GetDate(), expr.dateExpression), err +} + +// matchMetadata matches a value (passed in 'stored') to the metadata value retrieved from queryItem +// Input: +// * stored: the data of the condition (a metadataRegexpCondition) +// * item: a QueryItem +// Returns: +// * bool: the result of the comparison +// * string: a description of the operation +// * error: an error when the input is not as expected +func matchMetadata(stored, item interface{}) (bool, string, error) { + re, ok := stored.(metadataRegexpCondition) + if !ok { + return false, "", fmt.Errorf("stored value is not a Metadata condition (%# v)", pretty.Formatter(stored)) + } + queryItem, ok := item.(QueryItem) + if !ok { + return false, "", fmt.Errorf("item is not a queryItem searchable by Metadata: %# v", pretty.Formatter(item)) + } + return re.regExpression.MatchString(queryItem.GetMetadataValue(re.key)), fmt.Sprintf("metadata: %s -> %s", re.key, re.regExpression.String()), nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_engine.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_engine.go new file mode 100644 index 000000000..d091acfee --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_engine.go @@ -0,0 +1,388 @@ +package govcd + +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +import ( + "fmt" + "os" + "regexp" + "strings" + "time" + + "github.com/kr/pretty" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type queryWithMetadataFunc func(queryType string, params, notEncodedParams map[string]string, + metadataFields []string, isSystem bool) (Results, error) + +type queryByMetadataFunc func(queryType string, params, notEncodedParams map[string]string, + metadataFilters map[string]MetadataFilter, isSystem bool) (Results, error) + +type resultsConverterFunc func(queryType string, results Results) ([]QueryItem, error) + +// searchByFilter is a generic filter that can operate on entities that implement the QueryItem interface +// It requires a queryType and a set of criteria. +// Returns a list of QueryItem interface elements, which can be cast back to the wanted real type +// Also returns a human readable text of the conditions being passed and how they matched the data found +func searchByFilter(queryByMetadata queryByMetadataFunc, queryWithMetadataFields queryWithMetadataFunc, + converter resultsConverterFunc, queryType string, criteria *FilterDef) ([]QueryItem, string, error) { + + // Set of conditions to be evaluated (will be filled from criteria) + var conditions []conditionDef + // List of candidate items that match all conditions + var candidatesByConditions []QueryItem + + // List of metadata fields that will be added to the query + var metadataFields []string + + // If set, metadata fields will be passed as 'metadata@SYSTEM:fieldName' + var isSystem bool + var params = make(map[string]string) + + // Will search the latest item if requested + searchLatest := false + // Will search the earliest item if requested + searchEarliest := false + + // A null filter is converted into an empty object. + // Using an empty filter is equivalent to fetching all items without filtering + if criteria == nil { + criteria = &FilterDef{} + } + + // A text containing the human-readable form of the criteria being used, and the detail on how they matched the + // data being fetched + explanation := conditionText(criteria) + + // A collection of matching information for the conditions being applied + var matches []matchResult + + // Parse criteria and build the condition list + for key, value := range criteria.Filters { + // Empty values could be leftovers from the criteria build-up prior to calling this function + if value == "" { + continue + } + switch key { + case types.FilterNameRegex: + re, err := regexp.Compile(value) + if err != nil { + return nil, explanation, fmt.Errorf("error compiling regular expression '%s' : %s ", value, err) + } + conditions = append(conditions, conditionDef{key, nameCondition{re}}) + case types.FilterDate: + conditions = append(conditions, conditionDef{key, dateCondition{value}}) + case types.FilterIp: + re, err := regexp.Compile(value) + if err != nil { + return nil, explanation, fmt.Errorf("error compiling regular expression '%s' : %s ", value, err) + } + conditions = append(conditions, conditionDef{key, ipCondition{re}}) + case types.FilterParent: + conditions = append(conditions, conditionDef{key, parentCondition{value}}) + case types.FilterParentId: + conditions = append(conditions, conditionDef{key, parentIdCondition{value}}) + + case types.FilterLatest: + searchLatest = stringToBool(value) + + case types.FilterEarliest: + searchEarliest = stringToBool(value) + + default: + return nil, explanation, fmt.Errorf("[SearchByFilter] filter '%s' not supported (only allowed %v)", key, supportedFilters) + } + } + + // We can't allow the search for both the oldest and the newest item + if searchEarliest && searchLatest { + return nil, explanation, fmt.Errorf("only one of '%s' or '%s' can be used for a set of criteria", types.FilterEarliest, types.FilterLatest) + } + + var metadataFilter = make(map[string]MetadataFilter) + // Fill metadata filters + if len(criteria.Metadata) > 0 { + for _, cond := range criteria.Metadata { + k := cond.Key + v := cond.Value + isSystem = cond.IsSystem + if k == "" { + return nil, explanation, fmt.Errorf("metadata condition without key detected") + } + if v == "" { + return nil, explanation, fmt.Errorf("empty value for metadata condition with key '%s'", k) + } + + // If we use the metadata search through the API, we must make sure that the type is set + if criteria.UseMetadataApiFilter { + if cond.Type == "" || strings.EqualFold(cond.Type, "none") { + return nil, explanation, fmt.Errorf("requested search by metadata field '%s' must provide a valid type", cond.Key) + } + + // The type must be one of the expected values + err := validateMetadataType(cond.Type) + if err != nil { + return nil, explanation, fmt.Errorf("type '%s' for metadata field '%s' is invalid. :%s", cond.Type, cond.Key, err) + } + metadataFilter[cond.Key] = MetadataFilter{ + Type: cond.Type, + Value: fmt.Sprintf("%v", cond.Value), + } + } + + // If we don't use metadata search via the API, we add the field to the list, and + // also add a condition, using regular expressions + if !criteria.UseMetadataApiFilter { + metadataFields = append(metadataFields, k) + re, err := regexp.Compile(v.(string)) + if err != nil { + return nil, explanation, fmt.Errorf("error compiling regular expression '%s' : %s ", v, err) + } + conditions = append(conditions, conditionDef{"metadata", metadataRegexpCondition{k, re}}) + } + } + } else { + criteria.UseMetadataApiFilter = false + } + + var itemResult Results + var err error + + if criteria.UseMetadataApiFilter { + // This result will not include metadata fields. The query will use metadata parameters to restrict the search + itemResult, err = queryByMetadata(queryType, nil, params, metadataFilter, isSystem) + } else { + // This result includes metadata fields, if they exist. + itemResult, err = queryWithMetadataFields(queryType, nil, params, metadataFields, isSystem) + } + + if err != nil { + return nil, explanation, fmt.Errorf("[SearchByFilter] error retrieving query item list: %s", err) + } + if dataInspectionRequested("QE1") { + util.Logger.Printf("[INSPECT-QE1-SearchByFilter] list of retrieved items %# v\n", pretty.Formatter(itemResult.Results)) + } + var itemList []QueryItem + + // Converting the query result into a list of QueryItems + itemList, err = converter(queryType, itemResult) + if err != nil { + return nil, explanation, fmt.Errorf("[SearchByFilter] error converting QueryItem item list: %s", err) + } + if dataInspectionRequested("QE2") { + util.Logger.Printf("[INSPECT-QE2-SearchByFilter] list of converted items %# v\n", pretty.Formatter(itemList)) + } + + // Process the list using the conditions gathered above + for _, item := range itemList { + numOfMatches := 0 + + for _, condition := range conditions { + + if dataInspectionRequested("QE3") { + util.Logger.Printf("[INSPECT-QE3-SearchByFilter]\ncondition %# v\nitem %# v\n", pretty.Formatter(condition), pretty.Formatter(item)) + } + result, definition, err := conditionMatches(condition.conditionType, condition.stored, item) + if err != nil { + return nil, explanation, fmt.Errorf("[SearchByFilter] error applying condition %v: %s", condition, err) + } + + // Saves matching information, which will be consolidated in the final explanation text + matches = append(matches, matchResult{ + Name: item.GetName(), + Type: condition.conditionType, + Definition: definition, + Result: result, + }) + if !result { + continue + } + + numOfMatches++ + } + if numOfMatches == len(conditions) { + // All conditions were met + candidatesByConditions = append(candidatesByConditions, item) + } + } + + // Consolidates the explanation with information about which conditions did actually match + matchesText := matchesToText(matches) + explanation += fmt.Sprintf("\n%s", matchesText) + util.Logger.Printf("[SearchByFilter] conditions matching\n%s", explanation) + + // Once all the conditions have been evaluated, we check whether we got any items left. + // + // We consider an empty result to be a valid one: it's up to the caller to evaluate the result + // and eventually use the explanation to provide an error message + if len(candidatesByConditions) == 0 { + return nil, explanation, nil + } + + // If we have only one item, there is no reason to search further for the newest or oldest item + if len(candidatesByConditions) == 1 { + return candidatesByConditions, explanation, nil + } + var emptyDatesFound []string + if searchLatest { + // By setting the latest date to the early possible date, we make sure that it will be swapped + // at the first comparison + var latestDate = "1970-01-01 00:00:00" + // item with the latest date among the candidates + var candidateByLatest QueryItem + for _, candidate := range candidatesByConditions { + itemDate := candidate.GetDate() + if itemDate == "" { + emptyDatesFound = append(emptyDatesFound, candidate.GetName()) + continue + } + util.Logger.Printf("[SearchByFilter] search latest: comparing %s to %s", latestDate, itemDate) + greater, err := compareDate(fmt.Sprintf("> %s", latestDate), itemDate) + if err != nil { + return nil, explanation, fmt.Errorf("[SearchByFilter] error comparing dates %s > %s : %s", + candidate.GetDate(), latestDate, err) + } + util.Logger.Printf("[SearchByFilter] result %v: ", greater) + if greater { + latestDate = candidate.GetDate() + candidateByLatest = candidate + } + } + if candidateByLatest != nil { + explanation += "\nlatest item found" + return []QueryItem{candidateByLatest}, explanation, nil + } else { + return nil, explanation, fmt.Errorf("search for newest item failed. Empty dates found for items %v", emptyDatesFound) + } + } + if searchEarliest { + // earliest date is set to a date in the future (10 years from now), so that any date found will be evaluated as + // earlier than this one + var earliestDate = time.Now().AddDate(10, 0, 0).String() + // item with the earliest date among the candidates + var candidateByEarliest QueryItem + for _, candidate := range candidatesByConditions { + itemDate := candidate.GetDate() + if itemDate == "" { + emptyDatesFound = append(emptyDatesFound, candidate.GetName()) + continue + } + util.Logger.Printf("[SearchByFilter] search earliest: comparing %s to %s", earliestDate, candidate.GetDate()) + greater, err := compareDate(fmt.Sprintf("< %s", earliestDate), candidate.GetDate()) + if err != nil { + return nil, explanation, fmt.Errorf("[SearchByFilter] error comparing dates %s > %s: %s", + candidate.GetDate(), earliestDate, err) + } + util.Logger.Printf("[SearchByFilter] result %v: ", greater) + if greater { + earliestDate = candidate.GetDate() + candidateByEarliest = candidate + } + } + if candidateByEarliest != nil { + explanation += "\nearliest item found" + return []QueryItem{candidateByEarliest}, explanation, nil + } else { + return nil, explanation, fmt.Errorf("search for oldest item failed. Empty dates found for items %v", emptyDatesFound) + } + } + return candidatesByConditions, explanation, nil +} + +// conditionMatches performs the appropriate condition evaluation, +// depending on conditionType +func conditionMatches(conditionType string, stored, item interface{}) (bool, string, error) { + switch conditionType { + case types.FilterNameRegex: + return matchName(stored, item) + case types.FilterDate: + return matchDate(stored, item) + case types.FilterIp: + return matchIp(stored, item) + case types.FilterParent: + return matchParent(stored, item) + case types.FilterParentId: + return matchParentId(stored, item) + case "metadata": + return matchMetadata(stored, item) + } + return false, "", fmt.Errorf("unsupported condition type '%s'", conditionType) +} + +// SearchByFilter is a generic filter that can operate on entities that implement the QueryItem interface +// It requires a queryType and a set of criteria. +// Returns a list of QueryItem interface elements, which can be cast back to the wanted real type +// Also returns a human readable text of the conditions being passed and how they matched the data found +// See "## Query engine" in CODING_GUIDELINES.md for more info +func (client *Client) SearchByFilter(queryType string, criteria *FilterDef) ([]QueryItem, string, error) { + return searchByFilter(client.queryByMetadataFilter, client.queryWithMetadataFields, resultToQueryItems, queryType, criteria) +} + +// SearchByFilter runs the search for a specific catalog +// The 'parentField' argument defines which filter will be added, depending on the items we search for: +// - 'catalog' contains the catalog HREF or ID +// - 'catalogName' contains the catalog name +func (catalog *Catalog) SearchByFilter(queryType, parentField string, criteria *FilterDef) ([]QueryItem, string, error) { + var err error + switch parentField { + case "catalog": + err = criteria.AddFilter(types.FilterParentId, catalog.Catalog.ID) + case "catalogName": + err = criteria.AddFilter(types.FilterParent, catalog.Catalog.Name) + default: + return nil, "", fmt.Errorf("unrecognized filter field '%s'", parentField) + } + if err != nil { + return nil, "", fmt.Errorf("error setting parent filter for catalog %s with fieldName '%s'", catalog.Catalog.Name, parentField) + } + return catalog.client.SearchByFilter(queryType, criteria) +} + +// SearchByFilter runs the search for a specific VDC +// The 'parentField' argument defines which filter will be added, depending on the items we search for: +// - 'vdc' contains the VDC HREF or ID +// - 'vdcName' contains the VDC name +func (vdc *Vdc) SearchByFilter(queryType, parentField string, criteria *FilterDef) ([]QueryItem, string, error) { + var err error + switch parentField { + case "vdc": + err = criteria.AddFilter(types.FilterParentId, vdc.Vdc.ID) + case "vdcName": + err = criteria.AddFilter(types.FilterParent, vdc.Vdc.Name) + default: + return nil, "", fmt.Errorf("unrecognized filter field '%s'", parentField) + } + if err != nil { + return nil, "", fmt.Errorf("error setting parent filter for VDC %s with fieldName '%s'", vdc.Vdc.Name, parentField) + } + return vdc.client.SearchByFilter(queryType, criteria) +} + +// SearchByFilter runs the search for a specific Org +func (org *AdminOrg) SearchByFilter(queryType string, criteria *FilterDef) ([]QueryItem, string, error) { + err := criteria.AddFilter(types.FilterParent, org.AdminOrg.Name) + if err != nil { + return nil, "", fmt.Errorf("error setting parent filter for Org %s with fieldName 'orgName'", org.AdminOrg.Name) + } + return org.client.SearchByFilter(queryType, criteria) +} + +// SearchByFilter runs the search for a specific Org +func (org *Org) SearchByFilter(queryType string, criteria *FilterDef) ([]QueryItem, string, error) { + err := criteria.AddFilter(types.FilterParent, org.Org.Name) + if err != nil { + return nil, "", fmt.Errorf("error setting parent filter for Org %s with fieldName 'orgName'", org.Org.Name) + } + return org.client.SearchByFilter(queryType, criteria) +} + +// dataInspectionRequested checks if the given code was found in the inspection environment variable. +func dataInspectionRequested(code string) bool { + govcdInspect := os.Getenv("GOVCD_INSPECT") + return strings.Contains(govcdInspect, code) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_helpers.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_helpers.go new file mode 100644 index 000000000..93c764055 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_helpers.go @@ -0,0 +1,541 @@ +package govcd + +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +import ( + "fmt" + "os" + "regexp" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// This file contains functions that help create tests for filtering. +// It is not in the '*_test.go' namespace because we want to use these functions from tests in other packages. +// All exported functions from this file have the prefix "Helper" +// +// Moreover, this file is not in a separate package for the following reasons: +// * getExistingMedia is private +// * getMetadata is private +// * the 'client' component in all entity objects is private +// * the tests that are now in filter_engine_test.go would need to go in a separate package, with consequent +// need for configuration file parser duplication. + +type StringMap map[string]string + +type DateItem struct { + Name string + Date string + Entity interface{} + EntityType string +} + +// FilterMatch contains a filter, the name of the item that is expected to match, and the item itself +type FilterMatch struct { + Criteria *FilterDef + ExpectedName string + Entity interface{} + EntityType string +} + +type VappTemplateData struct { + Name string + ItemCreationDate string + VappTemplateCreationDate string + Metadata StringMap + Created bool +} + +// retrievedMetadataTypes maps the internal value of metadata type with the +// string needed when searching for a metadata field in the API +var retrievedMetadataTypes = map[string]string{ + "MetadataBooleanValue": "BOOLEAN", + "MetadataStringValue": "STRING", + "MetadataNumberValue": "NUMBER", + "MetadataDateTimeValue": "STRING", // values for DATETIME can't be passed as such in a query when the date contains colons. +} + +// HelperMakeFiltersFromEdgeGateways looks at the existing edge gateways and creates a set of criteria to retrieve each of them +func HelperMakeFiltersFromEdgeGateways(vdc *Vdc) ([]FilterMatch, error) { + egwList, err := vdc.QueryEdgeGatewayList() + if err != nil { + return nil, err + } + + if len(egwList) == 0 { + return []FilterMatch{}, nil + } + var filters = make([]FilterMatch, len(egwList)) + for i, egw := range egwList { + + filter := NewFilterDef() + err = filter.AddFilter(types.FilterNameRegex, strToRegex(egw.Name)) + if err != nil { + return nil, err + } + filters[i] = FilterMatch{filter, egw.Name, QueryEdgeGateway(*egw), "QueryEdgeGateway"} + } + return filters, nil +} + +// HelperMakeFiltersFromNetworks looks at the existing networks and creates a set of criteria to retrieve each of them +func HelperMakeFiltersFromNetworks(vdc *Vdc) ([]FilterMatch, error) { + netList, err := vdc.GetNetworkList() + if err != nil { + return nil, err + } + var filters = make([]FilterMatch, len(netList)) + for i, net := range netList { + + localizedItem := QueryOrgVdcNetwork(*net) + qItem := QueryItem(localizedItem) + filter, _, err := queryItemToFilter(qItem, "QueryOrgVdcNetwork") + if err != nil { + return nil, err + } + + filter, err = vdc.client.metadataToFilter(net.HREF, filter) + if err != nil { + return nil, err + } + filters[i] = FilterMatch{filter, net.Name, localizedItem, "QueryOrgVdcNetwork"} + } + return filters, nil +} + +// makeDateFilter creates date filters from a set of date records +// If there is more than one item, it creates an 'earliest' and 'latest' filter +func makeDateFilter(items []DateItem) ([]FilterMatch, error) { + var filters []FilterMatch + + if len(items) == 0 { + return filters, nil + } + entityType := items[0].EntityType + if len(items) == 1 { + filter := NewFilterDef() + err := filter.AddFilter(types.FilterDate, "=="+items[0].Date) + filters = append(filters, FilterMatch{filter, items[0].Name, items[0].Entity, entityType}) + return filters, err + } + earliestDate := time.Now().AddDate(100, 0, 0).String() + latestDate := "1970-01-01 00:00:00" + earliestName := "" + latestName := "" + var earliestEntity interface{} + var latestEntity interface{} + earliestFound := false + latestFound := false + for _, item := range items { + greater, err := compareDate(">"+latestDate, item.Date) + if err != nil { + return nil, err + } + if greater { + latestDate = item.Date + latestName = item.Name + latestEntity = item.Entity + latestFound = true + } + greater, err = compareDate("<"+earliestDate, item.Date) + if err != nil { + return nil, err + } + if greater { + earliestDate = item.Date + earliestName = item.Name + earliestEntity = item.Entity + earliestFound = true + } + exactFilter := NewFilterDef() + err = exactFilter.AddFilter(types.FilterDate, "=="+item.Date) + if err != nil { + return nil, fmt.Errorf("error adding filter '%s' '%s': %s", types.FilterDate, "=="+item.Date, err) + } + filters = append(filters, FilterMatch{exactFilter, item.Name, item.Entity, item.EntityType}) + } + + if earliestFound && latestFound && earliestDate != latestDate { + earlyFilter := NewFilterDef() + err := earlyFilter.AddFilter(types.FilterDate, "<"+latestDate) + if err != nil { + return nil, err + } + err = earlyFilter.AddFilter(types.FilterEarliest, "true") + if err != nil { + return nil, err + } + + lateFilter := NewFilterDef() + err = lateFilter.AddFilter(types.FilterDate, ">"+earliestDate) + if err != nil { + return nil, err + } + err = lateFilter.AddFilter(types.FilterLatest, "true") + if err != nil { + return nil, err + } + + filters = append(filters, FilterMatch{earlyFilter, earliestName, earliestEntity, entityType}) + filters = append(filters, FilterMatch{lateFilter, latestName, latestEntity, entityType}) + } + + return filters, nil +} + +func HelperMakeFiltersFromCatalogs(org *AdminOrg) ([]FilterMatch, error) { + catalogs, err := org.QueryCatalogList() + if err != nil { + return []FilterMatch{}, err + } + + var filters []FilterMatch + + var dateInfo []DateItem + for _, cat := range catalogs { + localizedItem := QueryCatalog(*cat) + qItem := QueryItem(localizedItem) + filter, dInfo, err := queryItemToFilter(qItem, "QueryCatalog") + if err != nil { + return nil, err + } + + dateInfo = append(dateInfo, dInfo...) + + filter, err = org.client.metadataToFilter(cat.HREF, filter) + if err != nil { + return nil, err + } + + filters = append(filters, FilterMatch{filter, cat.Name, localizedItem, "QueryCatalog"}) + } + dateFilter, err := makeDateFilter(dateInfo) + if err != nil { + return []FilterMatch{}, err + } + if len(dateFilter) > 0 { + filters = append(filters, dateFilter...) + } + return filters, nil +} + +func HelperMakeFiltersFromMedia(vdc *Vdc, catalogName string) ([]FilterMatch, error) { + var filters []FilterMatch + items, err := getExistingMedia(vdc) + if err != nil { + return filters, err + } + var dateInfo []DateItem + for _, item := range items { + + if item.CatalogName != catalogName { + continue + } + localizedItem := QueryMedia(*item) + qItem := QueryItem(localizedItem) + filter, dInfo, err := queryItemToFilter(qItem, "QueryMedia") + if err != nil { + return nil, err + } + + dateInfo = append(dateInfo, dInfo...) + + filter, err = vdc.client.metadataToFilter(item.HREF, filter) + if err != nil { + return nil, err + } + + filters = append(filters, FilterMatch{filter, item.Name, localizedItem, "QueryMedia"}) + } + dateFilter, err := makeDateFilter(dateInfo) + if err != nil { + return nil, err + } + if len(dateFilter) > 0 { + filters = append(filters, dateFilter...) + } + return filters, nil +} + +func queryItemToFilter(item QueryItem, entityType string) (*FilterDef, []DateItem, error) { + + var dateInfo []DateItem + filter := NewFilterDef() + err := filter.AddFilter(types.FilterNameRegex, strToRegex(item.GetName())) + if err != nil { + return nil, nil, err + } + + if item.GetIp() != "" { + err = filter.AddFilter(types.FilterIp, ipToRegex(item.GetIp())) + if err != nil { + return nil, nil, err + } + } + if item.GetDate() != "" { + dateInfo = append(dateInfo, DateItem{item.GetName(), item.GetDate(), item, entityType}) + } + return filter, dateInfo, nil +} + +func HelperMakeFiltersFromCatalogItem(catalog *Catalog) ([]FilterMatch, error) { + var filters []FilterMatch + items, err := catalog.QueryCatalogItemList() + if err != nil { + return filters, err + } + var dateInfo []DateItem + for _, item := range items { + + localItem := QueryCatalogItem(*item) + qItem := QueryItem(localItem) + + filter, dInfo, err := queryItemToFilter(qItem, "QueryCatalogItem") + if err != nil { + return nil, err + } + + dateInfo = append(dateInfo, dInfo...) + + filter, err = catalog.client.metadataToFilter(item.HREF, filter) + if err != nil { + return nil, err + } + + filters = append(filters, FilterMatch{filter, item.Name, localItem, "QueryCatalogItem"}) + } + dateFilter, err := makeDateFilter(dateInfo) + if err != nil { + return nil, err + } + if len(dateFilter) > 0 { + filters = append(filters, dateFilter...) + } + return filters, nil +} + +func HelperMakeFiltersFromVappTemplate(catalog *Catalog) ([]FilterMatch, error) { + var filters []FilterMatch + items, err := catalog.QueryVappTemplateList() + if err != nil { + return filters, err + } + var dateInfo []DateItem + for _, item := range items { + + localItem := QueryVAppTemplate(*item) + qItem := QueryItem(localItem) + + filter, dInfo, err := queryItemToFilter(qItem, "QueryVAppTemplate") + if err != nil { + return nil, err + } + + dateInfo = append(dateInfo, dInfo...) + + filter, err = catalog.client.metadataToFilter(item.HREF, filter) + if err != nil { + return nil, err + } + + filters = append(filters, FilterMatch{filter, item.Name, localItem, "QueryVAppTemplate"}) + } + dateFilter, err := makeDateFilter(dateInfo) + if err != nil { + return nil, err + } + if len(dateFilter) > 0 { + filters = append(filters, dateFilter...) + } + return filters, nil +} + +// HelperCreateMultipleCatalogItems deploys several catalog items, as defined in requestData +// Returns a set of VappTemplateData with what was created. +// If the requested objects exist already, returns updated information about the existing items. +func HelperCreateMultipleCatalogItems(catalog *Catalog, requestData []VappTemplateData, verbose bool) ([]VappTemplateData, error) { + var data []VappTemplateData + ova := "../test-resources/test_vapp_template.ova" + _, err := os.Stat(ova) + if os.IsNotExist(err) { + return nil, fmt.Errorf("[HelperCreateMultipleCatalogItems] sample OVA %s not found", ova) + } + overallStart := time.Now() + for _, requested := range requestData { + name := requested.Name + + var item *CatalogItem + var vappTemplate VAppTemplate + created := false + item, err := catalog.GetCatalogItemByName(name, false) + if err == nil { + // If the item already exists, we skip the creation, and just retrieve the vapp template + vappTemplate, err = item.GetVAppTemplate() + if err != nil { + return nil, fmt.Errorf("[HelperCreateMultipleCatalogItems] error retrieving vApp template from catalog item %s : %s", item.CatalogItem.Name, err) + } + } else { + + start := time.Now() + if verbose { + fmt.Printf("%-55s %s ", start, name) + } + task, err := catalog.UploadOvf(ova, name, "test "+name, 10) + if err != nil { + return nil, fmt.Errorf("[HelperCreateMultipleCatalogItems] error uploading OVA: %s", err) + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("[HelperCreateMultipleCatalogItems] error completing task :%s", err) + } + item, err = catalog.GetCatalogItemByName(name, true) + if err != nil { + return nil, fmt.Errorf("[HelperCreateMultipleCatalogItems] error retrieving item %s: %s", name, err) + } + vappTemplate, err = item.GetVAppTemplate() + if err != nil { + return nil, fmt.Errorf("[HelperCreateMultipleCatalogItems] error retrieving vApp template: %s", err) + } + + for k, v := range requested.Metadata { + _, err := vappTemplate.AddMetadata(k, v) + if err != nil { + return nil, fmt.Errorf("[HelperCreateMultipleCatalogItems], error adding metadata: %s", err) + } + } + duration := time.Since(start) + if verbose { + fmt.Printf("- elapsed: %s\n", duration) + } + + created = true + } + data = append(data, VappTemplateData{ + Name: name, + ItemCreationDate: item.CatalogItem.DateCreated, + VappTemplateCreationDate: vappTemplate.VAppTemplate.DateCreated, + Metadata: requested.Metadata, + Created: created, + }) + } + overallDuration := time.Since(overallStart) + if verbose { + fmt.Printf("total elapsed: %s\n", overallDuration) + } + + return data, nil +} + +func HelperMakeFiltersFromOrgVdc(org *Org) ([]FilterMatch, error) { + var filters []FilterMatch + items, err := org.QueryOrgVdcList() + if err != nil { + return filters, err + } + for _, item := range items { + localItem := QueryOrgVdc(*item) + qItem := QueryItem(localItem) + + filter, _, err := queryItemToFilter(qItem, "QueryOrgVdc") + if err != nil { + return nil, err + } + + filter, err = org.client.metadataToFilter(item.HREF, filter) + if err != nil { + return nil, err + } + + filters = append(filters, FilterMatch{filter, item.Name, localItem, "QueryOrgVdc"}) + } + + return filters, nil +} + +// ipToRegex creates a regular expression that matches an IP without the last element +func ipToRegex(ip string) string { + elements := strings.Split(ip, ".") + result := "^" + for i := 0; i < len(elements)-1; i++ { + result += elements[i] + `\.` + } + return result +} + +// strToRegex creates a regular expression that matches perfectly with the input query +func strToRegex(s string) string { + var result strings.Builder + var err error + _, err = result.WriteString("^") + if err != nil { + util.Logger.Printf("[DEBUG - strToRegex] error writing to string: %s", err) + } + for _, ch := range s { + if ch == '.' { + _, err = result.WriteString(fmt.Sprintf("\\%c", ch)) + } else { + _, err = result.WriteString(fmt.Sprintf("[%c]", ch)) + } + if err != nil { + util.Logger.Printf("[DEBUG - strToRegex] error writing to string: %s", err) + } + } + _, err = result.WriteString("$") + if err != nil { + util.Logger.Printf("[DEBUG - strToRegex] error writing to string: %s", err) + } + return result.String() +} + +// guessMetadataType guesses the type of a metadata value from its contents +// If the value looks like a number, or a true/false value, the corresponding type is returned +// Otherwise, we assume it's a string. +// We do this because the API doesn't return the metadata type +// (it would if the field TypedValue.XsiType were defined as `xml:"type,attr"`, but then metadata updates would fail.) +func guessMetadataType(value string) string { + fType := "STRING" + reNumber := regexp.MustCompile(`^[0-9]+$`) + reBool := regexp.MustCompile(`^(?:true|false)$`) + if reNumber.MatchString(value) { + fType = "NUMBER" + } + if reBool.MatchString(value) { + fType = "BOOLEAN" + } + return fType +} + +// metadataToFilter adds metadata elements to an existing filter +// href is the address of the entity for which we want to retrieve metadata +// filter is an existing filter to which we want to add metadata elements +func (client *Client) metadataToFilter(href string, filter *FilterDef) (*FilterDef, error) { + if filter == nil { + filter = &FilterDef{} + } + metadata, err := getMetadata(client, href) + if err == nil && metadata != nil && len(metadata.MetadataEntry) > 0 { + for _, md := range metadata.MetadataEntry { + isSystem := md.Domain == "SYSTEM" + var fType string + var ok bool + if md.TypedValue.XsiType == "" { + fType = guessMetadataType(md.TypedValue.Value) + } else { + fType, ok = retrievedMetadataTypes[md.TypedValue.XsiType] + if !ok { + fType = "STRING" + } + } + err = filter.AddMetadataFilter(md.Key, md.TypedValue.Value, fType, isSystem, false) + if err != nil { + return nil, err + } + } + } + return filter, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_interface.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_interface.go new file mode 100644 index 000000000..fc3d5a8a5 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_interface.go @@ -0,0 +1,297 @@ +package govcd + +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +import ( + "fmt" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// QueryItem is an entity that is used to evaluate a Condition +type QueryItem interface { + GetDate() string + GetName() string + GetType() string + GetIp() string + GetMetadataValue(key string) string + GetParentName() string + GetParentId() string + GetHref() string +} + +type ( + // All the Query* types are localizations of Query records that can be returned from a query. + // Each one of these implements the QueryItem interface + QueryVAppTemplate types.QueryResultVappTemplateType + QueryCatalogItem types.QueryResultCatalogItemType + QueryEdgeGateway types.QueryResultEdgeGatewayRecordType + QueryAdminCatalog types.AdminCatalogRecord + QueryCatalog types.CatalogRecord + QueryOrgVdcNetwork types.QueryResultOrgVdcNetworkRecordType + QueryMedia types.MediaRecordType + QueryVapp types.QueryResultVAppRecordType + QueryVm types.QueryResultVMRecordType + QueryOrgVdc types.QueryResultOrgVdcRecordType +) + +// getMetadataValue is a generic metadata lookup for all query items +func getMetadataValue(metadata *types.Metadata, key string) string { + if metadata == nil || len(metadata.MetadataEntry) == 0 { + return "" + } + for _, x := range metadata.MetadataEntry { + if key == x.Key { + return x.TypedValue.Value + } + } + return "" +} + +// -------------------------------------------------------------- +// Org VDC +// -------------------------------------------------------------- +func (orgVdc QueryOrgVdc) GetHref() string { return orgVdc.HREF } +func (orgVdc QueryOrgVdc) GetName() string { return orgVdc.Name } +func (orgVdc QueryOrgVdc) GetType() string { return "org_vdc" } +func (orgVdc QueryOrgVdc) GetIp() string { return "" } // IP does not apply to VDC +func (orgVdc QueryOrgVdc) GetDate() string { return "" } // Date does not aply to VDC +func (orgVdc QueryOrgVdc) GetParentName() string { return orgVdc.OrgName } +func (orgVdc QueryOrgVdc) GetParentId() string { return orgVdc.Org } +func (orgVdc QueryOrgVdc) GetMetadataValue(key string) string { + return getMetadataValue(orgVdc.Metadata, key) +} + +// -------------------------------------------------------------- +// vApp template +// -------------------------------------------------------------- +func (vappTemplate QueryVAppTemplate) GetHref() string { return vappTemplate.HREF } +func (vappTemplate QueryVAppTemplate) GetName() string { return vappTemplate.Name } +func (vappTemplate QueryVAppTemplate) GetType() string { return "vapp_template" } +func (vappTemplate QueryVAppTemplate) GetIp() string { return "" } +func (vappTemplate QueryVAppTemplate) GetDate() string { return vappTemplate.CreationDate } +func (vappTemplate QueryVAppTemplate) GetParentName() string { return vappTemplate.CatalogName } +func (vappTemplate QueryVAppTemplate) GetParentId() string { return vappTemplate.Vdc } +func (vappTemplate QueryVAppTemplate) GetMetadataValue(key string) string { + return getMetadataValue(vappTemplate.Metadata, key) +} + +// -------------------------------------------------------------- +// media item +// -------------------------------------------------------------- +func (media QueryMedia) GetHref() string { return media.HREF } +func (media QueryMedia) GetName() string { return media.Name } +func (media QueryMedia) GetType() string { return "catalog_media" } +func (media QueryMedia) GetIp() string { return "" } +func (media QueryMedia) GetDate() string { return media.CreationDate } +func (media QueryMedia) GetParentName() string { return media.CatalogName } +func (media QueryMedia) GetParentId() string { return media.Catalog } +func (media QueryMedia) GetMetadataValue(key string) string { + return getMetadataValue(media.Metadata, key) +} + +// -------------------------------------------------------------- +// catalog item +// -------------------------------------------------------------- +func (catItem QueryCatalogItem) GetHref() string { return catItem.HREF } +func (catItem QueryCatalogItem) GetName() string { return catItem.Name } +func (catItem QueryCatalogItem) GetIp() string { return "" } +func (catItem QueryCatalogItem) GetType() string { return "catalog_item" } +func (catItem QueryCatalogItem) GetDate() string { return catItem.CreationDate } +func (catItem QueryCatalogItem) GetParentName() string { return catItem.CatalogName } +func (catItem QueryCatalogItem) GetParentId() string { return catItem.Catalog } +func (catItem QueryCatalogItem) GetMetadataValue(key string) string { + return getMetadataValue(catItem.Metadata, key) +} + +// -------------------------------------------------------------- +// catalog +// -------------------------------------------------------------- +func (catalog QueryCatalog) GetHref() string { return catalog.HREF } +func (catalog QueryCatalog) GetName() string { return catalog.Name } +func (catalog QueryCatalog) GetIp() string { return "" } +func (catalog QueryCatalog) GetType() string { return "catalog" } +func (catalog QueryCatalog) GetDate() string { return catalog.CreationDate } +func (catalog QueryCatalog) GetParentName() string { return catalog.OrgName } +func (catalog QueryCatalog) GetParentId() string { return "" } +func (catalog QueryCatalog) GetMetadataValue(key string) string { + return getMetadataValue(catalog.Metadata, key) +} + +func (catalog QueryAdminCatalog) GetHref() string { return catalog.HREF } +func (catalog QueryAdminCatalog) GetName() string { return catalog.Name } +func (catalog QueryAdminCatalog) GetIp() string { return "" } +func (catalog QueryAdminCatalog) GetType() string { return "catalog" } +func (catalog QueryAdminCatalog) GetDate() string { return catalog.CreationDate } +func (catalog QueryAdminCatalog) GetParentName() string { return catalog.OrgName } +func (catalog QueryAdminCatalog) GetParentId() string { return "" } +func (catalog QueryAdminCatalog) GetMetadataValue(key string) string { + return getMetadataValue(catalog.Metadata, key) +} + +// -------------------------------------------------------------- +// edge gateway +// -------------------------------------------------------------- +func (egw QueryEdgeGateway) GetHref() string { return egw.HREF } +func (egw QueryEdgeGateway) GetName() string { return egw.Name } +func (egw QueryEdgeGateway) GetIp() string { return "" } +func (egw QueryEdgeGateway) GetType() string { return "edge_gateway" } +func (egw QueryEdgeGateway) GetDate() string { return "" } +func (egw QueryEdgeGateway) GetParentName() string { return egw.OrgVdcName } +func (egw QueryEdgeGateway) GetParentId() string { return egw.Vdc } +func (egw QueryEdgeGateway) GetMetadataValue(key string) string { + // Edge Gateway doesn't support metadata + return "" +} + +// -------------------------------------------------------------- +// Org VDC network +// -------------------------------------------------------------- +func (network QueryOrgVdcNetwork) GetHref() string { return network.HREF } +func (network QueryOrgVdcNetwork) GetName() string { return network.Name } +func (network QueryOrgVdcNetwork) GetIp() string { return network.DefaultGateway } +func (network QueryOrgVdcNetwork) GetType() string { + switch network.LinkType { + case 0: + return "network_direct" + case 1: + return "network_routed" + case 2: + return "network_isolated" + default: + // There are only three types so far, but just to make it future proof + return "network" + } +} +func (network QueryOrgVdcNetwork) GetDate() string { return "" } +func (network QueryOrgVdcNetwork) GetParentName() string { return network.VdcName } +func (network QueryOrgVdcNetwork) GetParentId() string { return network.Vdc } +func (network QueryOrgVdcNetwork) GetMetadataValue(key string) string { + return getMetadataValue(network.Metadata, key) +} + +// -------------------------------------------------------------- +// vApp +// -------------------------------------------------------------- +func (vapp QueryVapp) GetHref() string { return vapp.HREF } +func (vapp QueryVapp) GetName() string { return vapp.Name } +func (vapp QueryVapp) GetType() string { return "vApp" } +func (vapp QueryVapp) GetIp() string { return "" } +func (vapp QueryVapp) GetDate() string { return vapp.CreationDate } +func (vapp QueryVapp) GetParentName() string { return vapp.VdcName } +func (vapp QueryVapp) GetParentId() string { return vapp.VdcHREF } +func (vapp QueryVapp) GetMetadataValue(key string) string { + return getMetadataValue(vapp.MetaData, key) +} + +// -------------------------------------------------------------- +// VM +// -------------------------------------------------------------- +func (vm QueryVm) GetHref() string { return vm.HREF } +func (vm QueryVm) GetName() string { return vm.Name } +func (vm QueryVm) GetType() string { return "Vm" } +func (vm QueryVm) GetIp() string { return vm.IpAddress } +func (vm QueryVm) GetDate() string { return vm.DateCreated } +func (vm QueryVm) GetParentName() string { return vm.ContainerName } +func (vm QueryVm) GetParentId() string { return vm.VdcHREF } +func (vm QueryVm) GetMetadataValue(key string) string { + return getMetadataValue(vm.MetaData, key) +} + +// -------------------------------------------------------------- +// result conversion +// -------------------------------------------------------------- +// resultToQueryItems converts a set of query results into a list of query items +func resultToQueryItems(queryType string, results Results) ([]QueryItem, error) { + resultSize := int64(results.Results.Total) + if resultSize < 1 { + return nil, nil + } + var items = make([]QueryItem, resultSize) + switch queryType { + case types.QtAdminCatalogItem: + for i, item := range results.Results.AdminCatalogItemRecord { + items[i] = QueryCatalogItem(*item) + } + case types.QtCatalogItem: + for i, item := range results.Results.CatalogItemRecord { + items[i] = QueryCatalogItem(*item) + } + case types.QtMedia: + for i, item := range results.Results.MediaRecord { + items[i] = QueryMedia(*item) + } + case types.QtAdminMedia: + for i, item := range results.Results.AdminMediaRecord { + items[i] = QueryMedia(*item) + } + case types.QtVappTemplate: + for i, item := range results.Results.VappTemplateRecord { + items[i] = QueryVAppTemplate(*item) + } + case types.QtAdminVappTemplate: + for i, item := range results.Results.AdminVappTemplateRecord { + items[i] = QueryVAppTemplate(*item) + } + case types.QtEdgeGateway: + for i, item := range results.Results.EdgeGatewayRecord { + items[i] = QueryEdgeGateway(*item) + } + case types.QtOrgVdcNetwork: + for i, item := range results.Results.OrgVdcNetworkRecord { + items[i] = QueryOrgVdcNetwork(*item) + } + case types.QtCatalog: + for i, item := range results.Results.CatalogRecord { + items[i] = QueryCatalog(*item) + } + case types.QtAdminCatalog: + for i, item := range results.Results.AdminCatalogRecord { + items[i] = QueryAdminCatalog(*item) + } + case types.QtVm: + for i, item := range results.Results.VMRecord { + items[i] = QueryVm(*item) + } + case types.QtAdminVm: + for i, item := range results.Results.AdminVMRecord { + items[i] = QueryVm(*item) + } + case types.QtVapp: + for i, item := range results.Results.VAppRecord { + items[i] = QueryVapp(*item) + } + case types.QtAdminVapp: + for i, item := range results.Results.AdminVAppRecord { + items[i] = QueryVapp(*item) + } + case types.QtOrgVdc: + for i, item := range results.Results.OrgVdcRecord { + items[i] = QueryOrgVdc(*item) + } + case types.QtAdminOrgVdc: + for i, item := range results.Results.OrgVdcAdminRecord { + items[i] = QueryOrgVdc(*item) + } + } + if len(items) > 0 { + return items, nil + } + return nil, fmt.Errorf("unsupported query type %s", queryType) +} + +// GetQueryType is an utility function to get the appropriate query type depending on +// the user's role +func (client Client) GetQueryType(queryType string) string { + if client.IsSysAdmin { + adminType, ok := types.AdminQueryTypes[queryType] + if ok { + return adminType + } else { + panic(fmt.Sprintf("no corresponding admin type found for type %s", queryType)) + } + } + return queryType +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_util.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_util.go new file mode 100644 index 000000000..fa519593e --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/filter_util.go @@ -0,0 +1,204 @@ +package govcd + +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +import ( + "fmt" + "regexp" + "strings" + + "github.com/araddon/dateparse" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +var ( + // supportedFilters lists the filters currently supported in the engine, available to users + supportedFilters = []string{ + types.FilterNameRegex, + types.FilterDate, + types.FilterIp, + types.FilterLatest, + types.FilterEarliest, + types.FilterParent, + types.FilterParentId, + } + + // SupportedMetadataTypes are the metadata types recognized so far. "NONE" is the same as "" + SupportedMetadataTypes = []string{"NONE", "STRING", "NUMBER", "BOOLEAN", "DATETIME"} +) + +// MetadataDef defines a metadata structure +type MetadataDef struct { + Key string // name of the field (addressed as metadata:key) + Type string // Type of the field (one of SupportedMetadataTypes) + Value interface{} // contents of the metadata field + IsSystem bool // if true, the metadata field will be addressed as metadata@SYSTEM:key +} + +// matchResult stores the result of a condition evaluation +// Used to build the human readable description of the engine operations +type matchResult struct { + Name string + Type string + Definition string + Result bool +} + +// FilterDef defines all the criteria used by the engine to retrieve data +type FilterDef struct { + // A collection of filters (with keys from SupportedFilters) + Filters map[string]string + + // A list of metadata filters + Metadata []MetadataDef + + // If true, the query will include metadata fields and search for exact values. + // Otherwise, the engine will collect metadata fields and search by regexp + UseMetadataApiFilter bool +} + +// NewFilterDef builds a new filter definition +func NewFilterDef() *FilterDef { + return &FilterDef{ + Filters: make(map[string]string), + Metadata: nil, + } +} + +// validateMetadataType checks that a metadata type is within supported types +func validateMetadataType(valueType string) error { + typeSupported := false + for _, supported := range SupportedMetadataTypes { + if valueType == supported { + typeSupported = true + } + } + if !typeSupported { + return fmt.Errorf("metadata type '%s' not supported", valueType) + } + return nil +} + +// AddFilter adds a new filter to the criteria +func (fd *FilterDef) AddFilter(key, value string) error { + for _, allowed := range supportedFilters { + if key == allowed { + fd.Filters[key] = value + return nil + } + } + return fmt.Errorf("filter '%s' not supported", key) +} + +// AddMetadataFilter adds a new metadata filter to an existing set +func (fd *FilterDef) AddMetadataFilter(key, value, valueType string, isSystem, useMetadataApiFilter bool) error { + if valueType == "" { + valueType = "NONE" + useMetadataApiFilter = false + } + if useMetadataApiFilter { + fd.UseMetadataApiFilter = true + } + err := validateMetadataType(valueType) + if err != nil { + return err + } + fd.Metadata = append(fd.Metadata, MetadataDef{ + Key: key, + Value: value, + IsSystem: isSystem, + Type: valueType, + }) + return nil +} + +// stringToBool converts a string to a bool +// The following values are recognized as TRUE: +// t, true, y, yes, ok +func stringToBool(s string) bool { + switch strings.ToLower(s) { + case "t", "true", "y", "yes", "ok": + return true + default: + return false + } +} + +// compareDate will get a date from string `got`, and will parse `wanted` +// for an expression starting with an operator (>, <, >=, <=, ==) followed by a date +// (many formats supported, but 'YYYY-MM-DD[ hh:mm[:ss[.nnnZ]]' preferred) +// For example: +// got: "2020-03-09T09:50:51.500Z" +// wanted: ">= 2020-03-08" +// result: true +// got: "2020-03-09T09:50:51.500Z" +// wanted: "< 02-mar-2020" +// result: false +// See https://github.com/araddon/dateparse for more info +func compareDate(wanted, got string) (bool, error) { + + reExpression := regexp.MustCompile(`(>=|<=|==|<|=|>)\s*(.+)`) + + expList := reExpression.FindAllStringSubmatch(wanted, -1) + if len(expList) == 0 || len(expList[0]) == 0 { + return false, fmt.Errorf("expression not found in '%s'", wanted) + } + + operator := expList[0][1] + wantedTime, err := dateparse.ParseStrict(expList[0][2]) + if err != nil { + return false, err + } + + gotTime, err := dateparse.ParseStrict(got) + if err != nil { + return false, err + } + + wantedSeconds := wantedTime.UnixNano() + gotSeconds := gotTime.UnixNano() + + switch operator { + case "=", "==": + return gotSeconds == wantedSeconds, nil + case ">": + return gotSeconds > wantedSeconds, nil + case ">=": + return gotSeconds >= wantedSeconds, nil + case "<=": + return gotSeconds <= wantedSeconds, nil + case "<": + return gotSeconds < wantedSeconds, nil + default: + return false, fmt.Errorf("unsupported operator '%s'", operator) + } +} + +// conditionText provides a human readable string of searching criteria +func conditionText(criteria *FilterDef) string { + result := "criteria: " + + for k, v := range criteria.Filters { + result += fmt.Sprintf(`("%s" -> "%s") `, k, v) + } + for _, m := range criteria.Metadata { + marker := "metadata" + if criteria.UseMetadataApiFilter { + marker = "metadataApi" + } + result += fmt.Sprintf(`%s("%s" -> "%s") `, marker, m.Key, m.Value) + } + return result +} + +// matchesToText provides a human readable string of search operations results +func matchesToText(matches []matchResult) string { + result := "" + for _, item := range matches { + result += fmt.Sprintf("name: %s; type: %s definition: %s; result: %v\n", item.Name, item.Type, item.Definition, item.Result) + } + return result +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/global_role.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/global_role.go new file mode 100644 index 000000000..9ce8fa2c5 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/global_role.go @@ -0,0 +1,383 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +type GlobalRole struct { + GlobalRole *types.GlobalRole + client *Client +} + +// GetAllGlobalRoles retrieves all global roles. Query parameters can be supplied to perform additional filtering +// Only System administrator can handle global roles +func (client *Client) GetAllGlobalRoles(queryParameters url.Values) ([]*GlobalRole, error) { + if !client.IsSysAdmin { + return nil, fmt.Errorf("only system administrator can handle global roles") + } + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.GlobalRole{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into GlobalRole types with client + returnGlobalRoles := make([]*GlobalRole, len(typeResponses)) + for sliceIndex := range typeResponses { + returnGlobalRoles[sliceIndex] = &GlobalRole{ + GlobalRole: typeResponses[sliceIndex], + client: client, + } + } + + return returnGlobalRoles, nil +} + +// GetGlobalRoleByName retrieves a global role by given name +func (client *Client) GetGlobalRoleByName(name string) (*GlobalRole, error) { + queryParams := url.Values{} + queryParams.Add("filter", "name=="+name) + globalRoles, err := client.GetAllGlobalRoles(queryParams) + if err != nil { + return nil, err + } + if len(globalRoles) == 0 { + return nil, ErrorEntityNotFound + } + if len(globalRoles) > 1 { + return nil, fmt.Errorf("more than one global role found with name '%s'", name) + } + return globalRoles[0], nil +} + +// GetGlobalRoleById retrieves global role by given ID +func (client *Client) GetGlobalRoleById(id string) (*GlobalRole, error) { + if !client.IsSysAdmin { + return nil, fmt.Errorf("only system administrator can handle global roles") + } + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty GlobalRole id") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + globalRole := &GlobalRole{ + GlobalRole: &types.GlobalRole{}, + client: client, + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, nil, globalRole.GlobalRole, nil) + if err != nil { + return nil, err + } + + return globalRole, nil +} + +// CreateGlobalRole creates a new global role as a system administrator +func (client *Client) CreateGlobalRole(newGlobalRole *types.GlobalRole) (*GlobalRole, error) { + if !client.IsSysAdmin { + return nil, fmt.Errorf("only system administrator can handle global roles") + } + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + if newGlobalRole.BundleKey == "" { + newGlobalRole.BundleKey = types.VcloudUndefinedKey + } + if newGlobalRole.PublishAll == nil { + newGlobalRole.PublishAll = takeBoolPointer(false) + } + returnGlobalRole := &GlobalRole{ + GlobalRole: &types.GlobalRole{}, + client: client, + } + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, newGlobalRole, returnGlobalRole.GlobalRole, nil) + if err != nil { + return nil, fmt.Errorf("error creating global role: %s", err) + } + + return returnGlobalRole, nil +} + +// Update updates existing global role +func (globalRole *GlobalRole) Update() (*GlobalRole, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + minimumApiVersion, err := globalRole.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if globalRole.GlobalRole.Id == "" { + return nil, fmt.Errorf("cannot update role without id") + } + + urlRef, err := globalRole.client.OpenApiBuildEndpoint(endpoint, globalRole.GlobalRole.Id) + if err != nil { + return nil, err + } + + returnGlobalRole := &GlobalRole{ + GlobalRole: &types.GlobalRole{}, + client: globalRole.client, + } + + err = globalRole.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, globalRole.GlobalRole, returnGlobalRole.GlobalRole, nil) + if err != nil { + return nil, fmt.Errorf("error updating global role: %s", err) + } + + return returnGlobalRole, nil +} + +// Delete deletes global role +func (globalRole *GlobalRole) Delete() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + minimumApiVersion, err := globalRole.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if globalRole.GlobalRole.Id == "" { + return fmt.Errorf("cannot delete global role without id") + } + + urlRef, err := globalRole.client.OpenApiBuildEndpoint(endpoint, globalRole.GlobalRole.Id) + if err != nil { + return err + } + + err = globalRole.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting global role: %s", err) + } + + return nil +} + +// getContainerTenants retrieves all tenants associated with a given rights container (Global Role, Rights Bundle). +// Query parameters can be supplied to perform additional filtering +func getContainerTenants(client *Client, rightsContainerId, endpoint string, queryParameters url.Values) ([]types.OpenApiReference, error) { + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint + rightsContainerId + "/tenants") + if err != nil { + return nil, err + } + + typeResponses := types.OpenApiItems{ + Values: []types.OpenApiReference{}, + } + + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses.Values, nil) + if err != nil { + return nil, err + } + + return typeResponses.Values, nil +} + +// publishContainerToTenants is a generic function that publishes or unpublishes a rights collection (Global Role, or Rights bundle) to tenants +// containerType is an informative string (one of "GlobalRole", "RightsBundle") +// name and id are the name and ID of the collection +// endpoint is the API endpoint used as a basis for the POST operation +// tenants is a collection of tenants (ID+name) to be added +// publishType can be one of "add", "remove", "replace" +func publishContainerToTenants(client *Client, containerType, name, id, endpoint string, tenants []types.OpenApiReference, publishType string) error { + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if id == "" { + return fmt.Errorf("cannot update %s without id", containerType) + } + if name == "" { + return fmt.Errorf("empty name given for %s %s", containerType, id) + } + + var operation string + + var action func(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}, additionalHeader map[string]string) error + + switch publishType { + case "add": + operation = "/tenants/publish" + action = client.OpenApiPostItem + case "replace": + operation = "/tenants" + action = client.OpenApiPutItem + case "remove": + operation = "/tenants/unpublish" + action = client.OpenApiPostItem + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id, operation) + if err != nil { + return err + } + + var input types.OpenApiItems + + for _, tenant := range tenants { + input.Values = append(input.Values, types.OpenApiReference{ + Name: tenant.Name, + ID: tenant.ID, + }) + } + var pages types.OpenApiPages + + err = action(minimumApiVersion, urlRef, nil, &input, &pages, nil) + + if err != nil { + return fmt.Errorf("error publishing %s %s to tenants: %s", containerType, name, err) + } + + return nil +} + +// publishContainerToAllTenants is a generic function that publishes or unpublishes a rights collection ( Global Role, or Rights bundle) to all tenants +// containerType is an informative string (one of "GlobalRole", "RightsBundle") +// name and id are the name and ID of the collection +// endpoint is the API endpoint used as a basis for the POST operation +// If "publish" is false, it will revert the operation +func publishContainerToAllTenants(client *Client, containerType, name, id, endpoint string, publish bool) error { + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if id == "" { + return fmt.Errorf("cannot update %s without id", containerType) + } + if name == "" { + return fmt.Errorf("empty name given for %s %s", containerType, id) + } + + operation := "/tenants/publishAll" + if !publish { + operation = "/tenants/unpublishAll" + } + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id, operation) + if err != nil { + return err + } + + var pages types.OpenApiPages + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, &pages, &pages, nil) + + if err != nil { + return fmt.Errorf("error publishing %s %s to tenants: %s", containerType, name, err) + } + + return nil +} + +// AddRights adds a collection of rights to a global role +func (globalRole *GlobalRole) AddRights(newRights []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return addRightsToRole(globalRole.client, "GlobalRole", globalRole.GlobalRole.Name, globalRole.GlobalRole.Id, endpoint, newRights, nil) +} + +// UpdateRights replaces existing rights with the given collection of rights +func (globalRole *GlobalRole) UpdateRights(newRights []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return updateRightsInRole(globalRole.client, "GlobalRole", globalRole.GlobalRole.Name, globalRole.GlobalRole.Id, endpoint, newRights, nil) +} + +// RemoveRights removes specific rights from a global role +func (globalRole *GlobalRole) RemoveRights(removeRights []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return removeRightsFromRole(globalRole.client, "GlobalRole", globalRole.GlobalRole.Name, globalRole.GlobalRole.Id, endpoint, removeRights, nil) +} + +// RemoveAllRights removes all rights from a global role +func (globalRole *GlobalRole) RemoveAllRights() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return removeAllRightsFromRole(globalRole.client, "GlobalRole", globalRole.GlobalRole.Name, globalRole.GlobalRole.Id, endpoint, nil) +} + +// GetRights retrieves all rights belonging to a given Global Role. Query parameters can be supplied to perform additional +// filtering +func (globalRole *GlobalRole) GetRights(queryParameters url.Values) ([]*types.Right, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return getRights(globalRole.client, globalRole.GlobalRole.Id, endpoint, queryParameters, nil) +} + +// GetTenants retrieves all tenants associated to a given Global Role. Query parameters can be supplied to perform additional +// filtering +func (globalRole *GlobalRole) GetTenants(queryParameters url.Values) ([]types.OpenApiReference, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return getContainerTenants(globalRole.client, globalRole.GlobalRole.Id, endpoint, queryParameters) +} + +// PublishTenants publishes a global role to one or more tenants, adding to tenants that may already been there +func (globalRole *GlobalRole) PublishTenants(tenants []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return publishContainerToTenants(globalRole.client, "GlobalRole", globalRole.GlobalRole.Name, globalRole.GlobalRole.Id, endpoint, tenants, "add") +} + +// ReplacePublishedTenants publishes a global role to one or more tenants, removing the tenants already present +func (globalRole *GlobalRole) ReplacePublishedTenants(tenants []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return publishContainerToTenants(globalRole.client, "GlobalRole", globalRole.GlobalRole.Name, globalRole.GlobalRole.Id, endpoint, tenants, "replace") +} + +// UnpublishTenants remove tenats from a global role +func (globalRole *GlobalRole) UnpublishTenants(tenants []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return publishContainerToTenants(globalRole.client, "GlobalRole", globalRole.GlobalRole.Name, globalRole.GlobalRole.Id, endpoint, tenants, "remove") +} + +// PublishAllTenants publishes a global role to all tenants +func (globalRole *GlobalRole) PublishAllTenants() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return publishContainerToAllTenants(globalRole.client, "GlobalRole", globalRole.GlobalRole.Name, globalRole.GlobalRole.Id, endpoint, true) +} + +// UnpublishAllTenants remove publication status of a global role from all tenants +func (globalRole *GlobalRole) UnpublishAllTenants() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles + return publishContainerToAllTenants(globalRole.client, "GlobalRole", globalRole.GlobalRole.Name, globalRole.GlobalRole.Id, endpoint, false) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/graph_plan.png b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/graph_plan.png new file mode 100644 index 000000000..e69de29bb diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/group.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/group.go new file mode 100644 index 000000000..263dd418f --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/group.go @@ -0,0 +1,185 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// OrgGroup defines group structure +type OrgGroup struct { + Group *types.Group + client *Client + AdminOrg *AdminOrg // needed to be able to update, as the list of roles is found in the Org +} + +// NewGroup creates a new group structure which still needs to have Group attribute populated +func NewGroup(cli *Client, org *AdminOrg) *OrgGroup { + return &OrgGroup{ + Group: new(types.Group), + client: cli, + AdminOrg: org, + } +} + +// CreateGroup creates a group in Org. Supported provider types are `OrgUserProviderIntegrated` and +// `OrgUserProviderSAML`. +// +// Note. This request will return HTTP 403 if Org is not configured for SAML or LDAP usage. +func (adminOrg *AdminOrg) CreateGroup(group *types.Group) (*OrgGroup, error) { + if err := validateCreateUpdateGroup(group); err != nil { + return nil, err + } + + groupCreateHREF, err := url.ParseRequestURI(adminOrg.AdminOrg.HREF) + if err != nil { + return nil, fmt.Errorf("error parsing admin org url: %s", err) + } + groupCreateHREF.Path += "/groups" + + grpgroup := NewGroup(adminOrg.client, adminOrg) + // Add default XML types + group.Xmlns = types.XMLNamespaceVCloud + group.Type = types.MimeAdminGroup + + _, err = adminOrg.client.ExecuteRequest(groupCreateHREF.String(), http.MethodPost, + types.MimeAdminGroup, "error creating group: %s", group, grpgroup.Group) + if err != nil { + return nil, err + } + + return grpgroup, nil +} + +// GetGroupByHref retrieves group by HREF +func (adminOrg *AdminOrg) GetGroupByHref(href string) (*OrgGroup, error) { + orgGroup := NewGroup(adminOrg.client, adminOrg) + + _, err := adminOrg.client.ExecuteRequest(href, http.MethodGet, + types.MimeAdminUser, "error getting group: %s", nil, orgGroup.Group) + + if err != nil { + return nil, err + } + return orgGroup, nil +} + +// GetGroupByName retrieves group by Name +func (adminOrg *AdminOrg) GetGroupByName(name string, refresh bool) (*OrgGroup, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + + for _, group := range adminOrg.AdminOrg.Groups.Group { + if group.Name == name { + return adminOrg.GetGroupByHref(group.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetGroupById retrieves group by Id +func (adminOrg *AdminOrg) GetGroupById(id string, refresh bool) (*OrgGroup, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + + for _, group := range adminOrg.AdminOrg.Groups.Group { + if equalIds(id, group.ID, group.HREF) { + return adminOrg.GetGroupByHref(group.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetGroupByNameOrId retrieves group by Name or Id. Id is prioritized for search +func (adminOrg *AdminOrg) GetGroupByNameOrId(identifier string, refresh bool) (*OrgGroup, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return adminOrg.GetGroupByName(name, refresh) } + getById := func(name string, refresh bool) (interface{}, error) { return adminOrg.GetGroupById(name, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, refresh) + if entity == nil { + return nil, err + } + return entity.(*OrgGroup), err +} + +// Update allows to update group. vCD API allows to update only role +func (group *OrgGroup) Update() error { + util.Logger.Printf("[TRACE] Updating group: %s", group.Group.Name) + + if err := validateCreateUpdateGroup(group.Group); err != nil { + return err + } + + groupHREF, err := url.ParseRequestURI(group.Group.Href) + if err != nil { + return fmt.Errorf("error getting HREF for group %s : %s", group.Group.Href, err) + } + util.Logger.Printf("[TRACE] Url for updating group : %s and name: %s", groupHREF.String(), group.Group.Name) + + _, err = group.client.ExecuteRequest(groupHREF.String(), http.MethodPut, + types.MimeAdminGroup, "error updating group : %s", group.Group, nil) + return err +} + +// Delete removes a group +func (group *OrgGroup) Delete() error { + if err := validateDeleteGroup(group.Group); err != nil { + return err + } + + groupHREF, err := url.ParseRequestURI(group.Group.Href) + if err != nil { + return fmt.Errorf("error getting HREF for group %s : %s", group.Group.Name, err) + } + util.Logger.Printf("[TRACE] Url for deleting group : %s and name: %s", groupHREF, group.Group.Name) + + return group.client.ExecuteRequestWithoutResponse(groupHREF.String(), http.MethodDelete, + types.MimeAdminGroup, "error deleting group : %s", nil) +} + +// validateCreateGroup checks if mandatory fields are set for group creation and update +func validateCreateUpdateGroup(group *types.Group) error { + if group == nil { + return fmt.Errorf("group cannot be nil") + } + + if group.Name == "" { + return fmt.Errorf("group must have a name") + } + + if group.ProviderType == "" { + return fmt.Errorf("group must have provider type set") + } + + if group.Role.HREF == "" { + return fmt.Errorf("group role must have HREF set") + } + return nil +} + +// validateDeleteGroup checks if mandatory fields are set for delete +func validateDeleteGroup(group *types.Group) error { + if group == nil { + return fmt.Errorf("group cannot be nil") + } + + if group.Href == "" { + return fmt.Errorf("HREF must be set to delete group") + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lb.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lb.go new file mode 100644 index 000000000..0cfaca26c --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lb.go @@ -0,0 +1,35 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "path" + "strings" +) + +// extractNsxObjectIdFromPath parses proxied NSX API response Location header and +// extracts ID for newly created object from it. The object ID is the last element in path. +// It expects the path to have at least one "/" to be a valid path and cleans up the trailing slash +// if there is one. +// +// Sample locationPath from API: /network/edges/edge-3/loadbalancer/config/monitors/monitor-5 +// Expected ID to be returned: monitor-5 +func extractNsxObjectIdFromPath(locationPath string) (string, error) { + if locationPath == "" { + return "", fmt.Errorf("unable to get ID from empty path") + } + + cleanPath := path.Clean(locationPath) // Removes trailing slash if there is one + splitPath := strings.Split(cleanPath, "/") + + if len(splitPath) < 2 { + return "", fmt.Errorf("path does not contain url path: %s", splitPath) + } + + objectID := splitPath[len(splitPath)-1] + + return objectID, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbappprofile.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbappprofile.go new file mode 100644 index 000000000..8015cc518 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbappprofile.go @@ -0,0 +1,238 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// CreateLbAppProfile creates a load balancer application profile based on mandatory fields. It is a +// synchronous operation. It returns created object with all fields (including ID) populated or an error. +func (egw *EdgeGateway) CreateLbAppProfile(lbAppProfileConfig *types.LbAppProfile) (*types.LbAppProfile, error) { + if err := validateCreateLbAppProfile(lbAppProfileConfig, egw); err != nil { + return nil, err + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbAppProfilePath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + // We expect to get http.StatusCreated or if not an error of type types.NSXError + resp, err := egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPost, types.AnyXMLMime, + "error creating load balancer application profile: %s", lbAppProfileConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + // Location header should look similar to: + // [/network/edges/edge-3/loadbalancer/config/applicationprofiles/applicationProfile-4] + lbAppProfileID, err := extractNsxObjectIdFromPath(resp.Header.Get("Location")) + if err != nil { + return nil, err + } + + readAppProfile, err := egw.GetLbAppProfileById(lbAppProfileID) + if err != nil { + return nil, fmt.Errorf("unable to retrieve application profile with ID (%s) after creation: %s", + lbAppProfileID, err) + } + return readAppProfile, nil +} + +// GetLbAppProfiles returns a list of all LB application profiles in a given edge gateway +func (egw *EdgeGateway) GetLbAppProfiles() ([]*types.LbAppProfile, error) { + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbAppProfilePath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Anonymous struct to unwrap response + lbAppProfileResponse := &struct { + LbAppProfiles []*types.LbAppProfile `xml:"applicationProfile"` + }{} + + // This query returns all application profiles as the API does not have filtering options + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to read load balancer application profile: %s", nil, lbAppProfileResponse) + if err != nil { + return nil, err + } + return lbAppProfileResponse.LbAppProfiles, nil +} + +// getLbAppProfile is able to find the types.LbAppProfile type by Name and/or ID. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) getLbAppProfile(lbAppProfileConfig *types.LbAppProfile) (*types.LbAppProfile, error) { + if err := validateGetLbAppProfile(lbAppProfileConfig, egw); err != nil { + return nil, err + } + + lbAppProfiles, err := egw.GetLbAppProfiles() + if err != nil { + return nil, err + } + + // Search for application profile by ID or by Name + for _, profile := range lbAppProfiles { + // If ID was specified for lookup - look for the same ID + if lbAppProfileConfig.ID != "" && profile.ID == lbAppProfileConfig.ID { + return profile, nil + } + + // If Name was specified for lookup - look for the same Name + if lbAppProfileConfig.Name != "" && profile.Name == lbAppProfileConfig.Name { + // We found it by name. Let's verify if search ID was specified and it matches the lookup object + if lbAppProfileConfig.ID != "" && profile.ID != lbAppProfileConfig.ID { + return nil, fmt.Errorf("load balancer application profile was found by name (%s)"+ + ", but its ID (%s) does not match specified ID (%s)", + profile.Name, profile.ID, lbAppProfileConfig.ID) + } + return profile, nil + } + } + + return nil, ErrorEntityNotFound +} + +// GetLbAppProfileById wraps getLbAppProfile and needs only an ID for lookup +func (egw *EdgeGateway) GetLbAppProfileById(id string) (*types.LbAppProfile, error) { + return egw.getLbAppProfile(&types.LbAppProfile{ID: id}) +} + +// GetLbAppProfileByName wraps getLbAppProfile and needs only a Name for lookup +func (egw *EdgeGateway) GetLbAppProfileByName(name string) (*types.LbAppProfile, error) { + return egw.getLbAppProfile(&types.LbAppProfile{Name: name}) +} + +// UpdateLbAppProfile updates types.LbAppProfile with all fields. At least name or ID must be specified. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) UpdateLbAppProfile(lbAppProfileConfig *types.LbAppProfile) (*types.LbAppProfile, error) { + err := validateUpdateLbAppProfile(lbAppProfileConfig, egw) + if err != nil { + return nil, err + } + + lbAppProfileConfig.ID, err = egw.getLbAppProfileIdByNameId(lbAppProfileConfig.Name, lbAppProfileConfig.ID) + if err != nil { + return nil, fmt.Errorf("cannot update load balancer application profile: %s", err) + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbAppProfilePath + lbAppProfileConfig.ID) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Result should be 204, if not we expect an error of type types.NSXError + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + "error while updating load balancer application profile : %s", lbAppProfileConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + readAppProfile, err := egw.GetLbAppProfileById(lbAppProfileConfig.ID) + if err != nil { + return nil, fmt.Errorf("unable to retrieve application profile with ID (%s) after update: %s", + lbAppProfileConfig.ID, err) + } + return readAppProfile, nil +} + +// DeleteLbAppProfile is able to delete the types.LbAppProfile type by Name and/or ID. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) DeleteLbAppProfile(lbAppProfileConfig *types.LbAppProfile) error { + err := validateDeleteLbAppProfile(lbAppProfileConfig, egw) + if err != nil { + return err + } + + lbAppProfileConfig.ID, err = egw.getLbAppProfileIdByNameId(lbAppProfileConfig.Name, lbAppProfileConfig.ID) + if err != nil { + return fmt.Errorf("cannot delete load balancer application profile: %s", err) + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbAppProfilePath + lbAppProfileConfig.ID) + if err != nil { + return fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodDelete, types.AnyXMLMime, + "unable to delete application profile: %s", nil, &types.NSXError{}) + if err != nil { + return err + } + + return nil +} + +// DeleteLbAppProfileById wraps DeleteLbAppProfile and requires only ID for deletion +func (egw *EdgeGateway) DeleteLbAppProfileById(id string) error { + return egw.DeleteLbAppProfile(&types.LbAppProfile{ID: id}) +} + +// DeleteLbAppProfileByName wraps DeleteLbAppProfile and requires only Name for deletion +func (egw *EdgeGateway) DeleteLbAppProfileByName(name string) error { + return egw.DeleteLbAppProfile(&types.LbAppProfile{Name: name}) +} + +func validateCreateLbAppProfile(lbAppProfileConfig *types.LbAppProfile, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support load balancers") + } + + if lbAppProfileConfig.Name == "" { + return fmt.Errorf("load balancer application profile Name cannot be empty") + } + + return nil +} + +func validateGetLbAppProfile(lbAppProfileConfig *types.LbAppProfile, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support load balancers") + } + + if lbAppProfileConfig.ID == "" && lbAppProfileConfig.Name == "" { + return fmt.Errorf("to read load balancer application profile at least one of `ID`, `Name`" + + " fields must be specified") + } + + return nil +} + +func validateUpdateLbAppProfile(lbAppProfileConfig *types.LbAppProfile, egw *EdgeGateway) error { + // Update and create have the same requirements for now + return validateCreateLbAppProfile(lbAppProfileConfig, egw) +} + +func validateDeleteLbAppProfile(lbAppProfileConfig *types.LbAppProfile, egw *EdgeGateway) error { + // Read and delete have the same requirements for now + return validateGetLbAppProfile(lbAppProfileConfig, egw) +} + +// getLbAppProfileIdByNameId checks if at least name or ID is set and returns the ID. +// If the ID is specified - it passes through the ID. If only name was specified +// it will lookup the object by name and return the ID. +func (egw *EdgeGateway) getLbAppProfileIdByNameId(name, id string) (string, error) { + if name == "" && id == "" { + return "", fmt.Errorf("at least Name or ID must be specific to find load balancer "+ + "application profile got name (%s) ID (%s)", name, id) + } + if id != "" { + return id, nil + } + + // if only name was specified, ID must be found, because only ID can be used in request path + readlbAppProfile, err := egw.GetLbAppProfileByName(name) + if err != nil { + return "", fmt.Errorf("unable to find load balancer application profile by name: %s", err) + } + return readlbAppProfile.ID, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbapprule.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbapprule.go new file mode 100644 index 000000000..b09d2b055 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbapprule.go @@ -0,0 +1,239 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// CreateLbAppRule creates a load balancer application rule based on mandatory fields. It is a +// synchronous operation. It returns created object with all fields (including ID) populated or an error. +func (egw *EdgeGateway) CreateLbAppRule(lbAppRuleConfig *types.LbAppRule) (*types.LbAppRule, error) { + if err := validateCreateLbAppRule(lbAppRuleConfig, egw); err != nil { + return nil, err + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbAppRulePath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + // We expect to get http.StatusCreated or if not an error of type types.NSXError + resp, err := egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPost, types.AnyXMLMime, + "error creating load balancer application rule: %s", lbAppRuleConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + // Location header should look similar to: + // [/network/edges/edge-3/loadbalancer/config/applicationrules/applicationRule-4] + lbAppRuleId, err := extractNsxObjectIdFromPath(resp.Header.Get("Location")) + if err != nil { + return nil, err + } + + readAppRule, err := egw.GetLbAppRuleById(lbAppRuleId) + if err != nil { + return nil, fmt.Errorf("unable to retrieve application rule with ID (%s) after creation: %s", + lbAppRuleId, err) + } + return readAppRule, nil +} + +// GetLbAppRules returns a list of all LB application rules for a given edge gateway +func (egw *EdgeGateway) GetLbAppRules() ([]*types.LbAppRule, error) { + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbAppRulePath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Anonymous struct to unwrap response + lbAppRuleResponse := &struct { + LbAppRules []*types.LbAppRule `xml:"applicationRule"` + }{} + + // This query returns all application rules as the API does not have filtering options + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to read load balancer application rule: %s", nil, lbAppRuleResponse) + if err != nil { + return nil, err + } + return lbAppRuleResponse.LbAppRules, nil +} + +// getLbAppRule is able to find the types.LbAppRule type by Name and/or ID. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) getLbAppRule(lbAppRuleConfig *types.LbAppRule) (*types.LbAppRule, error) { + if err := validateGetLbAppRule(lbAppRuleConfig, egw); err != nil { + return nil, err + } + + lbAppRules, err := egw.GetLbAppRules() + if err != nil { + return nil, err + } + + // Search for application rule by ID or by Name + for _, rule := range lbAppRules { + // If ID was specified for lookup - look for the same ID + if lbAppRuleConfig.ID != "" && rule.ID == lbAppRuleConfig.ID { + return rule, nil + } + + // If Name was specified for lookup - look for the same Name + if lbAppRuleConfig.Name != "" && rule.Name == lbAppRuleConfig.Name { + // We found it by name. Let's verify if search ID was specified and it matches the lookup object + if lbAppRuleConfig.ID != "" && rule.ID != lbAppRuleConfig.ID { + return nil, fmt.Errorf("load balancer application rule was found by name (%s)"+ + ", but its ID (%s) does not match specified ID (%s)", + rule.Name, rule.ID, lbAppRuleConfig.ID) + } + return rule, nil + } + } + + return nil, ErrorEntityNotFound +} + +// ReadLBAppRuleById wraps getLbAppRule and needs only an ID for lookup +func (egw *EdgeGateway) GetLbAppRuleById(id string) (*types.LbAppRule, error) { + return egw.getLbAppRule(&types.LbAppRule{ID: id}) +} + +// GetLbAppRuleByName wraps getLbAppRule and needs only a Name for lookup +func (egw *EdgeGateway) GetLbAppRuleByName(name string) (*types.LbAppRule, error) { + return egw.getLbAppRule(&types.LbAppRule{Name: name}) +} + +// UpdateLbAppRule updates types.LbAppRule with all fields. At least name or ID must be specified. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) UpdateLbAppRule(lbAppRuleConfig *types.LbAppRule) (*types.LbAppRule, error) { + err := validateUpdateLbAppRule(lbAppRuleConfig, egw) + if err != nil { + return nil, err + } + + lbAppRuleConfig.ID, err = egw.getLbAppRuleIdByNameId(lbAppRuleConfig.Name, lbAppRuleConfig.ID) + if err != nil { + return nil, fmt.Errorf("cannot update load balancer application rule: %s", err) + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbAppRulePath + lbAppRuleConfig.ID) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Result should be 204, if not we expect an error of type types.NSXError + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + "error while updating load balancer application rule : %s", lbAppRuleConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + readAppRule, err := egw.getLbAppRule(&types.LbAppRule{ID: lbAppRuleConfig.ID}) + if err != nil { + return nil, fmt.Errorf("unable to retrieve application rule with ID (%s) after update: %s", + lbAppRuleConfig.ID, err) + } + return readAppRule, nil +} + +// DeleteLbAppRule is able to delete the types.LbAppRule type by Name and/or ID. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) DeleteLbAppRule(lbAppRuleConfig *types.LbAppRule) error { + err := validateDeleteLbAppRule(lbAppRuleConfig, egw) + if err != nil { + return err + } + + lbAppRuleConfig.ID, err = egw.getLbAppRuleIdByNameId(lbAppRuleConfig.Name, lbAppRuleConfig.ID) + if err != nil { + return fmt.Errorf("cannot update load balancer application rule: %s", err) + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbAppRulePath + lbAppRuleConfig.ID) + if err != nil { + return fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodDelete, types.AnyXMLMime, + "unable to delete application rule: %s", nil, &types.NSXError{}) + if err != nil { + return err + } + + return nil +} + +// DeleteLBAppRuleById wraps DeleteLbAppRule and requires only ID for deletion +func (egw *EdgeGateway) DeleteLbAppRuleById(id string) error { + return egw.DeleteLbAppRule(&types.LbAppRule{ID: id}) +} + +// DeleteLbAppRuleByName wraps DeleteLbAppRule and requires only Name for deletion +func (egw *EdgeGateway) DeleteLbAppRuleByName(name string) error { + return egw.DeleteLbAppRule(&types.LbAppRule{Name: name}) +} + +func validateCreateLbAppRule(lbAppRuleConfig *types.LbAppRule, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support load balancers") + } + + if lbAppRuleConfig.Name == "" { + return fmt.Errorf("load balancer application rule Name cannot be empty") + } + + return nil +} + +func validateGetLbAppRule(lbAppRuleConfig *types.LbAppRule, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support load balancers") + } + + if lbAppRuleConfig.ID == "" && lbAppRuleConfig.Name == "" { + return fmt.Errorf("to read load balancer application rule at least one of `ID`, `Name`" + + " fields must be specified") + } + + return nil +} + +func validateUpdateLbAppRule(lbAppRuleConfig *types.LbAppRule, egw *EdgeGateway) error { + // Update and create have the same requirements for now + return validateCreateLbAppRule(lbAppRuleConfig, egw) +} + +func validateDeleteLbAppRule(lbAppRuleConfig *types.LbAppRule, egw *EdgeGateway) error { + // Read and delete have the same requirements for now + return validateGetLbAppRule(lbAppRuleConfig, egw) +} + +// getLbAppRuleIdByNameId checks if at least name or ID is set and returns the ID. +// If the ID is specified - it passes through the ID. If only name was specified +// it will lookup the object by name and return the ID. +func (egw *EdgeGateway) getLbAppRuleIdByNameId(name, id string) (string, error) { + if name == "" && id == "" { + return "", fmt.Errorf("at least Name or ID must be specific to find load balancer "+ + "application rule got name (%s) ID (%s)", name, id) + } + if id != "" { + return id, nil + } + + // if only name was specified, ID must be found, because only ID can be used in request path + readlbAppRule, err := egw.GetLbAppRuleByName(name) + if err != nil { + return "", fmt.Errorf("unable to find load balancer application rule by name: %s", err) + } + return readlbAppRule.ID, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbserverpool.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbserverpool.go new file mode 100644 index 000000000..631736dfe --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbserverpool.go @@ -0,0 +1,247 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// CreateLbServerPool creates a load balancer server pool based on mandatory fields. It is a synchronous +// operation. It returns created object with all fields (including ID) populated or an error. +// Name and Algorithm fields must be populated. +func (egw *EdgeGateway) CreateLbServerPool(lbPoolConfig *types.LbPool) (*types.LbPool, error) { + if err := validateCreateLbServerPool(lbPoolConfig, egw); err != nil { + return nil, err + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbServerPoolPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + // We expect to get http.StatusCreated or if not an error of type types.NSXError + resp, err := egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPost, types.AnyXMLMime, + "error creating load balancer server pool: %s", lbPoolConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + // Location header should look similar to: + // Location: [/network/edges/edge-3/loadbalancer/config/pools/pool-7] + lbPoolID, err := extractNsxObjectIdFromPath(resp.Header.Get("Location")) + if err != nil { + return nil, err + } + + readPool, err := egw.GetLbServerPoolById(lbPoolID) + if err != nil { + return nil, fmt.Errorf("unable to retrieve lb server pool with ID (%s) after creation: %s", lbPoolID, err) + } + return readPool, nil +} + +// getLbServerPool is able to find the types.LbPool type by Name and/or ID. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) getLbServerPool(lbPoolConfig *types.LbPool) (*types.LbPool, error) { + if err := validateGetLbServerPool(lbPoolConfig, egw); err != nil { + return nil, err + } + + pools, err := egw.GetLbServerPools() + if err != nil { + return nil, err + } + + // Search for pool by ID or by Name + for _, pool := range pools { + // If ID was specified for lookup - look for the same ID + if lbPoolConfig.ID != "" && pool.ID == lbPoolConfig.ID { + return pool, nil + } + + // If Name was specified for lookup - look for the same Name + if lbPoolConfig.Name != "" && pool.Name == lbPoolConfig.Name { + // We found it by name. Let's verify if search ID was specified and it matches the lookup object + if lbPoolConfig.ID != "" && pool.ID != lbPoolConfig.ID { + return nil, fmt.Errorf("load balancer server pool was found by name (%s), but its ID (%s) does not match specified ID (%s)", + pool.Name, pool.ID, lbPoolConfig.ID) + } + return pool, nil + } + } + + return nil, ErrorEntityNotFound +} + +// GetLbServerPools return all created server pools without filtering. +func (egw *EdgeGateway) GetLbServerPools() ([]*types.LbPool, error) { + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbServerPoolPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Anonymous struct to unwrap "server pool response" + lbPoolResponse := &struct { + LBPools []*types.LbPool `xml:"pool"` + }{} + + // This query returns all server pools as the API does not have filtering options + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to read load lalancer server pool: %s", nil, lbPoolResponse) + if err != nil { + return nil, err + } + + return lbPoolResponse.LBPools, nil +} + +// GetLbServerPoolByName wraps getLbServerPool and needs only an ID for lookup +func (egw *EdgeGateway) GetLbServerPoolById(id string) (*types.LbPool, error) { + return egw.getLbServerPool(&types.LbPool{ID: id}) +} + +// GetLbServerPoolByName wraps getLbServerPool and needs only a Name for lookup +func (egw *EdgeGateway) GetLbServerPoolByName(name string) (*types.LbPool, error) { + return egw.getLbServerPool(&types.LbPool{Name: name}) +} + +// UpdateLbServerPool updates types.LbPool with all fields. At least name or ID must be specified. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +// Name and Algorithm fields must be populated. +func (egw *EdgeGateway) UpdateLbServerPool(lbPoolConfig *types.LbPool) (*types.LbPool, error) { + err := validateUpdateLbServerPool(lbPoolConfig, egw) + if err != nil { + return nil, err + } + + lbPoolConfig.ID, err = egw.getLbServerPoolIdByNameId(lbPoolConfig.Name, lbPoolConfig.ID) + if err != nil { + return nil, fmt.Errorf("cannot update load balancer server pool: %s", err) + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbServerPoolPath + lbPoolConfig.ID) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Result should be 204, if not we expect an error of type types.NSXError + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + "error while updating load balancer server pool : %s", lbPoolConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + readPool, err := egw.GetLbServerPoolById(lbPoolConfig.ID) + if err != nil { + return nil, fmt.Errorf("unable to retrieve server pool with ID (%s) after update: %s", lbPoolConfig.ID, err) + } + return readPool, nil +} + +// DeleteLbServerPool is able to delete the types.LbPool type by Name and/or ID. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) DeleteLbServerPool(lbPoolConfig *types.LbPool) error { + err := validateDeleteLbServerPool(lbPoolConfig, egw) + if err != nil { + return err + } + + lbPoolConfig.ID, err = egw.getLbServerPoolIdByNameId(lbPoolConfig.Name, lbPoolConfig.ID) + if err != nil { + return fmt.Errorf("cannot delete load balancer server pool: %s", err) + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbServerPoolPath + lbPoolConfig.ID) + if err != nil { + return fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodDelete, types.AnyXMLMime, + "unable to delete server pool: %s", nil, &types.NSXError{}) + if err != nil { + return err + } + + return nil +} + +// DeleteLbServerPoolById wraps DeleteLbServerPool and requires only ID for deletion +func (egw *EdgeGateway) DeleteLbServerPoolById(id string) error { + return egw.DeleteLbServerPool(&types.LbPool{ID: id}) +} + +// DeleteLbServerPoolByName wraps DeleteLbServerPool and requires only Name for deletion +func (egw *EdgeGateway) DeleteLbServerPoolByName(name string) error { + return egw.DeleteLbServerPool(&types.LbPool{Name: name}) +} + +func validateCreateLbServerPool(lbPoolConfig *types.LbPool, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support load balancers") + } + + if lbPoolConfig.Name == "" { + return fmt.Errorf("load balancer server pool Name cannot be empty") + } + + if lbPoolConfig.Algorithm == "" { + return fmt.Errorf("load balancer server pool Algorithm cannot be empty") + } + + for _, member := range lbPoolConfig.Members { + if member.Condition == "" { + return fmt.Errorf("load balancer server pool Member must have Condition set") + } + } + + return nil +} + +func validateGetLbServerPool(lbPoolConfig *types.LbPool, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support load balancers") + } + + if lbPoolConfig.ID == "" && lbPoolConfig.Name == "" { + return fmt.Errorf("to read load balancer server pool at least one of `ID`, `Name` fields must be specified") + } + + return nil +} + +func validateUpdateLbServerPool(lbPoolConfig *types.LbPool, egw *EdgeGateway) error { + // Update and create have the same requirements for now + return validateCreateLbServerPool(lbPoolConfig, egw) +} + +func validateDeleteLbServerPool(lbPoolConfig *types.LbPool, egw *EdgeGateway) error { + // Read and delete have the same requirements for now + return validateGetLbServerPool(lbPoolConfig, egw) +} + +// getLbServerPoolIdByNameId checks if at least name or ID is set and returns the ID. +// If the ID is specified - it passes through the ID. If only name was specified +// it will lookup the object by name and return the ID. +func (egw *EdgeGateway) getLbServerPoolIdByNameId(name, id string) (string, error) { + if name == "" && id == "" { + return "", fmt.Errorf("at least Name or ID must be specific to find load balancer "+ + "server pool got name (%s) ID (%s)", name, id) + } + if id != "" { + return id, nil + } + + // if only name was specified, ID must be found, because only ID can be used in request path + readlbServerPool, err := egw.GetLbServerPoolByName(name) + if err != nil { + return "", fmt.Errorf("unable to find load balancer server pool by name: %s", err) + } + return readlbServerPool.ID, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbservicemonitor.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbservicemonitor.go new file mode 100644 index 000000000..bf100e4f8 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbservicemonitor.go @@ -0,0 +1,254 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// CreateLbServiceMonitor creates a load balancer service monitor based on mandatory fields. It is a synchronous +// operation. It returns created object with all fields (including ID) populated or an error. +func (egw *EdgeGateway) CreateLbServiceMonitor(lbMonitorConfig *types.LbMonitor) (*types.LbMonitor, error) { + if err := validateCreateLbServiceMonitor(lbMonitorConfig, egw); err != nil { + return nil, err + } + + if !egw.HasAdvancedNetworking() { + return nil, fmt.Errorf("edge gateway does not have advanced networking enabled") + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbMonitorPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + // We expect to get http.StatusCreated or if not an error of type types.NSXError + resp, err := egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPost, types.AnyXMLMime, + "error creating load balancer service monitor: %s", lbMonitorConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + // Location header should look similar to: + // Location: [/network/edges/edge-3/loadbalancer/config/monitors/monitor-5] + lbMonitorID, err := extractNsxObjectIdFromPath(resp.Header.Get("Location")) + if err != nil { + return nil, err + } + + readMonitor, err := egw.GetLbServiceMonitorById(lbMonitorID) + if err != nil { + return nil, fmt.Errorf("unable to retrieve monitor with ID (%s) after creation: %s", lbMonitorID, err) + } + return readMonitor, nil +} + +// getLbServiceMonitor is able to find the types.LbMonitor type by Name and/or ID. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) getLbServiceMonitor(lbMonitorConfig *types.LbMonitor) (*types.LbMonitor, error) { + if err := validateGetLbServiceMonitor(lbMonitorConfig, egw); err != nil { + return nil, err + } + + serviceMonitors, err := egw.GetLbServiceMonitors() + if err != nil { + return nil, err + } + + // Search for monitor by ID or by Name + for _, monitor := range serviceMonitors { + // If ID was specified for lookup - look for the same ID + if lbMonitorConfig.ID != "" && monitor.ID == lbMonitorConfig.ID { + return monitor, nil + } + + // If Name was specified for lookup - look for the same Name + if lbMonitorConfig.Name != "" && monitor.Name == lbMonitorConfig.Name { + // We found it by name. Let's verify if search ID was specified and it matches the lookup object + if lbMonitorConfig.ID != "" && monitor.ID != lbMonitorConfig.ID { + return nil, fmt.Errorf("load balancer monitor was found by name (%s), but its ID (%s) does not match specified ID (%s)", + monitor.Name, monitor.ID, lbMonitorConfig.ID) + } + return monitor, nil + } + } + + return nil, ErrorEntityNotFound +} + +// GetLbServiceMonitors return all service monitors without filtering +func (egw *EdgeGateway) GetLbServiceMonitors() ([]*types.LbMonitor, error) { + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbMonitorPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Anonymous struct to unwrap "monitor response" + lbMonitorResponse := &struct { + LBMonitors []*types.LbMonitor `xml:"monitor"` + }{} + + // This query returns all service monitors as the API does not have filtering options + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, "unable to read Load Balancer monitor: %s", nil, lbMonitorResponse) + if err != nil { + return nil, err + } + + return lbMonitorResponse.LBMonitors, nil +} + +// GetLbServiceMonitorById wraps getLbServiceMonitor and needs only an ID for lookup +func (egw *EdgeGateway) GetLbServiceMonitorById(id string) (*types.LbMonitor, error) { + return egw.getLbServiceMonitor(&types.LbMonitor{ID: id}) +} + +// GetLbServiceMonitorByName wraps getLbServiceMonitor and needs only a Name for lookup +func (egw *EdgeGateway) GetLbServiceMonitorByName(name string) (*types.LbMonitor, error) { + return egw.getLbServiceMonitor(&types.LbMonitor{Name: name}) +} + +// UpdateLbServiceMonitor updates types.LbMonitor with all fields. At least name or ID must be specified. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) UpdateLbServiceMonitor(lbMonitorConfig *types.LbMonitor) (*types.LbMonitor, error) { + err := validateUpdateLbServiceMonitor(lbMonitorConfig, egw) + if err != nil { + return nil, err + } + + lbMonitorConfig.ID, err = egw.getLbServiceMonitorIdByNameId(lbMonitorConfig.Name, lbMonitorConfig.ID) + if err != nil { + return nil, fmt.Errorf("cannot update load balancer service monitor: %s", err) + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbMonitorPath + lbMonitorConfig.ID) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Result should be 204, if not we expect an error of type types.NSXError + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + "error while updating load balancer service monitor : %s", lbMonitorConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + readMonitor, err := egw.GetLbServiceMonitorById(lbMonitorConfig.ID) + if err != nil { + return nil, fmt.Errorf("unable to retrieve monitor with ID (%s) after update: %s", lbMonitorConfig.ID, err) + } + return readMonitor, nil +} + +// DeleteLbServiceMonitor is able to delete the types.LbMonitor type by Name and/or ID. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) DeleteLbServiceMonitor(lbMonitorConfig *types.LbMonitor) error { + err := validateDeleteLbServiceMonitor(lbMonitorConfig, egw) + if err != nil { + return err + } + + lbMonitorConfig.ID, err = egw.getLbServiceMonitorIdByNameId(lbMonitorConfig.Name, lbMonitorConfig.ID) + if err != nil { + return fmt.Errorf("cannot delete load balancer service monitor: %s", err) + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbMonitorPath + lbMonitorConfig.ID) + if err != nil { + return fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodDelete, types.AnyXMLMime, + "unable to delete service monitor: %s", nil, &types.NSXError{}) + if err != nil { + return err + } + + return nil +} + +// DeleteLbServiceMonitorById wraps DeleteLbServiceMonitor and requires only ID for deletion +func (egw *EdgeGateway) DeleteLbServiceMonitorById(id string) error { + return egw.DeleteLbServiceMonitor(&types.LbMonitor{ID: id}) +} + +// DeleteLbServiceMonitorByName wraps DeleteLbServiceMonitor and requires only Name for deletion +func (egw *EdgeGateway) DeleteLbServiceMonitorByName(name string) error { + return egw.DeleteLbServiceMonitor(&types.LbMonitor{Name: name}) +} + +func validateCreateLbServiceMonitor(lbMonitorConfig *types.LbMonitor, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support load balancers") + } + + if lbMonitorConfig.Name == "" { + return fmt.Errorf("load balancer monitor Name cannot be empty") + } + + if lbMonitorConfig.Timeout == 0 { + return fmt.Errorf("load balancer monitor Timeout cannot be 0") + } + + if lbMonitorConfig.Interval == 0 { + return fmt.Errorf("load balancer monitor Interval cannot be 0") + } + + if lbMonitorConfig.MaxRetries == 0 { + return fmt.Errorf("load balancer monitor MaxRetries cannot be 0") + } + + if lbMonitorConfig.Type == "" { + return fmt.Errorf("load balancer monitor Type cannot be empty") + } + + return nil +} + +func validateGetLbServiceMonitor(lbMonitorConfig *types.LbMonitor, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support load balancers") + } + + if lbMonitorConfig.ID == "" && lbMonitorConfig.Name == "" { + return fmt.Errorf("to read load balancer service monitor at least one of `ID`, `Name` fields must be specified") + } + + return nil +} + +func validateUpdateLbServiceMonitor(lbMonitorConfig *types.LbMonitor, egw *EdgeGateway) error { + // Update and create have the same requirements for now + return validateCreateLbServiceMonitor(lbMonitorConfig, egw) +} + +func validateDeleteLbServiceMonitor(lbMonitorConfig *types.LbMonitor, egw *EdgeGateway) error { + // Read and delete have the same requirements for now + return validateGetLbServiceMonitor(lbMonitorConfig, egw) +} + +// getLbServiceMonitorIdByNameId checks if at least name or ID is set and returns the ID. +// If the ID is specified - it passes through the ID. If only name was specified +// it will lookup the object by name and return the ID. +func (egw *EdgeGateway) getLbServiceMonitorIdByNameId(name, id string) (string, error) { + if name == "" && id == "" { + return "", fmt.Errorf("at least Name or ID must be specific to find load balancer "+ + "service monitor got name (%s) ID (%s)", name, id) + } + if id != "" { + return id, nil + } + + // if only name was specified, ID must be found, because only ID can be used in request path + readlbServiceMonitor, err := egw.GetLbServiceMonitorByName(name) + if err != nil { + return "", fmt.Errorf("unable to find load balancer service monitor by name: %s", err) + } + return readlbServiceMonitor.ID, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbvirtualserver.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbvirtualserver.go new file mode 100644 index 000000000..e12115a9d --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/lbvirtualserver.go @@ -0,0 +1,254 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// CreateLbVirtualServer creates a load balancer virtual server based on mandatory fields. It is a +// synchronous operation. It returns created object with all fields (including ID) populated +// or an error. +// Name, Protocol, Port and IpAddress fields must be populated +func (egw *EdgeGateway) CreateLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer) (*types.LbVirtualServer, error) { + if err := validateCreateLbVirtualServer(lbVirtualServerConfig, egw); err != nil { + return nil, err + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbVirtualServerPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + // We expect to get http.StatusCreated or if not an error of type types.NSXError + resp, err := egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPost, types.AnyXMLMime, + "error creating load balancer virtual server: %s", lbVirtualServerConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + // Location header should look similar to: + // Location: [/network/edges/edge-3/loadbalancer/config/virtualservers/virtualServer-10] + lbVirtualServerId, err := extractNsxObjectIdFromPath(resp.Header.Get("Location")) + if err != nil { + return nil, err + } + + readVirtualServer, err := egw.GetLbVirtualServerById(lbVirtualServerId) + if err != nil { + return nil, fmt.Errorf("unable to retrieve load balancer virtual server with ID (%s) after creation: %s", + lbVirtualServerId, err) + } + return readVirtualServer, nil +} + +// getLbVirtualServer is able to find the types.LbVirtualServer type by Name and/or ID. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found +// name do not match. +func (egw *EdgeGateway) getLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer) (*types.LbVirtualServer, error) { + if err := validateGetLbVirtualServer(lbVirtualServerConfig, egw); err != nil { + return nil, err + } + + vs, err := egw.GetLbVirtualServers() + if err != nil { + return nil, err + } + + // Search for virtual server by ID or by Name + for _, virtualServer := range vs { + // If ID was specified for lookup - look for the same ID + if lbVirtualServerConfig.ID != "" && virtualServer.ID == lbVirtualServerConfig.ID { + return virtualServer, nil + } + + // If Name was specified for lookup - look for the same Name + if lbVirtualServerConfig.Name != "" && virtualServer.Name == lbVirtualServerConfig.Name { + // We found it by name. Let's verify if search ID was specified and it matches the lookup object + if lbVirtualServerConfig.ID != "" && virtualServer.ID != lbVirtualServerConfig.ID { + return nil, fmt.Errorf("load balancer virtual server was found by name (%s), "+ + "but its ID (%s) does not match specified ID (%s)", + virtualServer.Name, virtualServer.ID, lbVirtualServerConfig.ID) + } + return virtualServer, nil + } + } + + return nil, ErrorEntityNotFound +} + +// GetLbVirtualServers is getting all virtual servers without filtering anything +func (egw *EdgeGateway) GetLbVirtualServers() ([]*types.LbVirtualServer, error) { + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbVirtualServerPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Anonymous struct to unwrap "virtual server response" + lbVirtualServerResponse := &struct { + LBVirtualServers []*types.LbVirtualServer `xml:"virtualServer"` + }{} + + // This query returns all virtual servers as the API does not have filtering options + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to read load balancer virtual server: %s", nil, lbVirtualServerResponse) + if err != nil { + return nil, err + } + + return lbVirtualServerResponse.LBVirtualServers, nil +} + +// GetLbVirtualServerById wraps getLbVirtualServers and needs only an ID for lookup +func (egw *EdgeGateway) GetLbVirtualServerById(id string) (*types.LbVirtualServer, error) { + return egw.getLbVirtualServer(&types.LbVirtualServer{ID: id}) +} + +// GetLbVirtualServerByName wraps getLbVirtualServers and needs only a Name for lookup +func (egw *EdgeGateway) GetLbVirtualServerByName(name string) (*types.LbVirtualServer, error) { + return egw.getLbVirtualServer(&types.LbVirtualServer{Name: name}) +} + +// UpdateLbVirtualServer updates types.LbVirtualServer with all fields. At least name or ID must be +// specified. If both - Name and ID are specified it performs a lookup by ID and returns an error if +// the specified name and found name do not match. +// Name, Protocol, Port and IpAddress fields must be populated +func (egw *EdgeGateway) UpdateLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer) (*types.LbVirtualServer, error) { + err := validateUpdateLbVirtualServer(lbVirtualServerConfig, egw) + if err != nil { + return nil, err + } + + lbVirtualServerConfig.ID, err = egw.getLbVirtualServerIdByNameId(lbVirtualServerConfig.Name, lbVirtualServerConfig.ID) + if err != nil { + return nil, fmt.Errorf("cannot update load balancer virtual server: %s", err) + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbVirtualServerPath + lbVirtualServerConfig.ID) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Result should be 204, if not we expect an error of type types.NSXError + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + "error while updating load balancer virtual server : %s", lbVirtualServerConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + readVirtualServer, err := egw.GetLbVirtualServerById(lbVirtualServerConfig.ID) + if err != nil { + return nil, fmt.Errorf("unable to retrieve virtual server with ID (%s) after update: %s", + lbVirtualServerConfig.ID, err) + } + return readVirtualServer, nil +} + +// DeleteLbVirtualServer is able to delete the types.LbVirtualServer type by Name and/or ID. +// If both - Name and ID are specified it performs a lookup by ID and returns an error if the +// specified name and found name do not match. +func (egw *EdgeGateway) DeleteLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer) error { + err := validateDeleteLbVirtualServer(lbVirtualServerConfig, egw) + if err != nil { + return err + } + + lbVirtualServerConfig.ID, err = egw.getLbVirtualServerIdByNameId(lbVirtualServerConfig.Name, lbVirtualServerConfig.ID) + if err != nil { + return fmt.Errorf("cannot delete load balancer virtual server: %s", err) + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.LbVirtualServerPath + lbVirtualServerConfig.ID) + if err != nil { + return fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodDelete, types.AnyXMLMime, + "unable to delete load balancer virtual server: %s", nil, &types.NSXError{}) + if err != nil { + return err + } + + return nil +} + +// DeleteLbVirtualServerById wraps DeleteLbVirtualServer and requires only ID for deletion +func (egw *EdgeGateway) DeleteLbVirtualServerById(id string) error { + return egw.DeleteLbVirtualServer(&types.LbVirtualServer{ID: id}) +} + +// DeleteLbVirtualServerByName wraps DeleteLbVirtualServer and requires only Name for deletion +func (egw *EdgeGateway) DeleteLbVirtualServerByName(name string) error { + return egw.DeleteLbVirtualServer(&types.LbVirtualServer{Name: name}) +} + +func validateCreateLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support load balancers") + } + + if lbVirtualServerConfig.Name == "" { + return fmt.Errorf("load balancer virtual server Name cannot be empty") + } + + if lbVirtualServerConfig.IpAddress == "" { + return fmt.Errorf("load balancer virtual server IpAddress cannot be empty") + } + + if lbVirtualServerConfig.Protocol == "" { + return fmt.Errorf("load balancer virtual server Protocol cannot be empty") + } + + if lbVirtualServerConfig.Port == 0 { + return fmt.Errorf("load balancer virtual server Port cannot be empty") + } + + return nil +} + +func validateGetLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support load balancers") + } + + if lbVirtualServerConfig.ID == "" && lbVirtualServerConfig.Name == "" { + return fmt.Errorf("to read load balancer virtual server at least one of `ID`, `Name` " + + "fields must be specified") + } + + return nil +} + +func validateUpdateLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer, egw *EdgeGateway) error { + // Update and create have the same requirements for now + return validateCreateLbVirtualServer(lbVirtualServerConfig, egw) +} + +func validateDeleteLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer, egw *EdgeGateway) error { + // Read and delete have the same requirements for now + return validateGetLbVirtualServer(lbVirtualServerConfig, egw) +} + +// getLbVirtualServerIdByNameId checks if at least name or ID is set and returns the ID. +// If the ID is specified - it passes through the ID. If only name was specified +// it will lookup the object by name and return the ID. +func (egw *EdgeGateway) getLbVirtualServerIdByNameId(name, id string) (string, error) { + if name == "" && id == "" { + return "", fmt.Errorf("at least Name or ID must be specific to find load balancer "+ + "virtual server got name (%s) ID (%s)", name, id) + } + if id != "" { + return id, nil + } + + // if only name was specified, ID must be found, because only ID can be used in request path + readLbVirtualServer, err := egw.GetLbVirtualServerByName(name) + if err != nil { + return "", fmt.Errorf("unable to find load balancer virtual server by name: %s", err) + } + return readLbVirtualServer.ID, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/media.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/media.go new file mode 100644 index 000000000..019f4b477 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/media.go @@ -0,0 +1,697 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "bytes" + "errors" + "fmt" + "io" + "net/http" + "net/url" + "os" + "strconv" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// Deprecated: use MediaRecord +type MediaItem struct { + MediaItem *types.MediaRecordType + vdc *Vdc +} + +// Deprecated: use NewMediaRecord +func NewMediaItem(vdc *Vdc) *MediaItem { + return &MediaItem{ + MediaItem: new(types.MediaRecordType), + vdc: vdc, + } +} + +type Media struct { + Media *types.Media + client *Client +} + +func NewMedia(cli *Client) *Media { + return &Media{ + Media: new(types.Media), + client: cli, + } +} + +type MediaRecord struct { + MediaRecord *types.MediaRecordType + client *Client +} + +func NewMediaRecord(cli *Client) *MediaRecord { + return &MediaRecord{ + MediaRecord: new(types.MediaRecordType), + client: cli, + } +} + +// Uploads an ISO file as media. This method only uploads bits to vCD spool area. +// Returns errors if any occur during upload from vCD or upload process. On upload fail client may need to +// remove vCD catalog item which waits for files to be uploaded. +// +// Deprecated: This method is broken in API V32.0+. Please use catalog.UploadMediaImage because VCD does not support +// uploading directly to VDC anymore. +func (vdc *Vdc) UploadMediaImage(mediaName, mediaDescription, filePath string, uploadPieceSize int64) (UploadTask, error) { + util.Logger.Printf("[TRACE] UploadImage: %s, image name: %v \n", mediaName, mediaDescription) + + // On a very high level the flow is as follows + // 1. Makes a POST call to vCD to create media item(also creates a transfer folder in the spool area and as result will give a media item resource XML). + // 2. Start uploading bits to the transfer folder + // 3. Wait on the import task to finish on vCD side -> task success = upload complete + + if *vdc == (Vdc{}) { + return UploadTask{}, errors.New("vdc can not be empty or nil") + } + + mediaFilePath, err := validateAndFixFilePath(filePath) + if err != nil { + return UploadTask{}, err + } + + isISOGood, err := verifyIso(mediaFilePath) + if err != nil || !isISOGood { + return UploadTask{}, fmt.Errorf("[ERROR] File %s isn't correct iso file: %s", mediaFilePath, err) + } + + mediaList, err := getExistingMedia(vdc) + if err != nil { + return UploadTask{}, fmt.Errorf("[ERROR] Checking existing media files failed: %s", err) + } + + for _, media := range mediaList { + if media.Name == mediaName { + return UploadTask{}, fmt.Errorf("media item '%s' already exists. Upload with different name", mediaName) + } + } + + file, e := os.Stat(mediaFilePath) + if e != nil { + return UploadTask{}, fmt.Errorf("[ERROR] Issue finding file: %#v", e) + } + fileSize := file.Size() + + media, err := createMedia(vdc.client, vdc.Vdc.HREF+"/media", mediaName, mediaDescription, fileSize) + if err != nil { + return UploadTask{}, fmt.Errorf("[ERROR] Issue creating media: %s", err) + } + + return executeUpload(vdc.client, media, mediaFilePath, mediaName, fileSize, uploadPieceSize) +} + +func executeUpload(client *Client, media *types.Media, mediaFilePath, mediaName string, fileSize, uploadPieceSize int64) (UploadTask, error) { + uploadLink, err := getUploadLink(media.Files) + if err != nil { + return UploadTask{}, fmt.Errorf("[ERROR] Issue getting upload link: %s", err) + } + + callBack, uploadProgress := getProgressCallBackFunction() + + uploadError := *new(error) + + details := uploadDetails{ + uploadLink: uploadLink.String(), // just take string + uploadedBytes: 0, + fileSizeToUpload: fileSize, + uploadPieceSize: uploadPieceSize, + uploadedBytesForCallback: 0, + allFilesSize: fileSize, + callBack: callBack, + uploadError: &uploadError, + } + + // sending upload process to background, this allows not to lock and return task to client + // The error should be captured in details.uploadError, but just in case, we add a logging for the + // main error + go func() { + _, err = uploadFile(client, mediaFilePath, details) + if err != nil { + util.Logger.Println(strings.Repeat("*", 80)) + util.Logger.Printf("*** [DEBUG - executeUpload] error calling uploadFile: %s\n", err) + util.Logger.Println(strings.Repeat("*", 80)) + } + }() + + var task Task + for _, item := range media.Tasks.Task { + task, err = createTaskForVcdImport(client, item.HREF) + if err != nil { + removeImageOnError(client, media, mediaName) + return UploadTask{}, err + } + if task.Task.Status == "error" { + removeImageOnError(client, media, mediaName) + return UploadTask{}, fmt.Errorf("task did not complete succesfully: %s", task.Task.Description) + } + } + + uploadTask := NewUploadTask(&task, uploadProgress, &uploadError) + + util.Logger.Printf("[TRACE] Upload media function finished and task for vcd import created. \n") + + return *uploadTask, nil +} + +// Initiates creation of media item and returns temporary upload URL. +func createMedia(client *Client, link, mediaName, mediaDescription string, fileSize int64) (*types.Media, error) { + uploadUrl, err := url.ParseRequestURI(link) + if err != nil { + return nil, fmt.Errorf("error getting vdc href: %s", err) + } + + reqBody := bytes.NewBufferString( + "" + + "" + mediaDescription + "" + + "") + + request := client.NewRequest(map[string]string{}, http.MethodPost, *uploadUrl, reqBody) + request.Header.Add("Content-Type", "application/vnd.vmware.vcloud.media+xml") + + response, err := checkResp(client.Http.Do(request)) + if err != nil { + return nil, err + } + defer response.Body.Close() + + mediaForUpload := &types.Media{} + if err = decodeBody(types.BodyTypeXML, response, mediaForUpload); err != nil { + return nil, err + } + + util.Logger.Printf("[TRACE] Media item parsed: %#v\n", mediaForUpload) + + if mediaForUpload.Tasks != nil { + for _, task := range mediaForUpload.Tasks.Task { + if task.Status == "error" && mediaName == mediaForUpload.Name { + util.Logger.Printf("[Error] issue with creating media %#v", task.Error) + return nil, fmt.Errorf("error in vcd returned error code: %d, error: %s and message: %s ", task.Error.MajorErrorCode, task.Error.MinorErrorCode, task.Error.Message) + } + } + } + + return mediaForUpload, nil +} + +func removeImageOnError(client *Client, media *types.Media, itemName string) { + if media != nil { + util.Logger.Printf("[TRACE] Deleting media item %#v", media) + + // wait for task, cancel it and media item will be removed. + var err error + for { + util.Logger.Printf("[TRACE] Sleep... for 5 seconds.\n") + time.Sleep(time.Second * 5) + media, err = queryMedia(client, media.HREF, itemName) + if err != nil { + util.Logger.Printf("[Error] Error deleting media item %v: %s", media, err) + } + if len(media.Tasks.Task) > 0 { + util.Logger.Printf("[TRACE] Task found. Will try to cancel.\n") + break + } + } + + for _, taskItem := range media.Tasks.Task { + if itemName == taskItem.Owner.Name { + task := NewTask(client) + task.Task = taskItem + err = task.CancelTask() + if err != nil { + util.Logger.Printf("[ERROR] Error canceling task for media upload %s", err) + } + } + } + } else { + util.Logger.Printf("[Error] Failed to delete media item created with error: %v", media) + } +} + +func queryMedia(client *Client, mediaUrl string, newItemName string) (*types.Media, error) { + util.Logger.Printf("[TRACE] Querying media: %s\n", mediaUrl) + + mediaParsed := &types.Media{} + + _, err := client.ExecuteRequest(mediaUrl, http.MethodGet, + "", "error quering media: %s", nil, mediaParsed) + if err != nil { + return nil, err + } + + for _, task := range mediaParsed.Tasks.Task { + if task.Status == "error" && newItemName == task.Owner.Name { + util.Logger.Printf("[Error] %#v", task.Error) + return mediaParsed, fmt.Errorf("error in vcd returned error code: %d, error: %s and message: %s ", task.Error.MajorErrorCode, task.Error.MinorErrorCode, task.Error.Message) + } + } + + return mediaParsed, nil +} + +// Verifies provided file header matches standard +func verifyIso(filePath string) (bool, error) { + // #nosec G304 - linter does not like 'filePath' to be a variable. However this is necessary for file uploads. + file, err := os.Open(filePath) + if err != nil { + return false, err + } + defer file.Close() + + return readHeader(file) +} + +func readHeader(reader io.Reader) (bool, error) { + buffer := make([]byte, 37000) + + _, err := reader.Read(buffer) + if err != nil && err != io.EOF { + return false, err + } + + headerOk := verifyHeader(buffer) + + if headerOk { + return true, nil + } else { + return false, errors.New("file header didn't match ISO standard") + } +} + +// Verify file header info: https://www.garykessler.net/library/file_sigs.html +func verifyHeader(buf []byte) bool { + // search for CD001(43 44 30 30 31) in specific file places. + //This signature usually occurs at byte offset 32769 (0x8001), + //34817 (0x8801), or 36865 (0x9001). + return (buf[32769] == 0x43 && buf[32770] == 0x44 && + buf[32771] == 0x30 && buf[32772] == 0x30 && buf[32773] == 0x31) || + (buf[34817] == 0x43 && buf[34818] == 0x44 && + buf[34819] == 0x30 && buf[34820] == 0x30 && buf[34821] == 0x31) || + (buf[36865] == 0x43 && buf[36866] == 0x44 && + buf[36867] == 0x30 && buf[36868] == 0x30 && buf[36869] == 0x31) +} + +// Reference for API usage http://pubs.vmware.com/vcloud-api-1-5/wwhelp/wwhimpl/js/html/wwhelp.htm#href=api_prog/GUID-9356B99B-E414-474A-853C-1411692AF84C.html +// http://pubs.vmware.com/vcloud-api-1-5/wwhelp/wwhimpl/js/html/wwhelp.htm#href=api_prog/GUID-43DFF30E-391F-42DC-87B3-5923ABCEB366.html +func getExistingMedia(vdc *Vdc) ([]*types.MediaRecordType, error) { + util.Logger.Printf("[TRACE] Querying medias \n") + + mediaResults, err := queryMediaWithFilter(vdc, "vdc=="+url.QueryEscape(vdc.Vdc.HREF)) + + util.Logger.Printf("[TRACE] Found media records: %d \n", len(mediaResults)) + return mediaResults, err +} + +func queryMediaWithFilter(vdc *Vdc, filter string) ([]*types.MediaRecordType, error) { + typeMedia := "media" + if vdc.client.IsSysAdmin { + typeMedia = "adminMedia" + } + + results, err := vdc.QueryWithNotEncodedParams(nil, map[string]string{"type": typeMedia, "filter": filter, "filterEncoded": "true"}) + if err != nil { + return nil, fmt.Errorf("error querying medias %s", err) + } + + mediaResults := results.Results.MediaRecord + if vdc.client.IsSysAdmin { + mediaResults = results.Results.AdminMediaRecord + } + return mediaResults, nil +} + +// Looks for media and, if found, will delete it. +// Deprecated: Use catalog.RemoveMediaIfExist +func RemoveMediaImageIfExists(vdc Vdc, mediaName string) error { + mediaItem, err := vdc.FindMediaImage(mediaName) + if err == nil && mediaItem != (MediaItem{}) { + task, err := mediaItem.Delete() + if err != nil { + return fmt.Errorf("error deleting media [phase 1] %s", mediaName) + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error deleting media [task] %s", mediaName) + } + } else { + util.Logger.Printf("[TRACE] Media not found or error: %s - %#v \n", err, mediaItem) + } + return nil +} + +// Looks for media and, if found, will delete it. +func (adminCatalog *AdminCatalog) RemoveMediaIfExists(mediaName string) error { + media, err := adminCatalog.GetMediaByName(mediaName, true) + if err == nil { + task, err := media.Delete() + if err != nil { + return fmt.Errorf("error deleting media [phase 1] %s", mediaName) + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error deleting media [task] %s", mediaName) + } + } else { + util.Logger.Printf("[TRACE] Media not found or error: %s - %#v \n", err, media) + } + return nil +} + +// Deletes the Media Item, returning an error if the vCD call fails. +// Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Media.html +// Deprecated: Use MediaRecord.Delete +func (mediaItem *MediaItem) Delete() (Task, error) { + util.Logger.Printf("[TRACE] Deleting media item: %#v", mediaItem.MediaItem.Name) + + // Return the task + return mediaItem.vdc.client.ExecuteTaskRequest(mediaItem.MediaItem.HREF, http.MethodDelete, + "", "error deleting Media item: %s", nil) +} + +// Deletes the Media Item, returning an error if the vCD call fails. +// Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Media.html +func (media *Media) Delete() (Task, error) { + util.Logger.Printf("[TRACE] Deleting media item: %#v", media.Media.Name) + + // Return the task + return media.client.ExecuteTaskRequest(media.Media.HREF, http.MethodDelete, + "", "error deleting Media item: %s", nil) +} + +// Finds media in catalog and returns catalog item +// Deprecated: Use catalog.GetMediaByName() +func FindMediaAsCatalogItem(org *Org, catalogName, mediaName string) (CatalogItem, error) { + if catalogName == "" { + return CatalogItem{}, errors.New("catalog name is empty") + } + if mediaName == "" { + return CatalogItem{}, errors.New("media name is empty") + } + + catalog, err := org.FindCatalog(catalogName) + if err != nil || catalog == (Catalog{}) { + return CatalogItem{}, fmt.Errorf("catalog not found or error %s", err) + } + + media, err := catalog.FindCatalogItem(mediaName) + if err != nil || media == (CatalogItem{}) { + return CatalogItem{}, fmt.Errorf("media not found or error %s", err) + } + return media, nil +} + +// Refresh refreshes the media item information by href +// Deprecated: Use MediaRecord.Refresh +func (mediaItem *MediaItem) Refresh() error { + + if mediaItem.MediaItem == nil { + return fmt.Errorf("cannot refresh, Object is empty") + } + + if mediaItem.MediaItem.Name == "nil" { + return fmt.Errorf("cannot refresh, Name is empty") + } + + latestMediaItem, err := mediaItem.vdc.FindMediaImage(mediaItem.MediaItem.Name) + *mediaItem = latestMediaItem + + return err +} + +// Refresh refreshes the media information by href +func (media *Media) Refresh() error { + + if media.Media == nil { + return fmt.Errorf("cannot refresh, Object is empty") + } + + url := media.Media.HREF + + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + media.Media = &types.Media{} + + _, err := media.client.ExecuteRequest(url, http.MethodGet, + "", "error retrieving media: %s", nil, media.Media) + + return err +} + +// GetMediaByHref finds a Media by HREF +// On success, returns a pointer to the Media structure and a nil error +// On failure, returns a nil pointer and an error +func (cat *Catalog) GetMediaByHref(mediaHref string) (*Media, error) { + + media := NewMedia(cat.client) + + _, err := cat.client.ExecuteRequest(mediaHref, http.MethodGet, + "", "error retrieving media: %#v", nil, media.Media) + if err != nil && strings.Contains(err.Error(), "MajorErrorCode:403") { + return nil, ErrorEntityNotFound + } + if err != nil { + return nil, err + } + return media, nil +} + +// GetMediaByName finds a Media by Name +// On success, returns a pointer to the Media structure and a nil error +// On failure, returns a nil pointer and an error +func (cat *Catalog) GetMediaByName(mediaName string, refresh bool) (*Media, error) { + if refresh { + err := cat.Refresh() + if err != nil { + return nil, err + } + } + for _, catalogItems := range cat.Catalog.CatalogItems { + for _, catalogItem := range catalogItems.CatalogItem { + if catalogItem.Name == mediaName && catalogItem.Type == "application/vnd.vmware.vcloud.catalogItem+xml" { + catalogItemElement, err := cat.GetCatalogItemByHref(catalogItem.HREF) + if err != nil { + return nil, err + } + return cat.GetMediaByHref(catalogItemElement.CatalogItem.Entity.HREF) + } + } + } + return nil, ErrorEntityNotFound +} + +// GetMediaById finds a Media by ID +// On success, returns a pointer to the Media structure and a nil error +// On failure, returns a nil pointer and an error +func (catalog *Catalog) GetMediaById(mediaId string) (*Media, error) { + typeMedia := "media" + if catalog.client.IsSysAdmin { + typeMedia = "adminMedia" + } + + results, err := catalog.client.QueryWithNotEncodedParams(nil, map[string]string{"type": typeMedia, + "filter": fmt.Sprintf("catalogName==%s", url.QueryEscape(catalog.Catalog.Name)), + "filterEncoded": "true"}) + if err != nil { + return nil, fmt.Errorf("error querying medias %s", err) + } + + mediaResults := results.Results.MediaRecord + if catalog.client.IsSysAdmin { + mediaResults = results.Results.AdminMediaRecord + } + for _, mediaRecord := range mediaResults { + if equalIds(mediaId, mediaRecord.ID, mediaRecord.HREF) { + return catalog.GetMediaByHref(mediaRecord.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetMediaByNameOrId finds a Media by Name or ID +// On success, returns a pointer to the Media structure and a nil error +// On failure, returns a nil pointer and an error +func (cat *Catalog) GetMediaByNameOrId(identifier string, refresh bool) (*Media, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return cat.GetMediaByName(name, refresh) } + getById := func(id string, refresh bool) (interface{}, error) { return cat.GetMediaById(id) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, refresh) + if entity == nil { + return nil, err + } + return entity.(*Media), err +} + +// GetMediaByHref finds a Media by HREF +// On success, returns a pointer to the Media structure and a nil error +// On failure, returns a nil pointer and an error +func (adminCatalog *AdminCatalog) GetMediaByHref(mediaHref string) (*Media, error) { + catalog := NewCatalog(adminCatalog.client) + catalog.Catalog = &adminCatalog.AdminCatalog.Catalog + catalog.parent = adminCatalog.parent + return catalog.GetMediaByHref(mediaHref) +} + +// GetMediaByName finds a Media by Name +// On success, returns a pointer to the Media structure and a nil error +// On failure, returns a nil pointer and an error +func (adminCatalog *AdminCatalog) GetMediaByName(mediaName string, refresh bool) (*Media, error) { + catalog := NewCatalog(adminCatalog.client) + catalog.Catalog = &adminCatalog.AdminCatalog.Catalog + catalog.parent = adminCatalog.parent + return catalog.GetMediaByName(mediaName, refresh) +} + +// GetMediaById finds a Media by ID +// On success, returns a pointer to the Media structure and a nil error +// On failure, returns a nil pointer and an error +func (adminCatalog *AdminCatalog) GetMediaById(mediaId string) (*Media, error) { + catalog := NewCatalog(adminCatalog.client) + catalog.Catalog = &adminCatalog.AdminCatalog.Catalog + catalog.parent = adminCatalog.parent + return catalog.GetMediaById(mediaId) +} + +// GetMediaByNameOrId finds a Media by Name or ID +// On success, returns a pointer to the Media structure and a nil error +// On failure, returns a nil pointer and an error +func (adminCatalog *AdminCatalog) GetMediaByNameOrId(identifier string, refresh bool) (*Media, error) { + catalog := NewCatalog(adminCatalog.client) + catalog.Catalog = &adminCatalog.AdminCatalog.Catalog + catalog.parent = adminCatalog.parent + return catalog.GetMediaByNameOrId(identifier, refresh) +} + +// QueryMedia returns media image found in system using `name` and `catalog name` as query. +func (catalog *Catalog) QueryMedia(mediaName string) (*MediaRecord, error) { + util.Logger.Printf("[TRACE] Querying medias by name and catalog\n") + + if catalog == nil || catalog.Catalog == nil || catalog.Catalog.Name == "" { + return nil, errors.New("catalog is empty") + } + if mediaName == "" { + return nil, errors.New("media name is empty") + } + + typeMedia := "media" + if catalog.client.IsSysAdmin { + typeMedia = "adminMedia" + } + + results, err := catalog.client.QueryWithNotEncodedParams(nil, map[string]string{"type": typeMedia, + "filter": fmt.Sprintf("name==%s;catalogName==%s", + url.QueryEscape(mediaName), + url.QueryEscape(catalog.Catalog.Name)), + "filterEncoded": "true"}) + if err != nil { + return nil, fmt.Errorf("error querying medias %s", err) + } + newMediaRecord := NewMediaRecord(catalog.client) + + mediaResults := results.Results.MediaRecord + if catalog.client.IsSysAdmin { + mediaResults = results.Results.AdminMediaRecord + } + if len(mediaResults) == 1 { + newMediaRecord.MediaRecord = mediaResults[0] + } + + if len(mediaResults) == 0 { + return nil, ErrorEntityNotFound + } + // this shouldn't happen, but we will check anyways + if len(mediaResults) > 1 { + return nil, fmt.Errorf("found more than one result %#v with catalog name %s and media name %s ", mediaResults, catalog.Catalog.Name, mediaName) + } + + util.Logger.Printf("[TRACE] Found media record by name: %#v \n", mediaResults[0]) + return newMediaRecord, nil +} + +// QueryMedia returns media image found in system using `name` and `catalog name` as query. +func (adminCatalog *AdminCatalog) QueryMedia(mediaName string) (*MediaRecord, error) { + catalog := NewCatalog(adminCatalog.client) + catalog.Catalog = &adminCatalog.AdminCatalog.Catalog + catalog.parent = adminCatalog.parent + return catalog.QueryMedia(mediaName) +} + +// Refresh refreshes the media information by href +func (mediaRecord *MediaRecord) Refresh() error { + + if mediaRecord.MediaRecord == nil { + return fmt.Errorf("cannot refresh, Object is empty") + } + + if mediaRecord.MediaRecord.Name == "" { + return fmt.Errorf("cannot refresh, Name is empty") + } + + url := mediaRecord.MediaRecord.HREF + + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + mediaRecord.MediaRecord = &types.MediaRecordType{} + + _, err := mediaRecord.client.ExecuteRequest(url, http.MethodGet, + "", "error retrieving media: %s", nil, mediaRecord.MediaRecord) + + return err +} + +// Deletes the Media Item, returning an error if the vCD call fails. +// Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Media.html +func (mediaRecord *MediaRecord) Delete() (Task, error) { + util.Logger.Printf("[TRACE] Deleting media item: %#v", mediaRecord.MediaRecord.Name) + + // Return the task + return mediaRecord.client.ExecuteTaskRequest(mediaRecord.MediaRecord.HREF, http.MethodDelete, + "", "error deleting Media item: %s", nil) +} + +// QueryAllMedia returns all media images found in system using `name` as query. +func (vdc *Vdc) QueryAllMedia(mediaName string) ([]*MediaRecord, error) { + util.Logger.Printf("[TRACE] Querying medias by name\n") + + if mediaName == "" { + return nil, errors.New("media name is empty") + } + + typeMedia := "media" + if vdc.client.IsSysAdmin { + typeMedia = "adminMedia" + } + + results, err := vdc.client.QueryWithNotEncodedParams(nil, map[string]string{"type": typeMedia, + "filter": fmt.Sprintf("name==%s", url.QueryEscape(mediaName))}) + if err != nil { + return nil, fmt.Errorf("error querying medias %s", err) + } + + mediaResults := results.Results.MediaRecord + if vdc.client.IsSysAdmin { + mediaResults = results.Results.AdminMediaRecord + } + + if len(mediaResults) == 0 { + return nil, ErrorEntityNotFound + } + + var newMediaRecords []*MediaRecord + for _, mediaResult := range mediaResults { + newMediaRecord := NewMediaRecord(vdc.client) + newMediaRecord.MediaRecord = mediaResult + newMediaRecords = append(newMediaRecords, newMediaRecord) + } + + util.Logger.Printf("[TRACE] Found media records by name: %#v \n", mediaResults) + return newMediaRecords, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/metadata.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/metadata.go new file mode 100644 index 000000000..7d616ad12 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/metadata.go @@ -0,0 +1,359 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + "strings" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// GetMetadata calls private function getMetadata() with vm.client and vm.VM.HREF +// which returns a *types.Metadata struct for provided VM input. +func (vm *VM) GetMetadata() (*types.Metadata, error) { + return getMetadata(vm.client, vm.VM.HREF) +} + +// DeleteMetadata() function calls private function deleteMetadata() with vm.client and vm.VM.HREF +// which deletes metadata depending on key provided as input from VM. +func (vm *VM) DeleteMetadata(key string) (Task, error) { + return deleteMetadata(vm.client, key, vm.VM.HREF) +} + +// AddMetadata calls private function addMetadata() with vm.client and vm.VM.HREF +// which adds metadata key/value pair provided as input to VM. +func (vm *VM) AddMetadata(key string, value string) (Task, error) { + return addMetadata(vm.client, key, value, vm.VM.HREF) +} + +// GetMetadata returns meta data for VDC. +func (vdc *Vdc) GetMetadata() (*types.Metadata, error) { + return getMetadata(vdc.client, getAdminVdcURL(vdc.Vdc.HREF)) +} + +// DeleteMetadata() function deletes metadata by key provided as input +func (vdc *Vdc) DeleteMetadata(key string) (Vdc, error) { + task, err := deleteMetadata(vdc.client, key, getAdminVdcURL(vdc.Vdc.HREF)) + if err != nil { + return Vdc{}, err + } + + err = task.WaitTaskCompletion() + if err != nil { + return Vdc{}, err + } + + err = vdc.Refresh() + if err != nil { + return Vdc{}, err + } + + return *vdc, nil +} + +// AddMetadata adds metadata key/value pair provided as input to VDC. +func (vdc *Vdc) AddMetadata(key string, value string) (Vdc, error) { + task, err := addMetadata(vdc.client, key, value, getAdminVdcURL(vdc.Vdc.HREF)) + if err != nil { + return Vdc{}, err + } + + err = task.WaitTaskCompletion() + if err != nil { + return Vdc{}, err + } + + err = vdc.Refresh() + if err != nil { + return Vdc{}, err + } + + return *vdc, nil +} + +// AddMetadata adds metadata key/value pair provided as input to VDC. +// and returns task +func (vdc *Vdc) AddMetadataAsync(key string, value string) (Task, error) { + return addMetadata(vdc.client, key, value, getAdminVdcURL(vdc.Vdc.HREF)) +} + +// DeleteMetadata() function deletes metadata by key provided as input +// and returns task +func (vdc *Vdc) DeleteMetadataAsync(key string) (Task, error) { + return deleteMetadata(vdc.client, key, getAdminVdcURL(vdc.Vdc.HREF)) +} + +func getAdminVdcURL(vdcURL string) string { + return strings.Split(vdcURL, "/api/vdc/")[0] + "/api/admin/vdc/" + strings.Split(vdcURL, "/api/vdc/")[1] +} + +// GetMetadata calls private function getMetadata() with vapp.client and vapp.VApp.HREF +// which returns a *types.Metadata struct for provided vapp input. +func (vapp *VApp) GetMetadata() (*types.Metadata, error) { + return getMetadata(vapp.client, vapp.VApp.HREF) +} + +func getMetadata(client *Client, requestUri string) (*types.Metadata, error) { + metadata := &types.Metadata{} + + _, err := client.ExecuteRequest(requestUri+"/metadata/", http.MethodGet, + types.MimeMetaData, "error retrieving metadata: %s", nil, metadata) + + return metadata, err +} + +// DeleteMetadata() function calls private function deleteMetadata() with vapp.client and vapp.VApp.HREF +// which deletes metadata depending on key provided as input from vApp. +func (vapp *VApp) DeleteMetadata(key string) (Task, error) { + return deleteMetadata(vapp.client, key, vapp.VApp.HREF) +} + +// Deletes metadata (type MetadataStringValue) from the vApp +// TODO: Support all MetadataTypedValue types with this function +func deleteMetadata(client *Client, key string, requestUri string) (Task, error) { + apiEndpoint := urlParseRequestURI(requestUri) + apiEndpoint.Path += "/metadata/" + key + + // Return the task + return client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodDelete, + "", "error deleting metadata: %s", nil) +} + +// AddMetadata calls private function addMetadata() with vapp.client and vapp.VApp.HREF +// which adds metadata key/value pair provided as input +func (vapp *VApp) AddMetadata(key string, value string) (Task, error) { + return addMetadata(vapp.client, key, value, vapp.VApp.HREF) +} + +// Adds metadata (type MetadataStringValue) to the vApp +// TODO: Support all MetadataTypedValue types with this function +func addMetadata(client *Client, key string, value string, requestUri string) (Task, error) { + newMetadata := &types.MetadataValue{ + Xmlns: types.XMLNamespaceVCloud, + Xsi: types.XMLNamespaceXSI, + TypedValue: &types.TypedValue{ + XsiType: "MetadataStringValue", + Value: value, + }, + } + + apiEndpoint := urlParseRequestURI(requestUri) + apiEndpoint.Path += "/metadata/" + key + + // Return the task + return client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeMetaDataValue, "error adding metadata: %s", newMetadata) +} + +// GetMetadata calls private function getMetadata() with catalogItem.client and catalogItem.CatalogItem.HREF +// which returns a *types.Metadata struct for provided catalog item input. +func (vAppTemplate *VAppTemplate) GetMetadata() (*types.Metadata, error) { + return getMetadata(vAppTemplate.client, vAppTemplate.VAppTemplate.HREF) +} + +// AddMetadata adds metadata key/value pair provided as input and returned update VAppTemplate +func (vAppTemplate *VAppTemplate) AddMetadata(key string, value string) (*VAppTemplate, error) { + task, err := vAppTemplate.AddMetadataAsync(key, value) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("error completing add metadata for vApp template task: %s", err) + } + + err = vAppTemplate.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing vApp template: %s", err) + } + + return vAppTemplate, nil +} + +// AddMetadataAsync calls private function addMetadata() with vAppTemplate.client and vAppTemplate.VAppTemplate.HREF +// which adds metadata key/value pair provided as input. +func (vAppTemplate *VAppTemplate) AddMetadataAsync(key string, value string) (Task, error) { + return addMetadata(vAppTemplate.client, key, value, vAppTemplate.VAppTemplate.HREF) +} + +// DeleteMetadata deletes metadata depending on key provided as input from media item. +func (vAppTemplate *VAppTemplate) DeleteMetadata(key string) error { + task, err := vAppTemplate.DeleteMetadataAsync(key) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error completing delete metadata for vApp template task: %s", err) + } + + return nil +} + +// DeleteMetadataAsync calls private function deleteMetadata() with vAppTemplate.client and vAppTemplate.VAppTemplate.HREF +// which deletes metadata depending on key provided as input from catalog item. +func (vAppTemplate *VAppTemplate) DeleteMetadataAsync(key string) (Task, error) { + return deleteMetadata(vAppTemplate.client, key, vAppTemplate.VAppTemplate.HREF) +} + +// GetMetadata calls private function getMetadata() with mediaItem.client and mediaItem.MediaItem.HREF +// which returns a *types.Metadata struct for provided media item input. +// Deprecated: Use MediaRecord.GetMetadata +func (mediaItem *MediaItem) GetMetadata() (*types.Metadata, error) { + return getMetadata(mediaItem.vdc.client, mediaItem.MediaItem.HREF) +} + +// AddMetadata adds metadata key/value pair provided as input. +// Deprecated: Use MediaRecord.AddMetadata +func (mediaItem *MediaItem) AddMetadata(key string, value string) (*MediaItem, error) { + task, err := mediaItem.AddMetadataAsync(key, value) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("error completing add metadata for media item task: %s", err) + } + + err = mediaItem.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing media item: %s", err) + } + + return mediaItem, nil +} + +// AddMetadataAsync calls private function addMetadata() with mediaItem.client and mediaItem.MediaItem.HREF +// which adds metadata key/value pair provided as input. +// Deprecated: Use MediaRecord.AddMetadataAsync +func (mediaItem *MediaItem) AddMetadataAsync(key string, value string) (Task, error) { + return addMetadata(mediaItem.vdc.client, key, value, mediaItem.MediaItem.HREF) +} + +// DeleteMetadata deletes metadata depending on key provided as input from media item. +// Deprecated: Use MediaRecord.DeleteMetadata +func (mediaItem *MediaItem) DeleteMetadata(key string) error { + task, err := mediaItem.DeleteMetadataAsync(key) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error completing delete metadata for media item task: %s", err) + } + + return nil +} + +// DeleteMetadataAsync calls private function deleteMetadata() with mediaItem.client and mediaItem.MediaItem.HREF +// which deletes metadata depending on key provided as input from media item. +// Deprecated: Use MediaRecord.DeleteMetadataAsync +func (mediaItem *MediaItem) DeleteMetadataAsync(key string) (Task, error) { + return deleteMetadata(mediaItem.vdc.client, key, mediaItem.MediaItem.HREF) +} + +// GetMetadata calls private function getMetadata() with MediaRecord.client and MediaRecord.MediaRecord.HREF +// which returns a *types.Metadata struct for provided media item input. +func (mediaRecord *MediaRecord) GetMetadata() (*types.Metadata, error) { + return getMetadata(mediaRecord.client, mediaRecord.MediaRecord.HREF) +} + +// AddMetadata adds metadata key/value pair provided as input. +func (mediaRecord *MediaRecord) AddMetadata(key string, value string) (*MediaRecord, error) { + task, err := mediaRecord.AddMetadataAsync(key, value) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("error completing add metadata for media item task: %s", err) + } + + err = mediaRecord.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing media item: %s", err) + } + + return mediaRecord, nil +} + +// AddMetadataAsync calls private function addMetadata() with MediaRecord.client and MediaRecord.MediaRecord.HREF +// which adds metadata key/value pair provided as input. +func (mediaRecord *MediaRecord) AddMetadataAsync(key string, value string) (Task, error) { + return addMetadata(mediaRecord.client, key, value, mediaRecord.MediaRecord.HREF) +} + +// DeleteMetadata deletes metadata depending on key provided as input from media item. +func (mediaRecord *MediaRecord) DeleteMetadata(key string) error { + task, err := mediaRecord.DeleteMetadataAsync(key) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error completing delete metadata for media item task: %s", err) + } + + return nil +} + +// DeleteMetadataAsync calls private function deleteMetadata() with MediaRecord.client and MediaRecord.MediaRecord.HREF +// which deletes metadata depending on key provided as input from media item. +func (mediaRecord *MediaRecord) DeleteMetadataAsync(key string) (Task, error) { + return deleteMetadata(mediaRecord.client, key, mediaRecord.MediaRecord.HREF) +} + +// GetMetadata calls private function getMetadata() with Media.client and Media.Media.HREF +// which returns a *types.Metadata struct for provided media item input. +func (media *Media) GetMetadata() (*types.Metadata, error) { + return getMetadata(media.client, media.Media.HREF) +} + +// AddMetadata adds metadata key/value pair provided as input. +func (media *Media) AddMetadata(key string, value string) (*Media, error) { + task, err := media.AddMetadataAsync(key, value) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("error completing add metadata for media item task: %s", err) + } + + err = media.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing media item: %s", err) + } + + return media, nil +} + +// AddMetadataAsync calls private function addMetadata() with Media.client and Media.Media.HREF +// which adds metadata key/value pair provided as input. +func (media *Media) AddMetadataAsync(key string, value string) (Task, error) { + return addMetadata(media.client, key, value, media.Media.HREF) +} + +// DeleteMetadata deletes metadata depending on key provided as input from media item. +func (media *Media) DeleteMetadata(key string) error { + task, err := media.DeleteMetadataAsync(key) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error completing delete metadata for media item task: %s", err) + } + + return nil +} + +// DeleteMetadataAsync calls private function deleteMetadata() with Media.client and Media.Media.HREF +// which deletes metadata depending on key provided as input from media item. +func (media *Media) DeleteMetadataAsync(key string) (Task, error) { + return deleteMetadata(media.client, key, media.Media.HREF) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/monitor.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/monitor.go new file mode 100644 index 000000000..c20a02688 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/monitor.go @@ -0,0 +1,313 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +// Contains auxiliary functions to show library entities structure. +// Used for debugging and testing. +package govcd + +import ( + "encoding/json" + "fmt" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// For each library {entity}, we have two functions: Show{Entity} and Log{Entity} +// The first one shows the contents of the entity on screen +// The second one logs into the default util.Logger +// Both functions use JSON as the entity format + +// Available entities: +// org +// adminOrg +// vdc +// catalog +// catalogItem +// adminCatalog +// network +// externalNetwork +// vapp +// vm +// task +// Edge Gateway service configuration + +func out(destination, format string, args ...interface{}) { + switch destination { + case "screen": + fmt.Printf(format, args...) + case "log": + util.Logger.Printf(format, args...) + default: + fmt.Printf("Unhandled destination: %s\n", destination) + } +} + +// Returns a vApp structure as JSON +func prettyVapp(vapp types.VApp) string { + byteBuf, err := json.MarshalIndent(vapp, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns a VM structure as JSON +func prettyVm(vm types.Vm) string { + byteBuf, err := json.MarshalIndent(vm, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns an OrgUser structure as JSON +func prettyUser(user types.User) string { + byteBuf, err := json.MarshalIndent(user, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns a VDC structure as JSON +func prettyVdc(vdc types.Vdc) string { + byteBuf, err := json.MarshalIndent(vdc, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns a Catalog Item structure as JSON +func prettyCatalogItem(catalogItem types.CatalogItem) string { + byteBuf, err := json.MarshalIndent(catalogItem, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns a Catalog structure as JSON +func prettyCatalog(catalog types.Catalog) string { + byteBuf, err := json.MarshalIndent(catalog, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns an Admin Catalog structure as JSON +func prettyAdminCatalog(catalog types.AdminCatalog) string { + byteBuf, err := json.MarshalIndent(catalog, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns an Org structure as JSON +func prettyOrg(org types.Org) string { + byteBuf, err := json.MarshalIndent(org, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns an Admin Org structure as JSON +func prettyAdminOrg(org types.AdminOrg) string { + byteBuf, err := json.MarshalIndent(org, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns a Disk structure as JSON +func prettyDisk(disk types.Disk) string { + byteBuf, err := json.MarshalIndent(disk, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns an External Network structure as JSON +func prettyExternalNetwork(network types.ExternalNetwork) string { + byteBuf, err := json.MarshalIndent(network, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns a Network structure as JSON +func prettyNetworkConf(conf types.OrgVDCNetwork) string { + byteBuf, err := json.MarshalIndent(conf, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns a Task structure as JSON +func prettyTask(task *types.Task) string { + byteBuf, err := json.MarshalIndent(task, " ", " ") + if err == nil { + return fmt.Sprintf("%s\n", string(byteBuf)) + } + return "" +} + +// Returns an Edge Gateway service configuration structure as JSON +//func prettyEdgeGatewayServiceConfiguration(conf types.EdgeGatewayServiceConfiguration) string { +func prettyEdgeGateway(egw types.EdgeGateway) string { + result := "" + byteBuf, err := json.MarshalIndent(egw, " ", " ") + if err == nil { + result += fmt.Sprintf("%s\n", string(byteBuf)) + } + return result +} + +func LogNetwork(conf types.OrgVDCNetwork) { + out("log", prettyNetworkConf(conf)) +} + +func ShowNetwork(conf types.OrgVDCNetwork) { + out("screen", prettyNetworkConf(conf)) +} + +func LogExternalNetwork(network types.ExternalNetwork) { + out("log", prettyExternalNetwork(network)) +} + +func ShowExternalNetwork(network types.ExternalNetwork) { + out("screen", prettyExternalNetwork(network)) +} + +func LogVapp(vapp types.VApp) { + out("log", prettyVapp(vapp)) +} + +func ShowVapp(vapp types.VApp) { + out("screen", prettyVapp(vapp)) +} + +func LogVm(vm types.Vm) { + out("log", prettyVm(vm)) +} + +func ShowVm(vm types.Vm) { + out("screen", prettyVm(vm)) +} +func ShowOrg(org types.Org) { + out("screen", prettyOrg(org)) +} + +func LogOrg(org types.Org) { + out("log", prettyOrg(org)) +} + +func ShowAdminOrg(org types.AdminOrg) { + out("screen", prettyAdminOrg(org)) +} + +func LogAdminOrg(org types.AdminOrg) { + out("log", prettyAdminOrg(org)) +} + +func ShowVdc(vdc types.Vdc) { + out("screen", prettyVdc(vdc)) +} + +func LogVdc(vdc types.Vdc) { + out("log", prettyVdc(vdc)) +} + +func ShowUser(user types.User) { + out("screen", prettyUser(user)) +} + +func LogUser(user types.User) { + out("log", prettyUser(user)) +} + +func ShowDisk(disk types.Disk) { + out("screen", prettyDisk(disk)) +} + +func LogDisk(disk types.Disk) { + out("log", prettyDisk(disk)) +} +func ShowCatalog(catalog types.Catalog) { + out("screen", prettyCatalog(catalog)) +} + +func LogCatalog(catalog types.Catalog) { + out("log", prettyCatalog(catalog)) +} + +func ShowCatalogItem(catalogItem types.CatalogItem) { + out("screen", prettyCatalogItem(catalogItem)) +} + +func LogCatalogItem(catalogItem types.CatalogItem) { + out("log", prettyCatalogItem(catalogItem)) +} + +func ShowAdminCatalog(catalog types.AdminCatalog) { + out("screen", prettyAdminCatalog(catalog)) +} + +func LogAdminCatalog(catalog types.AdminCatalog) { + out("log", prettyAdminCatalog(catalog)) +} + +func LogEdgeGateway(edgeGateway types.EdgeGateway) { + out("log", prettyEdgeGateway(edgeGateway)) +} + +func ShowEdgeGateway(edgeGateway types.EdgeGateway) { + out("screen", prettyEdgeGateway(edgeGateway)) +} + +// Auxiliary function to monitor a task +// It can be used in association with WaitInspectTaskCompletion +func outTask(destination string, task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool) { + if task == nil { + out(destination, "Task is null\n") + return + } + out(destination, prettyTask(task)) + + out(destination, "progress: [%s:%d] %d%%\n", elapsed.Round(1*time.Second), howManyTimes, task.Progress) + out(destination, "-------------------------------\n") +} + +func simpleOutTask(destination string, task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool) { + if task == nil { + out(destination, "Task is null\n") + return + } + out(destination, "%s (%s) - elapsed: [%s:%d] - progress: %d%%\n", task.OperationName, task.Status, elapsed.Round(1*time.Second), howManyTimes, task.Progress) +} + +func LogTask(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool) { + outTask("log", task, howManyTimes, elapsed, first, last) +} + +func ShowTask(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool) { + outTask("screen", task, howManyTimes, elapsed, first, last) +} + +func SimpleShowTask(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool) { + simpleOutTask("screen", task, howManyTimes, elapsed, first, last) +} + +func SimpleLogTask(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool) { + simpleOutTask("log", task, howManyTimes, elapsed, first, last) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_clouds.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_clouds.go new file mode 100644 index 000000000..bd6e8c43e --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_clouds.go @@ -0,0 +1,188 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtAlbCloud helps to use the virtual infrastructure provided by NSX Advanced Load Balancer, register NSX-T Cloud +// instances with VMware Cloud Director by consuming NsxtAlbImportableCloud. +type NsxtAlbCloud struct { + NsxtAlbCloud *types.NsxtAlbCloud + vcdClient *VCDClient +} + +// GetAllAlbClouds returns all configured NSX-T ALB Clouds +func (vcdClient *VCDClient) GetAllAlbClouds(queryParameters url.Values) ([]*NsxtAlbCloud, error) { + client := vcdClient.Client + if !client.IsSysAdmin { + return nil, errors.New("handling NSX-T ALB Clouds require System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbCloud + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.NsxtAlbCloud{{}} + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into NsxtAlbCloud types with client + wrappedResponses := make([]*NsxtAlbCloud, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtAlbCloud{ + NsxtAlbCloud: typeResponses[sliceIndex], + vcdClient: vcdClient, + } + } + + return wrappedResponses, nil +} + +// GetAlbCloudByName returns NSX-T ALB Cloud by name +func (vcdClient *VCDClient) GetAlbCloudByName(name string) (*NsxtAlbCloud, error) { + queryParameters := copyOrNewUrlValues(nil) + queryParameters.Add("filter", "name=="+name) + + albClouds, err := vcdClient.GetAllAlbClouds(queryParameters) + if err != nil { + return nil, fmt.Errorf("error reading NSX-T ALB Cloud with Name '%s': %s", name, err) + } + + if len(albClouds) == 0 { + return nil, fmt.Errorf("%s could not find NSX-T ALB Cloud with Name '%s'", ErrorEntityNotFound, name) + } + + if len(albClouds) > 1 { + return nil, fmt.Errorf("found more than 1 NSX-T ALB Cloud with Name '%s'", name) + } + + return albClouds[0], nil +} + +// GetAlbCloudById returns NSX-T ALB Cloud by ID +// +// Note. This function uses server side filtering instead of directly querying endpoint with specified ID because such +// endpoint does not exist +func (vcdClient *VCDClient) GetAlbCloudById(id string) (*NsxtAlbCloud, error) { + + queryParameters := copyOrNewUrlValues(nil) + queryParameters.Add("filter", "id=="+id) + + albCloud, err := vcdClient.GetAllAlbClouds(queryParameters) + if err != nil { + return nil, fmt.Errorf("error reading NSX-T ALB Cloud with ID '%s': %s", id, err) + } + + if len(albCloud) == 0 { + return nil, fmt.Errorf("%s could not find NSX-T ALB Cloud by ID '%s'", ErrorEntityNotFound, id) + } + + return albCloud[0], nil +} + +// CreateAlbCloud creates NSX-T ALB Cloud +func (vcdClient *VCDClient) CreateAlbCloud(albCloudConfig *types.NsxtAlbCloud) (*NsxtAlbCloud, error) { + client := vcdClient.Client + if !client.IsSysAdmin { + return nil, errors.New("handling NSX-T ALB Clouds require System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbCloud + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnObject := &NsxtAlbCloud{ + NsxtAlbCloud: &types.NsxtAlbCloud{}, + vcdClient: vcdClient, + } + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, albCloudConfig, returnObject.NsxtAlbCloud, nil) + if err != nil { + return nil, fmt.Errorf("error creating NSX-T ALB Cloud: %s", err) + } + + return returnObject, nil +} + +// Update is not supported in VCD 10.3 and older therefore this function remains commented +// +// Update updates existing NSX-T ALB Cloud with new supplied albCloudConfig configuration +//func (nsxtAlbCloud *NsxtAlbCloud) Update(albCloudConfig *types.NsxtAlbCloud) (*NsxtAlbCloud, error) { +// client := nsxtAlbCloud.vcdClient.Client +// endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbCloud +// minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) +// if err != nil { +// return nil, err +// } +// +// if albCloudConfig.ID == "" { +// return nil, fmt.Errorf("cannot update NSX-T ALB Cloud without ID") +// } +// +// urlRef, err := client.OpenApiBuildEndpoint(endpoint, albCloudConfig.ID) +// if err != nil { +// return nil, err +// } +// +// responseAlbCloud := &NsxtAlbCloud{ +// NsxtAlbCloud: &types.NsxtAlbCloud{}, +// vcdClient: nsxtAlbCloud.vcdClient, +// } +// +// err = client.OpenApiPutItem(minimumApiVersion, urlRef, nil, albCloudConfig, responseAlbCloud.NsxtAlbCloud, nil) +// if err != nil { +// return nil, fmt.Errorf("error updating NSX-T ALB Cloud: %s", err) +// } +// +// return responseAlbCloud, nil +//} + +// Delete removes NSX-T ALB Cloud configuration +func (nsxtAlbCloud *NsxtAlbCloud) Delete() error { + client := nsxtAlbCloud.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbCloud + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if nsxtAlbCloud.NsxtAlbCloud.ID == "" { + return fmt.Errorf("cannot delete NSX-T ALB Cloud without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, nsxtAlbCloud.NsxtAlbCloud.ID) + if err != nil { + return err + } + + err = client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + if err != nil { + return fmt.Errorf("error deleting NSX-T ALB Cloud: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_controllers.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_controllers.go new file mode 100644 index 000000000..1cd144c98 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_controllers.go @@ -0,0 +1,232 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtAlbController helps to integrate VMware Cloud Director with NSX-T Advanced Load Balancer deployment. +// Controller instances are registered with VMware Cloud Director instance. Controller instances serve as a central +// control plane for the load-balancing services provided by NSX-T Advanced Load Balancer. +// To configure an NSX-T ALB one needs to supply AVI Controller endpoint, credentials and license to be used. +type NsxtAlbController struct { + NsxtAlbController *types.NsxtAlbController + vcdClient *VCDClient +} + +// GetAllAlbControllers returns all configured NSX-T ALB Controllers +func (vcdClient *VCDClient) GetAllAlbControllers(queryParameters url.Values) ([]*NsxtAlbController, error) { + client := vcdClient.Client + if !client.IsSysAdmin { + return nil, errors.New("reading NSX-T ALB Controllers require System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbController + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.NsxtAlbController{{}} + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into NsxtAlbController types with client + wrappedResponses := make([]*NsxtAlbController, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtAlbController{ + NsxtAlbController: typeResponses[sliceIndex], + vcdClient: vcdClient, + } + } + + return wrappedResponses, nil +} + +// GetAlbControllerByName returns NSX-T ALB Controller by Name +func (vcdClient *VCDClient) GetAlbControllerByName(name string) (*NsxtAlbController, error) { + queryParameters := copyOrNewUrlValues(nil) + queryParameters.Add("filter", "name=="+name) + + controllers, err := vcdClient.GetAllAlbControllers(queryParameters) + if err != nil { + return nil, fmt.Errorf("error reading ALB Controller with Name '%s': %s", name, err) + } + + if len(controllers) == 0 { + return nil, fmt.Errorf("%s: could not find ALB Controller with Name '%s'", ErrorEntityNotFound, name) + } + + if len(controllers) > 1 { + return nil, fmt.Errorf("found more than 1 ALB Controller with Name '%s'", name) + } + + return controllers[0], nil +} + +// GetAlbControllerById returns NSX-T ALB Controller by ID +func (vcdClient *VCDClient) GetAlbControllerById(id string) (*NsxtAlbController, error) { + client := vcdClient.Client + if !client.IsSysAdmin { + return nil, errors.New("reading NSX-T ALB Controllers require System user") + } + + if id == "" { + return nil, fmt.Errorf("ID is required to lookup NSX-T ALB Controller by ID") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbController + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + typeResponse := &types.NsxtAlbController{} + err = client.OpenApiGetItem(apiVersion, urlRef, nil, &typeResponse, nil) + if err != nil { + return nil, err + } + + wrappedResponse := &NsxtAlbController{ + NsxtAlbController: typeResponse, + vcdClient: vcdClient, + } + + return wrappedResponse, nil +} + +// GetAlbControllerByUrl returns configured ALB Controller by URL +// +// Note. Filtering is performed on client side. +func (vcdClient *VCDClient) GetAlbControllerByUrl(url string) (*NsxtAlbController, error) { + // Ideally this function could filter on VCD side, but API does not support filtering on URL + controllers, err := vcdClient.GetAllAlbControllers(nil) + if err != nil { + return nil, fmt.Errorf("error reading ALB Controller with Url '%s': %s", url, err) + } + + // Search for controllers + filteredControllers := make([]*NsxtAlbController, 0) + for _, controller := range controllers { + if controller.NsxtAlbController.Url == url { + filteredControllers = append(filteredControllers, controller) + } + } + + if len(filteredControllers) == 0 { + return nil, fmt.Errorf("%s could not find ALB Controller by Url '%s'", ErrorEntityNotFound, url) + } + + if len(filteredControllers) > 1 { + return nil, fmt.Errorf("found more than 1 ALB Controller by Url '%s'", url) + } + + return filteredControllers[0], nil +} + +// CreateNsxtAlbController creates controller with supplied albControllerConfig configuration +func (vcdClient *VCDClient) CreateNsxtAlbController(albControllerConfig *types.NsxtAlbController) (*NsxtAlbController, error) { + client := vcdClient.Client + if !client.IsSysAdmin { + return nil, errors.New("handling NSX-T ALB Controllers require System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbController + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnObject := &NsxtAlbController{ + NsxtAlbController: &types.NsxtAlbController{}, + vcdClient: vcdClient, + } + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, albControllerConfig, returnObject.NsxtAlbController, nil) + if err != nil { + return nil, fmt.Errorf("error creating NSX-T ALB Controller: %s", err) + } + + return returnObject, nil +} + +// Update updates existing NSX-T ALB Controller with new supplied albControllerConfig configuration +func (nsxtAlbController *NsxtAlbController) Update(albControllerConfig *types.NsxtAlbController) (*NsxtAlbController, error) { + client := nsxtAlbController.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbController + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if albControllerConfig.ID == "" { + return nil, fmt.Errorf("cannot update NSX-T ALB Controller without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, albControllerConfig.ID) + if err != nil { + return nil, err + } + + responseAlbController := &NsxtAlbController{ + NsxtAlbController: &types.NsxtAlbController{}, + vcdClient: nsxtAlbController.vcdClient, + } + + err = client.OpenApiPutItem(minimumApiVersion, urlRef, nil, albControllerConfig, responseAlbController.NsxtAlbController, nil) + if err != nil { + return nil, fmt.Errorf("error updating NSX-T ALB Controller: %s", err) + } + + return responseAlbController, nil +} + +// Delete deletes existing NSX-T ALB Controller +func (nsxtAlbController *NsxtAlbController) Delete() error { + client := nsxtAlbController.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbController + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if nsxtAlbController.NsxtAlbController.ID == "" { + return fmt.Errorf("cannot delete NSX-T ALB Controller without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, nsxtAlbController.NsxtAlbController.ID) + if err != nil { + return err + } + + err = client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + if err != nil { + return fmt.Errorf("error deleting NSX-T ALB Controller: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_importable_clouds.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_importable_clouds.go new file mode 100644 index 000000000..d239526d6 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_importable_clouds.go @@ -0,0 +1,121 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtAlbImportableCloud allows user to list importable NSX-T ALB Clouds. Each importable cloud can only be imported +// once by using NsxtAlbCloud construct. It has a flag AlreadyImported which hints if it is already consumed or not. +type NsxtAlbImportableCloud struct { + NsxtAlbImportableCloud *types.NsxtAlbImportableCloud + vcdClient *VCDClient +} + +// GetAllAlbImportableClouds returns importable NSX-T ALB Clouds. +// parentAlbControllerUrn (ID in URN format of a parent ALB Controller) is mandatory +func (vcdClient *VCDClient) GetAllAlbImportableClouds(parentAlbControllerUrn string, queryParameters url.Values) ([]*NsxtAlbImportableCloud, error) { + client := vcdClient.Client + if parentAlbControllerUrn == "" { + return nil, fmt.Errorf("parent ALB Controller ID is required") + } + if !client.IsSysAdmin { + return nil, errors.New("handling NSX-T ALB Importable Clouds require System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbImportableClouds + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + queryParams := copyOrNewUrlValues(queryParameters) + queryParams = queryParameterFilterAnd(fmt.Sprintf("_context==%s", parentAlbControllerUrn), queryParams) + typeResponses := []*types.NsxtAlbImportableCloud{{}} + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParams, &typeResponses, nil) + if err != nil { + return nil, err + } + + wrappedResponses := make([]*NsxtAlbImportableCloud, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtAlbImportableCloud{ + NsxtAlbImportableCloud: typeResponses[sliceIndex], + vcdClient: vcdClient, + } + } + + return wrappedResponses, nil +} + +// GetAlbImportableCloudByName returns importable NSX-T ALB Clouds. +func (vcdClient *VCDClient) GetAlbImportableCloudByName(parentAlbControllerUrn, name string) (*NsxtAlbImportableCloud, error) { + albImportableClouds, err := vcdClient.GetAllAlbImportableClouds(parentAlbControllerUrn, nil) + if err != nil { + return nil, fmt.Errorf("error finding NSX-T ALB Importable Cloud by Name '%s': %s", name, err) + } + + // Filtering by Name is not supported by API therefore it must be filtered on client side + var foundResult bool + var foundAlbImportableCloud *NsxtAlbImportableCloud + for i, value := range albImportableClouds { + if albImportableClouds[i].NsxtAlbImportableCloud.DisplayName == name { + foundResult = true + foundAlbImportableCloud = value + break + } + } + + if !foundResult { + return nil, fmt.Errorf("%s: could not find NSX-T ALB Importable Cloud by Name %s", ErrorEntityNotFound, name) + } + + return foundAlbImportableCloud, nil +} + +// GetAlbImportableCloudById returns importable NSX-T ALB Clouds. +// Note. ID filtering is performed on client side +func (vcdClient *VCDClient) GetAlbImportableCloudById(parentAlbControllerUrn, id string) (*NsxtAlbImportableCloud, error) { + albImportableClouds, err := vcdClient.GetAllAlbImportableClouds(parentAlbControllerUrn, nil) + if err != nil { + return nil, fmt.Errorf("error finding NSX-T ALB Importable Cloud by ID '%s': %s", id, err) + } + + // Filtering by ID is not supported by API therefore it must be filtered on client side + var foundResult bool + var foundAlbImportableCloud *NsxtAlbImportableCloud + for i, value := range albImportableClouds { + if albImportableClouds[i].NsxtAlbImportableCloud.ID == id { + foundResult = true + foundAlbImportableCloud = value + } + } + + if !foundResult { + return nil, fmt.Errorf("%s: could not find NSX-T ALB Importable Cloud by ID %s", ErrorEntityNotFound, id) + } + + return foundAlbImportableCloud, nil +} + +// GetAllAlbImportableClouds is attached to NsxtAlbController type for a convenient parent/child relationship +func (nsxtAlbController *NsxtAlbController) GetAllAlbImportableClouds(queryParameters url.Values) ([]*NsxtAlbImportableCloud, error) { + return nsxtAlbController.vcdClient.GetAllAlbImportableClouds(nsxtAlbController.NsxtAlbController.ID, queryParameters) +} + +// GetAlbImportableCloudByName is attached to NsxtAlbController type for a convenient parent/child relationship +func (nsxtAlbController *NsxtAlbController) GetAlbImportableCloudByName(name string) (*NsxtAlbImportableCloud, error) { + return nsxtAlbController.vcdClient.GetAlbImportableCloudByName(nsxtAlbController.NsxtAlbController.ID, name) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_importable_service_engine_groups.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_importable_service_engine_groups.go new file mode 100644 index 000000000..75e79f7c5 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_importable_service_engine_groups.go @@ -0,0 +1,202 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtAlbImportableServiceEngineGroups provides capability to list all Importable Service Engine Groups available in +// ALB Controller so that they can be consumed by NsxtAlbServiceEngineGroup +// +// Note. The API does not return Importable Service Engine Group once it is consumed. +type NsxtAlbImportableServiceEngineGroups struct { + NsxtAlbImportableServiceEngineGroups *types.NsxtAlbImportableServiceEngineGroups + vcdClient *VCDClient +} + +// GetAllAlbImportableServiceEngineGroups lists all Importable Service Engine Groups available in ALB Controller +func (vcdClient *VCDClient) GetAllAlbImportableServiceEngineGroups(parentAlbCloudUrn string, queryParameters url.Values) ([]*NsxtAlbImportableServiceEngineGroups, error) { + client := vcdClient.Client + if parentAlbCloudUrn == "" { + return nil, fmt.Errorf("parentAlbCloudUrn is required") + } + if !client.IsSysAdmin { + return nil, errors.New("handling NSX-T ALB Importable Service Engine Groups requires System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbImportableServiceEngineGroups + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + queryParams := copyOrNewUrlValues(queryParameters) + queryParams = queryParameterFilterAnd(fmt.Sprintf("_context==%s", parentAlbCloudUrn), queryParams) + typeResponses := []*types.NsxtAlbImportableServiceEngineGroups{{}} + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParams, &typeResponses, nil) + if err != nil { + return nil, err + } + + wrappedResponses := make([]*NsxtAlbImportableServiceEngineGroups, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtAlbImportableServiceEngineGroups{ + NsxtAlbImportableServiceEngineGroups: typeResponses[sliceIndex], + vcdClient: vcdClient, + } + } + + return wrappedResponses, nil +} + +// GetAlbImportableServiceEngineGroupByName returns importable NSX-T ALB Clouds. +func (vcdClient *VCDClient) GetAlbImportableServiceEngineGroupByName(parentAlbCloudUrn, name string) (*NsxtAlbImportableServiceEngineGroups, error) { + albClouds, err := vcdClient.GetAllAlbImportableServiceEngineGroups(parentAlbCloudUrn, nil) + if err != nil { + return nil, fmt.Errorf("error finding NSX-T ALB Importable Service Engine Group by Name '%s': %s", name, err) + } + + // Filtering by Name is not supported by API therefore it must be filtered on client side + var foundResult bool + var foundAlbCloud *NsxtAlbImportableServiceEngineGroups + for i, value := range albClouds { + if albClouds[i].NsxtAlbImportableServiceEngineGroups.DisplayName == name { + foundResult = true + foundAlbCloud = value + break + } + } + + if !foundResult { + return nil, fmt.Errorf("%s: could not find NSX-T ALB Importable Service Engine Group by Name %s", ErrorEntityNotFound, name) + } + + return foundAlbCloud, nil +} + +// GetAlbImportableServiceEngineGroupById +// Note. ID filtering is performed on client side +func (vcdClient *VCDClient) GetAlbImportableServiceEngineGroupById(parentAlbCloudUrn, id string) (*NsxtAlbImportableServiceEngineGroups, error) { + albClouds, err := vcdClient.GetAllAlbImportableServiceEngineGroups(parentAlbCloudUrn, nil) + if err != nil { + return nil, fmt.Errorf("error finding NSX-T ALB Importable Service Engine Group by ID '%s': %s", id, err) + } + + // Filtering by ID is not supported by API therefore it must be filtered on client side + var foundResult bool + var foundImportableSEGroups *NsxtAlbImportableServiceEngineGroups + for i, value := range albClouds { + if albClouds[i].NsxtAlbImportableServiceEngineGroups.ID == id { + foundResult = true + foundImportableSEGroups = value + } + } + + if !foundResult { + return nil, fmt.Errorf("%s: could not find NSX-T ALB Importable Service Engine Group by ID %s", ErrorEntityNotFound, id) + } + + return foundImportableSEGroups, nil +} + +// GetAllAlbImportableServiceEngineGroups lists all Importable Service Engine Groups available in ALB Controller +func (nsxtAlbCloud *NsxtAlbCloud) GetAllAlbImportableServiceEngineGroups(parentAlbCloudUrn string, queryParameters url.Values) ([]*NsxtAlbImportableServiceEngineGroups, error) { + client := nsxtAlbCloud.vcdClient.Client + if parentAlbCloudUrn == "" { + return nil, fmt.Errorf("parentAlbCloudUrn is required") + } + if !client.IsSysAdmin { + return nil, errors.New("handling NSX-T ALB Importable Service Engine Groups requires System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbImportableServiceEngineGroups + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + queryParams := copyOrNewUrlValues(queryParameters) + queryParams = queryParameterFilterAnd(fmt.Sprintf("_context==%s", parentAlbCloudUrn), queryParams) + typeResponses := []*types.NsxtAlbImportableServiceEngineGroups{{}} + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParams, &typeResponses, nil) + if err != nil { + return nil, err + } + + wrappedResponses := make([]*NsxtAlbImportableServiceEngineGroups, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtAlbImportableServiceEngineGroups{ + NsxtAlbImportableServiceEngineGroups: typeResponses[sliceIndex], + vcdClient: nsxtAlbCloud.vcdClient, + } + } + + return wrappedResponses, nil +} + +// GetAlbImportableServiceEngineGroupByName returns importable NSX-T ALB Clouds. +func (nsxtAlbCloud *NsxtAlbCloud) GetAlbImportableServiceEngineGroupByName(parentAlbCloudUrn, name string) (*NsxtAlbImportableServiceEngineGroups, error) { + albClouds, err := nsxtAlbCloud.vcdClient.GetAllAlbImportableServiceEngineGroups(parentAlbCloudUrn, nil) + if err != nil { + return nil, fmt.Errorf("error finding NSX-T ALB Importable Service Engine Group by Name '%s': %s", name, err) + } + + // Filtering by ID is not supported by API therefore it must be filtered on client side + var foundResult bool + var foundAlbCloud *NsxtAlbImportableServiceEngineGroups + for i, value := range albClouds { + if albClouds[i].NsxtAlbImportableServiceEngineGroups.DisplayName == name { + foundResult = true + foundAlbCloud = value + break + } + } + + if !foundResult { + return nil, fmt.Errorf("%s: could not find NSX-T ALB Importable Service Engine Group by Name %s", ErrorEntityNotFound, name) + } + + return foundAlbCloud, nil +} + +// GetAlbImportableServiceEngineGroupById +// Note. ID filtering is performed on client side +func (nsxtAlbCloud *NsxtAlbCloud) GetAlbImportableServiceEngineGroupById(parentAlbCloudUrn, id string) (*NsxtAlbImportableServiceEngineGroups, error) { + albClouds, err := nsxtAlbCloud.vcdClient.GetAllAlbImportableServiceEngineGroups(parentAlbCloudUrn, nil) + if err != nil { + return nil, fmt.Errorf("error finding NSX-T ALB Importable Service Engine Group by ID '%s': %s", id, err) + } + + // Filtering by ID is not supported by API therefore it must be filtered on client side + var foundResult bool + var foundImportableSEGroups *NsxtAlbImportableServiceEngineGroups + for i, value := range albClouds { + if albClouds[i].NsxtAlbImportableServiceEngineGroups.ID == id { + foundResult = true + foundImportableSEGroups = value + } + } + + if !foundResult { + return nil, fmt.Errorf("%s: could not find NSX-T ALB Importable Service Engine Group by ID %s", ErrorEntityNotFound, id) + } + + return foundImportableSEGroups, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_pool.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_pool.go new file mode 100644 index 000000000..e592e07db --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_pool.go @@ -0,0 +1,215 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtAlbPool defines configuration of a single NSX-T ALB Pool. Pools maintain the list of servers assigned to them and +// perform health monitoring, load balancing, persistence. A pool may only be used or referenced by only one virtual +// service at a time. +type NsxtAlbPool struct { + NsxtAlbPool *types.NsxtAlbPool + vcdClient *VCDClient +} + +// GetAllAlbPoolSummaries retrieves partial information for type `NsxtAlbPool`, but it is the only way to retrieve all ALB +// pools for Edge Gateway +func (vcdClient *VCDClient) GetAllAlbPoolSummaries(edgeGatewayId string, queryParameters url.Values) ([]*NsxtAlbPool, error) { + client := vcdClient.Client + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbPoolSummaries + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, edgeGatewayId)) + if err != nil { + return nil, err + } + + typeResponses := []*types.NsxtAlbPool{{}} + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into NsxtAlbPool types with client + wrappedResponses := make([]*NsxtAlbPool, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtAlbPool{ + NsxtAlbPool: typeResponses[sliceIndex], + vcdClient: vcdClient, + } + } + + return wrappedResponses, nil +} + +// GetAllAlbPools uses GetAllAlbPoolSummaries behind the scenes and the fetches complete data for all ALB Pools. This +// has performance penalty because each ALB Pool is fetched individually. +func (vcdClient *VCDClient) GetAllAlbPools(edgeGatewayId string, queryParameters url.Values) ([]*NsxtAlbPool, error) { + allAlbPoolSummaries, err := vcdClient.GetAllAlbPoolSummaries(edgeGatewayId, queryParameters) + if err != nil { + return nil, fmt.Errorf("error retrieving all ALB Pool summaries: %s", err) + } + + // Loop over all Summaries and retrieve complete information + allAlbPools := make([]*NsxtAlbPool, len(allAlbPoolSummaries)) + for index := range allAlbPoolSummaries { + + allAlbPools[index], err = vcdClient.GetAlbPoolById(allAlbPoolSummaries[index].NsxtAlbPool.ID) + if err != nil { + return nil, fmt.Errorf("error retrieving complete ALB Pool: %s", err) + } + + } + + return allAlbPools, nil +} + +// GetAlbPoolByName fetches ALB Pool By Name +func (vcdClient *VCDClient) GetAlbPoolByName(edgeGatewayId string, name string) (*NsxtAlbPool, error) { + queryParameters := copyOrNewUrlValues(nil) + queryParameters.Add("filter", "name=="+name) + + allAlbPools, err := vcdClient.GetAllAlbPools(edgeGatewayId, queryParameters) + if err != nil { + return nil, fmt.Errorf("error retrieving ALB Pool with Name '%s': %s", name, err) + } + + if len(allAlbPools) == 0 { + return nil, fmt.Errorf("%s: could not find ALB Pool with Name '%s'", ErrorEntityNotFound, name) + } + + if len(allAlbPools) > 1 { + return nil, fmt.Errorf("found more than 1 ALB Pool with Name '%s'", name) + } + + return allAlbPools[0], nil +} + +// GetAlbPoolById fetches ALB Pool By Id +func (vcdClient *VCDClient) GetAlbPoolById(id string) (*NsxtAlbPool, error) { + client := vcdClient.Client + + if id == "" { + return nil, fmt.Errorf("ID is required to lookup NSX-T ALB Pool by ID") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbPools + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + typeResponse := &types.NsxtAlbPool{} + err = client.OpenApiGetItem(apiVersion, urlRef, nil, &typeResponse, nil) + if err != nil { + return nil, err + } + + wrappedResponse := &NsxtAlbPool{ + NsxtAlbPool: typeResponse, + vcdClient: vcdClient, + } + + return wrappedResponse, nil +} + +// CreateNsxtAlbPool creates NSX-T ALB Pool based on supplied configuration +func (vcdClient *VCDClient) CreateNsxtAlbPool(albPoolConfig *types.NsxtAlbPool) (*NsxtAlbPool, error) { + client := vcdClient.Client + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbPools + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnObject := &NsxtAlbPool{ + NsxtAlbPool: &types.NsxtAlbPool{}, + vcdClient: vcdClient, + } + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, albPoolConfig, returnObject.NsxtAlbPool, nil) + if err != nil { + return nil, fmt.Errorf("error creating NSX-T ALB Pool: %s", err) + } + + return returnObject, nil +} + +// Update updates NSX-T ALB Pool based on supplied configuration +func (nsxtAlbPool *NsxtAlbPool) Update(albPoolConfig *types.NsxtAlbPool) (*NsxtAlbPool, error) { + client := nsxtAlbPool.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbPools + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if albPoolConfig.ID == "" { + return nil, fmt.Errorf("cannot update NSX-T ALB Pool without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, albPoolConfig.ID) + if err != nil { + return nil, err + } + + responseAlbController := &NsxtAlbPool{ + NsxtAlbPool: &types.NsxtAlbPool{}, + vcdClient: nsxtAlbPool.vcdClient, + } + + err = client.OpenApiPutItem(minimumApiVersion, urlRef, nil, albPoolConfig, responseAlbController.NsxtAlbPool, nil) + if err != nil { + return nil, fmt.Errorf("error updating NSX-T ALB Pool: %s", err) + } + + return responseAlbController, nil +} + +// Delete deletes NSX-T ALB Pool +func (nsxtAlbPool *NsxtAlbPool) Delete() error { + client := nsxtAlbPool.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbPools + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if nsxtAlbPool.NsxtAlbPool.ID == "" { + return fmt.Errorf("cannot delete NSX-T ALB Pool without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, nsxtAlbPool.NsxtAlbPool.ID) + if err != nil { + return err + } + + err = client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + if err != nil { + return fmt.Errorf("error deleting NSX-T ALB Pool: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_service_engine_group_assignment.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_service_engine_group_assignment.go new file mode 100644 index 000000000..f9b84a535 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_service_engine_group_assignment.go @@ -0,0 +1,213 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtAlbServiceEngineGroupAssignment handles Service Engine Group Assignment to NSX-T Edge Gateways +type NsxtAlbServiceEngineGroupAssignment struct { + NsxtAlbServiceEngineGroupAssignment *types.NsxtAlbServiceEngineGroupAssignment + vcdClient *VCDClient +} + +func (vcdClient *VCDClient) GetAllAlbServiceEngineGroupAssignments(queryParameters url.Values) ([]*NsxtAlbServiceEngineGroupAssignment, error) { + client := vcdClient.Client + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroupAssignments + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.NsxtAlbServiceEngineGroupAssignment{{}} + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + wrappedResponses := make([]*NsxtAlbServiceEngineGroupAssignment, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtAlbServiceEngineGroupAssignment{ + NsxtAlbServiceEngineGroupAssignment: typeResponses[sliceIndex], + vcdClient: vcdClient, + } + } + + return wrappedResponses, nil +} + +func (vcdClient *VCDClient) GetAlbServiceEngineGroupAssignmentById(id string) (*NsxtAlbServiceEngineGroupAssignment, error) { + client := vcdClient.Client + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroupAssignments + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + typeResponse := &types.NsxtAlbServiceEngineGroupAssignment{} + + err = client.OpenApiGetItem(apiVersion, urlRef, nil, &typeResponse, nil) + if err != nil { + return nil, err + } + + wrappedResponse := &NsxtAlbServiceEngineGroupAssignment{ + NsxtAlbServiceEngineGroupAssignment: typeResponse, + vcdClient: vcdClient, + } + + return wrappedResponse, nil +} + +func (vcdClient *VCDClient) GetAlbServiceEngineGroupAssignmentByName(name string) (*NsxtAlbServiceEngineGroupAssignment, error) { + // Filtering by Service Engine Group name is not supported on API therefore filtering is done locally + allServiceEngineGroupAssignments, err := vcdClient.GetAllAlbServiceEngineGroupAssignments(nil) + if err != nil { + return nil, err + } + + var foundGroup *NsxtAlbServiceEngineGroupAssignment + + for _, serviceEngineGroupAssignment := range allServiceEngineGroupAssignments { + if serviceEngineGroupAssignment.NsxtAlbServiceEngineGroupAssignment.ServiceEngineGroupRef.Name == name { + foundGroup = serviceEngineGroupAssignment + } + } + + if foundGroup == nil { + return nil, ErrorEntityNotFound + } + + return foundGroup, nil +} + +// GetFilteredAlbServiceEngineGroupAssignmentByName will get all ALB Service Engine Group assignments based on filters +// provided in queryParameters additionally will filter by name locally because VCD does not support server side +// filtering by name. +func (vcdClient *VCDClient) GetFilteredAlbServiceEngineGroupAssignmentByName(name string, queryParameters url.Values) (*NsxtAlbServiceEngineGroupAssignment, error) { + // Filtering by Service Engine Group name is not supported on API therefore filtering is done locally + allServiceEngineGroupAssignments, err := vcdClient.GetAllAlbServiceEngineGroupAssignments(queryParameters) + if err != nil { + return nil, err + } + + var foundGroup *NsxtAlbServiceEngineGroupAssignment + + for _, serviceEngineGroupAssignment := range allServiceEngineGroupAssignments { + if serviceEngineGroupAssignment.NsxtAlbServiceEngineGroupAssignment.ServiceEngineGroupRef.Name == name { + foundGroup = serviceEngineGroupAssignment + } + } + + if foundGroup == nil { + return nil, ErrorEntityNotFound + } + + return foundGroup, nil +} + +func (vcdClient *VCDClient) CreateAlbServiceEngineGroupAssignment(assignmentConfig *types.NsxtAlbServiceEngineGroupAssignment) (*NsxtAlbServiceEngineGroupAssignment, error) { + client := vcdClient.Client + if !client.IsSysAdmin { + return nil, errors.New("handling NSX-T ALB Service Engine Group Assignment require System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroupAssignments + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnObject := &NsxtAlbServiceEngineGroupAssignment{ + NsxtAlbServiceEngineGroupAssignment: &types.NsxtAlbServiceEngineGroupAssignment{}, + vcdClient: vcdClient, + } + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, assignmentConfig, returnObject.NsxtAlbServiceEngineGroupAssignment, nil) + if err != nil { + return nil, fmt.Errorf("error creating NSX-T ALB Service Engine Group Assignment: %s", err) + } + + return returnObject, nil +} + +// Update updates existing ALB Service Engine Group Assignment with new supplied assignmentConfig configuration +func (nsxtEdgeAlbServiceEngineGroup *NsxtAlbServiceEngineGroupAssignment) Update(assignmentConfig *types.NsxtAlbServiceEngineGroupAssignment) (*NsxtAlbServiceEngineGroupAssignment, error) { + client := nsxtEdgeAlbServiceEngineGroup.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroupAssignments + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if assignmentConfig.ID == "" { + return nil, fmt.Errorf("cannot update NSX-T ALB Service Engine Group Assignment without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, assignmentConfig.ID) + if err != nil { + return nil, err + } + + responseAlbController := &NsxtAlbServiceEngineGroupAssignment{ + NsxtAlbServiceEngineGroupAssignment: &types.NsxtAlbServiceEngineGroupAssignment{}, + vcdClient: nsxtEdgeAlbServiceEngineGroup.vcdClient, + } + + err = client.OpenApiPutItem(minimumApiVersion, urlRef, nil, assignmentConfig, responseAlbController.NsxtAlbServiceEngineGroupAssignment, nil) + if err != nil { + return nil, fmt.Errorf("error updating NSX-T ALB Service Engine Group Assignment: %s", err) + } + + return responseAlbController, nil +} + +// Delete deletes NSX-T ALB Service Engine Group Assignment +func (nsxtEdgeAlbServiceEngineGroup *NsxtAlbServiceEngineGroupAssignment) Delete() error { + client := nsxtEdgeAlbServiceEngineGroup.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroupAssignments + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if nsxtEdgeAlbServiceEngineGroup.NsxtAlbServiceEngineGroupAssignment.ID == "" { + return fmt.Errorf("cannot delete NSX-T ALB Service Engine Group Assignment without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, nsxtEdgeAlbServiceEngineGroup.NsxtAlbServiceEngineGroupAssignment.ID) + if err != nil { + return err + } + + err = client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + if err != nil { + return fmt.Errorf("error deleting NSX-T ALB Service Engine Group Assignment: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_service_engine_groups.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_service_engine_groups.go new file mode 100644 index 000000000..b0fe9b70b --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_service_engine_groups.go @@ -0,0 +1,256 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtAlbServiceEngineGroup provides virtual service management capabilities for tenants. This entity can be created +// by referencing a backing importable service engine group - NsxtAlbImportableServiceEngineGroups. +// +// A service engine group is an isolation domain that also defines shared service engine properties, such as size, +// network access, and failover. Resources in a service engine group can be used for different virtual services, +// depending on your tenant needs. These resources cannot be shared between different service engine groups. +type NsxtAlbServiceEngineGroup struct { + NsxtAlbServiceEngineGroup *types.NsxtAlbServiceEngineGroup + vcdClient *VCDClient +} + +// GetAllAlbServiceEngineGroups retrieves NSX-T ALB Service Engines with possible filters +// +// Context is not mandatory for this resource. Supported contexts are: +// * Gateway ID (_context==gatewayId) - returns all Load Balancer Service Engine Groups that are accessible to the +// gateway. +// * Assignable Gateway ID (_context=gatewayId;_context==assignable) returns all Load Balancer Service Engine Groups +// that are assignable to the gateway. This filters out any Load Balancer Service Engine groups that are already +// assigned to the gateway or assigned to another gateway if the reservation type is 'DEDICATED’. +func (vcdClient *VCDClient) GetAllAlbServiceEngineGroups(context string, queryParameters url.Values) ([]*NsxtAlbServiceEngineGroup, error) { + client := vcdClient.Client + + if !client.IsSysAdmin { + return nil, errors.New("handling NSX-T ALB Service Engine Groups require System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroups + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + queryParams := copyOrNewUrlValues(queryParameters) + if context != "" { + queryParams = queryParameterFilterAnd(fmt.Sprintf("_context==%s", context), queryParams) + } + typeResponses := []*types.NsxtAlbServiceEngineGroup{{}} + + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParams, &typeResponses, nil) + if err != nil { + return nil, err + } + + wrappedResponses := make([]*NsxtAlbServiceEngineGroup, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtAlbServiceEngineGroup{ + NsxtAlbServiceEngineGroup: typeResponses[sliceIndex], + vcdClient: vcdClient, + } + } + + return wrappedResponses, nil +} + +// GetAlbServiceEngineGroupByName returns NSX-T ALB Service Engine by Name +// Context is not mandatory for this resource. Supported contexts are: +// * Gateway ID (_context==gatewayId) - returns all Load Balancer Service Engine Groups that are accessible to the +// gateway. +// * Assignable Gateway ID (_context=gatewayId;_context==assignable) returns all Load Balancer Service Engine Groups +// that are assignable to the gateway. This filters out any Load Balancer Service Engine groups that are already +// assigned to the gateway or assigned to another gateway if the reservation type is 'DEDICATED’. +func (vcdClient *VCDClient) GetAlbServiceEngineGroupByName(optionalContext, name string) (*NsxtAlbServiceEngineGroup, error) { + queryParams := copyOrNewUrlValues(nil) + if optionalContext != "" { + queryParams = queryParameterFilterAnd(fmt.Sprintf("_context==%s", optionalContext), queryParams) + } + queryParams.Add("filter", fmt.Sprintf("name==%s", name)) + + albSeGroups, err := vcdClient.GetAllAlbServiceEngineGroups("", queryParams) + if err != nil { + return nil, fmt.Errorf("error retrieving NSX-T ALB Service Engine Group By Name '%s': %s", name, err) + } + + if len(albSeGroups) == 0 { + return nil, fmt.Errorf("%s", ErrorEntityNotFound) + } + + if len(albSeGroups) > 1 { + return nil, fmt.Errorf("more than 1 NSX-T ALB Service Engine Group with Name '%s' found", name) + } + + return albSeGroups[0], nil +} + +// GetAlbServiceEngineGroupById returns importable NSX-T ALB Cloud by ID +func (vcdClient *VCDClient) GetAlbServiceEngineGroupById(id string) (*NsxtAlbServiceEngineGroup, error) { + client := vcdClient.Client + + if !client.IsSysAdmin { + return nil, errors.New("handling NSX-T ALB Service Engine Groups require System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroups + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + typeResponse := &types.NsxtAlbServiceEngineGroup{} + + err = client.OpenApiGetItem(apiVersion, urlRef, nil, &typeResponse, nil) + if err != nil { + return nil, err + } + + wrappedResponse := &NsxtAlbServiceEngineGroup{ + NsxtAlbServiceEngineGroup: typeResponse, + vcdClient: vcdClient, + } + + return wrappedResponse, nil +} + +func (vcdClient *VCDClient) CreateNsxtAlbServiceEngineGroup(albServiceEngineGroup *types.NsxtAlbServiceEngineGroup) (*NsxtAlbServiceEngineGroup, error) { + client := vcdClient.Client + if !client.IsSysAdmin { + return nil, errors.New("handling NSX-T ALB Service Engine Groups require System user") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroups + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnObject := &NsxtAlbServiceEngineGroup{ + NsxtAlbServiceEngineGroup: &types.NsxtAlbServiceEngineGroup{}, + vcdClient: vcdClient, + } + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, albServiceEngineGroup, returnObject.NsxtAlbServiceEngineGroup, nil) + if err != nil { + return nil, fmt.Errorf("error creating NSX-T ALB Service Engine Group: %s", err) + } + + return returnObject, nil +} + +// Update updates existing ALB Controller with new supplied albControllerConfig configuration +func (nsxtAlbServiceEngineGroup *NsxtAlbServiceEngineGroup) Update(albSEGroupConfig *types.NsxtAlbServiceEngineGroup) (*NsxtAlbServiceEngineGroup, error) { + client := nsxtAlbServiceEngineGroup.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroups + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if albSEGroupConfig.ID == "" { + return nil, fmt.Errorf("cannot update NSX-T ALB Service Engine Group without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, albSEGroupConfig.ID) + if err != nil { + return nil, err + } + + responseAlbController := &NsxtAlbServiceEngineGroup{ + NsxtAlbServiceEngineGroup: &types.NsxtAlbServiceEngineGroup{}, + vcdClient: nsxtAlbServiceEngineGroup.vcdClient, + } + + err = client.OpenApiPutItem(minimumApiVersion, urlRef, nil, albSEGroupConfig, responseAlbController.NsxtAlbServiceEngineGroup, nil) + if err != nil { + return nil, fmt.Errorf("error updating NSX-T ALB Service Engine Group: %s", err) + } + + return responseAlbController, nil +} + +// Delete deletes NSX-T ALB Service Engine Group configuration +func (nsxtAlbServiceEngineGroup *NsxtAlbServiceEngineGroup) Delete() error { + client := nsxtAlbServiceEngineGroup.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroups + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if nsxtAlbServiceEngineGroup.NsxtAlbServiceEngineGroup.ID == "" { + return fmt.Errorf("cannot delete NSX-T ALB Service Engine Group without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, nsxtAlbServiceEngineGroup.NsxtAlbServiceEngineGroup.ID) + if err != nil { + return err + } + + err = client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + if err != nil { + return fmt.Errorf("error deleting NSX-T ALB Service Engine Group: %s", err) + } + + return nil +} + +// Sync syncs a specified Load Balancer Service Engine Group. It requests the HA mode and the maximum number of +// supported Virtual Services for this Service Engine Group from the Load Balancer, and updates vCD's local record of +// these properties. +func (nsxtAlbServiceEngineGroup *NsxtAlbServiceEngineGroup) Sync() error { + client := nsxtAlbServiceEngineGroup.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroups + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if nsxtAlbServiceEngineGroup.NsxtAlbServiceEngineGroup.ID == "" { + return fmt.Errorf("cannot sync NSX-T ALB Service Engine Group without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, nsxtAlbServiceEngineGroup.NsxtAlbServiceEngineGroup.ID, "/sync") + if err != nil { + return err + } + + task, err := client.OpenApiPostItemAsync(minimumApiVersion, urlRef, nil, nil) + if err != nil { + return fmt.Errorf("error syncing NSX-T ALB Service Engine Group: %s", err) + } + + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("sync task for NSX-T ALB Service Engine Group failed: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_settings.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_settings.go new file mode 100644 index 000000000..b763f9edd --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_settings.go @@ -0,0 +1,66 @@ +package govcd + +import ( + "fmt" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// GetAlbSettings retrieves NSX-T ALB settings for a particular Edge Gateway +func (egw *NsxtEdgeGateway) GetAlbSettings() (*types.NsxtAlbConfig, error) { + client := egw.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbEdgeGateway + apiVersion, err := client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID)) + if err != nil { + return nil, err + } + + typeResponse := &types.NsxtAlbConfig{} + err = client.OpenApiGetItem(apiVersion, urlRef, nil, &typeResponse, nil) + if err != nil { + return nil, err + } + + return typeResponse, nil +} + +// UpdateAlbSettings updates NSX-T ALB settings for a particular Edge Gateway +func (egw *NsxtEdgeGateway) UpdateAlbSettings(config *types.NsxtAlbConfig) (*types.NsxtAlbConfig, error) { + client := egw.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbEdgeGateway + apiVersion, err := client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID)) + if err != nil { + return nil, err + } + + typeResponse := &types.NsxtAlbConfig{} + err = client.OpenApiPutItem(apiVersion, urlRef, nil, config, typeResponse, nil) + if err != nil { + return nil, err + } + + return typeResponse, nil +} + +// DisableAlb is a shortcut wrapping UpdateAlbSettings which disables ALB configuration +func (egw *NsxtEdgeGateway) DisableAlb() error { + config := &types.NsxtAlbConfig{ + Enabled: false, + } + _, err := egw.UpdateAlbSettings(config) + if err != nil { + return fmt.Errorf("error disabling NSX-T ALB: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_virtual_service.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_virtual_service.go new file mode 100644 index 000000000..a59eca621 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_alb_virtual_service.go @@ -0,0 +1,214 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtAlbVirtualService combines Load Balancer Pools with Service Engine Groups and exposes a virtual service on +// defined VIP (virtual IP address) while optionally allowing to use encrypted traffic +type NsxtAlbVirtualService struct { + NsxtAlbVirtualService *types.NsxtAlbVirtualService + vcdClient *VCDClient +} + +// GetAllAlbVirtualServiceSummaries returns a limited subset of NsxtAlbVirtualService values, but does it in single +// query. To fetch complete information for ALB Virtual Services one can use GetAllAlbVirtualServices(), but it is slower +// as it has to retrieve Virtual Services one by one. +func (vcdClient *VCDClient) GetAllAlbVirtualServiceSummaries(edgeGatewayId string, queryParameters url.Values) ([]*NsxtAlbVirtualService, error) { + client := vcdClient.Client + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbVirtualServiceSummaries + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, edgeGatewayId)) + if err != nil { + return nil, err + } + + typeResponses := []*types.NsxtAlbVirtualService{{}} + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into NsxtAlbPool types with client + wrappedResponses := make([]*NsxtAlbVirtualService, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtAlbVirtualService{ + NsxtAlbVirtualService: typeResponses[sliceIndex], + vcdClient: vcdClient, + } + } + + return wrappedResponses, nil +} + +// GetAllAlbVirtualServices fetches ALB Virtual Services by at first listing all Virtual Services summaries and then +// fetching complete structure one by one +func (vcdClient *VCDClient) GetAllAlbVirtualServices(edgeGatewayId string, queryParameters url.Values) ([]*NsxtAlbVirtualService, error) { + allAlbVirtualServiceSummaries, err := vcdClient.GetAllAlbVirtualServiceSummaries(edgeGatewayId, queryParameters) + if err != nil { + return nil, fmt.Errorf("error retrieving all ALB Virtual Service summaries: %s", err) + } + + // Loop over all Summaries and retrieve complete information + allAlbVirtualServices := make([]*NsxtAlbVirtualService, len(allAlbVirtualServiceSummaries)) + for index := range allAlbVirtualServiceSummaries { + allAlbVirtualServices[index], err = vcdClient.GetAlbVirtualServiceById(allAlbVirtualServiceSummaries[index].NsxtAlbVirtualService.ID) + if err != nil { + return nil, fmt.Errorf("error retrieving complete ALB Virtual Service: %s", err) + } + + } + + return allAlbVirtualServices, nil +} + +// GetAlbVirtualServiceByName fetches ALB Virtual Service By Name +func (vcdClient *VCDClient) GetAlbVirtualServiceByName(edgeGatewayId string, name string) (*NsxtAlbVirtualService, error) { + queryParameters := copyOrNewUrlValues(nil) + queryParameters.Add("filter", "name=="+name) + + allAlbVirtualServices, err := vcdClient.GetAllAlbVirtualServices(edgeGatewayId, queryParameters) + if err != nil { + return nil, fmt.Errorf("error reading ALB Virtual Service with Name '%s': %s", name, err) + } + + if len(allAlbVirtualServices) == 0 { + return nil, fmt.Errorf("%s: could not find ALB Virtual Service with Name '%s'", ErrorEntityNotFound, name) + } + + if len(allAlbVirtualServices) > 1 { + return nil, fmt.Errorf("found more than 1 ALB Virtual Service with Name '%s'", name) + } + + return allAlbVirtualServices[0], nil +} + +// GetAlbVirtualServiceById fetches ALB Virtual Service By ID +func (vcdClient *VCDClient) GetAlbVirtualServiceById(id string) (*NsxtAlbVirtualService, error) { + client := vcdClient.Client + + if id == "" { + return nil, fmt.Errorf("ID is required to lookup NSX-T ALB Virtual Service by ID") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbVirtualServices + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + typeResponse := &types.NsxtAlbVirtualService{} + err = client.OpenApiGetItem(apiVersion, urlRef, nil, &typeResponse, nil) + if err != nil { + return nil, err + } + + wrappedResponse := &NsxtAlbVirtualService{ + NsxtAlbVirtualService: typeResponse, + vcdClient: vcdClient, + } + + return wrappedResponse, nil +} + +// CreateNsxtAlbVirtualService creates NSX-T ALB Virtual Service based on supplied configuration +func (vcdClient *VCDClient) CreateNsxtAlbVirtualService(albVirtualServiceConfig *types.NsxtAlbVirtualService) (*NsxtAlbVirtualService, error) { + client := vcdClient.Client + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbVirtualServices + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnObject := &NsxtAlbVirtualService{ + NsxtAlbVirtualService: &types.NsxtAlbVirtualService{}, + vcdClient: vcdClient, + } + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, albVirtualServiceConfig, returnObject.NsxtAlbVirtualService, nil) + if err != nil { + return nil, fmt.Errorf("error creating NSX-T ALB Virtual Service: %s", err) + } + + return returnObject, nil +} + +// Update updates NSX-T ALB Virtual Service based on supplied configuration +func (nsxtAlbVirtualService *NsxtAlbVirtualService) Update(albVirtualServiceConfig *types.NsxtAlbVirtualService) (*NsxtAlbVirtualService, error) { + client := nsxtAlbVirtualService.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbVirtualServices + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if albVirtualServiceConfig.ID == "" { + return nil, fmt.Errorf("cannot update NSX-T ALB Virtual Service without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, albVirtualServiceConfig.ID) + if err != nil { + return nil, err + } + + responseAlbController := &NsxtAlbVirtualService{ + NsxtAlbVirtualService: &types.NsxtAlbVirtualService{}, + vcdClient: nsxtAlbVirtualService.vcdClient, + } + + err = client.OpenApiPutItem(minimumApiVersion, urlRef, nil, albVirtualServiceConfig, responseAlbController.NsxtAlbVirtualService, nil) + if err != nil { + return nil, fmt.Errorf("error updating NSX-T ALB Virtual Service: %s", err) + } + + return responseAlbController, nil +} + +// Delete deletes NSX-T ALB Virtual Service +func (nsxtAlbVirtualService *NsxtAlbVirtualService) Delete() error { + client := nsxtAlbVirtualService.vcdClient.Client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbVirtualServices + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if nsxtAlbVirtualService.NsxtAlbVirtualService.ID == "" { + return fmt.Errorf("cannot delete NSX-T ALB Virtual Service without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, nsxtAlbVirtualService.NsxtAlbVirtualService.ID) + if err != nil { + return err + } + + err = client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + if err != nil { + return fmt.Errorf("error deleting NSX-T ALB Virtual Service: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_application_profile.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_application_profile.go new file mode 100644 index 000000000..ca55d3b68 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_application_profile.go @@ -0,0 +1,219 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtAppPortProfile uses OpenAPI endpoint to operate NSX-T Application Port Profiles +// It can have 3 types of scopes: +// * SYSTEM - Read-only (The ones that are provided by SYSTEM). Constant `types.ApplicationPortProfileScopeSystem` +// * PROVIDER - Created by Provider on a particular network provider (NSX-T manager). Constant `types.ApplicationPortProfileScopeProvider` +// * TENANT (Created by Tenant at Org VDC level). Constant `types.ApplicationPortProfileScopeTenant` +// +// More details about scope in documentation for types.NsxtAppPortProfile +type NsxtAppPortProfile struct { + NsxtAppPortProfile *types.NsxtAppPortProfile + client *Client +} + +// CreateNsxtAppPortProfile allows users to create NSX-T Application Port Profile definition. +// It can have 3 types of scopes: +// * SYSTEM (The ones that are provided by SYSTEM) Read-only +// * PROVIDER (Created by Provider globally) +// * TENANT (Create by tenant at Org level) +// More details about scope in documentation for types.NsxtAppPortProfile +func (org *Org) CreateNsxtAppPortProfile(appPortProfileConfig *types.NsxtAppPortProfile) (*NsxtAppPortProfile, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAppPortProfiles + minimumApiVersion, err := org.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := org.client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnObject := &NsxtAppPortProfile{ + NsxtAppPortProfile: &types.NsxtAppPortProfile{}, + client: org.client, + } + + err = org.client.OpenApiPostItem(minimumApiVersion, urlRef, nil, appPortProfileConfig, returnObject.NsxtAppPortProfile, nil) + if err != nil { + return nil, fmt.Errorf("error creating NSX-T Application Port Profile: %s", err) + } + + return returnObject, nil +} + +// GetAllNsxtAppPortProfiles returns all NSX-T Application Port Profiles for specific scope +// More details about scope in documentation for types.NsxtAppPortProfile +func (org *Org) GetAllNsxtAppPortProfiles(queryParameters url.Values, scope string) ([]*NsxtAppPortProfile, error) { + queryParams := copyOrNewUrlValues(queryParameters) + if scope != "" { + queryParams = queryParameterFilterAnd("scope=="+scope, queryParams) + } + + return getAllNsxtAppPortProfiles(org.client, queryParams) +} + +// GetNsxtAppPortProfileByName allows users to retrieve Application Port Profiles for specific scope. +// More details in documentation for types.NsxtAppPortProfile +// +// Note. Names are enforced to be unique per scope +func (org *Org) GetNsxtAppPortProfileByName(name, scope string) (*NsxtAppPortProfile, error) { + queryParameters := url.Values{} + if scope != "" { + queryParameters = queryParameterFilterAnd("scope=="+scope, queryParameters) + } + + return getNsxtAppPortProfileByName(org.client, name, queryParameters) +} + +// GetNsxtAppPortProfileById retrieves NSX-T Application Port Profile by ID +func (org *Org) GetNsxtAppPortProfileById(id string) (*NsxtAppPortProfile, error) { + return getNsxtAppPortProfileById(org.client, id) +} + +// Update allows users to update NSX-T Application Port Profile +func (appPortProfile *NsxtAppPortProfile) Update(appPortProfileConfig *types.NsxtAppPortProfile) (*NsxtAppPortProfile, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAppPortProfiles + minimumApiVersion, err := appPortProfile.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if appPortProfileConfig.ID == "" { + return nil, fmt.Errorf("cannot update NSX-T Application Port Profile without ID") + } + + urlRef, err := appPortProfile.client.OpenApiBuildEndpoint(endpoint, appPortProfileConfig.ID) + if err != nil { + return nil, err + } + + returnObject := &NsxtAppPortProfile{ + NsxtAppPortProfile: &types.NsxtAppPortProfile{}, + client: appPortProfile.client, + } + + err = appPortProfile.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, appPortProfileConfig, returnObject.NsxtAppPortProfile, nil) + if err != nil { + return nil, fmt.Errorf("error updating NSX-T Application Port Profile : %s", err) + } + + return returnObject, nil +} + +// Delete allows users to delete NSX-T Application Port Profile +func (appPortProfile *NsxtAppPortProfile) Delete() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAppPortProfiles + minimumApiVersion, err := appPortProfile.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if appPortProfile.NsxtAppPortProfile.ID == "" { + return fmt.Errorf("cannot delete NSX-T Application Port Profile without ID") + } + + urlRef, err := appPortProfile.client.OpenApiBuildEndpoint(endpoint, appPortProfile.NsxtAppPortProfile.ID) + if err != nil { + return err + } + + err = appPortProfile.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting NSX-T Application Port Profile: %s", err) + } + + return nil +} + +func getNsxtAppPortProfileByName(client *Client, name string, queryParameters url.Values) (*NsxtAppPortProfile, error) { + queryParams := copyOrNewUrlValues(queryParameters) + queryParams = queryParameterFilterAnd("name=="+name, queryParams) + + allAppPortProfiles, err := getAllNsxtAppPortProfiles(client, queryParams) + if err != nil { + return nil, fmt.Errorf("could not find NSX-T Application Port Profile with name '%s': %s", name, err) + } + + if len(allAppPortProfiles) == 0 { + return nil, fmt.Errorf("%s: expected exactly one NSX-T Application Port Profile with name '%s'. Got %d", ErrorEntityNotFound, name, len(allAppPortProfiles)) + } + + if len(allAppPortProfiles) > 1 { + return nil, fmt.Errorf("expected exactly one NSX-T Application Port Profile with name '%s'. Got %d", name, len(allAppPortProfiles)) + } + + return getNsxtAppPortProfileById(client, allAppPortProfiles[0].NsxtAppPortProfile.ID) +} + +func getNsxtAppPortProfileById(client *Client, id string) (*NsxtAppPortProfile, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAppPortProfiles + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty NSX-T Application Port Profile ID specified") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + appPortProfile := &NsxtAppPortProfile{ + NsxtAppPortProfile: &types.NsxtAppPortProfile{}, + client: client, + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, nil, appPortProfile.NsxtAppPortProfile, nil) + if err != nil { + return nil, err + } + + return appPortProfile, nil +} + +func getAllNsxtAppPortProfiles(client *Client, queryParameters url.Values) ([]*NsxtAppPortProfile, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAppPortProfiles + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.NsxtAppPortProfile{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into NsxtAppPortProfile types with client + wrappedResponses := make([]*NsxtAppPortProfile, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtAppPortProfile{ + NsxtAppPortProfile: typeResponses[sliceIndex], + client: client, + } + } + + return wrappedResponses, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_edge_cluster.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_edge_cluster.go new file mode 100644 index 000000000..09991a7d0 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_edge_cluster.go @@ -0,0 +1,115 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtEdgeCluster is a logical grouping of NSX-T Edge virtual machines. +type NsxtEdgeCluster struct { + NsxtEdgeCluster *types.NsxtEdgeCluster + client *Client +} + +// GetNsxtEdgeClusterByName retrieves a particular NSX-T Edge Cluster by name available for that VDC +// Note: Multiple NSX-T Edge Clusters with the same name may exist. +func (vdc *Vdc) GetNsxtEdgeClusterByName(name string) (*NsxtEdgeCluster, error) { + if name == "" { + return nil, fmt.Errorf("empty NSX-T Edge Cluster name specified") + } + + // Ideally FIQL filter could be used to filter on server side and get only desired result, but filtering on + // 'name' is not yet supported. The only supported field for filtering is + // _context==urn:vcloud:vdc:09722307-aee0-4623-af95-7f8e577c9ebc to specify parent Org VDC (This + // automatically happens in GetAllNsxtEdgeClusters()). The below filter injection is left as documentation. + /* + queryParameters := copyOrNewUrlValues(nil) + queryParameters.Add("filter", "name=="+name) + */ + + nsxtEdgeClusters, err := vdc.GetAllNsxtEdgeClusters(nil) + if err != nil { + return nil, fmt.Errorf("could not find NSX-T Edge Cluster with name '%s' for Org VDC with id '%s': %s", + name, vdc.Vdc.ID, err) + } + + // TODO remove this when FIQL supports filtering on 'name' + nsxtEdgeClusters = filterNsxtEdgeClusters(name, nsxtEdgeClusters) + // EOF TODO remove this when FIQL supports filtering on 'name' + + if len(nsxtEdgeClusters) == 0 { + // ErrorEntityNotFound is injected here for the ability to validate problem using ContainsNotFound() + return nil, fmt.Errorf("%s: no NSX-T Tier-0 Edge Cluster with name '%s' for Org VDC with id '%s' found", + ErrorEntityNotFound, name, vdc.Vdc.ID) + } + + if len(nsxtEdgeClusters) > 1 { + return nil, fmt.Errorf("more than one (%d) NSX-T Edge Cluster with name '%s' for Org VDC with id '%s' found", + len(nsxtEdgeClusters), name, vdc.Vdc.ID) + } + + return nsxtEdgeClusters[0], nil +} + +// filterNsxtEdgeClusters is a helper to filter NSX-T Edge Clusters by name because the FIQL filter does not support +// filtering by name. +func filterNsxtEdgeClusters(name string, allNnsxtEdgeCluster []*NsxtEdgeCluster) []*NsxtEdgeCluster { + filteredNsxtEdgeClusters := make([]*NsxtEdgeCluster, 0) + for index, nsxtEdgeCluster := range allNnsxtEdgeCluster { + if allNnsxtEdgeCluster[index].NsxtEdgeCluster.Name == name { + filteredNsxtEdgeClusters = append(filteredNsxtEdgeClusters, nsxtEdgeCluster) + } + } + + return filteredNsxtEdgeClusters + +} + +// GetAllNsxtEdgeClusters retrieves all available Edge Clusters for a particular VDC +func (vdc *Vdc) GetAllNsxtEdgeClusters(queryParameters url.Values) ([]*NsxtEdgeCluster, error) { + if vdc.Vdc.ID == "" { + return nil, fmt.Errorf("VDC must have ID populated to retrieve NSX-T edge clusters") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointEdgeClusters + minimumApiVersion, err := vdc.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := vdc.client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + // Get all NSX-T Edge clusters that are accessible to an organization VDC. The “_context” filter key must be set with + // the ID of the VDC for which we want to get available Edge Clusters for. + // + // _context==urn:vcloud:vdc:09722307-aee0-4623-af95-7f8e577c9ebc + + // Create a copy of queryParameters so that original queryParameters are not mutated (because a map is always a + // reference) + queryParams := queryParameterFilterAnd("_context=="+vdc.Vdc.ID, queryParameters) + + typeResponses := []*types.NsxtEdgeCluster{{}} + err = vdc.client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParams, &typeResponses, nil) + if err != nil { + return nil, err + } + + returnObjects := make([]*NsxtEdgeCluster, len(typeResponses)) + for sliceIndex := range typeResponses { + returnObjects[sliceIndex] = &NsxtEdgeCluster{ + NsxtEdgeCluster: typeResponses[sliceIndex], + client: vdc.client, + } + } + + return returnObjects, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_edgegateway.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_edgegateway.go new file mode 100644 index 000000000..000c5f2d6 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_edgegateway.go @@ -0,0 +1,302 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtEdgeGateway uses OpenAPI endpoint to operate NSX-T Edge Gateways +type NsxtEdgeGateway struct { + EdgeGateway *types.OpenAPIEdgeGateway + client *Client +} + +// GetNsxtEdgeGatewayById allows to retrieve NSX-T edge gateway by ID for Org admins +func (adminOrg *AdminOrg) GetNsxtEdgeGatewayById(id string) (*NsxtEdgeGateway, error) { + return getNsxtEdgeGatewayById(adminOrg.client, id, nil) +} + +// GetNsxtEdgeGatewayById allows to retrieve NSX-T edge gateway by ID for Org users +func (org *Org) GetNsxtEdgeGatewayById(id string) (*NsxtEdgeGateway, error) { + return getNsxtEdgeGatewayById(org.client, id, nil) +} + +// GetNsxtEdgeGatewayById allows to retrieve NSX-T edge gateway by ID for specific VDC +func (vdc *Vdc) GetNsxtEdgeGatewayById(id string) (*NsxtEdgeGateway, error) { + params := url.Values{} + filterParams := queryParameterFilterAnd("orgVdc.id=="+vdc.Vdc.ID, params) + egw, err := getNsxtEdgeGatewayById(vdc.client, id, filterParams) + if err != nil { + return nil, err + } + + if egw.EdgeGateway.OrgVdc.ID != vdc.Vdc.ID { + return nil, fmt.Errorf("%s: no NSX-T Edge Gateway with ID '%s' found in VDC '%s'", + ErrorEntityNotFound, id, vdc.Vdc.ID) + } + + return egw, nil +} + +// GetNsxtEdgeGatewayByName allows to retrieve NSX-T edge gateway by Name for Org admins +func (adminOrg *AdminOrg) GetNsxtEdgeGatewayByName(name string) (*NsxtEdgeGateway, error) { + queryParameters := url.Values{} + queryParameters.Add("filter", "name=="+name) + + allEdges, err := adminOrg.GetAllNsxtEdgeGateways(queryParameters) + if err != nil { + return nil, fmt.Errorf("unable to retrieve Edge Gateway by name '%s': %s", name, err) + } + + onlyNsxtEdges := filterOnlyNsxtEdges(allEdges) + + return returnSingleNsxtEdgeGateway(name, onlyNsxtEdges) +} + +// GetNsxtEdgeGatewayByName allows to retrieve NSX-T edge gateway by Name for Org admins +func (org *Org) GetNsxtEdgeGatewayByName(name string) (*NsxtEdgeGateway, error) { + queryParameters := url.Values{} + queryParameters.Add("filter", "name=="+name) + + allEdges, err := org.GetAllNsxtEdgeGateways(queryParameters) + if err != nil { + return nil, fmt.Errorf("unable to retrieve Edge Gateway by name '%s': %s", name, err) + } + + onlyNsxtEdges := filterOnlyNsxtEdges(allEdges) + + return returnSingleNsxtEdgeGateway(name, onlyNsxtEdges) +} + +// GetNsxtEdgeGatewayByName allows to retrieve NSX-T edge gateway by Name for specific VDC +func (vdc *Vdc) GetNsxtEdgeGatewayByName(name string) (*NsxtEdgeGateway, error) { + queryParameters := url.Values{} + queryParameters.Add("filter", "name=="+name) + + allEdges, err := vdc.GetAllNsxtEdgeGateways(queryParameters) + if err != nil { + return nil, fmt.Errorf("unable to retrieve Edge Gateway by name '%s': %s", name, err) + } + + return returnSingleNsxtEdgeGateway(name, allEdges) +} + +// GetAllNsxtEdgeGateways allows to retrieve all NSX-T edge gateways for Org Admins +func (adminOrg *AdminOrg) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error) { + return getAllNsxtEdgeGateways(adminOrg.client, queryParameters) +} + +// GetAllNsxtEdgeGateways allows to retrieve all NSX-T edge gateways for Org users +func (org *Org) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error) { + return getAllNsxtEdgeGateways(org.client, queryParameters) +} + +// GetAllNsxtEdgeGateways allows to retrieve all NSX-T edge gateways for specific VDC +func (vdc *Vdc) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error) { + filteredQueryParams := queryParameterFilterAnd("orgVdc.id=="+vdc.Vdc.ID, queryParameters) + return getAllNsxtEdgeGateways(vdc.client, filteredQueryParams) +} + +// CreateNsxtEdgeGateway allows to create NSX-T edge gateway for Org admins +func (adminOrg *AdminOrg) CreateNsxtEdgeGateway(edgeGatewayConfig *types.OpenAPIEdgeGateway) (*NsxtEdgeGateway, error) { + if !adminOrg.client.IsSysAdmin { + return nil, fmt.Errorf("only System Administrator can create Edge Gateway") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointEdgeGateways + minimumApiVersion, err := adminOrg.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := adminOrg.client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnEgw := &NsxtEdgeGateway{ + EdgeGateway: &types.OpenAPIEdgeGateway{}, + client: adminOrg.client, + } + + err = adminOrg.client.OpenApiPostItem(minimumApiVersion, urlRef, nil, edgeGatewayConfig, returnEgw.EdgeGateway, nil) + if err != nil { + return nil, fmt.Errorf("error creating Edge Gateway: %s", err) + } + + return returnEgw, nil +} + +// Update allows to update NSX-T edge gateway for Org admins +func (egw *NsxtEdgeGateway) Update(edgeGatewayConfig *types.OpenAPIEdgeGateway) (*NsxtEdgeGateway, error) { + if !egw.client.IsSysAdmin { + return nil, fmt.Errorf("only System Administrator can update Edge Gateway") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointEdgeGateways + minimumApiVersion, err := egw.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if edgeGatewayConfig.ID == "" { + return nil, fmt.Errorf("cannot update Edge Gateway without ID") + } + + urlRef, err := egw.client.OpenApiBuildEndpoint(endpoint, edgeGatewayConfig.ID) + if err != nil { + return nil, err + } + + returnEgw := &NsxtEdgeGateway{ + EdgeGateway: &types.OpenAPIEdgeGateway{}, + client: egw.client, + } + + err = egw.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, edgeGatewayConfig, returnEgw.EdgeGateway, nil) + if err != nil { + return nil, fmt.Errorf("error updating Edge Gateway: %s", err) + } + + return returnEgw, nil +} + +// Delete allows to delete NSX-T edge gateway for sysadmins +func (egw *NsxtEdgeGateway) Delete() error { + if !egw.client.IsSysAdmin { + return fmt.Errorf("only Provider can delete Edge Gateway") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointEdgeGateways + minimumApiVersion, err := egw.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if egw.EdgeGateway.ID == "" { + return fmt.Errorf("cannot delete Edge Gateway without ID") + } + + urlRef, err := egw.client.OpenApiBuildEndpoint(endpoint, egw.EdgeGateway.ID) + if err != nil { + return err + } + + err = egw.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting Edge Gateway: %s", err) + } + + return nil +} + +// getNsxtEdgeGatewayById is a private parent for wrapped functions: +// func (adminOrg *AdminOrg) GetNsxtEdgeGatewayByName(id string) (*NsxtEdgeGateway, error) +// func (org *Org) GetNsxtEdgeGatewayByName(id string) (*NsxtEdgeGateway, error) +// func (vdc *Vdc) GetNsxtEdgeGatewayById(id string) (*NsxtEdgeGateway, error) +func getNsxtEdgeGatewayById(client *Client, id string, queryParameters url.Values) (*NsxtEdgeGateway, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointEdgeGateways + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty Edge Gateway ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + egw := &NsxtEdgeGateway{ + EdgeGateway: &types.OpenAPIEdgeGateway{}, + client: client, + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, queryParameters, egw.EdgeGateway, nil) + if err != nil { + return nil, err + } + + if egw.EdgeGateway.GatewayBacking.GatewayType != "NSXT_BACKED" { + return nil, fmt.Errorf("%s: this is not NSX-T Edge Gateway (%s)", + ErrorEntityNotFound, egw.EdgeGateway.GatewayBacking.GatewayType) + } + + return egw, nil +} + +// returnSingleNsxtEdgeGateway helps to reduce code duplication for `GetNsxtEdgeGatewayByName` functions with different +// receivers +func returnSingleNsxtEdgeGateway(name string, allEdges []*NsxtEdgeGateway) (*NsxtEdgeGateway, error) { + if len(allEdges) > 1 { + return nil, fmt.Errorf("got more than 1 Edge Gateway by name '%s' %d", name, len(allEdges)) + } + + if len(allEdges) < 1 { + return nil, fmt.Errorf("%s: got 0 Edge Gateways by name '%s'", ErrorEntityNotFound, name) + } + + return allEdges[0], nil +} + +// getAllNsxtEdgeGateways is a private parent for wrapped functions: +// func (adminOrg *AdminOrg) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error) +// func (org *Org) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error) +// func (vdc *Vdc) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error) +func getAllNsxtEdgeGateways(client *Client, queryParameters url.Values) ([]*NsxtEdgeGateway, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointEdgeGateways + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.OpenAPIEdgeGateway{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into NsxtEdgeGateway types with client + wrappedResponses := make([]*NsxtEdgeGateway, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtEdgeGateway{ + EdgeGateway: typeResponses[sliceIndex], + client: client, + } + } + + onlyNsxtEdges := filterOnlyNsxtEdges(wrappedResponses) + + return onlyNsxtEdges, nil +} + +// filterOnlyNsxtEdges filters our list of edge gateways only for NSXT_BACKED ones because original endpoint can +// return NSX-V and NSX-T backed edge gateways. +func filterOnlyNsxtEdges(allEdges []*NsxtEdgeGateway) []*NsxtEdgeGateway { + filteredEdges := make([]*NsxtEdgeGateway, 0) + + for index := range allEdges { + if allEdges[index] != nil && allEdges[index].EdgeGateway != nil && + allEdges[index].EdgeGateway.GatewayBacking != nil && + allEdges[index].EdgeGateway.GatewayBacking.GatewayType == "NSXT_BACKED" { + filteredEdges = append(filteredEdges, allEdges[index]) + } + } + + return filteredEdges +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_firewall.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_firewall.go new file mode 100644 index 000000000..4fe9daf48 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_firewall.go @@ -0,0 +1,136 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtFirewall contains a types.NsxtFirewallRuleContainer which encloses three types of rules - +// system, default and user defined rules. User defined rules are the only ones that can be modified, others are +// read-only. +type NsxtFirewall struct { + NsxtFirewallRuleContainer *types.NsxtFirewallRuleContainer + client *Client + // edgeGatewayId is stored for usage in NsxtFirewall receiver functions + edgeGatewayId string +} + +// UpdateNsxtFirewall allows user to set new firewall rules or update existing ones. The API does not have POST endpoint +// and always uses PUT endpoint for creating and updating. +func (egw *NsxtEdgeGateway) UpdateNsxtFirewall(firewallRules *types.NsxtFirewallRuleContainer) (*NsxtFirewall, error) { + client := egw.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtFirewallRules + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + // Insert Edge Gateway ID into endpoint path edgeGateways/%s/firewall/rules + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID)) + if err != nil { + return nil, err + } + + returnObject := &NsxtFirewall{ + NsxtFirewallRuleContainer: &types.NsxtFirewallRuleContainer{}, + client: client, + edgeGatewayId: egw.EdgeGateway.ID, + } + + err = client.OpenApiPutItem(minimumApiVersion, urlRef, nil, firewallRules, returnObject.NsxtFirewallRuleContainer, nil) + if err != nil { + return nil, fmt.Errorf("error setting NSX-T Firewall: %s", err) + } + + return returnObject, nil +} + +// GetNsxtFirewall retrieves all firewall rules system, default and user defined rules +func (egw *NsxtEdgeGateway) GetNsxtFirewall() (*NsxtFirewall, error) { + client := egw.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtFirewallRules + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + // Insert Edge Gateway ID into endpoint path edgeGateways/%s/firewall/rules + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID)) + if err != nil { + return nil, err + } + + returnObject := &NsxtFirewall{ + NsxtFirewallRuleContainer: &types.NsxtFirewallRuleContainer{}, + client: client, + edgeGatewayId: egw.EdgeGateway.ID, + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, nil, returnObject.NsxtFirewallRuleContainer, nil) + if err != nil { + return nil, fmt.Errorf("error retrieving NSX-T Firewall rules: %s", err) + } + + // Store Edge Gateway ID for later operations + returnObject.edgeGatewayId = egw.EdgeGateway.ID + + return returnObject, nil +} + +// DeleteAllRules allows users to delete all NSX-T Firewall rules in a particular Edge Gateway +func (firewall *NsxtFirewall) DeleteAllRules() error { + + if firewall.edgeGatewayId == "" { + return fmt.Errorf("missing Edge Gateway ID") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtFirewallRules + minimumApiVersion, err := firewall.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + urlRef, err := firewall.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, firewall.edgeGatewayId)) + if err != nil { + return err + } + + err = firewall.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting all NSX-T Firewall Rules: %s", err) + } + + return nil +} + +// DeleteRuleById allows users to delete NSX-T Firewall Rule By ID +func (firewall *NsxtFirewall) DeleteRuleById(id string) error { + if id == "" { + return fmt.Errorf("empty ID specified") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtFirewallRules + minimumApiVersion, err := firewall.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + urlRef, err := firewall.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, firewall.edgeGatewayId), "/", id) + if err != nil { + return err + } + + err = firewall.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting NSX-T Firewall Rule with ID '%s': %s", id, err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_firewall_group.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_firewall_group.go new file mode 100644 index 000000000..62c7612db --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_firewall_group.go @@ -0,0 +1,376 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtFirewallGroup uses OpenAPI endpoint to operate NSX-T Security Groups and IP Sets which use +// the same Firewall Group API endpoint +// +// IP sets are groups of objects to which the firewall rules apply. Combining multiple objects into +// IP sets helps reduce the total number of firewall rules to be created. +// +// Security groups are groups of Org Vdc networks to which distributed firewall rules apply. +// Grouping networks helps you to reduce the total number of distributed firewall rules to be +// created. +type NsxtFirewallGroup struct { + NsxtFirewallGroup *types.NsxtFirewallGroup + client *Client +} + +// CreateNsxtFirewallGroup allows users to create NSX-T Firewall Group +func (vdc *Vdc) CreateNsxtFirewallGroup(firewallGroupConfig *types.NsxtFirewallGroup) (*NsxtFirewallGroup, error) { + return createNsxtFirewallGroup(vdc.client, firewallGroupConfig) +} + +// CreateNsxtFirewallGroup allows users to create NSX-T Firewall Group +func (egw *NsxtEdgeGateway) CreateNsxtFirewallGroup(firewallGroupConfig *types.NsxtFirewallGroup) (*NsxtFirewallGroup, error) { + return createNsxtFirewallGroup(egw.client, firewallGroupConfig) +} + +// GetAllNsxtFirewallGroups allows users to retrieve all Firewall Groups for Org +// firewallGroupType can be one of the following: +// * types.FirewallGroupTypeSecurityGroup - for NSX-T Security Groups +// * types.FirewallGroupTypeIpSet - for NSX-T IP Sets +// * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups +// +// It is possible to add additional filtering by using queryParameters of type 'url.Values'. +// One special filter is `_context==` filtering. Value can be one of the following: +// +// * Org Vdc Network ID (_context==networkId) - Returns all the firewall groups which the specified +// network is a member of. +// +// * Edge Gateway ID (_context==edgeGatewayId) - Returns all the firewall groups which are available +// to the specific edge gateway. Or use a shorthand NsxtEdgeGateway.GetAllNsxtFirewallGroups() which +// automatically injects this filter. +// +// * Network Provider ID (_context==networkProviderId) - Returns all the firewall groups which are +// available under a specific network provider. This context requires system admin privilege. +// 'networkProviderId' is NSX-T manager ID +func (org *Org) GetAllNsxtFirewallGroups(queryParameters url.Values, firewallGroupType string) ([]*NsxtFirewallGroup, error) { + queryParams := copyOrNewUrlValues(queryParameters) + if firewallGroupType != "" { + queryParams = queryParameterFilterAnd("type=="+firewallGroupType, queryParams) + } + + return getAllNsxtFirewallGroups(org.client, queryParams) +} + +// GetAllNsxtFirewallGroups allows users to retrieve all NSX-T Firewall Groups +func (vdc *Vdc) GetAllNsxtFirewallGroups(queryParameters url.Values, firewallGroupType string) ([]*NsxtFirewallGroup, error) { + if vdc.IsNsxv() { + return nil, errors.New("only NSX-T VDCs support Firewall Groups") + } + return getAllNsxtFirewallGroups(vdc.client, queryParameters) +} + +// GetAllNsxtFirewallGroups allows users to retrieve all NSX-T Firewall Groups in a particular Edge Gateway +// firewallGroupType can be one of the following: +// * types.FirewallGroupTypeSecurityGroup - for NSX-T Security Groups +// * types.FirewallGroupTypeIpSet - for NSX-T IP Sets +// * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups +func (egw *NsxtEdgeGateway) GetAllNsxtFirewallGroups(queryParameters url.Values, firewallGroupType string) ([]*NsxtFirewallGroup, error) { + queryParams := copyOrNewUrlValues(queryParameters) + + if firewallGroupType != "" { + queryParams = queryParameterFilterAnd("type=="+firewallGroupType, queryParams) + } + + // Automatically inject Edge Gateway filter because this is an Edge Gateway scoped query + queryParams = queryParameterFilterAnd("_context=="+egw.EdgeGateway.ID, queryParams) + + return getAllNsxtFirewallGroups(egw.client, queryParams) +} + +// GetNsxtFirewallGroupByName allows users to retrieve Firewall Group by Name +// firewallGroupType can be one of the following: +// * types.FirewallGroupTypeSecurityGroup - for NSX-T Security Groups +// * types.FirewallGroupTypeIpSet - for NSX-T IP Sets +// * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups +// +// Note. One might get an error if IP Set and Security Group exist with the same name (two objects +// of the same type cannot exist) and firewallGroupType is left empty. +func (org *Org) GetNsxtFirewallGroupByName(name, firewallGroupType string) (*NsxtFirewallGroup, error) { + queryParameters := url.Values{} + if firewallGroupType != "" { + queryParameters = queryParameterFilterAnd("type=="+firewallGroupType, queryParameters) + } + + return getNsxtFirewallGroupByName(org.client, name, queryParameters) +} + +// GetNsxtFirewallGroupByName allows users to retrieve Firewall Group by Name +// firewallGroupType can be one of the following: +// * types.FirewallGroupTypeSecurityGroup - for NSX-T Security Groups +// * types.FirewallGroupTypeIpSet - for NSX-T IP Sets +// * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups +// +// Note. One might get an error if IP Set and Security Group exist with the same name (two objects +// of the same type cannot exist) and firewallGroupType is left empty. +func (vdc *Vdc) GetNsxtFirewallGroupByName(name, firewallGroupType string) (*NsxtFirewallGroup, error) { + + queryParameters := url.Values{} + if firewallGroupType != "" { + queryParameters = queryParameterFilterAnd("type=="+firewallGroupType, queryParameters) + } + return getNsxtFirewallGroupByName(vdc.client, name, queryParameters) +} + +// GetNsxtFirewallGroupByName allows users to retrieve Firewall Group by Name in a particular Edge Gateway +// firewallGroupType can be one of the following: +// * types.FirewallGroupTypeSecurityGroup - for NSX-T Security Groups +// * types.FirewallGroupTypeIpSet - for NSX-T IP Sets +// * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups +// +// Note. One might get an error if IP Set and Security Group exist with the same name (two objects +// of the same type cannot exist) and firewallGroupType is left empty. +func (egw *NsxtEdgeGateway) GetNsxtFirewallGroupByName(name string, firewallGroupType string) (*NsxtFirewallGroup, error) { + queryParameters := url.Values{} + + if firewallGroupType != "" { + queryParameters = queryParameterFilterAnd("type=="+firewallGroupType, queryParameters) + } + + // Automatically inject Edge Gateway filter because this is an Edge Gateway scoped query + queryParameters = queryParameterFilterAnd("_context=="+egw.EdgeGateway.ID, queryParameters) + + return getNsxtFirewallGroupByName(egw.client, name, queryParameters) +} + +// GetNsxtFirewallGroupById retrieves NSX-T Firewall Group by ID +func (org *Org) GetNsxtFirewallGroupById(id string) (*NsxtFirewallGroup, error) { + return getNsxtFirewallGroupById(org.client, id) +} + +// GetNsxtFirewallGroupById retrieves NSX-T Firewall Group by ID +func (vdc *Vdc) GetNsxtFirewallGroupById(id string) (*NsxtFirewallGroup, error) { + return getNsxtFirewallGroupById(vdc.client, id) +} + +// GetNsxtFirewallGroupById retrieves NSX-T Firewall Group by ID +func (egw *NsxtEdgeGateway) GetNsxtFirewallGroupById(id string) (*NsxtFirewallGroup, error) { + return getNsxtFirewallGroupById(egw.client, id) +} + +// Update allows users to update NSX-T Firewall Group +func (firewallGroup *NsxtFirewallGroup) Update(firewallGroupConfig *types.NsxtFirewallGroup) (*NsxtFirewallGroup, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointFirewallGroups + minimumApiVersion, err := firewallGroup.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if firewallGroupConfig.ID == "" { + return nil, fmt.Errorf("cannot update NSX-T Firewall Group without ID") + } + + urlRef, err := firewallGroup.client.OpenApiBuildEndpoint(endpoint, firewallGroupConfig.ID) + if err != nil { + return nil, err + } + + returnObject := &NsxtFirewallGroup{ + NsxtFirewallGroup: &types.NsxtFirewallGroup{}, + client: firewallGroup.client, + } + + err = firewallGroup.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, firewallGroupConfig, returnObject.NsxtFirewallGroup, nil) + if err != nil { + return nil, fmt.Errorf("error updating NSX-T firewall group: %s", err) + } + + return returnObject, nil +} + +// Delete allows users to delete NSX-T Firewall Group +func (firewallGroup *NsxtFirewallGroup) Delete() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointFirewallGroups + minimumApiVersion, err := firewallGroup.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if firewallGroup.NsxtFirewallGroup.ID == "" { + return fmt.Errorf("cannot delete NSX-T Firewall Group without ID") + } + + urlRef, err := firewallGroup.client.OpenApiBuildEndpoint(endpoint, firewallGroup.NsxtFirewallGroup.ID) + if err != nil { + return err + } + + err = firewallGroup.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting NSX-T Firewall Group: %s", err) + } + + return nil +} + +// GetAssociatedVms allows users to retrieve a list of references to child VMs (with vApps when they exist). +// +// Note. Only Security Groups have associated VMs. Executing it on an IP Set will return an error +// similar to: "only Security Groups have associated VMs. This Firewall Group has type 'IP_SET'" +func (firewallGroup *NsxtFirewallGroup) GetAssociatedVms() ([]*types.NsxtFirewallGroupMemberVms, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointFirewallGroups + minimumApiVersion, err := firewallGroup.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if firewallGroup.NsxtFirewallGroup.ID == "" { + return nil, fmt.Errorf("cannot retrieve associated VMs for NSX-T Firewall Group without ID") + } + + if !firewallGroup.IsSecurityGroup() { + return nil, fmt.Errorf("only Security Groups have associated VMs. This Firewall Group has type '%s'", + firewallGroup.NsxtFirewallGroup.Type) + } + + urlRef, err := firewallGroup.client.OpenApiBuildEndpoint(endpoint, firewallGroup.NsxtFirewallGroup.ID, "/associatedVMs") + if err != nil { + return nil, err + } + + associatedVms := []*types.NsxtFirewallGroupMemberVms{{}} + + err = firewallGroup.client.OpenApiGetAllItems(minimumApiVersion, urlRef, nil, &associatedVms, nil) + + if err != nil { + return nil, fmt.Errorf("error retrieving associated VMs: %s", err) + } + + return associatedVms, nil +} + +// IsSecurityGroup allows users to check if Firewall Group is a Security Group +func (firewallGroup *NsxtFirewallGroup) IsSecurityGroup() bool { + return firewallGroup.NsxtFirewallGroup.Type == types.FirewallGroupTypeSecurityGroup +} + +// IsIpSet allows users to check if Firewall Group is an IP Set +func (firewallGroup *NsxtFirewallGroup) IsIpSet() bool { + return firewallGroup.NsxtFirewallGroup.Type == types.FirewallGroupTypeIpSet +} + +func getNsxtFirewallGroupByName(client *Client, name string, queryParameters url.Values) (*NsxtFirewallGroup, error) { + queryParams := copyOrNewUrlValues(queryParameters) + queryParams = queryParameterFilterAnd("name=="+name, queryParams) + + allGroups, err := getAllNsxtFirewallGroups(client, queryParams) + if err != nil { + return nil, fmt.Errorf("could not find NSX-T Firewall Group with name '%s': %s", name, err) + } + + if len(allGroups) == 0 { + return nil, fmt.Errorf("%s: expected exactly one NSX-T Firewall Group with name '%s'. Got %d", ErrorEntityNotFound, name, len(allGroups)) + } + + if len(allGroups) > 1 { + return nil, fmt.Errorf("expected exactly one NSX-T Firewall Group with name '%s'. Got %d", name, len(allGroups)) + } + + // TODO API V36.0 - maybe it is fixed + // There is a bug that not all data is present (e.g. missing IpAddresses field for IP_SET) when + // using "getAll" endpoint therefore after finding the object by name we must retrieve it once + // again using its direct endpoint. + // + // return allGroups[0], nil + + return getNsxtFirewallGroupById(client, allGroups[0].NsxtFirewallGroup.ID) +} + +func getNsxtFirewallGroupById(client *Client, id string) (*NsxtFirewallGroup, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointFirewallGroups + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty NSX-T Firewall Group ID specified") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + fwGroup := &NsxtFirewallGroup{ + NsxtFirewallGroup: &types.NsxtFirewallGroup{}, + client: client, + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, nil, fwGroup.NsxtFirewallGroup, nil) + if err != nil { + return nil, err + } + + return fwGroup, nil +} + +func getAllNsxtFirewallGroups(client *Client, queryParameters url.Values) ([]*NsxtFirewallGroup, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointFirewallGroups + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + // This Object does not follow regular REST scheme and for get the endpoint must be + // 1.0.0/firewallGroups/summaries therefore bellow "summaries" is appended to the path + urlRef, err := client.OpenApiBuildEndpoint(endpoint, "summaries") + if err != nil { + return nil, err + } + + typeResponses := []*types.NsxtFirewallGroup{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into NsxtEdgeGateway types with client + wrappedResponses := make([]*NsxtFirewallGroup, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtFirewallGroup{ + NsxtFirewallGroup: typeResponses[sliceIndex], + client: client, + } + } + + return wrappedResponses, nil +} + +func createNsxtFirewallGroup(client *Client, firewallGroupConfig *types.NsxtFirewallGroup) (*NsxtFirewallGroup, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointFirewallGroups + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnObject := &NsxtFirewallGroup{ + NsxtFirewallGroup: &types.NsxtFirewallGroup{}, + client: client, + } + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, firewallGroupConfig, returnObject.NsxtFirewallGroup, nil) + if err != nil { + return nil, fmt.Errorf("error creating NSX-T Firewall Group: %s", err) + } + + return returnObject, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_importable_switch.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_importable_switch.go new file mode 100644 index 000000000..893f27a40 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_importable_switch.go @@ -0,0 +1,155 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// NsxtImportableSwitch is a read only object to retrieve NSX-T segments (importable switches) to be used for Org VDC +// imported network. +type NsxtImportableSwitch struct { + NsxtImportableSwitch *types.NsxtImportableSwitch + client *Client +} + +// GetNsxtImportableSwitchByName retrieves a particular NSX-T Segment by name available for that VDC +// +// Note. OpenAPI endpoint does not exist for this resource and by default endpoint +// "/network/orgvdcnetworks/importableswitches" returns only unused NSX-T importable switches (the ones that are not +// already consumed in Org VDC networks) and there is no way to get them all (including the used ones). +func (vdc *Vdc) GetNsxtImportableSwitchByName(name string) (*NsxtImportableSwitch, error) { + if name == "" { + return nil, fmt.Errorf("empty NSX-T Importable Switch name specified") + } + + allNsxtImportableSwitches, err := vdc.GetAllNsxtImportableSwitches() + if err != nil { + return nil, fmt.Errorf("error getting all NSX-T Importable Switches for VDC '%s': %s", vdc.Vdc.Name, err) + } + + var filteredNsxtImportableSwitches []*NsxtImportableSwitch + for _, nsxtImportableSwitch := range allNsxtImportableSwitches { + if nsxtImportableSwitch.NsxtImportableSwitch.Name == name { + filteredNsxtImportableSwitches = append(filteredNsxtImportableSwitches, nsxtImportableSwitch) + } + } + + if len(filteredNsxtImportableSwitches) == 0 { + // ErrorEntityNotFound is injected here for the ability to validate problem using ContainsNotFound() + return nil, fmt.Errorf("%s: no NSX-T Importable Switch with name '%s' for Org VDC with ID '%s' found", + ErrorEntityNotFound, name, vdc.Vdc.ID) + } + + if len(filteredNsxtImportableSwitches) > 1 { + return nil, fmt.Errorf("more than one (%d) NSX-T Importable Switch with name '%s' for Org VDC with ID '%s' found", + len(filteredNsxtImportableSwitches), name, vdc.Vdc.ID) + } + + return filteredNsxtImportableSwitches[0], nil +} + +// GetAllNsxtImportableSwitches retrieves all available importable switches which can be consumed for creating NSX-T +// "Imported" Org VDC network +// +// Note. OpenAPI endpoint does not exist for this resource and by default endpoint +// "/network/orgvdcnetworks/importableswitches" returns only unused NSX-T importable switches (the ones that are not +// already consumed in Org VDC networks) and there is no way to get them all. +func (vdc *Vdc) GetAllNsxtImportableSwitches() ([]*NsxtImportableSwitch, error) { + if vdc.Vdc.ID == "" { + return nil, fmt.Errorf("VDC must have ID populated to retrieve NSX-T importable switches") + } + // request requires Org VDC ID to be specified as UUID, not as URN + orgVdcId, err := getBareEntityUuid(vdc.Vdc.ID) + if err != nil { + return nil, fmt.Errorf("could not get UUID from URN '%s': %s", vdc.Vdc.ID, err) + } + filter := map[string]string{"orgVdc": orgVdcId} + + return getFilteredNsxtImportableSwitches(filter, vdc.client) +} + +// GetFilteredNsxtImportableSwitches returns all available importable switches. +// One of the filters below is required (using plain UUID - not URN): +// * orgVdc +// * nsxTManager (only in VCD 10.3.0+) +// +// Note. OpenAPI endpoint does not exist for this resource and by default endpoint +// "/network/orgvdcnetworks/importableswitches" returns only unused NSX-T importable switches (the ones that are not +// already consumed in Org VDC networks) and there is no way to get them all. +func (vcdClient *VCDClient) GetFilteredNsxtImportableSwitches(filter map[string]string) ([]*NsxtImportableSwitch, error) { + return getFilteredNsxtImportableSwitches(filter, &vcdClient.Client) +} + +// GetFilteredNsxtImportableSwitchesByName builds on top of GetFilteredNsxtImportableSwitches and additionally performs +// client side filtering by Name +func (vcdClient *VCDClient) GetFilteredNsxtImportableSwitchesByName(filter map[string]string, name string) (*NsxtImportableSwitch, error) { + importableSwitches, err := getFilteredNsxtImportableSwitches(filter, &vcdClient.Client) + if err != nil { + return nil, fmt.Errorf("error getting list of filtered Importable Switches: %s", err) + } + + var foundImportableSwitch bool + var foundSwitches []*NsxtImportableSwitch + + for index, impSwitch := range importableSwitches { + if importableSwitches[index].NsxtImportableSwitch.Name == name { + foundImportableSwitch = true + foundSwitches = append(foundSwitches, impSwitch) + } + } + + if !foundImportableSwitch { + return nil, fmt.Errorf("%s: Importable Switch with name '%s' not found", ErrorEntityNotFound, name) + } + + if len(foundSwitches) > 1 { + return nil, fmt.Errorf("found multiple Importable Switches with name '%s'", name) + } + + return foundSwitches[0], nil +} + +// getFilteredNsxtImportableSwitches is extracted so that it can be reused across multiple functions +func getFilteredNsxtImportableSwitches(filter map[string]string, client *Client) ([]*NsxtImportableSwitch, error) { + apiEndpoint := client.VCDHREF + endpoint := apiEndpoint.Scheme + "://" + apiEndpoint.Host + "/network/orgvdcnetworks/importableswitches/" + // error below is ignored because it is a static endpoint + urlRef, err := url.Parse(endpoint) + if err != nil { + util.Logger.Printf("[DEBUG - getFilteredNsxtImportableSwitches] error parsing URL: %s", err) + } + + headAccept := http.Header{} + headAccept.Set("Accept", types.JSONMime) + request := client.newRequest(filter, nil, http.MethodGet, *urlRef, nil, client.APIVersion, headAccept) + request.Header.Set("Accept", types.JSONMime) + + response, err := checkResp(client.Http.Do(request)) + if err != nil { + return nil, err + } + defer response.Body.Close() + + var nsxtImportableSwitches []*types.NsxtImportableSwitch + if err = decodeBody(types.BodyTypeJSON, response, &nsxtImportableSwitches); err != nil { + return nil, err + } + + wrappedNsxtImportableSwitches := make([]*NsxtImportableSwitch, len(nsxtImportableSwitches)) + for sliceIndex := range nsxtImportableSwitches { + wrappedNsxtImportableSwitches[sliceIndex] = &NsxtImportableSwitch{ + NsxtImportableSwitch: nsxtImportableSwitches[sliceIndex], + client: client, + } + } + + return wrappedNsxtImportableSwitches, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_ipsec_vpn_tunnel.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_ipsec_vpn_tunnel.go new file mode 100644 index 000000000..d830f2d69 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_ipsec_vpn_tunnel.go @@ -0,0 +1,342 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// NsxtIpSecVpnTunnel offers site-to-site connectivity between an Edge Gateway and remote sites which also use NSX-T +// Data Center or which have either third-party hardware routers or VPN gateways that support IPsec. Policy-based IPsec +// VPN requires a VPN policy to be applied to packets to determine which traffic is to be protected by IPsec before +// being passed through a VPN tunnel. This type of VPN is considered static because when a local network topology and +// configuration change, the VPN policy settings must also be updated to accommodate the changes. NSX-T Data Center Edge +// Gateways support split tunnel configuration, with IPsec traffic taking routing precedence. VMware Cloud Director +// supports automatic route redistribution when you use IPsec VPN on an NSX-T edge gateway. +type NsxtIpSecVpnTunnel struct { + NsxtIpSecVpn *types.NsxtIpSecVpnTunnel + client *Client + // edgeGatewayId is stored here so that pointer receiver functions can embed edge gateway ID into path + edgeGatewayId string +} + +// GetAllIpSecVpnTunnels returns all IPsec VPN Tunnel configurations +func (egw *NsxtEdgeGateway) GetAllIpSecVpnTunnels(queryParameters url.Values) ([]*NsxtIpSecVpnTunnel, error) { + client := egw.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnel + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID)) + if err != nil { + return nil, err + } + + typeResponses := []*types.NsxtIpSecVpnTunnel{{}} + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into NsxtIpSecVpnTunnel types with client + wrappedResponses := make([]*NsxtIpSecVpnTunnel, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtIpSecVpnTunnel{ + NsxtIpSecVpn: typeResponses[sliceIndex], + client: client, + edgeGatewayId: egw.EdgeGateway.ID, + } + } + + return wrappedResponses, nil +} + +//GetIpSecVpnTunnelById retrieves single IPsec VPN Tunnel by ID +func (egw *NsxtEdgeGateway) GetIpSecVpnTunnelById(id string) (*NsxtIpSecVpnTunnel, error) { + if id == "" { + return nil, fmt.Errorf("canot find NSX-T IPsec VPN Tunnel configuration without ID") + } + + client := egw.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnel + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID), id) + if err != nil { + return nil, err + } + + returnObject := &NsxtIpSecVpnTunnel{ + NsxtIpSecVpn: &types.NsxtIpSecVpnTunnel{}, + client: client, + edgeGatewayId: egw.EdgeGateway.ID, + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, nil, returnObject.NsxtIpSecVpn, nil) + if err != nil { + return nil, err + } + + return returnObject, nil +} + +// GetIpSecVpnTunnelByName retrieves single IPsec VPN Tunnel by Name. +// +// Note. Name uniqueness is not enforced therefore it might exist a few IPsec VPN Tunnels with the same name. +// An error will be returned in that case. +func (egw *NsxtEdgeGateway) GetIpSecVpnTunnelByName(name string) (*NsxtIpSecVpnTunnel, error) { + if name == "" { + return nil, fmt.Errorf("canot find NSX-T IPsec VPN Tunnel configuration without Name") + } + + allVpns, err := egw.GetAllIpSecVpnTunnels(nil) + if err != nil { + return nil, fmt.Errorf("error retrieving all NSX-T IPsec VPN Tunnel configurations: %s", err) + } + + var allResults []*NsxtIpSecVpnTunnel + + for _, vpnConfig := range allVpns { + if vpnConfig.NsxtIpSecVpn.Name == name { + allResults = append(allResults, vpnConfig) + } + } + + if len(allResults) > 1 { + return nil, fmt.Errorf("error - found %d NSX-T IPsec VPN Tunnel configuratios with Name '%s'. Expected 1", + len(allResults), name) + } + + if len(allResults) == 0 { + return nil, ErrorEntityNotFound + } + + // Retrieving again the object by ID, because only it includes Pre-shared Key + return egw.GetIpSecVpnTunnelById(allResults[0].NsxtIpSecVpn.ID) +} + +// CreateIpSecVpnTunnel creates IPsec VPN Tunnel and returns it +func (egw *NsxtEdgeGateway) CreateIpSecVpnTunnel(ipSecVpnConfig *types.NsxtIpSecVpnTunnel) (*NsxtIpSecVpnTunnel, error) { + client := egw.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnel + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID)) + if err != nil { + return nil, err + } + + task, err := client.OpenApiPostItemAsync(minimumApiVersion, urlRef, nil, ipSecVpnConfig) + if err != nil { + return nil, fmt.Errorf("error creating NSX-T IPsec VPN Tunnel configuration: %s", err) + } + + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("task failed while creating NSX-T IPsec VPN Tunnel configuration: %s", err) + } + + // filtering even by Name is not supported on VCD side + allVpns, err := egw.GetAllIpSecVpnTunnels(nil) + if err != nil { + return nil, fmt.Errorf("error retrieving all NSX-T IPsec VPN Tunnel configuration after creation: %s", err) + } + + for index, singleConfig := range allVpns { + if singleConfig.IsEqualTo(ipSecVpnConfig) { + // retrieve exact value by ID, because only this endpoint includes private key + ipSecVpn, err := egw.GetIpSecVpnTunnelById(allVpns[index].NsxtIpSecVpn.ID) + if err != nil { + return nil, fmt.Errorf("error retrieving NSX-T IPsec VPN Tunnel configuration: %s", err) + } + + return ipSecVpn, nil + } + } + + return nil, fmt.Errorf("error finding NSX-T IPsec VPN Tunnel configuration after creation: %s", ErrorEntityNotFound) +} + +// Update updates NSX-T IPsec VPN Tunnel configuration with newly supplied data. +func (ipSecVpn *NsxtIpSecVpnTunnel) Update(ipSecVpnConfig *types.NsxtIpSecVpnTunnel) (*NsxtIpSecVpnTunnel, error) { + client := ipSecVpn.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnel + apiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if ipSecVpn.NsxtIpSecVpn.ID == "" { + return nil, fmt.Errorf("cannot update NSX-T IPsec VPN Tunnel configuration without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, ipSecVpn.edgeGatewayId), ipSecVpn.NsxtIpSecVpn.ID) + if err != nil { + return nil, err + } + + returnObject := &NsxtIpSecVpnTunnel{ + NsxtIpSecVpn: &types.NsxtIpSecVpnTunnel{}, + client: client, + edgeGatewayId: ipSecVpn.edgeGatewayId, + } + + err = client.OpenApiPutItem(apiVersion, urlRef, nil, ipSecVpnConfig, returnObject.NsxtIpSecVpn, nil) + if err != nil { + return nil, fmt.Errorf("error updating NSX-T IPsec VPN Tunnel configuration: %s", err) + } + + return returnObject, nil +} + +// Delete allows users to delete NSX-T IPsec VPN Tunnel +func (ipSecVpn *NsxtIpSecVpnTunnel) Delete() error { + client := ipSecVpn.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnel + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if ipSecVpn.NsxtIpSecVpn.ID == "" { + return fmt.Errorf("cannot delete NSX-T IPsec VPN Tunnel configuration without ID") + } + + urlRef, err := ipSecVpn.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, ipSecVpn.edgeGatewayId), ipSecVpn.NsxtIpSecVpn.ID) + if err != nil { + return err + } + + err = ipSecVpn.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + if err != nil { + return fmt.Errorf("error deleting NSX-T IPsec VPN Tunnel configuration: %s", err) + } + + return nil +} + +// GetStatus returns status of IPsec VPN Tunnel. +// +// Note. This is not being immediately populated and may appear after some time depending on +// NsxtIpSecVpnTunnelSecurityProfile.DpdConfiguration +func (ipSecVpn *NsxtIpSecVpnTunnel) GetStatus() (*types.NsxtIpSecVpnTunnelStatus, error) { + client := ipSecVpn.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnelStatus + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if ipSecVpn.NsxtIpSecVpn.ID == "" { + return nil, fmt.Errorf("cannot get NSX-T IPsec VPN Tunnel status without ID") + } + + urlRef, err := ipSecVpn.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, ipSecVpn.edgeGatewayId, ipSecVpn.NsxtIpSecVpn.ID)) + if err != nil { + return nil, err + } + + ipSecVpnTunnelStatus := &types.NsxtIpSecVpnTunnelStatus{} + + err = ipSecVpn.client.OpenApiGetItem(minimumApiVersion, urlRef, nil, ipSecVpnTunnelStatus, nil) + if err != nil { + return nil, fmt.Errorf("error getting NSX-T IPsec VPN Tunnel status: %s", err) + } + + return ipSecVpnTunnelStatus, nil +} + +// UpdateTunnelConnectionProperties allows user to customize IPsec VPN Tunnel Security Profile when the default one +// does not fit requirements. +func (ipSecVpn *NsxtIpSecVpnTunnel) UpdateTunnelConnectionProperties(ipSecVpnTunnelConnectionProperties *types.NsxtIpSecVpnTunnelSecurityProfile) (*types.NsxtIpSecVpnTunnelSecurityProfile, error) { + client := ipSecVpn.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnelConnectionProperties + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if ipSecVpn.NsxtIpSecVpn.ID == "" { + return nil, fmt.Errorf("cannot update NSX-T IPsec VPN Connection Properties without ID") + } + + urlRef, err := ipSecVpn.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, ipSecVpn.edgeGatewayId, ipSecVpn.NsxtIpSecVpn.ID)) + if err != nil { + return nil, err + } + + ipSecVpnTunnelProfile := &types.NsxtIpSecVpnTunnelSecurityProfile{} + err = ipSecVpn.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, ipSecVpnTunnelConnectionProperties, ipSecVpnTunnelProfile, nil) + if err != nil { + return nil, fmt.Errorf("error updating NSX-T IPsec VPN Connection Properties: %s", err) + } + + return ipSecVpnTunnelProfile, nil +} + +// GetTunnelConnectionProperties retrieves IPsec VPN Tunnel Security Profile +func (ipSecVpn *NsxtIpSecVpnTunnel) GetTunnelConnectionProperties() (*types.NsxtIpSecVpnTunnelSecurityProfile, error) { + client := ipSecVpn.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnelConnectionProperties + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if ipSecVpn.NsxtIpSecVpn.ID == "" { + return nil, fmt.Errorf("cannot get NSX-T IPsec VPN Connection Properties without ID") + } + + urlRef, err := ipSecVpn.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, ipSecVpn.edgeGatewayId, ipSecVpn.NsxtIpSecVpn.ID)) + if err != nil { + return nil, err + } + + ipSecVpnTunnelProfile := &types.NsxtIpSecVpnTunnelSecurityProfile{} + err = ipSecVpn.client.OpenApiGetItem(minimumApiVersion, urlRef, nil, ipSecVpnTunnelProfile, nil) + if err != nil { + return nil, fmt.Errorf("error retrieving NSX-T IPsec VPN Connection Properties: %s", err) + } + + return ipSecVpnTunnelProfile, nil +} + +// IsEqualTo helps to find NSX-T IPsec VPN Tunnel Configuration +// Combination of LocalAddress and RemoteAddress has to be unique (enforced by API). This is a list of fields compared: +// * LocalEndpoint.LocalAddress +// * RemoteEndpoint.RemoteAddress +func (ipSecVpn *NsxtIpSecVpnTunnel) IsEqualTo(vpnConfig *types.NsxtIpSecVpnTunnel) bool { + return ipSetVpnRulesEqual(ipSecVpn.NsxtIpSecVpn, vpnConfig) +} + +// ipSetVpnRulesEqual performs comparison of two NSX-T IPsec VPN Tunnels to ease lookup. This is a list of fields compared: +// * LocalEndpoint.LocalAddress +// * RemoteEndpoint.RemoteAddress +func ipSetVpnRulesEqual(first, second *types.NsxtIpSecVpnTunnel) bool { + util.Logger.Println("comparing NSX-T IP Sev VPN configuration:") + util.Logger.Printf("%+v\n", first) + util.Logger.Println("against:") + util.Logger.Printf("%+v\n", second) + + // These fields should be enough to cover uniqueness + if first.LocalEndpoint.LocalAddress == second.LocalEndpoint.LocalAddress && + first.RemoteEndpoint.RemoteAddress == second.RemoteEndpoint.RemoteAddress { + return true + } + + return false +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_nat_rule.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_nat_rule.go new file mode 100644 index 000000000..e0f5c00ad --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_nat_rule.go @@ -0,0 +1,294 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// NsxtNatRule describes a single NAT rule of 5 different Rule Types - DNAT`, `NO_DNAT`, `SNAT`, `NO_SNAT`, 'REFLEXIVE' +// 'REFLEXIVE' is only supported in API 35.2 (VCD 10.2.2+) +// +// A SNAT or a DNAT rule on an Edge Gateway in the VMware Cloud Director environment is always configured from the +// perspective of your organization VDC. +// DNAT and NO_DNAT - outside traffic going inside +// SNAT and NO_SNAT - inside traffic going outside +// More docs in https://docs.vmware.com/en/VMware-Cloud-Director/10.2/VMware-Cloud-Director-Tenant-Portal-Guide/GUID-9E43E3DC-C028-47B3-B7CA-59F0ED40E0A6.html +// +// Note. This structure and all its API calls will require at least API version 34.0, but will elevate it to 35.2 if +// possible because API 35.2 introduces support for 2 new fields FirewallMatch and Priority. +type NsxtNatRule struct { + NsxtNatRule *types.NsxtNatRule + client *Client + // edgeGatewayId is stored here so that pointer receiver functions can embed edge gateway ID into path + edgeGatewayId string +} + +// GetAllNatRules retrieves all NAT rules with an optional queryParameters filter. +func (egw *NsxtEdgeGateway) GetAllNatRules(queryParameters url.Values) ([]*NsxtNatRule, error) { + client := egw.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtNatRules + apiVersion, err := client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID)) + if err != nil { + return nil, err + } + + typeResponses := []*types.NsxtNatRule{{}} + err = client.OpenApiGetAllItems(apiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into NsxtNatRule types with client + wrappedResponses := make([]*NsxtNatRule, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &NsxtNatRule{ + NsxtNatRule: typeResponses[sliceIndex], + client: client, + edgeGatewayId: egw.EdgeGateway.ID, + } + } + + return wrappedResponses, nil +} + +// GetNatRuleByName finds a NAT rule by Name and returns it +// +// Note. API does not enforce name uniqueness therefore an error will be thrown if two rules with the same name exist +func (egw *NsxtEdgeGateway) GetNatRuleByName(name string) (*NsxtNatRule, error) { + // Ideally this function would use OpenAPI filters to perform server side filtering, but this endpoint does not + // support any filters - even ID. Therefore one must retrieve all items and look if there is an item with the same ID + allNatRules, err := egw.GetAllNatRules(nil) + if err != nil { + return nil, fmt.Errorf("error retriving all NSX-T NAT rules: %s", err) + } + + var allResults []*NsxtNatRule + + for _, natRule := range allNatRules { + if natRule.NsxtNatRule.Name == name { + allResults = append(allResults, natRule) + } + } + + if len(allResults) > 1 { + return nil, fmt.Errorf("error - found %d NSX-T NAT rules with name '%s'. Expected 1", len(allResults), name) + } + + if len(allResults) == 0 { + return nil, ErrorEntityNotFound + } + + return allResults[0], nil +} + +// GetNatRuleById finds a NAT rule by ID and returns it +func (egw *NsxtEdgeGateway) GetNatRuleById(id string) (*NsxtNatRule, error) { + // Ideally this function would use OpenAPI filters to perform server side filtering, but this endpoint does not + // support any filters - even ID. Therefore one must retrieve all items and look if there is an item with the same ID + allNatRules, err := egw.GetAllNatRules(nil) + if err != nil { + return nil, fmt.Errorf("error retriving all NSX-T NAT rules: %s", err) + } + + for _, natRule := range allNatRules { + if natRule.NsxtNatRule.ID == id { + return natRule, nil + } + } + + return nil, ErrorEntityNotFound +} + +// CreateNatRule creates a NAT rule and returns it. +// +// Note. API has a limitation, that it does not return ID for created rule. To work around it this function creates +// a NAT rule, fetches all rules and finds a rule with exactly the same field values and returns it (including ID) +// There is still a slight risk to retrieve wrong ID if exactly the same rule already exists. +func (egw *NsxtEdgeGateway) CreateNatRule(natRuleConfig *types.NsxtNatRule) (*NsxtNatRule, error) { + client := egw.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtNatRules + apiVersion, err := client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return nil, err + } + + // Insert Edge Gateway ID into endpoint path edgeGateways/%s/nat/rules + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID)) + if err != nil { + return nil, err + } + + // Creating NAT rule must follow different way than usual OpenAPI one because this item has an API bug and + // NAT rule ID is not returned after this object is created. The only way to find its ID afterwards is to GET all + // items, and manually match it based on rule name, etc. + task, err := client.OpenApiPostItemAsync(apiVersion, urlRef, nil, natRuleConfig) + if err != nil { + return nil, fmt.Errorf("error creating NSX-T NAT rule: %s", err) + } + + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("task failed while creating NSX-T NAT rule: %s", err) + } + + // queryParameters (API side filtering) are not used because pretty much nothing is accepted as filter (such fields as + // name, description, ruleType and even ID are not allowed + allNatRules, err := egw.GetAllNatRules(nil) + if err != nil { + return nil, fmt.Errorf("error fetching all NAT rules: %s", err) + } + + for index, singleRule := range allNatRules { + // Look for a matching rule + if singleRule.IsEqualTo(natRuleConfig) { + return allNatRules[index], nil + + } + } + return nil, fmt.Errorf("rule '%s' of type '%s' not found after creation", natRuleConfig.Name, natRuleConfig.RuleType) +} + +// Update allows users to update NSX-T NAT rule +func (nsxtNat *NsxtNatRule) Update(natRuleConfig *types.NsxtNatRule) (*NsxtNatRule, error) { + client := nsxtNat.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtNatRules + apiVersion, err := client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return nil, err + } + + if nsxtNat.NsxtNatRule.ID == "" { + return nil, fmt.Errorf("cannot update NSX-T NAT Rule without ID") + } + + urlRef, err := nsxtNat.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, nsxtNat.edgeGatewayId), nsxtNat.NsxtNatRule.ID) + if err != nil { + return nil, err + } + + returnObject := &NsxtNatRule{ + NsxtNatRule: &types.NsxtNatRule{}, + client: client, + edgeGatewayId: nsxtNat.edgeGatewayId, + } + + err = client.OpenApiPutItem(apiVersion, urlRef, nil, natRuleConfig, returnObject.NsxtNatRule, nil) + if err != nil { + return nil, fmt.Errorf("error updating NSX-T NAT Rule: %s", err) + } + + return returnObject, nil +} + +// Delete deletes NSX-T NAT rule +func (nsxtNat *NsxtNatRule) Delete() error { + client := nsxtNat.client + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtNatRules + apiVersion, err := client.getOpenApiHighestElevatedVersion(endpoint) + if err != nil { + return err + } + + if nsxtNat.NsxtNatRule.ID == "" { + return fmt.Errorf("cannot delete NSX-T NAT rule without ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, nsxtNat.edgeGatewayId), nsxtNat.NsxtNatRule.ID) + if err != nil { + return err + } + + err = client.OpenApiDeleteItem(apiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting NSX-T NAT Rule: %s", err) + } + + return nil +} + +// IsEqualTo allows to check if a rule has exactly the same fields (except ID) to the supplied rule +// This validation is very tricky because minor version changes impact how fields are return. +// This function relies on most common and stable fields: +// * Name +// * Enabled +// * Description +// * ExternalAddresses +// * InternalAddresses +// * ApplicationPortProfile.ID +func (nsxtNat *NsxtNatRule) IsEqualTo(rule *types.NsxtNatRule) bool { + return natRulesEqual(nsxtNat.NsxtNatRule, rule) +} + +// natRulesEqual is a helper to check if first and second supplied rules are exactly the same (except ID) +func natRulesEqual(first, second *types.NsxtNatRule) bool { + util.Logger.Println("comparing NAT rule:") + util.Logger.Printf("%+v\n", first) + util.Logger.Println("against:") + util.Logger.Printf("%+v\n", second) + + // Being an org user always returns logging as false - therefore cannot compare it. + // first.Logging == second.Logging + + // These fields are returned or not returned depending on version and it is impossible to be 100% sure a minor + // patch does not break such comparison + // DnatExternalPort + // SnatDestinationAddresses + // RuleType - would work up to 35.2+, but then there is another field Type + // Type only available since 35.2+. Must be explicitly used for REFLEXIVE type in API v36.0+ + // FirewallMatch - it exists only since API 35.2+ and has a default starting this version + // InternalPort - is deprecated since API V35.0+ and is replaced by DnatExternalPort + // Priority - is available only in API V35.2+ + // Version - it is something that is automatically handled by API. When creating - you must specify none, but it sets + // version to 0. When updating one must specify the last version read, and again it will automatically increment this + // value after update. (probably it is meant to avoid concurrent updates) + if first.Name == second.Name && + first.Enabled == second.Enabled && + first.Description == second.Description && + first.ExternalAddresses == second.ExternalAddresses && + first.InternalAddresses == second.InternalAddresses && + + // Match both application profiles being nil (types cannot be equal as they are pointers, not values) + ((first.ApplicationPortProfile == nil && second.ApplicationPortProfile == nil) || + // Or both being not nil and having the same IDs + (first.ApplicationPortProfile != nil && second.ApplicationPortProfile != nil && first.ApplicationPortProfile.ID == second.ApplicationPortProfile.ID) || + // Or first Application profile is nil and second is not nil, but has empty ID + (first.ApplicationPortProfile == nil && second.ApplicationPortProfile != nil && second.ApplicationPortProfile.ID == "") || + // Or first Application Profile is not nil, but has empty ID, while second application port profile is nil + (first.ApplicationPortProfile != nil && first.ApplicationPortProfile.ID == "" && second.ApplicationPortProfile == nil)) { + + return true + } + + return false +} + +// elevateNsxtNatRuleApiVersion helps to elevate API version to consume newer NSX-T NAT Rule features +// API V35.2+ support new fields FirewallMatch and Priority +// API V36.0+ supports new RuleType - REFLEXIVE +//func elevateNsxtNatRuleApiVersion(apiVersion string, client *Client) string { +// +// // Fields FirewallMatch and Priority require API version 35.2 to be set therefore version is elevated if API supports +// if client.APIVCDMaxVersionIs(">= 35.2") { +// apiVersion = "35.2" +// } +// +// // RuleType REFLEXIVE requires API V36.0 +// if client.APIVCDMaxVersionIs(">= 36.0") { +// apiVersion = "36.0" +// } +// +// return apiVersion +//} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_tier0_router.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_tier0_router.go new file mode 100644 index 000000000..971229b90 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxt_tier0_router.go @@ -0,0 +1,138 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// NsxtTier0Router +type NsxtTier0Router struct { + NsxtTier0Router *types.NsxtTier0Router + client *Client +} + +// GetImportableNsxtTier0RouterByName retrieves NSX-T tier 0 router by given parent NSX-T manager ID and Tier 0 router +// name +// +// Warning. The API returns only unused Tier-0 routers (the ones that are not used in external networks yet) +// +// Note. NSX-T manager ID is mandatory and must be in URN format (e.g. +// urn:vcloud:nsxtmanager:09722307-aee0-4623-af95-7f8e577c9ebc) + +func (vcdClient *VCDClient) GetImportableNsxtTier0RouterByName(name, nsxtManagerId string) (*NsxtTier0Router, error) { + if nsxtManagerId == "" { + return nil, fmt.Errorf("no NSX-T manager ID specified") + } + + if !isUrn(nsxtManagerId) { + return nil, fmt.Errorf("NSX-T manager ID is not URN (e.g. 'urn:vcloud:nsxtmanager:09722307-aee0-4623-af95-7f8e577c9ebc)', got: %s", nsxtManagerId) + } + + if name == "" { + return nil, fmt.Errorf("empty Tier 0 router name specified") + } + + // Ideally FIQL filter could be used to filter on server side and get only desired result, but filtering on + // 'displayName' is not yet supported. The only supported field for filtering is + // _context==urn:vcloud:nsxtmanager:09722307-aee0-4623-af95-7f8e577c9ebc to specify parent NSX-T manager (This + // automatically happens in GetAllImportableNsxtTier0Routers()). The below filter injection is left as documentation. + /* + queryParameters := copyOrNewUrlValues(nil) + queryParameters.Add("filter", "displayName=="+name) + */ + + nsxtTier0Routers, err := vcdClient.GetAllImportableNsxtTier0Routers(nsxtManagerId, nil) + if err != nil { + return nil, fmt.Errorf("could not find NSX-T Tier-0 router with name '%s' for NSX-T manager with id '%s': %s", + name, nsxtManagerId, err) + } + + // TODO remove this when FIQL supports filtering on 'displayName' + nsxtTier0Routers = filterNsxtTier0RoutersInExternalNetworks(name, nsxtTier0Routers) + // EOF TODO remove this when FIQL supports filtering on 'displayName' + + if len(nsxtTier0Routers) == 0 { + // ErrorEntityNotFound is injected here for the ability to validate problem using ContainsNotFound() + return nil, fmt.Errorf("%s: no NSX-T Tier-0 router with name '%s' for NSX-T manager with id '%s' found", + ErrorEntityNotFound, name, nsxtManagerId) + } + + if len(nsxtTier0Routers) > 1 { + return nil, fmt.Errorf("more than one (%d) NSX-T Tier-0 router with name '%s' for NSX-T manager with id '%s' found", + len(nsxtTier0Routers), name, nsxtManagerId) + } + + return nsxtTier0Routers[0], nil +} + +// filterNsxtTier0RoutersInExternalNetworks is created as a fix for local filtering instead of using +// FIQL filter (because it does not support it). +func filterNsxtTier0RoutersInExternalNetworks(name string, allNnsxtTier0Routers []*NsxtTier0Router) []*NsxtTier0Router { + filteredNsxtTier0Routers := make([]*NsxtTier0Router, 0) + for index, nsxtTier0Router := range allNnsxtTier0Routers { + if allNnsxtTier0Routers[index].NsxtTier0Router.DisplayName == name { + filteredNsxtTier0Routers = append(filteredNsxtTier0Routers, nsxtTier0Router) + } + } + + return filteredNsxtTier0Routers + +} + +// GetAllImportableNsxtTier0Routers retrieves all NSX-T Tier-0 routers using OpenAPI endpoint. Query parameters can be +// supplied to perform additional filtering. By default it injects FIQL filter _context==nsxtManagerId (e.g. +// _context==urn:vcloud:nsxtmanager:09722307-aee0-4623-af95-7f8e577c9ebc) because it is mandatory to list child Tier-0 +// routers. +// +// Warning. The API returns only unused Tier-0 routers (the ones that are not used in external networks yet) +// +// Note. IDs of Tier-0 routers do not have a standard and may look as strings when they are created using UI or as UUIDs +// when they are created using API +func (vcdClient *VCDClient) GetAllImportableNsxtTier0Routers(nsxtManagerId string, queryParameters url.Values) ([]*NsxtTier0Router, error) { + if !isUrn(nsxtManagerId) { + return nil, fmt.Errorf("NSX-T manager ID is not URN (e.g. 'urn:vcloud:nsxtmanager:09722307-aee0-4623-af95-7f8e577c9ebc)', got: %s", nsxtManagerId) + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointImportableTier0Routers + minimumApiVersion, err := vcdClient.Client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := vcdClient.Client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + // Get all Tier-0 routers that are accessible to an organization VDC. Routers that are already associated with an + // External Network are filtered out. The “_context” filter key must be set with the id of the NSX-T manager for which + // we want to get the Tier-0 routers for. + // + // _context==urn:vcloud:nsxtmanager:09722307-aee0-4623-af95-7f8e577c9ebc + + // Create a copy of queryParameters so that original queryParameters are not mutated (because a map is always a + // reference) + queryParams := queryParameterFilterAnd("_context=="+nsxtManagerId, queryParameters) + + typeResponses := []*types.NsxtTier0Router{{}} + err = vcdClient.Client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParams, &typeResponses, nil) + if err != nil { + return nil, err + } + + returnObjects := make([]*NsxtTier0Router, len(typeResponses)) + for sliceIndex := range typeResponses { + returnObjects[sliceIndex] = &NsxtTier0Router{ + NsxtTier0Router: typeResponses[sliceIndex], + client: &vcdClient.Client, + } + } + + return returnObjects, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_dhcplease.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_dhcplease.go new file mode 100644 index 000000000..09dfb5518 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_dhcplease.go @@ -0,0 +1,69 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "encoding/xml" + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type responseEdgeDhcpLeases struct { + XMLName xml.Name `xml:"dhcpLeases"` + TimeStamp string `xml:"timeStamp"` + DhcpLease types.EdgeDhcpLease `xml:"dhcpLeaseInfo"` +} + +// GetNsxvActiveDhcpLeaseByMac finds active DHCP lease for a given hardware address (MAC) +func (egw *EdgeGateway) GetNsxvActiveDhcpLeaseByMac(mac string) (*types.EdgeDhcpLeaseInfo, error) { + if mac == "" { + return nil, fmt.Errorf("MAC address must be provided to lookup DHCP lease") + } + dhcpLeases, err := egw.GetAllNsxvDhcpLeases() + if err != nil { + return nil, err + } + + util.Logger.Printf("[DEBUG] Looking up active DHCP lease for MAC: %s", mac) + for _, lease := range dhcpLeases { + util.Logger.Printf("[DEBUG] Checking DHCP lease: %#+v", lease) + if lease.BindingState == "active" && lease.MacAddress == mac { + return lease, nil + } + } + + return nil, ErrorEntityNotFound +} + +// GetAllNsxvDhcpLeases retrieves all DHCP leases defined in NSX-V edge gateway +func (egw *EdgeGateway) GetAllNsxvDhcpLeases() ([]*types.EdgeDhcpLeaseInfo, error) { + if !egw.HasAdvancedNetworking() { + return nil, fmt.Errorf("only advanced edge gateways support DHCP") + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeDhcpLeasePath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + dhcpLeases := &responseEdgeDhcpLeases{} + + // This query returns all DHCP leases + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to read DHCP leases: %s", nil, dhcpLeases) + if err != nil { + return nil, err + } + + if dhcpLeases != nil && len(dhcpLeases.DhcpLease.DhcpLeaseInfos) == 0 { + util.Logger.Printf("[DEBUG] GetAllNsxvDhcpLeases found 0 leases available") + return nil, ErrorEntityNotFound + } + + return dhcpLeases.DhcpLease.DhcpLeaseInfos, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_dhcprelay.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_dhcprelay.go new file mode 100644 index 000000000..05ceb87de --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_dhcprelay.go @@ -0,0 +1,77 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// UpdateDhcpRelay updates DHCP relay settings for a particular edge gateway and returns them. The +// feature itself enables you to leverage your existing DHCP infrastructure from within NSX without +// any interruption to the IP address management in your environment. DHCP messages are relayed from +// virtual machine(s) to the designated DHCP server(s) in the physical world. This enables IP +// addresses within NSX to continue to be in sync with IP addresses in other environments. +func (egw *EdgeGateway) UpdateDhcpRelay(dhcpRelayConfig *types.EdgeDhcpRelay) (*types.EdgeDhcpRelay, error) { + if !egw.HasAdvancedNetworking() { + return nil, fmt.Errorf("only advanced edge gateways support DHCP relay") + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeDhcpRelayPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + // We expect to get http.StatusNoContent or if not an error of type types.NSXError + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + "error setting DHCP relay settings: %s", dhcpRelayConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + return egw.GetDhcpRelay() +} + +// GetDhcpRelay retrieves a structure of *types.EdgeDhcpRelay with all DHCP relay settings present +// on a particular edge gateway. +func (egw *EdgeGateway) GetDhcpRelay() (*types.EdgeDhcpRelay, error) { + if !egw.HasAdvancedNetworking() { + return nil, fmt.Errorf("only advanced edge gateways support DHCP relay") + } + response := &types.EdgeDhcpRelay{} + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeDhcpRelayPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // This query Edge gateway DHCP relay using proxied NSX-V API + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to read edge gateway DHCP relay configuration: %s", nil, response) + if err != nil { + return nil, err + } + + return response, nil +} + +// ResetDhcpRelay removes all configuration by sending a DELETE request for DHCP relay configuration +// endpoint +func (egw *EdgeGateway) ResetDhcpRelay() error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support DHCP relay") + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeDhcpRelayPath) + if err != nil { + return fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Send a DELETE request to DHCP relay configuration endpoint + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodDelete, types.AnyXMLMime, + "unable to reset edge gateway DHCP relay configuration: %s", nil, &types.NSXError{}) + return err +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_firewall.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_firewall.go new file mode 100644 index 000000000..0c31d383d --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_firewall.go @@ -0,0 +1,225 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "encoding/xml" + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// requestEdgeFirewallRules nests EdgeFirewallRule as a convenience for unmarshalling POST requests +type requestEdgeFirewallRules struct { + XMLName xml.Name `xml:"firewallRules"` + EdgeFirewallRules []*types.EdgeFirewallRule `xml:"firewallRule"` +} + +// responseEdgeFirewallRules is used to unwrap response when retrieving +type responseEdgeFirewallRules struct { + XMLName xml.Name `xml:"firewall"` + Version string `xml:"version"` + EdgeFirewallRules requestEdgeFirewallRules `xml:"firewallRules"` +} + +// CreateNsxvFirewallRule creates firewall rule using proxied NSX-V API. It is a synchronous operation. +// It returns an object with all fields populated (including ID) +// If aboveRuleId is not empty, it will send a query parameter aboveRuleId= which instructs NSX to +// place this rule above the specified rule ID +func (egw *EdgeGateway) CreateNsxvFirewallRule(firewallRuleConfig *types.EdgeFirewallRule, aboveRuleId string) (*types.EdgeFirewallRule, error) { + if err := validateCreateNsxvFirewallRule(firewallRuleConfig, egw); err != nil { + return nil, err + } + + params := make(map[string]string) + if aboveRuleId != "" { + params["aboveRuleId"] = aboveRuleId + } + + // Wrap the provided rule for POST request + firewallRuleRequest := requestEdgeFirewallRules{ + EdgeFirewallRules: []*types.EdgeFirewallRule{firewallRuleConfig}, + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeCreateFirewallPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + // We expect to get http.StatusCreated or if not an error of type types.NSXError + // The query must be wrapped differently, depending if it mus specify the "aboveRuleId" parameter + var resp *http.Response + if aboveRuleId == "" { + resp, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPost, types.AnyXMLMime, + "error creating firewall rule: %s", firewallRuleRequest, &types.NSXError{}) + } else { + errString := fmt.Sprintf("error creating firewall rule (aboveRuleId: %s): %%s", aboveRuleId) + resp, err = egw.client.ExecuteParamRequestWithCustomError(httpPath, params, http.MethodPost, types.AnyXMLMime, + errString, firewallRuleConfig, &types.NSXError{}) + } + if err != nil { + return nil, err + } + + // Location header should look similar to: + // [/network/edges/edge-1/firewall/config/rules/197157] + firewallRuleId, err := extractNsxObjectIdFromPath(resp.Header.Get("Location")) + if err != nil { + return nil, err + } + + readFirewallRule, err := egw.GetNsxvFirewallRuleById(firewallRuleId) + if err != nil { + return nil, fmt.Errorf("unable to retrieve firewall rule with ID (%s) after creation: %s", + firewallRuleId, err) + } + return readFirewallRule, nil +} + +// UpdateNsxvFirewallRule updates types.EdgeFirewallRule with all fields using proxied NSX-V API. +// Real firewall rule ID (not the number shown in UI) is mandatory to perform the update. +func (egw *EdgeGateway) UpdateNsxvFirewallRule(firewallRuleConfig *types.EdgeFirewallRule) (*types.EdgeFirewallRule, error) { + err := validateUpdateNsxvFirewallRule(firewallRuleConfig, egw) + if err != nil { + return nil, err + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeCreateFirewallPath + "/" + firewallRuleConfig.ID) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Result is either 204 for success, or an error of type types.NSXError + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + "error while updating firewall rule : %s", firewallRuleConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + readFirewallRule, err := egw.GetNsxvFirewallRuleById(firewallRuleConfig.ID) + if err != nil { + return nil, fmt.Errorf("unable to retrieve firewall rule with ID (%s) after update: %s", + readFirewallRule.ID, err) + } + return readFirewallRule, nil +} + +// GetNsxvFirewallRuleById retrieves types.EdgeFirewallRule by real (not the number shown in UI) +// firewall rule ID as shown in the UI using proxied NSX-V API. +// It returns and error `ErrorEntityNotFound` if the firewall rule is not found +func (egw *EdgeGateway) GetNsxvFirewallRuleById(id string) (*types.EdgeFirewallRule, error) { + if err := validateGetNsxvFirewallRule(id, egw); err != nil { + return nil, err + } + + edgeFirewallRules, err := egw.GetAllNsxvFirewallRules() + if err != nil { + return nil, err + } + + util.Logger.Printf("[DEBUG] Searching for firewall rule with ID: %s", id) + for _, rule := range edgeFirewallRules { + util.Logger.Printf("[DEBUG] Checking rule: %#+v", rule) + if rule.ID != "" && rule.ID == id { + return rule, nil + } + } + + return nil, ErrorEntityNotFound +} + +// GetAllNsxvFirewallRules retrieves all firewall rules and returns []*types.EdgeFirewallRule or an +// error of type ErrorEntityNotFound if there are no firewall rules +func (egw *EdgeGateway) GetAllNsxvFirewallRules() ([]*types.EdgeFirewallRule, error) { + if !egw.HasAdvancedNetworking() { + return nil, fmt.Errorf("only advanced edge gateways support firewall rules") + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeFirewallPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + firewallRuleResponse := &responseEdgeFirewallRules{} + + // This query returns all application rules as the API does not have filtering options + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to read firewall rules: %s", nil, firewallRuleResponse) + if err != nil { + return nil, err + } + + if len(firewallRuleResponse.EdgeFirewallRules.EdgeFirewallRules) == 0 { + return nil, ErrorEntityNotFound + } + + return firewallRuleResponse.EdgeFirewallRules.EdgeFirewallRules, nil +} + +// DeleteNsxvFirewallRuleById deletes types.EdgeFirewallRule by real (not the number shown in UI) +// firewall rule ID as shown in the UI using proxied NSX-V API. +// It returns and error `ErrorEntityNotFound` if the firewall rule is not found. +func (egw *EdgeGateway) DeleteNsxvFirewallRuleById(id string) error { + err := validateDeleteNsxvFirewallRule(id, egw) + if err != nil { + return err + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeCreateFirewallPath + "/" + id) + if err != nil { + return fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // check if the rule exists and pass back the error at it may be 'ErrorEntityNotFound' + _, err = egw.GetNsxvFirewallRuleById(id) + if err != nil { + return err + } + + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodDelete, types.AnyXMLMime, + "unable to delete firewall rule: %s", nil, &types.NSXError{}) + if err != nil { + return err + } + + return nil +} + +func validateCreateNsxvFirewallRule(firewallRuleConfig *types.EdgeFirewallRule, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support firewall rules") + } + + if firewallRuleConfig.Action == "" { + return fmt.Errorf("firewall rule must have action specified") + } + + return nil +} + +func validateUpdateNsxvFirewallRule(firewallRuleConfig *types.EdgeFirewallRule, egw *EdgeGateway) error { + if firewallRuleConfig.ID == "" { + return fmt.Errorf("firewall rule ID must be set for update") + } + + return validateCreateNsxvFirewallRule(firewallRuleConfig, egw) +} + +func validateGetNsxvFirewallRule(id string, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support firewall rules") + } + + if id == "" { + return fmt.Errorf("unable to retrieve firewall rule without ID") + } + + return nil +} + +func validateDeleteNsxvFirewallRule(id string, egw *EdgeGateway) error { + return validateGetNsxvFirewallRule(id, egw) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_ipset.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_ipset.go new file mode 100644 index 000000000..b846c4b64 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_ipset.go @@ -0,0 +1,256 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "encoding/xml" + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// CreateNsxvIpSet creates an IP set from *types.EdgeIpSet. IP set defines a group of IP addresses +// that you can add as the source or destination in a firewall rule or in DHCP relay configuration. +func (vdc *Vdc) CreateNsxvIpSet(ipSetConfig *types.EdgeIpSet) (*types.EdgeIpSet, error) { + if err := validateCreateNsxvIpSet(ipSetConfig); err != nil { + return nil, err + } + + vdcId, err := GetUuidFromHref(vdc.Vdc.HREF, true) + if err != nil { + return nil, fmt.Errorf("unable to get vdc ID from HREF: %s", err) + } + + // build a path for IP set creation. The endpoint should look like: + // https://_hostname_/network/services/ipset/f9daf2da-b4f9-4921-a2f4-d77a943a381c where the + // trailing UUID is vDC ID + httpPath, err := vdc.buildNsxvNetworkServiceEndpointURL(types.NsxvIpSetServicePath + "/" + vdcId) + if err != nil { + return nil, fmt.Errorf("could not get network services API endpoint for IP set: %s", err) + } + + // Success or an error of type types.NSXError is expected + _, err = vdc.client.ExecuteParamRequestWithCustomError(httpPath, nil, http.MethodPost, types.AnyXMLMime, + "error creating IP set: %s", ipSetConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + createdIpSet, err := vdc.GetNsxvIpSetByName(ipSetConfig.Name) + if err != nil { + return nil, fmt.Errorf("could not lookup newly created IP set with name %s: %s", ipSetConfig.Name, err) + } + + return createdIpSet, nil +} + +// UpdateNsxvIpSet sends all fields of ipSetConfig. Omiting a value may reset it. ID is mandatory to +// perform update. +// Because the API always requires a Revision to be sent - the update fetches latest revision number +// automatically and embeds into the update structure. +func (vdc *Vdc) UpdateNsxvIpSet(ipSetConfig *types.EdgeIpSet) (*types.EdgeIpSet, error) { + err := validateUpdateNsxvIpSet(ipSetConfig) + if err != nil { + return nil, err + } + + // Inject latest Revision for this IP set so that API accepts change + currentIpSet, err := vdc.GetNsxvIpSetById(ipSetConfig.ID) + if err != nil { + return nil, fmt.Errorf("could not fetch current IP set: %s", err) + } + ipSetConfig.Revision = currentIpSet.Revision + + httpPath, err := vdc.buildNsxvNetworkServiceEndpointURL(types.NsxvIpSetServicePath + "/" + ipSetConfig.ID) + if err != nil { + return nil, fmt.Errorf("could not get network services API endpoint for IP set: %s", err) + } + + // Result is either 204 for success, or an error of type types.NSXError + errString := fmt.Sprintf("error while updating IP set with ID %s :%%s", ipSetConfig.ID) + _, err = vdc.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + errString, ipSetConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + updatedIpSet, err := vdc.GetNsxvIpSetById(ipSetConfig.ID) + if err != nil { + return nil, fmt.Errorf("could not lookup updated IP set with ID %s: %s", ipSetConfig.ID, err) + } + + return updatedIpSet, nil +} + +// GetNsxvIpSetByName searches for IP set by name. Names are unique therefore it can find only one. +// Returns ErrorEntityNotFound if an IP set is not found +func (vdc *Vdc) GetNsxvIpSetByName(name string) (*types.EdgeIpSet, error) { + if err := validateGetNsxvIpSet("", name); err != nil { + return nil, err + } + + allIpSets, err := vdc.GetAllNsxvIpSets() + if err != nil { + return nil, err + } + + util.Logger.Printf("[DEBUG] Searching for IP set with name: %s", name) + for _, ipSet := range allIpSets { + util.Logger.Printf("[DEBUG] Checking IP set: %#+v", ipSet) + if ipSet.Name != "" && ipSet.Name == name { + return ipSet, nil + } + } + + return nil, ErrorEntityNotFound +} + +// GetNsxvIpSetById searches for IP set by ID. Returns ErrorEntityNotFound if an IP set is not found +func (vdc *Vdc) GetNsxvIpSetById(id string) (*types.EdgeIpSet, error) { + if err := validateGetNsxvIpSet(id, ""); err != nil { + return nil, err + } + + allIpSets, err := vdc.GetAllNsxvIpSets() + if err != nil { + return nil, err + } + + util.Logger.Printf("[DEBUG] Searching for IP set with id: %s", id) + for _, ipSet := range allIpSets { + util.Logger.Printf("[DEBUG] Checking IP set: %#+v", ipSet) + if ipSet.ID != "" && ipSet.ID == id { + return ipSet, nil + } + } + + return nil, ErrorEntityNotFound +} + +// GetNsxvIpSetByNameOrId uses the same identifier to search by name and by ID. Priority is to try +// and find the IP set by ID. If it is not found - then a search by name is performed. +func (vdc *Vdc) GetNsxvIpSetByNameOrId(identifier string) (*types.EdgeIpSet, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return vdc.GetNsxvIpSetByName(name) } + getById := func(id string, refresh bool) (interface{}, error) { return vdc.GetNsxvIpSetById(id) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, true) + if entity == nil { + return nil, err + } + return entity.(*types.EdgeIpSet), err +} + +// GetAllNsxvIpSets retrieves all IP sets and returns []*types.EdgeIpSet or an +// error of type ErrorEntityNotFound if there are no IP sets +func (vdc *Vdc) GetAllNsxvIpSets() ([]*types.EdgeIpSet, error) { + vdcId, err := GetUuidFromHref(vdc.Vdc.HREF, true) + if err != nil { + return nil, fmt.Errorf("unable to get vdc ID from HREF: %s", err) + } + + // build a path for to read all IP sets in a scope. A scope is defined by vDC ID. The endpoint + // should look like: + // https://192.168.1.109/network/services/ipset/scope/f9daf2da-b4f9-4921-a2f4-d77a943a381c where + // the trailing UUID is vDC ID + httpPath, err := vdc.buildNsxvNetworkServiceEndpointURL(types.NsxvIpSetServicePath + "/scope/" + vdcId) + if err != nil { + return nil, fmt.Errorf("could not get network services API endpoint for IP set: %s", err) + } + + // Anonymous struct to unwrap list of IP sets + ipSetsResponse := &struct { + XMLName xml.Name `xml:"list"` + types.EdgeIpSets `xml:"ipset"` + }{} + + // This query returns all IP sets on the scope (scoped by vDC ID) + errString := fmt.Sprintf("unable to read IP sets for scope %s: %%s", vdcId) + _, err = vdc.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, errString, nil, ipSetsResponse) + if err != nil { + return nil, err + } + + if len(ipSetsResponse.EdgeIpSets) == 0 { + return nil, ErrorEntityNotFound + } + + return ipSetsResponse.EdgeIpSets, nil +} + +// DeleteNsxvIpSetById deletes IP set by its ID which is formatted as +// f9daf2da-b4f9-4921-a2f4-d77a943a381c:ipset-9 +func (vdc *Vdc) DeleteNsxvIpSetById(id string) error { + err := validateDeleteNsxvIpSet(id, "") + if err != nil { + return err + } + + // build a path for to delete exact IP set sample path is: DELETE API-URL/services/ipset/id:ipset-# + // https://192.168.1.109/network/services/ipset/f9daf2da-b4f9-4921-a2f4-d77a943a381c:ipset-9 + httpPath, err := vdc.buildNsxvNetworkServiceEndpointURL(types.NsxvIpSetServicePath + "/" + id) + if err != nil { + return fmt.Errorf("could not get network services API endpoint for IP set: %s", err) + } + + errString := fmt.Sprintf("unable to delete IP set with ID %s: %%s", id) + _, err = vdc.client.ExecuteRequestWithCustomError(httpPath, http.MethodDelete, types.AnyXMLMime, + errString, nil, &types.NSXError{}) + if err != nil { + return err + } + + return nil +} + +// DeleteNsxvIpSetById deletes IP set by its name +func (vdc *Vdc) DeleteNsxvIpSetByName(name string) error { + err := validateDeleteNsxvIpSet("", name) + if err != nil { + return err + } + + // Get IP set by name + ipSet, err := vdc.GetNsxvIpSetByName(name) + if err != nil { + return err + } + + return vdc.DeleteNsxvIpSetById(ipSet.ID) +} + +func validateCreateNsxvIpSet(ipSetConfig *types.EdgeIpSet) error { + + if ipSetConfig.Name == "" { + return fmt.Errorf("IP set must have name defined") + } + + if ipSetConfig.IPAddresses == "" { + return fmt.Errorf("IP set must IP addresses defined") + } + + return nil +} + +func validateUpdateNsxvIpSet(ipSetConfig *types.EdgeIpSet) error { + + if ipSetConfig.ID == "" { + return fmt.Errorf("IP set ID must be set for update") + } + + return validateCreateNsxvIpSet(ipSetConfig) +} + +func validateGetNsxvIpSet(id, name string) error { + if id == "" && name == "" { + return fmt.Errorf("at least name or ID must be provided") + } + + return nil +} + +func validateDeleteNsxvIpSet(id, name string) error { + return validateGetNsxvIpSet(id, name) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_nat.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_nat.go new file mode 100644 index 000000000..20d9701e9 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/nsxv_nat.go @@ -0,0 +1,201 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "encoding/xml" + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// requestEdgeNatRules nests EdgeNatRule as a convenience for unmarshalling POST requests +type requestEdgeNatRules struct { + XMLName xml.Name `xml:"natRules"` + EdgeNatRules []*types.EdgeNatRule `xml:"natRule"` +} + +// responseEdgeNatRules is used to unwrap response when retrieving +type responseEdgeNatRules struct { + XMLName xml.Name `xml:"nat"` + Version string `xml:"version"` + NatRules requestEdgeNatRules `xml:"natRules"` +} + +// CreateNsxvNatRule creates NAT rule using proxied NSX-V API. It is a synchronuous operation. +// It returns an object with all fields populated (including ID) +func (egw *EdgeGateway) CreateNsxvNatRule(natRuleConfig *types.EdgeNatRule) (*types.EdgeNatRule, error) { + if err := validateCreateNsxvNatRule(natRuleConfig, egw); err != nil { + return nil, err + } + + // Wrap the provided rule for POST request + natRuleRequest := requestEdgeNatRules{ + EdgeNatRules: []*types.EdgeNatRule{natRuleConfig}, + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeCreateNatPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + // We expect to get http.StatusCreated or if not an error of type types.NSXError + resp, err := egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPost, types.AnyXMLMime, + "error creating NAT rule: %s", natRuleRequest, &types.NSXError{}) + if err != nil { + return nil, err + } + + // Location header should look similar to: + // [/network/edges/edge-1/nat/config/rules/197157] + natRuleId, err := extractNsxObjectIdFromPath(resp.Header.Get("Location")) + if err != nil { + return nil, err + } + + readNatRule, err := egw.GetNsxvNatRuleById(natRuleId) + if err != nil { + return nil, fmt.Errorf("unable to retrieve NAT rule with ID (%s) after creation: %s", + natRuleId, err) + } + return readNatRule, nil +} + +// UpdateNsxvNatRule updates types.EdgeNatRule with all fields using proxied NSX-V API. ID is +// mandatory to perform the update. +func (egw *EdgeGateway) UpdateNsxvNatRule(natRuleConfig *types.EdgeNatRule) (*types.EdgeNatRule, error) { + err := validateUpdateNsxvNatRule(natRuleConfig, egw) + if err != nil { + return nil, err + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeCreateNatPath + "/" + natRuleConfig.ID) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // Result should be 204, if not we expect an error of type types.NSXError + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodPut, types.AnyXMLMime, + "error while updating NAT rule : %s", natRuleConfig, &types.NSXError{}) + if err != nil { + return nil, err + } + + readNatRule, err := egw.GetNsxvNatRuleById(natRuleConfig.ID) + if err != nil { + return nil, fmt.Errorf("unable to retrieve NAT rule with ID (%s) after update: %s", + readNatRule.ID, err) + } + return readNatRule, nil +} + +// GetNsxvNatRules returns a list of all NAT rules in a given edge gateway +func (egw *EdgeGateway) GetNsxvNatRules() ([]*types.EdgeNatRule, error) { + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeNatPath) + if err != nil { + return nil, fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + natRuleResponse := &responseEdgeNatRules{} + + // This query returns all application rules as the API does not have filtering options + _, err = egw.client.ExecuteRequest(httpPath, http.MethodGet, types.AnyXMLMime, + "unable to read NAT rule: %s", nil, natRuleResponse) + if err != nil { + return nil, err + } + return natRuleResponse.NatRules.EdgeNatRules, nil +} + +// GetNsxvNatRuleById retrieves types.EdgeNatRule by NAT rule ID as shown in the UI using proxied +// NSX-V API. +// It returns and error `ErrorEntityNotFound` if the NAT rule is not found. +func (egw *EdgeGateway) GetNsxvNatRuleById(id string) (*types.EdgeNatRule, error) { + if err := validateGetNsxvNatRule(id, egw); err != nil { + return nil, err + } + + edgeNatRules, err := egw.GetNsxvNatRules() + if err != nil { + return nil, err + } + + for _, rule := range edgeNatRules { + if rule.ID != "" && rule.ID == id { + return rule, nil + } + } + + return nil, ErrorEntityNotFound +} + +// DeleteNsxvNatRuleById deletes types.EdgeNatRule by NAT rule ID as shown in the UI using proxied +// NSX-V API. +// It returns and error `ErrorEntityNotFound` if the NAT rule is now found. +func (egw *EdgeGateway) DeleteNsxvNatRuleById(id string) error { + err := validateDeleteNsxvNatRule(id, egw) + if err != nil { + return err + } + + httpPath, err := egw.buildProxiedEdgeEndpointURL(types.EdgeCreateNatPath + "/" + id) + if err != nil { + return fmt.Errorf("could not get Edge Gateway API endpoint: %s", err) + } + + // check if the rule exists and pass back the error at it may be 'ErrorEntityNotFound' + _, err = egw.GetNsxvNatRuleById(id) + if err != nil { + return err + } + + _, err = egw.client.ExecuteRequestWithCustomError(httpPath, http.MethodDelete, types.AnyXMLMime, + "unable to delete nat rule: %s", nil, &types.NSXError{}) + if err != nil { + return err + } + + return nil +} + +func validateCreateNsxvNatRule(natRuleConfig *types.EdgeNatRule, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support NAT rules") + } + + if natRuleConfig.Action == "" { + return fmt.Errorf("NAT rule must have an action") + } + + if natRuleConfig.TranslatedAddress == "" { + return fmt.Errorf("NAT rule must translated address specified") + } + + return nil +} + +func validateUpdateNsxvNatRule(natRuleConfig *types.EdgeNatRule, egw *EdgeGateway) error { + if natRuleConfig.ID == "" { + return fmt.Errorf("NAT rule must ID must be set for update") + } + + return validateCreateNsxvNatRule(natRuleConfig, egw) +} + +func validateGetNsxvNatRule(id string, egw *EdgeGateway) error { + if !egw.HasAdvancedNetworking() { + return fmt.Errorf("only advanced edge gateways support NAT rules") + } + + if id == "" { + return fmt.Errorf("unable to retrieve NAT rule without ID") + } + + return nil +} + +func validateDeleteNsxvNatRule(id string, egw *EdgeGateway) error { + return validateGetNsxvNatRule(id, egw) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi.go new file mode 100644 index 000000000..fc66a88c4 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi.go @@ -0,0 +1,813 @@ +package govcd + +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net/http" + "net/url" + "reflect" + "strconv" + "strings" + + "github.com/peterhellberg/link" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// This file contains generalised low level methods to interact with VCD OpenAPI REST endpoints as documented in +// https://{VCD_HOST}/docs. In addition to this there are OpenAPI browser endpoints for tenant and provider +// respectively https://{VCD_HOST}/api-explorer/tenant/tenant-name and https://{VCD_HOST}/api-explorer/provider . +// OpenAPI has functions supporting below REST methods: +// GET /items (gets a slice of types like `[]types.OpenAPIEdgeGateway` or even `[]json.RawMessage` to process JSON as text. +// POST /items - creates an item +// PUT /items/URN - updates an item with specified URN +// GET /items/URN - retrieves an item with specified URN +// DELETE /items/URN - deletes an item with specified URN +// +// GET endpoints support FIQL for filtering in field `filter`. (FIQL IETF doc - https://tools.ietf.org/html/draft-nottingham-atompub-fiql-00) +// Not all API fields are supported for FIQL filtering and sometimes they return odd errors when filtering is +// unsupported. No exact documentation exists so far. +// +// Note. All functions accepting URL reference (*url.URL) will make a copy of URL because they may mutate URL reference. +// The parameter is kept as *url.URL for convenience because standard library provides pointer values. +// +// OpenAPI versioning. +// OpenAPI was introduced in VCD 9.5 (with API version 31.0). Endpoints are being added with each VCD iteration. +// Internally hosted documentation (https://HOSTNAME/docs/) can be used to check which endpoints where introduced in +// which VCD API version. +// Additionally each OpenAPI endpoint has a semantic version in its path (e.g. +// https://HOSTNAME/cloudapi/1.0.0/auditTrail). This versioned endpoint should ensure compatibility as VCD evolves. + +// OpenApiIsSupported allows to check whether VCD supports OpenAPI. Each OpenAPI endpoint however is introduced with +// different VCD API versions so this is just a general check if OpenAPI is supported at all. Particular endpoint +// introduction version can be checked in self hosted docs (https://HOSTNAME/docs/) +func (client *Client) OpenApiIsSupported() bool { + // OpenAPI was introduced in VCD 9.5+ (API version 31.0+) + return client.APIVCDMaxVersionIs(">= 31") +} + +// OpenApiBuildEndpoint helps to construct OpenAPI endpoint by using already configured VCD HREF while requiring only +// the last bit for endpoint. This is a variadic function and multiple pieces can be supplied for convenience. Leading +// '/' is added automatically. +// Sample URL construct: https://HOST/cloudapi/endpoint +func (client *Client) OpenApiBuildEndpoint(endpoint ...string) (*url.URL, error) { + endpointString := client.VCDHREF.Scheme + "://" + client.VCDHREF.Host + "/cloudapi/" + strings.Join(endpoint, "") + urlRef, err := url.ParseRequestURI(endpointString) + if err != nil { + return nil, fmt.Errorf("error formatting OpenAPI endpoint: %s", err) + } + return urlRef, nil +} + +// OpenApiGetAllItems retrieves and accumulates all pages then parsing them to a single 'outType' object. It works by at +// first crawling pages and accumulating all responses into []json.RawMessage (as strings). Because there is no +// intermediate unmarshalling to exact `outType` for every page it unmarshals into response struct in one go. 'outType' +// must be a slice of object (e.g. []*types.OpenAPIEdgeGateway) because this response contains slice of structs. +// +// Note. Query parameter 'pageSize' is defaulted to 128 (maximum supported) unless it is specified in queryParams +func (client *Client) OpenApiGetAllItems(apiVersion string, urlRef *url.URL, queryParams url.Values, outType interface{}, additionalHeader map[string]string) error { + // copy passed in URL ref so that it is not mutated + urlRefCopy := copyUrlRef(urlRef) + + util.Logger.Printf("[TRACE] Getting all items from endpoint %s for parsing into %s type\n", + urlRefCopy.String(), reflect.TypeOf(outType)) + + if !client.OpenApiIsSupported() { + return fmt.Errorf("OpenAPI is not supported on this VCD version") + } + + // Page size is defaulted to 128 (maximum supported number) to reduce HTTP calls and improve performance unless caller + // provides other value + newQueryParams := defaultPageSize(queryParams, "128") + util.Logger.Printf("[TRACE] Will use 'pageSize=%s'", newQueryParams.Get("pageSize")) + + // Perform API call to initial endpoint. The function call recursively follows pages using Link headers "nextPage" + // until it crawls all results + responses, err := client.openApiGetAllPages(apiVersion, urlRefCopy, newQueryParams, outType, nil, additionalHeader) + if err != nil { + return fmt.Errorf("error getting all pages for endpoint %s: %s", urlRefCopy.String(), err) + } + + // Create a slice of raw JSON messages in text so that they can be unmarshalled to specified `outType` after multiple + // calls are executed + var rawJsonBodies []string + for _, singleObject := range responses { + rawJsonBodies = append(rawJsonBodies, string(singleObject)) + } + + // rawJsonBodies contains a slice of all response objects and they must be formatted as a JSON slice (wrapped + // into `[]`, separated with semicolons) so that unmarshalling to specified `outType` works in one go + allResponses := `[` + strings.Join(rawJsonBodies, ",") + `]` + + // Unmarshal all accumulated responses into `outType` + if err = json.Unmarshal([]byte(allResponses), &outType); err != nil { + return fmt.Errorf("error decoding values into type: %s", err) + } + + return nil +} + +// OpenApiGetItem is a low level OpenAPI client function to perform GET request for any item. +// The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') +// It responds with HTTP 403: Forbidden - If the user is not authorized or the entity does not exist. When HTTP 403 is +// returned this function returns "ErrorEntityNotFound: API_ERROR" so that one can use ContainsNotFound(err) to +// differentiate when an objects was not found from any other error. +func (client *Client) OpenApiGetItem(apiVersion string, urlRef *url.URL, params url.Values, outType interface{}, additionalHeader map[string]string) error { + // copy passed in URL ref so that it is not mutated + urlRefCopy := copyUrlRef(urlRef) + + util.Logger.Printf("[TRACE] Getting item from endpoint %s with expected response of type %s", + urlRefCopy.String(), reflect.TypeOf(outType)) + + if !client.OpenApiIsSupported() { + return fmt.Errorf("OpenAPI is not supported on this VCD version") + } + + req := client.newOpenApiRequest(apiVersion, params, http.MethodGet, urlRefCopy, nil, additionalHeader) + resp, err := client.Http.Do(req) + if err != nil { + return fmt.Errorf("error performing GET request to %s: %s", urlRefCopy.String(), err) + } + + // Bypassing the regular path using function checkRespWithErrType and returning parsed error directly + // HTTP 403: Forbidden - is returned if the user is not authorized or the entity does not exist. + if resp.StatusCode == http.StatusForbidden { + err := ParseErr(types.BodyTypeJSON, resp, &types.OpenApiError{}) + closeErr := resp.Body.Close() + return fmt.Errorf("%s: %s [body close error: %s]", ErrorEntityNotFound, err, closeErr) + } + + // resp is ignored below because it is the same as above + _, err = checkRespWithErrType(types.BodyTypeJSON, resp, err, &types.OpenApiError{}) + + // Any other error occurred + if err != nil { + return fmt.Errorf("error in HTTP GET request: %s", err) + } + + if err = decodeBody(types.BodyTypeJSON, resp, outType); err != nil { + return fmt.Errorf("error decoding JSON response after GET: %s", err) + } + + err = resp.Body.Close() + if err != nil { + return fmt.Errorf("error closing response body: %s", err) + } + + return nil +} + +// OpenApiPostItemSync is a low level OpenAPI client function to perform POST request for items that support synchronous +// requests. The urlRef must point to POST endpoint (e.g. '/1.0.0/edgeGateways') that supports synchronous requests. It +// will return an error when endpoint does not support synchronous requests (HTTP response status code is not 201). +// Response will be unmarshalled into outType. +// +// Note. Even though it may return error if the item does not support synchronous request - the object may still be +// created. OpenApiPostItem would handle both cases and always return created item. +func (client *Client) OpenApiPostItemSync(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}) error { + // copy passed in URL ref so that it is not mutated + urlRefCopy := copyUrlRef(urlRef) + + util.Logger.Printf("[TRACE] Posting %s item to endpoint %s with expected response of type %s", + reflect.TypeOf(payload), urlRefCopy.String(), reflect.TypeOf(outType)) + + if !client.OpenApiIsSupported() { + return fmt.Errorf("OpenAPI is not supported on this VCD version") + } + + resp, err := client.openApiPerformPostPut(http.MethodPost, apiVersion, urlRefCopy, params, payload, nil) + if err != nil { + return err + } + + if resp.StatusCode != http.StatusCreated { + util.Logger.Printf("[TRACE] Synchronous task expected (HTTP status code 201). Got %d", resp.StatusCode) + + } + + if err = decodeBody(types.BodyTypeJSON, resp, outType); err != nil { + return fmt.Errorf("error decoding JSON response after POST: %s", err) + } + + err = resp.Body.Close() + if err != nil { + return fmt.Errorf("error closing response body: %s", err) + } + + return nil +} + +// OpenApiPostItemAsync is a low level OpenAPI client function to perform POST request for items that support +// asynchronous requests. The urlRef must point to POST endpoint (e.g. '/1.0.0/edgeGateways') that supports asynchronous +// requests. It will return an error if item does not support asynchronous request (does not respond with HTTP 202). +// +// Note. Even though it may return error if the item does not support asynchronous request - the object may still be +// created. OpenApiPostItem would handle both cases and always return created item. +func (client *Client) OpenApiPostItemAsync(apiVersion string, urlRef *url.URL, params url.Values, payload interface{}) (Task, error) { + // copy passed in URL ref so that it is not mutated + urlRefCopy := copyUrlRef(urlRef) + + util.Logger.Printf("[TRACE] Posting async %s item to endpoint %s with expected task response", + reflect.TypeOf(payload), urlRefCopy.String()) + + if !client.OpenApiIsSupported() { + return Task{}, fmt.Errorf("OpenAPI is not supported on this VCD version") + } + + resp, err := client.openApiPerformPostPut(http.MethodPost, apiVersion, urlRefCopy, params, payload, nil) + if err != nil { + return Task{}, err + } + + if resp.StatusCode != http.StatusAccepted { + return Task{}, fmt.Errorf("POST request expected async task (HTTP response 202), got %d", resp.StatusCode) + } + + err = resp.Body.Close() + if err != nil { + return Task{}, fmt.Errorf("error closing response body: %s", err) + } + + // Asynchronous case returns "Location" header pointing to XML task + taskUrl := resp.Header.Get("Location") + if taskUrl == "" { + return Task{}, fmt.Errorf("unexpected empty task HREF") + } + task := NewTask(client) + task.Task.HREF = taskUrl + + return *task, nil +} + +// OpenApiPostItem is a low level OpenAPI client function to perform POST request for item supporting synchronous or +// asynchronous requests. The urlRef must point to POST endpoint (e.g. '/1.0.0/edgeGateways'). When a task is +// synchronous - it will track task until it is finished and pick reference to marshal outType. +func (client *Client) OpenApiPostItem(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}, additionalHeader map[string]string) error { + // copy passed in URL ref so that it is not mutated + urlRefCopy := copyUrlRef(urlRef) + + util.Logger.Printf("[TRACE] Posting %s item to endpoint %s with expected response of type %s", + reflect.TypeOf(payload), urlRefCopy.String(), reflect.TypeOf(outType)) + + if !client.OpenApiIsSupported() { + return fmt.Errorf("OpenAPI is not supported on this VCD version") + } + + resp, err := client.openApiPerformPostPut(http.MethodPost, apiVersion, urlRefCopy, params, payload, additionalHeader) + if err != nil { + return err + } + + // Handle two cases of API behaviour - synchronous (response status code is 201) and asynchronous (response status + // code 202) + switch resp.StatusCode { + // Asynchronous case - must track task and get item HREF from there + case http.StatusAccepted: + taskUrl := resp.Header.Get("Location") + util.Logger.Printf("[TRACE] Asynchronous task detected, tracking task with HREF: %s", taskUrl) + task := NewTask(client) + task.Task.HREF = taskUrl + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error waiting completion of task (%s): %s", taskUrl, err) + } + + // Here we have to find the resource once more to return it populated. + // Task Owner ID is the ID of created object. ID must be used (although HREF exists in task) because HREF points to + // old XML API and here we need to pull data from OpenAPI. + + newObjectUrl := urlParseRequestURI(urlRefCopy.String() + task.Task.Owner.ID) + err = client.OpenApiGetItem(apiVersion, newObjectUrl, nil, outType, additionalHeader) + if err != nil { + return fmt.Errorf("error retrieving item after creation: %s", err) + } + + // Synchronous task - new item body is returned in response of HTTP POST request + case http.StatusCreated: + util.Logger.Printf("[TRACE] Synchronous task detected, marshalling outType '%s'", reflect.TypeOf(outType)) + if err = decodeBody(types.BodyTypeJSON, resp, outType); err != nil { + return fmt.Errorf("error decoding JSON response after POST: %s", err) + } + } + + err = resp.Body.Close() + if err != nil { + return fmt.Errorf("error closing response body: %s", err) + } + + return nil +} + +// OpenApiPutItemSync is a low level OpenAPI client function to perform PUT request for items that support synchronous +// requests. The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') and support synchronous +// requests. It will return an error when endpoint does not support synchronous requests (HTTP response status code is not 201). +// Response will be unmarshalled into outType. +// +// Note. Even though it may return error if the item does not support synchronous request - the object may still be +// updated. OpenApiPutItem would handle both cases and always return updated item. +func (client *Client) OpenApiPutItemSync(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}, additionalHeader map[string]string) error { + // copy passed in URL ref so that it is not mutated + urlRefCopy := copyUrlRef(urlRef) + + util.Logger.Printf("[TRACE] Putting %s item to endpoint %s with expected response of type %s", + reflect.TypeOf(payload), urlRefCopy.String(), reflect.TypeOf(outType)) + + if !client.OpenApiIsSupported() { + return fmt.Errorf("OpenAPI is not supported on this VCD version") + } + + resp, err := client.openApiPerformPostPut(http.MethodPut, apiVersion, urlRefCopy, params, payload, additionalHeader) + if err != nil { + return err + } + + if resp.StatusCode != http.StatusCreated { + util.Logger.Printf("[TRACE] Synchronous task expected (HTTP status code 201). Got %d", resp.StatusCode) + + } + + if err = decodeBody(types.BodyTypeJSON, resp, outType); err != nil { + return fmt.Errorf("error decoding JSON response after PUT: %s", err) + } + + err = resp.Body.Close() + if err != nil { + return fmt.Errorf("error closing response body: %s", err) + } + + return nil +} + +// OpenApiPutItemAsync is a low level OpenAPI client function to perform PUT request for items that support asynchronous +// requests. The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') that supports asynchronous +// requests. It will return an error if item does not support asynchronous request (does not respond with HTTP 202). +// +// Note. Even though it may return error if the item does not support asynchronous request - the object may still be +// created. OpenApiPutItem would handle both cases and always return created item. +func (client *Client) OpenApiPutItemAsync(apiVersion string, urlRef *url.URL, params url.Values, payload interface{}, additionalHeader map[string]string) (Task, error) { + // copy passed in URL ref so that it is not mutated + urlRefCopy := copyUrlRef(urlRef) + + util.Logger.Printf("[TRACE] Putting async %s item to endpoint %s with expected task response", + reflect.TypeOf(payload), urlRefCopy.String()) + + if !client.OpenApiIsSupported() { + return Task{}, fmt.Errorf("OpenAPI is not supported on this VCD version") + } + resp, err := client.openApiPerformPostPut(http.MethodPut, apiVersion, urlRefCopy, params, payload, additionalHeader) + if err != nil { + return Task{}, err + } + + if resp.StatusCode != http.StatusAccepted { + return Task{}, fmt.Errorf("PUT request expected async task (HTTP response 202), got %d", resp.StatusCode) + } + + err = resp.Body.Close() + if err != nil { + return Task{}, fmt.Errorf("error closing response body: %s", err) + } + + // Asynchronous case returns "Location" header pointing to XML task + taskUrl := resp.Header.Get("Location") + if taskUrl == "" { + return Task{}, fmt.Errorf("unexpected empty task HREF") + } + task := NewTask(client) + task.Task.HREF = taskUrl + + return *task, nil +} + +// OpenApiPutItem is a low level OpenAPI client function to perform PUT request for any item. +// The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') +// It handles synchronous and asynchronous tasks. When a task is synchronous - it will block until it is finished. +func (client *Client) OpenApiPutItem(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}, additionalHeader map[string]string) error { + // copy passed in URL ref so that it is not mutated + urlRefCopy := copyUrlRef(urlRef) + + util.Logger.Printf("[TRACE] Putting %s item to endpoint %s with expected response of type %s", + reflect.TypeOf(payload), urlRefCopy.String(), reflect.TypeOf(outType)) + + if !client.OpenApiIsSupported() { + return fmt.Errorf("OpenAPI is not supported on this VCD version") + } + resp, err := client.openApiPerformPostPut(http.MethodPut, apiVersion, urlRefCopy, params, payload, additionalHeader) + + if err != nil { + return err + } + + // Handle two cases of API behaviour - synchronous (response status code is 201) and asynchronous (response status + // code 202) + switch resp.StatusCode { + // Asynchronous case - must track task and get item HREF from there + case http.StatusAccepted: + taskUrl := resp.Header.Get("Location") + util.Logger.Printf("[TRACE] Asynchronous task detected, tracking task with HREF: %s", taskUrl) + task := NewTask(client) + task.Task.HREF = taskUrl + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error waiting completion of task (%s): %s", taskUrl, err) + } + + // Here we have to find the resource once more to return it populated. Provided params ir ignored for retrieval. + err = client.OpenApiGetItem(apiVersion, urlRefCopy, nil, outType, additionalHeader) + if err != nil { + return fmt.Errorf("error retrieving item after updating: %s", err) + } + + // Synchronous task - new item body is returned in response of HTTP PUT request + case http.StatusOK: + util.Logger.Printf("[TRACE] Synchronous task detected, marshalling outType '%s'", reflect.TypeOf(outType)) + if err = decodeBody(types.BodyTypeJSON, resp, outType); err != nil { + return fmt.Errorf("error decoding JSON response after PUT: %s", err) + } + } + + err = resp.Body.Close() + if err != nil { + return fmt.Errorf("error closing HTTP PUT response body: %s", err) + } + + return nil +} + +// OpenApiDeleteItem is a low level OpenAPI client function to perform DELETE request for any item. +// The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') +// It handles synchronous and asynchronous tasks. When a task is synchronous - it will block until it is finished. +func (client *Client) OpenApiDeleteItem(apiVersion string, urlRef *url.URL, params url.Values, additionalHeader map[string]string) error { + // copy passed in URL ref so that it is not mutated + urlRefCopy := copyUrlRef(urlRef) + + util.Logger.Printf("[TRACE] Deleting item at endpoint %s", urlRefCopy.String()) + + if !client.OpenApiIsSupported() { + return fmt.Errorf("OpenAPI is not supported on this VCD version") + } + + // Perform request + req := client.newOpenApiRequest(apiVersion, params, http.MethodDelete, urlRefCopy, nil, additionalHeader) + + resp, err := client.Http.Do(req) + if err != nil { + return err + } + + // resp is ignored below because it would be the same as above + _, err = checkRespWithErrType(types.BodyTypeJSON, resp, err, &types.OpenApiError{}) + if err != nil { + return fmt.Errorf("error in HTTP DELETE request: %s", err) + } + + err = resp.Body.Close() + if err != nil { + return fmt.Errorf("error closing response body: %s", err) + } + + // OpenAPI may work synchronously or asynchronously. When working asynchronously - it will return HTTP 202 and + // `Location` header will contain reference to task so that it can be tracked. In DELETE case we do not care about any + // ID so if DELETE operation is synchronous (returns HTTP 201) - the request has already succeeded. + if resp.StatusCode == http.StatusAccepted { + taskUrl := resp.Header.Get("Location") + task := NewTask(client) + task.Task.HREF = taskUrl + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error waiting completion of task (%s): %s", taskUrl, err) + } + } + + return nil +} + +// openApiPerformPostPut is a shared function for all public PUT and POST function parts - OpenApiPostItemSync, +// OpenApiPostItemAsync, OpenApiPostItem, OpenApiPutItemSync, OpenApiPutItemAsync, OpenApiPutItem +func (client *Client) openApiPerformPostPut(httpMethod string, apiVersion string, urlRef *url.URL, params url.Values, payload interface{}, additionalHeader map[string]string) (*http.Response, error) { + // Marshal payload if we have one + body := new(bytes.Buffer) + if payload != nil { + marshaledJson, err := json.MarshalIndent(payload, "", " ") + if err != nil { + return nil, fmt.Errorf("error marshalling JSON data for %s request %s", httpMethod, err) + } + body = bytes.NewBuffer(marshaledJson) + } + + req := client.newOpenApiRequest(apiVersion, params, httpMethod, urlRef, body, additionalHeader) + resp, err := client.Http.Do(req) + if err != nil { + return nil, err + } + + // resp is ignored below because it is the same the one above + _, err = checkRespWithErrType(types.BodyTypeJSON, resp, err, &types.OpenApiError{}) + if err != nil { + return nil, fmt.Errorf("error in HTTP %s request: %s", httpMethod, err) + } + return resp, nil +} + +// openApiGetAllPages is a recursive function that helps to accumulate responses from multiple pages for GET query. It +// works by at first crawling pages and accumulating all responses into []json.RawMessage (as strings). Because there is +// no intermediate unmarshalling to exact `outType` for every page it can unmarshal into direct `outType` supplied. +// outType must be a slice of object (e.g. []*types.OpenApiRole) because accumulated responses are in JSON list +// +// It follows pages in two ways: +// * Finds a 'nextPage' link and uses it to recursively crawl all pages (default for all, except for API bug) +// * Uses fields 'resultTotal', 'page', and 'pageSize' to calculate if it should crawl further on. It is only done +// because there is a BUG in API and in some endpoints it does not return 'nextPage' link as well as null 'pageCount' +// +// In general 'nextPage' header is preferred because some endpoints +// (like cloudapi/1.0.0/nsxTResources/importableTier0Routers) do not contain pagination details and nextPage header +// contains a base64 encoded data chunk via a supplied `cursor` field +// (e.g. ...importableTier0Routers?filter=_context==urn:vcloud:nsxtmanager:85aa2514-6a6f-4a32-8904-9695dc0f0298& +// cursor=eyJORVRXT1JLSU5HX0NVUlNPUl9PRkZTRVQiOiIwIiwicGFnZVNpemUiOjEsIk5FVFdPUktJTkdfQ1VSU09SIjoiMDAwMTMifQ==) +// The 'cursor' in example contains such values {"NETWORKING_CURSOR_OFFSET":"0","pageSize":1,"NETWORKING_CURSOR":"00013"} +func (client *Client) openApiGetAllPages(apiVersion string, urlRef *url.URL, queryParams url.Values, outType interface{}, responses []json.RawMessage, additionalHeader map[string]string) ([]json.RawMessage, error) { + // copy passed in URL ref so that it is not mutated + urlRefCopy := copyUrlRef(urlRef) + + if responses == nil { + responses = []json.RawMessage{} + } + + // Perform request + req := client.newOpenApiRequest(apiVersion, queryParams, http.MethodGet, urlRefCopy, nil, additionalHeader) + + resp, err := client.Http.Do(req) + if err != nil { + return nil, err + } + + // resp is ignored below because it is the same as above + _, err = checkRespWithErrType(types.BodyTypeJSON, resp, err, &types.OpenApiError{}) + if err != nil { + return nil, fmt.Errorf("error in HTTP GET request: %s", err) + } + + // Pages will unwrap pagination and keep a slice of raw json message to marshal to specific types + pages := &types.OpenApiPages{} + + if err = decodeBody(types.BodyTypeJSON, resp, pages); err != nil { + return nil, fmt.Errorf("error decoding JSON page response: %s", err) + } + + err = resp.Body.Close() + if err != nil { + return nil, fmt.Errorf("error closing response body: %s", err) + } + + // Accumulate all responses in a single page as JSON text using json.RawMessage + // After pages are unwrapped one can marshal response into specified type + // singleQueryResponses := &json.RawMessage{} + var singleQueryResponses []json.RawMessage + if err = json.Unmarshal(pages.Values, &singleQueryResponses); err != nil { + return nil, fmt.Errorf("error decoding values into accumulation type: %s", err) + } + responses = append(responses, singleQueryResponses...) + + // Check if there is still 'nextPage' linked and continue accumulating responses if so + nextPageUrlRef, err := findRelLink("nextPage", resp.Header) + if err != nil && !IsNotFound(err) { + return nil, fmt.Errorf("error looking for 'nextPage' in 'Link' header: %s", err) + } + + if nextPageUrlRef != nil { + responses, err = client.openApiGetAllPages(apiVersion, nextPageUrlRef, url.Values{}, outType, responses, additionalHeader) + if err != nil { + return nil, fmt.Errorf("got error on page %d: %s", pages.Page, err) + } + } + + // If nextPage header was not found, but we are not at the last page - the query URL should be forged manually to + // overcome OpenAPI BUG when it does not return 'nextPage' header + // Some API calls do not return `OpenApiPages` results at all (just values) + // In some endpoints the page field is returned as `null` and this code block cannot handle it. + if nextPageUrlRef == nil && pages.PageSize != 0 && pages.Page != 0 { + // Next URL page ref was not found therefore one must double-check if it is not an API BUG. There are endpoints which + // return only Total results and pageSize (not 'pageCount' and not 'nextPage' header) + pageCount := pages.ResultTotal / pages.PageSize // This division returns number of "full pages" (containing 'pageSize' amount of results) + if pages.ResultTotal%pages.PageSize > 0 { // Check if is an incomplete page (containing less than 'pageSize' results) + pageCount++ // Total pageCount is "number of complete pages + 1 incomplete" if it exists) + } + if pages.Page < pageCount { + // Clone all originally supplied query parameters to avoid overwriting them + urlQueryString := queryParams.Encode() + urlQuery, err := url.ParseQuery(urlQueryString) + if err != nil { + return nil, fmt.Errorf("error cloning queryParams: %s", err) + } + + // Increase page query by one to fetch "next" page + urlQuery.Set("page", strconv.Itoa(pages.Page+1)) + + responses, err = client.openApiGetAllPages(apiVersion, urlRefCopy, urlQuery, outType, responses, additionalHeader) + if err != nil { + return nil, fmt.Errorf("got error on page %d: %s", pages.Page, err) + } + } + + } + + return responses, nil +} + +// newOpenApiRequest is a low level function used in upstream OpenAPI functions which handles logging and +// authentication for each API request +func (client *Client) newOpenApiRequest(apiVersion string, params url.Values, method string, reqUrl *url.URL, body io.Reader, additionalHeader map[string]string) *http.Request { + // copy passed in URL ref so that it is not mutated + reqUrlCopy := copyUrlRef(reqUrl) + + // Add the params to our URL + reqUrlCopy.RawQuery += params.Encode() + + // If the body contains data - try to read all contents for logging and re-create another + // io.Reader with all contents to use it down the line + var readBody []byte + var err error + if body != nil { + readBody, err = ioutil.ReadAll(body) + if err != nil { + util.Logger.Printf("[DEBUG - newOpenApiRequest] error reading body: %s", err) + } + body = bytes.NewReader(readBody) + } + + req, err := http.NewRequest(method, reqUrlCopy.String(), body) + if err != nil { + util.Logger.Printf("[DEBUG - newOpenApiRequest] error getting new request: %s", err) + } + + if client.VCDAuthHeader != "" && client.VCDToken != "" { + // Add the authorization header + req.Header.Add(client.VCDAuthHeader, client.VCDToken) + // The deprecated authorization token is 32 characters long + // The bearer token is 612 characters long + if len(client.VCDToken) > 32 { + req.Header.Add("Authorization", "bearer "+client.VCDToken) + req.Header.Add("X-Vmware-Vcloud-Token-Type", "Bearer") + } + // Add the Accept header for VCD + acceptMime := types.JSONMime + ";version=" + apiVersion + req.Header.Add("Accept", acceptMime) + } + + for k, v := range client.customHeader { + for _, v1 := range v { + req.Header.Set(k, v1) + } + } + for k, v := range additionalHeader { + req.Header.Add(k, v) + } + + // Inject JSON mime type + req.Header.Add("Content-Type", types.JSONMime) + + setHttpUserAgent(client.UserAgent, req) + + // Avoids passing data if the logging of requests is disabled + if util.LogHttpRequest { + payload := "" + if req.ContentLength > 0 { + payload = string(readBody) + } + util.ProcessRequestOutput(util.FuncNameCallStack(), method, reqUrlCopy.String(), payload, req) + debugShowRequest(req, payload) + } + + return req +} + +// findRelLink looks for link to "nextPage" in "Link" header. It will return when first occurrence is found. +// Sample Link header: +// Link: [;rel="lastPage"; +// type="application/json";model="AuditTrailEvents" ; +// rel="nextPage";type="application/json";model="AuditTrailEvents"] +// Returns *url.Url or ErrorEntityNotFound +func findRelLink(relFieldName string, header http.Header) (*url.URL, error) { + headerLinks := link.ParseHeader(header) + + for relKeyName, linkAddress := range headerLinks { + switch { + // When map key has more than one name (separated by space). In such cases it can have map key as + // "lastPage nextPage" when nextPage==lastPage or similar and one specific field needs to be matched. + case strings.Contains(relKeyName, " "): + relNameSlice := strings.Split(relKeyName, " ") + for _, oneRelName := range relNameSlice { + if oneRelName == relFieldName { + return url.Parse(linkAddress.String()) + } + } + case relKeyName == relFieldName: + return url.Parse(linkAddress.String()) + } + } + + return nil, ErrorEntityNotFound +} + +// jsonRawMessagesToStrings converts []*json.RawMessage to []string +func jsonRawMessagesToStrings(messages []json.RawMessage) []string { + resultString := make([]string, len(messages)) + for index, message := range messages { + resultString[index] = string(message) + } + + return resultString +} + +// copyOrNewUrlValues either creates a copy of parameters or instantiates a new url.Values if nil parameters are +// supplied. It helps to avoid mutating supplied parameter when additional values must be injected internally. +func copyOrNewUrlValues(parameters url.Values) url.Values { + parameterCopy := make(map[string][]string) + + // if supplied parameters are nil - we just return new initialized + if parameters == nil { + return parameterCopy + } + + // Copy URL values + for key, value := range parameters { + parameterCopy[key] = value + } + + return parameterCopy +} + +// queryParameterFilterAnd is a helper to append "AND" clause to FIQL filter by using ';' (semicolon) if any values are +// already set in 'filter' value of parameters. If none existed before then 'filter' value will be set. +// +// Note. It does a copy of supplied 'parameters' value and does not mutate supplied original parameters. +func queryParameterFilterAnd(filter string, parameters url.Values) url.Values { + newParameters := copyOrNewUrlValues(parameters) + + existingFilter := newParameters.Get("filter") + if existingFilter == "" { + newParameters.Set("filter", filter) + return newParameters + } + + newParameters.Set("filter", existingFilter+";"+filter) + return newParameters +} + +// defaultPageSize allows to set 'pageSize' query parameter to defaultPageSize if one is not already specified in +// url.Values while preserving all other supplied url.Values +func defaultPageSize(queryParams url.Values, defaultPageSize string) url.Values { + newQueryParams := url.Values{} + if queryParams != nil { + newQueryParams = queryParams + } + + if _, ok := newQueryParams["pageSize"]; !ok { + newQueryParams.Set("pageSize", defaultPageSize) + } + + return newQueryParams +} + +// copyUrlRef creates a copy of URL reference by re-parsing it +func copyUrlRef(in *url.URL) *url.URL { + // error is ignored because we expect to have correct URL supplied and this greatly simplifies code inside. + newUrlRef, err := url.Parse(in.String()) + if err != nil { + util.Logger.Printf("[DEBUG - copyUrlRef] error parsing URL: %s", err) + } + return newUrlRef +} + +// shouldDoSlowSearch returns true if query isn't working or added needed params if returns false. +// When the name contains commas, semicolons or asterisks, the encoding is rejected by the API in VCD 10.2 version. +// For this reason, when one or more commas, semicolons or asterisks are present we run the search brute force, +// by fetching all and comparing the name. Yet, this is not needed anymore in VCD 10.3 version. +// Also, url.QueryEscape as well as url.Values.Encode() both encode the space as a + character. So we use +// search brute force too. Reference to issue: +// https://github.com/golang/go/issues/4013 +// https://github.com/czos/goamz/pull/11/files +func shouldDoSlowSearch(filterKey, name string, client *Client) (bool, url.Values, error) { + var params = url.Values{} + slowSearch := false + versionWithNoBug, err := client.VersionEqualOrGreater("10.3", 2) + if err != nil { + return false, params, err + } + if (!versionWithNoBug && (strings.Contains(name, ",") || strings.Contains(name, ";"))) || + strings.Contains(name, " ") || strings.Contains(name, "+") || strings.Contains(name, "*") { + slowSearch = true + } else { + params.Set("filter", fmt.Sprintf(filterKey+"==%s", url.QueryEscape(name))) + params.Set("filterEncoded", "true") + } + return slowSearch, params, err +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_endpoints.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_endpoints.go new file mode 100644 index 000000000..31dfadd2b --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_endpoints.go @@ -0,0 +1,179 @@ +package govcd + +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +import ( + "fmt" + "sort" + "strings" + + "github.com/vmware/go-vcloud-director/v2/util" + + "github.com/hashicorp/go-version" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// endpointMinApiVersions holds mapping of OpenAPI endpoints and API versions they were introduced in. +var endpointMinApiVersions = map[string]string{ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRights: "31.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles: "31.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsCategories: "31.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles: "31.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointGlobalRoles: "31.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + types.OpenApiEndpointRights: "31.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAuditTrail: "33.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointImportableTier0Routers: "32.0", + // OpenApiEndpointExternalNetworks endpoint support was introduced with version 32.0 however it was still not stable + // enough to be used. (i.e. it did not support update "PUT") + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointExternalNetworks: "33.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcComputePolicies: "32.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcAssignedComputePolicies: "33.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointSessionCurrent: "34.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointEdgeClusters: "34.0", // VCD 10.1+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointEdgeGateways: "34.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointFirewallGroups: "34.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtNatRules: "34.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtFirewallRules: "34.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointOrgVdcNetworks: "32.0", // VCD 9.7+ for NSX-V, 10.1+ for NSX-T + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointOrgVdcNetworksDhcp: "32.0", // VCD 9.7+ for NSX-V, 10.1+ for NSX-T + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcCapabilities: "32.0", + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAppPortProfiles: "34.0", // VCD 10.1+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnel: "34.0", // VCD 10.1+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnelConnectionProperties: "34.0", // VCD 10.1+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointIpSecVpnTunnelStatus: "34.0", // VCD 10.1+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroups: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroupsCandidateVdcs: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroupsDfwPolicies: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroupsDfwDefaultPolicies: "35.0", // VCD 10.2+ + + // NSX-T ALB (Advanced/AVI Load Balancer) support was introduced in 10.2 + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbController: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbImportableClouds: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbImportableServiceEngineGroups: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbCloud: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroups: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbEdgeGateway: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbServiceEngineGroupAssignments: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbPools: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbPoolSummaries: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbVirtualServices: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbVirtualServiceSummaries: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointSSLCertificateLibrary: "35.0", // VCD 10.2+ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointSSLCertificateLibraryOld: "35.0", // VCD 10.2+ and deprecated from 10.3 +} + +// elevateNsxtNatRuleApiVersion helps to elevate API version to consume newer NSX-T NAT Rule features +// API V35.2+ supports new fields FirewallMatch and Priority +// API V36.0+ supports new RuleType - REFLEXIVE + +// endpointElevatedApiVersions endpoint elevated API versions +var endpointElevatedApiVersions = map[string][]string{ + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointNsxtNatRules: { + //"34.0", // Basic minimum required version + "35.2", // Introduces support for new fields FirewallMatch and Priority + "36.0", // Adds support for new NAT Rule Type - REFLEXIVE (field Type must be used instead of RuleType) + }, + types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointExternalNetworks: { + //"33.0", // Basic minimum required version + "35.0", // Deprecates field BackingType in favor of BackingTypeValue + "36.0", // Adds support new type of BackingTypeValue - IMPORTED_T_LOGICAL_SWITCH (backed by NSX-T segment) + }, +} + +// checkOpenApiEndpointCompatibility checks if VCD version (to which the client is connected) is sufficient to work with +// specified OpenAPI endpoint and returns either an error or the Api version to use for calling that endpoint. This Api +// version can then be supplied to low level OpenAPI client functions. +// If the system default API version is higher than endpoint introduction version - default system one is used. +func (client *Client) checkOpenApiEndpointCompatibility(endpoint string) (string, error) { + minimumApiVersion, ok := endpointMinApiVersions[endpoint] + if !ok { + return "", fmt.Errorf("minimum API version for endopoint '%s' is not defined", endpoint) + } + + if client.APIVCDMaxVersionIs("< " + minimumApiVersion) { + maxSupportedVersion, err := client.MaxSupportedVersion() + if err != nil { + return "", fmt.Errorf("error reading maximum supported API version: %s", err) + } + return "", fmt.Errorf("endpoint '%s' requires API version to support at least '%s'. Maximum supported version in this instance: '%s'", + endpoint, minimumApiVersion, maxSupportedVersion) + } + + // If default API version is higher than minimum required API version for endpoint - use the system default one. + if client.APIClientVersionIs("> " + minimumApiVersion) { + return client.APIVersion, nil + } + + return minimumApiVersion, nil +} + +// getOpenApiHighestElevatedVersion returns highest supported API version for particular endpoint +// These API versions must be defined in endpointElevatedApiVersions. If none are there - it will return minimum +// supported API versions just like client.checkOpenApiEndpointCompatibility(). +// +// The advantage of this functions is that it provides a controlled API elevation instead of just picking the highest +// which could be risky and untested (especially if new API version is released after release of package consuming this +// SDK) +func (client *Client) getOpenApiHighestElevatedVersion(endpoint string) (string, error) { + util.Logger.Printf("[DEBUG] Checking if elevated API versions are defined for endpoint '%s'", endpoint) + + // At first get minimum API version and check if it can be supported + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return "", fmt.Errorf("error getting minimum required API version: %s", err) + } + + // If no elevated versions are defined - return minimumApiVersion + elevatedVersionSlice, elevatedVersionsDefined := endpointElevatedApiVersions[endpoint] + if !elevatedVersionsDefined { + util.Logger.Printf("[DEBUG] No elevated API versions are defined for endpoint '%s'. Using minimum '%s'", + endpoint, minimumApiVersion) + return minimumApiVersion, nil + } + + util.Logger.Printf("[DEBUG] Found '%d' (%s) elevated API versions for endpoint '%s' ", + len(elevatedVersionSlice), strings.Join(elevatedVersionSlice, ", "), endpoint) + + // Reverse sort (highest to lowest) slice of elevated API versions so that we can start by highest supported and go down + versionsRaw := elevatedVersionSlice + versions := make([]*version.Version, len(versionsRaw)) + for i, raw := range versionsRaw { + v, err := version.NewVersion(raw) + if err != nil { + return "", fmt.Errorf("error evaluating version %s: %s", raw, err) + } + versions[i] = v + } + sort.Sort(sort.Reverse(version.Collection(versions))) + + var supportedElevatedVersion string + // Loop highest to the lowest elevated versions and try to find highest from the list of supported ones + for _, elevatedVersion := range versions { + + util.Logger.Printf("[DEBUG] Checking if elevated version '%s' is supported by VCD instance for endpoint '%s'", + elevatedVersion.Original(), endpoint) + // Check if maximum VCD API version supported is greater or equal to elevated version + if client.APIVCDMaxVersionIs(fmt.Sprintf(">= %s", elevatedVersion.Original())) { + util.Logger.Printf("[DEBUG] Elevated version '%s' is supported by VCD instance for endpoint '%s'", + elevatedVersion.Original(), endpoint) + // highest version found - store it and abort the loop + supportedElevatedVersion = elevatedVersion.Original() + break + } + util.Logger.Printf("[DEBUG] API version '%s' is not supported by VCD instance for endpoint '%s'", + elevatedVersion.Original(), endpoint) + } + + if supportedElevatedVersion == "" { + util.Logger.Printf("[DEBUG] No elevated API versions are supported for endpoint '%s'. Will use minimum "+ + "required version '%s'", endpoint, minimumApiVersion) + return minimumApiVersion, nil + } + + util.Logger.Printf("[DEBUG] Will use elevated version '%s for endpoint '%s'", + supportedElevatedVersion, endpoint) + return supportedElevatedVersion, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_org_network.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_org_network.go new file mode 100644 index 000000000..0425209c7 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_org_network.go @@ -0,0 +1,270 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + "strconv" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// OpenApiOrgVdcNetwork uses OpenAPI endpoint to operate both - NSX-T and NSX-V Org VDC networks +type OpenApiOrgVdcNetwork struct { + OpenApiOrgVdcNetwork *types.OpenApiOrgVdcNetwork + client *Client +} + +// GetOpenApiOrgVdcNetworkById allows to retrieve both - NSX-T and NSX-V Org VDC networks +func (org *Org) GetOpenApiOrgVdcNetworkById(id string) (*OpenApiOrgVdcNetwork, error) { + // Inject Org ID filter to perform filtering on server side + params := url.Values{} + filterParams := queryParameterFilterAnd("orgRef.id=="+org.Org.ID, params) + return getOpenApiOrgVdcNetworkById(org.client, id, filterParams) +} + +// GetOpenApiOrgVdcNetworkById allows to retrieve both - NSX-T and NSX-V Org VDC networks +func (vdc *Vdc) GetOpenApiOrgVdcNetworkById(id string) (*OpenApiOrgVdcNetwork, error) { + // Inject Vdc ID filter to perform filtering on server side + params := url.Values{} + filterParams := queryParameterFilterAnd("orgVdc.id=="+vdc.Vdc.ID, params) + egw, err := getOpenApiOrgVdcNetworkById(vdc.client, id, filterParams) + if err != nil { + return nil, err + } + + return egw, nil +} + +// GetOpenApiOrgVdcNetworkByName allows to retrieve both - NSX-T and NSX-V Org VDC networks +func (vdc *Vdc) GetOpenApiOrgVdcNetworkByName(name string) (*OpenApiOrgVdcNetwork, error) { + queryParameters := url.Values{} + queryParameters.Add("filter", "name=="+name) + + allEdges, err := vdc.GetAllOpenApiOrgVdcNetworks(queryParameters) + if err != nil { + return nil, fmt.Errorf("unable to retrieve Org VDC network by name '%s': %s", name, err) + } + + return returnSingleOpenApiOrgVdcNetwork(name, allEdges) +} + +// GetAllOpenApiOrgVdcNetworks allows to retrieve all NSX-T or NSX-V Org VDC networks +// +// Note. If pageSize > 32 it will be limited to maximum of 32 in this function because API validation does not allow for +// higher number +func (vdc *Vdc) GetAllOpenApiOrgVdcNetworks(queryParameters url.Values) ([]*OpenApiOrgVdcNetwork, error) { + filteredQueryParams := queryParameterFilterAnd("orgVdc.id=="+vdc.Vdc.ID, queryParameters) + return getAllOpenApiOrgVdcNetworks(vdc.client, filteredQueryParams) +} + +// CreateOpenApiOrgVdcNetwork allows to create NSX-T or NSX-V Org VDC network +func (vdc *Vdc) CreateOpenApiOrgVdcNetwork(OrgVdcNetworkConfig *types.OpenApiOrgVdcNetwork) (*OpenApiOrgVdcNetwork, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointOrgVdcNetworks + minimumApiVersion, err := vdc.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := vdc.client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnEgw := &OpenApiOrgVdcNetwork{ + OpenApiOrgVdcNetwork: &types.OpenApiOrgVdcNetwork{}, + client: vdc.client, + } + + err = vdc.client.OpenApiPostItem(minimumApiVersion, urlRef, nil, OrgVdcNetworkConfig, returnEgw.OpenApiOrgVdcNetwork, nil) + if err != nil { + return nil, fmt.Errorf("error creating Org VDC network: %s", err) + } + + return returnEgw, nil +} + +// Update allows to update Org VDC network +func (orgVdcNet *OpenApiOrgVdcNetwork) Update(OrgVdcNetworkConfig *types.OpenApiOrgVdcNetwork) (*OpenApiOrgVdcNetwork, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointOrgVdcNetworks + minimumApiVersion, err := orgVdcNet.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if OrgVdcNetworkConfig.ID == "" { + return nil, fmt.Errorf("cannot update Org VDC network without ID") + } + + urlRef, err := orgVdcNet.client.OpenApiBuildEndpoint(endpoint, OrgVdcNetworkConfig.ID) + if err != nil { + return nil, err + } + + returnEgw := &OpenApiOrgVdcNetwork{ + OpenApiOrgVdcNetwork: &types.OpenApiOrgVdcNetwork{}, + client: orgVdcNet.client, + } + + err = orgVdcNet.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, OrgVdcNetworkConfig, returnEgw.OpenApiOrgVdcNetwork, nil) + if err != nil { + return nil, fmt.Errorf("error updating Org VDC network: %s", err) + } + + return returnEgw, nil +} + +// Delete allows to delete Org VDC network +func (orgVdcNet *OpenApiOrgVdcNetwork) Delete() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointOrgVdcNetworks + minimumApiVersion, err := orgVdcNet.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if orgVdcNet.OpenApiOrgVdcNetwork.ID == "" { + return fmt.Errorf("cannot delete Org VDC network without ID") + } + + urlRef, err := orgVdcNet.client.OpenApiBuildEndpoint(endpoint, orgVdcNet.OpenApiOrgVdcNetwork.ID) + if err != nil { + return err + } + + err = orgVdcNet.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting Org VDC network: %s", err) + } + + return nil +} + +// GetType returns type of Org VDC network +func (orgVdcNet *OpenApiOrgVdcNetwork) GetType() string { + return orgVdcNet.OpenApiOrgVdcNetwork.NetworkType +} + +// IsIsolated returns true if the network type is isolated (NSX-V and NSX-T) +func (orgVdcNet *OpenApiOrgVdcNetwork) IsIsolated() bool { + return orgVdcNet.GetType() == types.OrgVdcNetworkTypeIsolated +} + +// IsRouted returns true if the network type is isolated (NSX-V and NSX-T) +func (orgVdcNet *OpenApiOrgVdcNetwork) IsRouted() bool { + return orgVdcNet.GetType() == types.OrgVdcNetworkTypeRouted +} + +// IsImported returns true if the network type is imported (NSX-T only) +func (orgVdcNet *OpenApiOrgVdcNetwork) IsImported() bool { + return orgVdcNet.GetType() == types.OrgVdcNetworkTypeOpaque +} + +// IsDirect returns true if the network type is direct (NSX-V only) +func (orgVdcNet *OpenApiOrgVdcNetwork) IsDirect() bool { + return orgVdcNet.GetType() == types.OrgVdcNetworkTypeDirect +} + +// getOpenApiOrgVdcNetworkById is a private parent for wrapped functions: +// func (org *Org) GetOpenApiOrgVdcNetworkById(id string) (*OpenApiOrgVdcNetwork, error) +// func (vdc *Vdc) GetOpenApiOrgVdcNetworkById(id string) (*OpenApiOrgVdcNetwork, error) +func getOpenApiOrgVdcNetworkById(client *Client, id string, queryParameters url.Values) (*OpenApiOrgVdcNetwork, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointOrgVdcNetworks + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty Org VDC network ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + egw := &OpenApiOrgVdcNetwork{ + OpenApiOrgVdcNetwork: &types.OpenApiOrgVdcNetwork{}, + client: client, + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, queryParameters, egw.OpenApiOrgVdcNetwork, nil) + if err != nil { + return nil, err + } + + return egw, nil +} + +// returnSingleOpenApiOrgVdcNetwork helps to reduce code duplication for `GetOpenApiOrgVdcNetworkByName` functions with different +// receivers +func returnSingleOpenApiOrgVdcNetwork(name string, allEdges []*OpenApiOrgVdcNetwork) (*OpenApiOrgVdcNetwork, error) { + if len(allEdges) > 1 { + return nil, fmt.Errorf("got more than one Org VDC network by name '%s' %d", name, len(allEdges)) + } + + if len(allEdges) < 1 { + return nil, fmt.Errorf("%s: got zero Org VDC networks by name '%s'", ErrorEntityNotFound, name) + } + + return allEdges[0], nil +} + +// getAllOpenApiOrgVdcNetworks is a private parent for wrapped functions: +// func (vdc *Vdc) GetAllOpenApiOrgVdcNetworks(queryParameters url.Values) ([]*OpenApiOrgVdcNetwork, error) +// +// Note. If pageSize > 32 it will be limited to maximum of 32 in this function because API validation does not allow +// higher number +func getAllOpenApiOrgVdcNetworks(client *Client, queryParameters url.Values) ([]*OpenApiOrgVdcNetwork, error) { + + // Enforce maximum pageSize to be 32 as API endpoint throws error if it is > 32 + pageSizeString := queryParameters.Get("pageSize") + + switch pageSizeString { + // If no pageSize is specified it must be set to 32 as by default low level API function OpenApiGetAllItems sets 128 + case "": + queryParameters.Set("pageSize", "32") + + // If pageSize is specified ensure it is not >32 + default: + pageSizeValue, err := strconv.Atoi(pageSizeString) + if err != nil { + return nil, fmt.Errorf("error parsing pageSize value: %s", err) + } + if pageSizeString != "" && pageSizeValue > 32 { + queryParameters.Set("pageSize", "32") + } + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointOrgVdcNetworks + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.OpenApiOrgVdcNetwork{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses, nil) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into OpenApiOrgVdcNetwork types with client + wrappedResponses := make([]*OpenApiOrgVdcNetwork, len(typeResponses)) + for sliceIndex := range typeResponses { + wrappedResponses[sliceIndex] = &OpenApiOrgVdcNetwork{ + OpenApiOrgVdcNetwork: typeResponses[sliceIndex], + client: client, + } + } + + return wrappedResponses, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_org_network_dhcp.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_org_network_dhcp.go new file mode 100644 index 000000000..a059d1fd1 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/openapi_org_network_dhcp.go @@ -0,0 +1,112 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// OpenApiOrgVdcNetwork uses OpenAPI endpoint to operate both - NSX-T and NSX-V Org VDC network DHCP settings +type OpenApiOrgVdcNetworkDhcp struct { + OpenApiOrgVdcNetworkDhcp *types.OpenApiOrgVdcNetworkDhcp + client *Client +} + +// GetOpenApiOrgVdcNetworkDhcp allows to retrieve DHCP configuration for specific Org VDC network +// ID specified as orgNetworkId using OpenAPI +func (vdc *Vdc) GetOpenApiOrgVdcNetworkDhcp(orgNetworkId string) (*OpenApiOrgVdcNetworkDhcp, error) { + + client := vdc.client + // Inject Vdc ID filter to perform filtering on server side + params := url.Values{} + queryParameters := queryParameterFilterAnd("orgVdc.id=="+vdc.Vdc.ID, params) + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointOrgVdcNetworksDhcp + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if orgNetworkId == "" { + return nil, fmt.Errorf("empty Org VDC network ID") + } + + urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, orgNetworkId)) + if err != nil { + return nil, err + } + + orgNetDhcp := &OpenApiOrgVdcNetworkDhcp{ + OpenApiOrgVdcNetworkDhcp: &types.OpenApiOrgVdcNetworkDhcp{}, + client: client, + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, queryParameters, orgNetDhcp.OpenApiOrgVdcNetworkDhcp, nil) + if err != nil { + return nil, err + } + + return orgNetDhcp, nil +} + +// UpdateOpenApiOrgVdcNetworkDhcp allows to update DHCP configuration for specific Org VDC network +// ID specified as orgNetworkId using OpenAPI +func (vdc *Vdc) UpdateOpenApiOrgVdcNetworkDhcp(orgNetworkId string, orgVdcNetworkDhcpConfig *types.OpenApiOrgVdcNetworkDhcp) (*OpenApiOrgVdcNetworkDhcp, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointOrgVdcNetworksDhcp + minimumApiVersion, err := vdc.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := vdc.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, orgNetworkId)) + if err != nil { + return nil, err + } + + orgNetDhcpResponse := &OpenApiOrgVdcNetworkDhcp{ + OpenApiOrgVdcNetworkDhcp: &types.OpenApiOrgVdcNetworkDhcp{}, + client: vdc.client, + } + + err = vdc.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, orgVdcNetworkDhcpConfig, orgNetDhcpResponse.OpenApiOrgVdcNetworkDhcp, nil) + if err != nil { + return nil, fmt.Errorf("error updating Org VDC network DHCP configuration: %s", err) + } + + return orgNetDhcpResponse, nil +} + +// DeleteOpenApiOrgVdcNetworkDhcp allows to perform HTTP DELETE request on DHCP pool configuration for specified Org VDC +// Network ID +// +// Note. VCD Versions before 10.2 do not allow to perform "DELETE" on DHCP pool and will return error. The way to +// remove DHCP configuration is to recreate Org VDC network itself. +func (vdc *Vdc) DeleteOpenApiOrgVdcNetworkDhcp(orgNetworkId string) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointOrgVdcNetworksDhcp + minimumApiVersion, err := vdc.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if orgNetworkId == "" { + return fmt.Errorf("cannot delete Org VDC network DHCP configuration without ID") + } + + urlRef, err := vdc.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, orgNetworkId)) + if err != nil { + return err + } + + err = vdc.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting Org VDC network DHCP configuration: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/org.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/org.go new file mode 100644 index 000000000..9e89dd02e --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/org.go @@ -0,0 +1,583 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/http" + "net/url" + "strings" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type Org struct { + Org *types.Org + client *Client + TenantContext *TenantContext +} + +func NewOrg(client *Client) *Org { + return &Org{ + Org: new(types.Org), + client: client, + } +} + +// Given an org with a valid HREF, the function refetches the org +// and updates the user's org data. Otherwise if the function fails, +// it returns an error. Users should use refresh whenever they have +// a stale org due to the creation/update/deletion of a resource +// within the org or the org itself. +func (org *Org) Refresh() error { + if *org == (Org{}) { + return fmt.Errorf("cannot refresh, Object is empty") + } + + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + unmarshalledOrg := &types.Org{} + + _, err := org.client.ExecuteRequest(org.Org.HREF, http.MethodGet, + "", "error refreshing organization: %s", nil, unmarshalledOrg) + if err != nil { + return err + } + org.Org = unmarshalledOrg + + // The request was successful + return nil +} + +// Given a valid catalog name, FindCatalog returns a Catalog object. +// If no catalog is found, then returns an empty catalog and no error. +// Otherwise it returns an error. +// Deprecated: use org.GetCatalogByName instead +func (org *Org) FindCatalog(catalogName string) (Catalog, error) { + + for _, link := range org.Org.Link { + if link.Rel == "down" && link.Type == "application/vnd.vmware.vcloud.catalog+xml" && link.Name == catalogName { + + cat := NewCatalog(org.client) + + _, err := org.client.ExecuteRequest(link.HREF, http.MethodGet, + "", "error retrieving catalog: %s", nil, cat.Catalog) + + return *cat, err + } + } + + return Catalog{}, nil +} + +// GetVdcByName if user specifies valid vdc name then this returns a vdc object. +// If no vdc is found, then it returns an empty vdc and no error. +// Otherwise it returns an empty vdc and an error. +// Deprecated: use org.GetVDCByName instead +func (org *Org) GetVdcByName(vdcname string) (Vdc, error) { + for _, link := range org.Org.Link { + if link.Name == vdcname { + vdc := NewVdc(org.client) + vdc.parent = org + + _, err := org.client.ExecuteRequest(link.HREF, http.MethodGet, + "", "error retrieving vdc: %s", nil, vdc.Vdc) + + return *vdc, err + } + } + return Vdc{}, nil +} + +// CreateCatalog creates a catalog with specified name and description +func CreateCatalog(client *Client, links types.LinkList, Name, Description string) (AdminCatalog, error) { + adminCatalog, err := CreateCatalogWithStorageProfile(client, links, Name, Description, nil) + if err != nil { + return AdminCatalog{}, nil + } + return *adminCatalog, nil +} + +// CreateCatalogWithStorageProfile is like CreateCatalog, but allows to specify storage profile +func CreateCatalogWithStorageProfile(client *Client, links types.LinkList, Name, Description string, storageProfiles *types.CatalogStorageProfiles) (*AdminCatalog, error) { + reqCatalog := &types.Catalog{ + Name: Name, + Description: Description, + } + vcomp := &types.AdminCatalog{ + Xmlns: types.XMLNamespaceVCloud, + Catalog: *reqCatalog, + CatalogStorageProfiles: storageProfiles, + } + + var createOrgLink *types.Link + for _, link := range links { + if link.Rel == "add" && link.Type == types.MimeAdminCatalog { + util.Logger.Printf("[TRACE] Create org - found the proper link for request, HREF: %s, "+ + "name: %s, type: %s, id: %s, rel: %s \n", link.HREF, link.Name, link.Type, link.ID, link.Rel) + createOrgLink = link + } + } + + if createOrgLink == nil { + return nil, fmt.Errorf("creating catalog failed to find url") + } + + catalog := NewAdminCatalog(client) + _, err := client.ExecuteRequest(createOrgLink.HREF, http.MethodPost, + "application/vnd.vmware.admin.catalog+xml", "error creating catalog: %s", vcomp, catalog.AdminCatalog) + + return catalog, err +} + +// CreateCatalog creates a catalog with given name and description under +// the given organization. Returns an Catalog that contains a creation +// task. +// API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/POST-CreateCatalog.html +func (org *Org) CreateCatalog(name, description string) (Catalog, error) { + catalog, err := org.CreateCatalogWithStorageProfile(name, description, nil) + if err != nil { + return Catalog{}, err + } + return *catalog, nil +} + +// CreateCatalogWithStorageProfile is like CreateCatalog but additionally allows to specify storage profiles +func (org *Org) CreateCatalogWithStorageProfile(name, description string, storageProfiles *types.CatalogStorageProfiles) (*Catalog, error) { + catalog := NewCatalog(org.client) + adminCatalog, err := CreateCatalogWithStorageProfile(org.client, org.Org.Link, name, description, storageProfiles) + if err != nil { + return nil, err + } + catalog.Catalog = &adminCatalog.AdminCatalog.Catalog + return catalog, nil +} + +func validateVdcConfiguration(vdcDefinition *types.VdcConfiguration) error { + if vdcDefinition.Name == "" { + return errors.New("VdcConfiguration missing required field: Name") + } + if vdcDefinition.AllocationModel == "" { + return errors.New("VdcConfiguration missing required field: AllocationModel") + } + if vdcDefinition.ComputeCapacity == nil { + return errors.New("VdcConfiguration missing required field: ComputeCapacity") + } + if len(vdcDefinition.ComputeCapacity) != 1 { + return errors.New("VdcConfiguration invalid field: ComputeCapacity must only have one element") + } + if vdcDefinition.ComputeCapacity[0] == nil { + return errors.New("VdcConfiguration missing required field: ComputeCapacity[0]") + } + if vdcDefinition.ComputeCapacity[0].CPU == nil { + return errors.New("VdcConfiguration missing required field: ComputeCapacity[0].CPU") + } + if vdcDefinition.ComputeCapacity[0].CPU.Units == "" { + return errors.New("VdcConfiguration missing required field: ComputeCapacity[0].CPU.Units") + } + if vdcDefinition.ComputeCapacity[0].Memory == nil { + return errors.New("VdcConfiguration missing required field: ComputeCapacity[0].Memory") + } + if vdcDefinition.ComputeCapacity[0].Memory.Units == "" { + return errors.New("VdcConfiguration missing required field: ComputeCapacity[0].Memory.Units") + } + if vdcDefinition.VdcStorageProfile == nil || len(vdcDefinition.VdcStorageProfile) == 0 { + return errors.New("VdcConfiguration missing required field: VdcStorageProfile") + } + if vdcDefinition.VdcStorageProfile[0].Units == "" { + return errors.New("VdcConfiguration missing required field: VdcStorageProfile.Units") + } + if vdcDefinition.ProviderVdcReference == nil { + return errors.New("VdcConfiguration missing required field: ProviderVdcReference") + } + if vdcDefinition.ProviderVdcReference.HREF == "" { + return errors.New("VdcConfiguration missing required field: ProviderVdcReference.HREF") + } + return nil +} + +// GetCatalogByHref finds a Catalog by HREF +// On success, returns a pointer to the Catalog structure and a nil error +// On failure, returns a nil pointer and an error +func (org *Org) GetCatalogByHref(catalogHref string) (*Catalog, error) { + cat := NewCatalog(org.client) + + _, err := org.client.ExecuteRequest(catalogHref, http.MethodGet, + "", "error retrieving catalog: %s", nil, cat.Catalog) + if err != nil { + return nil, err + } + // The request was successful + cat.parent = org + return cat, nil +} + +// GetCatalogByName finds a Catalog by Name +// On success, returns a pointer to the Catalog structure and a nil error +// On failure, returns a nil pointer and an error +// +// refresh has no effect here, but is kept to preserve signature +func (org *Org) GetCatalogByName(catalogName string, refresh bool) (*Catalog, error) { + vdcQuery, err := org.queryCatalogByName(catalogName) + if ContainsNotFound(err) { + return nil, ErrorEntityNotFound + } + if err != nil { + return nil, fmt.Errorf("error querying Catalog: %s", err) + } + // This is not an AdminOrg and admin HREF must be removed if it exists + href := strings.Replace(vdcQuery.HREF, "/api/admin", "/api", 1) + return org.GetCatalogByHref(href) +} + +// GetCatalogById finds a Catalog by ID +// On success, returns a pointer to the Catalog structure and a nil error +// On failure, returns a nil pointer and an error +func (org *Org) GetCatalogById(catalogId string, refresh bool) (*Catalog, error) { + vdcQuery, err := org.queryCatalogById(catalogId) + if ContainsNotFound(err) { + return nil, ErrorEntityNotFound + } + if err != nil { + return nil, fmt.Errorf("error querying Catalog: %s", err) + } + + // This is not an AdminOrg and admin HREF must be removed if it exists + href := strings.Replace(vdcQuery.HREF, "/api/admin", "/api", 1) + return org.GetCatalogByHref(href) +} + +// GetCatalogByNameOrId finds a Catalog by name or ID +// On success, returns a pointer to the Catalog structure and a nil error +// On failure, returns a nil pointer and an error +func (org *Org) GetCatalogByNameOrId(identifier string, refresh bool) (*Catalog, error) { + getByName := func(name string, refresh bool) (interface{}, error) { + return org.GetCatalogByName(name, refresh) + } + getById := func(id string, refresh bool) (interface{}, error) { + return org.GetCatalogById(id, refresh) + } + entity, err := getEntityByNameOrIdSkipNonId(getByName, getById, identifier, refresh) + if entity == nil { + return nil, err + } + return entity.(*Catalog), err +} + +// GetVDCByHref finds a VDC by HREF +// On success, returns a pointer to the VDC structure and a nil error +// On failure, returns a nil pointer and an error +func (org *Org) GetVDCByHref(vdcHref string) (*Vdc, error) { + vdc := NewVdc(org.client) + _, err := org.client.ExecuteRequest(vdcHref, http.MethodGet, + "", "error retrieving VDC: %s", nil, vdc.Vdc) + if err != nil { + return nil, err + } + // The request was successful + vdc.parent = org + return vdc, nil +} + +// GetVDCByName finds a VDC by Name +// On success, returns a pointer to the VDC structure and a nil error +// On failure, returns a nil pointer and an error +// +// refresh has no effect and is kept to preserve signature +func (org *Org) GetVDCByName(vdcName string, refresh bool) (*Vdc, error) { + vdcQuery, err := org.queryOrgVdcByName(vdcName) + if ContainsNotFound(err) { + return nil, ErrorEntityNotFound + } + if err != nil { + return nil, fmt.Errorf("error querying VDC: %s", err) + } + // This is not an AdminOrg and admin HREF must be removed if it exists + href := strings.Replace(vdcQuery.HREF, "/api/admin", "/api", 1) + return org.GetVDCByHref(href) +} + +// GetVDCById finds a VDC by ID +// On success, returns a pointer to the VDC structure and a nil error +// On failure, returns a nil pointer and an error +// +// refresh has no effect and is kept to preserve signature +func (org *Org) GetVDCById(vdcId string, refresh bool) (*Vdc, error) { + vdcQuery, err := org.queryOrgVdcById(vdcId) + if ContainsNotFound(err) { + return nil, ErrorEntityNotFound + } + if err != nil { + return nil, fmt.Errorf("error querying VDC: %s", err) + } + + // This is not an AdminOrg and admin HREF must be removed if it exists + href := strings.Replace(vdcQuery.HREF, "/api/admin", "/api", 1) + return org.GetVDCByHref(href) +} + +// GetVDCByNameOrId finds a VDC by name or ID +// On success, returns a pointer to the VDC structure and a nil error +// On failure, returns a nil pointer and an error +// +// refresh has no effect and is kept to preserve signature +func (org *Org) GetVDCByNameOrId(identifier string, refresh bool) (*Vdc, error) { + getByName := func(name string, refresh bool) (interface{}, error) { + return org.GetVDCByName(name, refresh) + } + getById := func(id string, refresh bool) (interface{}, error) { + return org.GetVDCById(id, refresh) + } + entity, err := getEntityByNameOrIdSkipNonId(getByName, getById, identifier, refresh) + if entity == nil { + return nil, err + } + return entity.(*Vdc), err +} + +// QueryCatalogList returns a list of catalogs for this organization +func (org *Org) QueryCatalogList() ([]*types.CatalogRecord, error) { + util.Logger.Printf("[DEBUG] QueryCatalogList with Org HREF %s", org.Org.HREF) + filter := map[string]string{ + "org": org.Org.HREF, + } + return queryCatalogList(org.client, filter) +} + +// GetTaskList returns Tasks for Organization and error. +func (org *Org) GetTaskList() (*types.TasksList, error) { + + for _, link := range org.Org.Link { + if link.Rel == "down" && link.Type == "application/vnd.vmware.vcloud.tasksList+xml" { + + tasksList := &types.TasksList{} + + _, err := org.client.ExecuteRequest(link.HREF, http.MethodGet, "", + "error getting taskList: %s", nil, tasksList) + if err != nil { + return nil, err + } + + return tasksList, nil + } + } + + return nil, fmt.Errorf("link not found") +} + +// queryOrgVdcByName returns a single QueryResultOrgVdcRecordType +func (org *Org) queryOrgVdcByName(vdcName string) (*types.QueryResultOrgVdcRecordType, error) { + filterFields := map[string]string{ + "org": org.Org.HREF, + "orgName": org.Org.Name, + "name": vdcName, + } + allVdcs, err := queryOrgVdcList(org.client, filterFields) + if err != nil { + return nil, err + } + + if allVdcs == nil || len(allVdcs) < 1 { + return nil, ErrorEntityNotFound + } + + if len(allVdcs) > 1 { + return nil, fmt.Errorf("found more than 1 VDC with Name '%s'", vdcName) + } + + return allVdcs[0], nil +} + +// queryOrgVdcById returns a single QueryResultOrgVdcRecordType +func (org *Org) queryOrgVdcById(vdcId string) (*types.QueryResultOrgVdcRecordType, error) { + filterMap := map[string]string{ + "org": org.Org.HREF, + "orgName": org.Org.Name, + "id": vdcId, + } + allVdcs, err := queryOrgVdcList(org.client, filterMap) + + if err != nil { + return nil, err + } + + if len(allVdcs) < 1 { + return nil, ErrorEntityNotFound + } + + return allVdcs[0], nil +} + +// queryCatalogByName returns a single CatalogRecord +func (org *Org) queryCatalogByName(catalogName string) (*types.CatalogRecord, error) { + filterMap := map[string]string{ + // Not injecting `org` or `orgName` here because shared catalogs may also appear here and they would have different + // parent Org + // "org": org.Org.HREF, + // "orgName": org.Org.Name, + "name": catalogName, + } + allCatalogs, err := queryCatalogList(org.client, filterMap) + if err != nil { + return nil, err + } + + if allCatalogs == nil || len(allCatalogs) < 1 { + return nil, ErrorEntityNotFound + } + + // To conform with this API standard it would be best to return an error if more than 1 item is found, but because + // previous method of getting Catalog by Name returned the first result we are doing the same here + // if len(allCatalogs) > 1 { + // return nil, fmt.Errorf("found more than 1 Catalog with Name '%s'", catalogName) + // } + + var localCatalog *types.CatalogRecord + // if multiple results are found - return the one defined in `org` (local) + if len(allCatalogs) > 1 { + util.Logger.Printf("[DEBUG] org.queryCatalogByName found %d Catalogs by name '%s'", len(allCatalogs), catalogName) + for _, catalog := range allCatalogs { + util.Logger.Printf("[DEBUG] org.queryCatalogByName found a Catalog by name '%s' in Org '%s'", catalogName, catalog.OrgName) + if catalog.OrgName == org.Org.Name { + util.Logger.Printf("[DEBUG] org.queryCatalogByName Catalog '%s' is local for Org '%s'. Prioritising it", + catalogName, org.Org.Name) + // Not interrupting the loop here to still dump all results to logs + localCatalog = catalog + } + } + } + + // local catalog was found - return it + if localCatalog != nil { + return localCatalog, nil + } + + // If only one catalog is found or multiple catalogs with no local ones - return the first one + return allCatalogs[0], nil +} + +// queryCatalogById returns a single QueryResultOrgVdcRecordType +func (org *Org) queryCatalogById(catalogId string) (*types.CatalogRecord, error) { + filterMap := map[string]string{ + // Not injecting `org` or `orgName` here because shared catalogs may also appear here and they would have different + // parent Org + // "org": org.Org.HREF, + // "orgName": org.Org.Name, + "id": catalogId, + } + allCatalogs, err := queryCatalogList(org.client, filterMap) + + if err != nil { + return nil, err + } + + if len(allCatalogs) < 1 { + return nil, ErrorEntityNotFound + } + + return allCatalogs[0], nil +} + +// QueryOrgVdcList returns all Org VDCs using query endpoint +// +// Note. Being a 'System' user it will not return any VDC +func (org *Org) QueryOrgVdcList() ([]*types.QueryResultOrgVdcRecordType, error) { + filter := map[string]string{ + "org": org.Org.HREF, + } + + return queryOrgVdcList(org.client, filter) +} + +// queryOrgVdcList performs an `orgVdc` or `adminOrgVdc` (for System user) and optionally applies filterFields +func queryOrgVdcList(client *Client, filterFields map[string]string) ([]*types.QueryResultOrgVdcRecordType, error) { + util.Logger.Printf("[DEBUG] queryOrgVdcList with filter %#v", filterFields) + queryType := client.GetQueryType(types.QtOrgVdc) + + filter := map[string]string{ + "type": queryType, + } + + // When a map of filters with non empty keys and values is supplied - apply it + if filterFields != nil { + filterSlice := make([]string, 0) + + for filterFieldName, filterFieldValue := range filterFields { + // Do not inject 'org' filter for System user as API returns an error + if !client.IsSysAdmin && filterFieldName == "org" { + continue + } + + if filterFieldName != "" && filterFieldValue != "" { + filterText := fmt.Sprintf("%s==%s", filterFieldName, url.QueryEscape(filterFieldValue)) + filterSlice = append(filterSlice, filterText) + } + } + + if len(filterSlice) > 0 { + filter["filter"] = strings.Join(filterSlice, ";") + filter["filterEncoded"] = "true" + } + } + + results, err := client.cumulativeQuery(queryType, nil, filter) + if err != nil { + return nil, fmt.Errorf("error querying Org VDCs %s", err) + } + + if client.IsSysAdmin { + return results.Results.OrgVdcAdminRecord, nil + } else { + return results.Results.OrgVdcRecord, nil + } +} + +func queryCatalogList(client *Client, filterFields map[string]string) ([]*types.CatalogRecord, error) { + util.Logger.Printf("[DEBUG] queryCatalogList with filter %#v", filterFields) + queryType := client.GetQueryType(types.QtCatalog) + + filter := map[string]string{ + "type": queryType, + } + + // When a map of filters with non empty keys and values is supplied - apply it + if filterFields != nil { + filterSlice := make([]string, 0) + + for filterFieldName, filterFieldValue := range filterFields { + // Do not inject 'org' filter for System user as API returns an error + if !client.IsSysAdmin && filterFieldName == "org" { + continue + } + + if filterFieldName != "" && filterFieldValue != "" { + filterText := fmt.Sprintf("%s==%s", filterFieldName, url.QueryEscape(filterFieldValue)) + filterSlice = append(filterSlice, filterText) + } + } + + if len(filterSlice) > 0 { + filter["filter"] = strings.Join(filterSlice, ";") + filter["filterEncoded"] = "true" + } + } + + results, err := client.cumulativeQuery(queryType, nil, filter) + if err != nil { + return nil, err + } + + var catalogs []*types.CatalogRecord + + if client.IsSysAdmin { + catalogs = results.Results.AdminCatalogRecord + } else { + catalogs = results.Results.CatalogRecord + } + util.Logger.Printf("[DEBUG] QueryCatalogList returned with : %#v and error: %s", catalogs, err) + return catalogs, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/orgvdcnetwork.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/orgvdcnetwork.go new file mode 100644 index 000000000..040d22236 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/orgvdcnetwork.go @@ -0,0 +1,352 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "bytes" + "encoding/xml" + "fmt" + "net/http" + "net/url" + "os" + "regexp" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// OrgVDCNetwork an org vdc network client +type OrgVDCNetwork struct { + OrgVDCNetwork *types.OrgVDCNetwork + client *Client +} + +var reErrorBusy2 = regexp.MustCompile("is busy, cannot proceed with the operation.$") + +// NewOrgVDCNetwork creates an org vdc network client +func NewOrgVDCNetwork(cli *Client) *OrgVDCNetwork { + return &OrgVDCNetwork{ + OrgVDCNetwork: new(types.OrgVDCNetwork), + client: cli, + } +} + +func (orgVdcNet *OrgVDCNetwork) Refresh() error { + if orgVdcNet.OrgVDCNetwork.HREF == "" { + return fmt.Errorf("cannot refresh, Object is empty") + } + + refreshUrl := orgVdcNet.OrgVDCNetwork.HREF + + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + orgVdcNet.OrgVDCNetwork = &types.OrgVDCNetwork{} + + _, err := orgVdcNet.client.ExecuteRequest(refreshUrl, http.MethodGet, + "", "error retrieving vDC network: %s", nil, orgVdcNet.OrgVDCNetwork) + + return err +} + +// Delete a network. Fails if the network is busy. +// Returns a task to monitor the deletion. +func (orgVdcNet *OrgVDCNetwork) Delete() (Task, error) { + err := orgVdcNet.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing network: %s", err) + } + pathArr := strings.Split(orgVdcNet.OrgVDCNetwork.HREF, "/") + apiEndpoint := urlParseRequestURI(orgVdcNet.OrgVDCNetwork.HREF) + apiEndpoint.Path = "/api/admin/network/" + pathArr[len(pathArr)-1] + + var resp *http.Response + for { + req := orgVdcNet.client.NewRequest(map[string]string{}, http.MethodDelete, *apiEndpoint, nil) + resp, err = checkResp(orgVdcNet.client.Http.Do(req)) + if err != nil { + if reErrorBusy2.MatchString(err.Error()) { + time.Sleep(3 * time.Second) + continue + } + return Task{}, fmt.Errorf("error deleting Network: %s", err) + } + break + } + + task := NewTask(orgVdcNet.client) + + if err = decodeBody(types.BodyTypeXML, resp, task.Task); err != nil { + return Task{}, fmt.Errorf("error decoding Task response: %s", err) + } + + // The request was successful + return *task, nil +} + +// RemoveOrgVdcNetworkIfExists looks for an Org Vdc network and, if found, will delete it. +func RemoveOrgVdcNetworkIfExists(vdc Vdc, networkName string) error { + network, err := vdc.GetOrgVdcNetworkByName(networkName, true) + + if IsNotFound(err) { + // Network not found. No action needed + return nil + } + if err != nil { + // Some other error happened during retrieval. We pass it along + return err + } + // The network was found. We attempt deletion + task, err := network.Delete() + if err != nil { + return fmt.Errorf("error deleting network '%s' [phase 1]: %s", networkName, err) + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error deleting network '%s' [task]: %s", networkName, err) + } + return nil +} + +// A wrapper call around CreateOrgVDCNetwork. +// Creates a network and then uses the associated task to monitor its configuration +func (vdc *Vdc) CreateOrgVDCNetworkWait(networkConfig *types.OrgVDCNetwork) error { + + task, err := vdc.CreateOrgVDCNetwork(networkConfig) + if err != nil { + return fmt.Errorf("error creating the network: %s", err) + } + if task == (Task{}) { + return fmt.Errorf("NULL task retrieved after network creation") + + } + err = task.WaitTaskCompletion() + // err = task.WaitInspectTaskCompletion(InspectTask, 10) + if err != nil { + return fmt.Errorf("error performing task: %s", err) + } + return nil +} + +// Fine tuning network creation function. +// Return an error (the result of the network creation) and a task (used to monitor +// the network configuration) +// This function can create any type of Org Vdc network. The exact type is determined by +// the combination of properties given with the network configuration structure. +func (vdc *Vdc) CreateOrgVDCNetwork(networkConfig *types.OrgVDCNetwork) (Task, error) { + for _, av := range vdc.Vdc.Link { + if av.Rel == "add" && av.Type == "application/vnd.vmware.vcloud.orgVdcNetwork+xml" { + createUrl, err := url.ParseRequestURI(av.HREF) + + if err != nil { + return Task{}, fmt.Errorf("error decoding vdc response: %s", err) + } + + networkConfig.Xmlns = types.XMLNamespaceVCloud + + output, err := xml.MarshalIndent(networkConfig, " ", " ") + if err != nil { + return Task{}, fmt.Errorf("error marshaling OrgVDCNetwork compose: %s", err) + } + + var resp *http.Response + for { + b := bytes.NewBufferString(xml.Header + string(output)) + util.Logger.Printf("[DEBUG] VCD Client configuration: %s", b) + req := vdc.client.NewRequest(map[string]string{}, http.MethodPost, *createUrl, b) + req.Header.Add("Content-Type", av.Type) + resp, err = checkResp(vdc.client.Http.Do(req)) + if err != nil { + if reErrorBusy2.MatchString(err.Error()) { + time.Sleep(3 * time.Second) + continue + } + return Task{}, fmt.Errorf("error instantiating a new OrgVDCNetwork: %s", err) + } + break + } + orgVDCNetwork := NewOrgVDCNetwork(vdc.client) + if err = decodeBody(types.BodyTypeXML, resp, orgVDCNetwork.OrgVDCNetwork); err != nil { + return Task{}, fmt.Errorf("error decoding orgvdcnetwork response: %s", err) + } + activeTasks := 0 + // Makes sure that there is only one active task for this network. + for _, taskItem := range orgVDCNetwork.OrgVDCNetwork.Tasks.Task { + if taskItem.HREF != "" { + activeTasks += 1 + if os.Getenv("GOVCD_DEBUG") != "" { + fmt.Printf("task %s (%s) is active\n", taskItem.HREF, taskItem.Status) + } + } + } + if activeTasks > 1 { + // By my understanding of the implementation, there should not be more than one task for this operation. + // If there is, we will need to change the logic of this function, as we can only return one task. (GM) + return Task{}, fmt.Errorf("found %d active tasks instead of one", activeTasks) + } + for _, taskItem := range orgVDCNetwork.OrgVDCNetwork.Tasks.Task { + return Task{taskItem, vdc.client}, nil + } + return Task{}, fmt.Errorf("[%s] no suitable task found", util.CurrentFuncName()) + } + } + return Task{}, fmt.Errorf("network creation failed: no operational link found") +} + +// GetNetworkList returns a list of networks for the VDC +func (vdc *Vdc) GetNetworkList() ([]*types.QueryResultOrgVdcNetworkRecordType, error) { + // Find the list of networks with the wanted name + result, err := vdc.client.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "orgVdcNetwork", + "filter": fmt.Sprintf("vdc==%s", url.QueryEscape(vdc.Vdc.ID)), + "filterEncoded": "true", + }) + if err != nil { + return nil, fmt.Errorf("[findEdgeGatewayConnection] error returning the list of networks for VDC: %s", err) + } + return result.Results.OrgVdcNetworkRecord, nil +} + +// FindEdgeGatewayNameByNetwork searches the VDC for a connection between an edge gateway and a given network. +// On success, returns the name of the edge gateway +func (vdc *Vdc) FindEdgeGatewayNameByNetwork(networkName string) (string, error) { + + // Find the list of networks with the wanted name + result, err := vdc.client.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "orgVdcNetwork", + "filter": fmt.Sprintf("name==%s;vdc==%s", url.QueryEscape(networkName), url.QueryEscape(vdc.Vdc.ID)), + "filterEncoded": "true", + }) + if err != nil { + return "", fmt.Errorf("[findEdgeGatewayConnection] error returning the list of networks for VDC: %s", err) + } + netList := result.Results.OrgVdcNetworkRecord + + for _, net := range netList { + if net.Name == networkName { + // linkType is not well documented, but empiric tests show that: + // 0 = direct + // 1 = routed + // 2 = isolated + if net.ConnectedTo != "" && net.LinkType == 1 { // We only want routed networks + return net.ConnectedTo, nil + } + } + } + return "", ErrorEntityNotFound +} + +// getParentVdc retrieves the VDC to which the network is attached +func (orgVdcNet *OrgVDCNetwork) getParentVdc() (*Vdc, error) { + for _, link := range orgVdcNet.OrgVDCNetwork.Link { + if link.Type == "application/vnd.vmware.vcloud.vdc+xml" { + + vdc := NewVdc(orgVdcNet.client) + + _, err := orgVdcNet.client.ExecuteRequest(link.HREF, http.MethodGet, + "", "error retrieving parent vdc: %s", nil, vdc.Vdc) + if err != nil { + return nil, err + } + + return vdc, nil + } + } + return nil, fmt.Errorf("could not find a parent Vdc for network %s", orgVdcNet.OrgVDCNetwork.Name) +} + +// getEdgeGateway retrieves the edge gateway connected to a routed network +func (orgVdcNet *OrgVDCNetwork) getEdgeGateway() (*EdgeGateway, error) { + // If it is not routed, returns an error + if orgVdcNet.OrgVDCNetwork.Configuration.FenceMode != types.FenceModeNAT { + return nil, fmt.Errorf("network %s is not routed", orgVdcNet.OrgVDCNetwork.Name) + } + vdc, err := orgVdcNet.getParentVdc() + if err != nil { + return nil, err + } + + // Since this function can be called from Update(), we must take into account the + // possibility of a name change. If this is happening, we need to retrieve the original + // name, which is still stored in the VDC. + oldNetwork, err := vdc.GetOrgVdcNetworkById(orgVdcNet.OrgVDCNetwork.ID, false) + if err != nil { + return nil, err + } + networkName := oldNetwork.OrgVDCNetwork.Name + + edgeGatewayName, err := vdc.FindEdgeGatewayNameByNetwork(networkName) + if err != nil { + return nil, err + } + + return vdc.GetEdgeGatewayByName(edgeGatewayName, false) +} + +// UpdateAsync will change the contents of a network using the information in the +// receiver data structure. +func (orgVdcNet *OrgVDCNetwork) UpdateAsync() (Task, error) { + if orgVdcNet.OrgVDCNetwork.HREF == "" { + return Task{}, fmt.Errorf("cannot update Org VDC network: HREF is empty") + } + if orgVdcNet.OrgVDCNetwork.Name == "" { + return Task{}, fmt.Errorf("cannot update Org VDC network: name is empty") + } + if orgVdcNet.OrgVDCNetwork.Configuration == nil { + return Task{}, fmt.Errorf("cannot update Org VDC network: configuration is empty") + } + + href := orgVdcNet.OrgVDCNetwork.HREF + + if !strings.Contains(href, "/api/admin/") { + href = strings.ReplaceAll(href, "/api/", "/api/admin/") + } + + // Routed networks need to have edge gateway information for both creation and update. + // Since the network data structure doesn't return edge gateway information, + // we fetch it explicitly. + if orgVdcNet.OrgVDCNetwork.Configuration.FenceMode == types.FenceModeNAT { + edgeGateway, err := orgVdcNet.getEdgeGateway() + if err != nil { + return Task{}, fmt.Errorf("error retrieving edge gateway for Org VDC network %s : %s", orgVdcNet.OrgVDCNetwork.Name, err) + } + orgVdcNet.OrgVDCNetwork.EdgeGateway = &types.Reference{ + HREF: edgeGateway.EdgeGateway.HREF, + ID: edgeGateway.EdgeGateway.ID, + Type: edgeGateway.EdgeGateway.Type, + Name: edgeGateway.EdgeGateway.Name, + } + } + return orgVdcNet.client.ExecuteTaskRequest(href, http.MethodPut, + types.MimeOrgVdcNetwork, "error updating Org VDC network: %s", orgVdcNet.OrgVDCNetwork) +} + +// Update is a wrapper around UpdateAsync, where we +// explicitly wait for the task to finish. +// The pointer receiver is refreshed after update +func (orgVdcNet *OrgVDCNetwork) Update() error { + task, err := orgVdcNet.UpdateAsync() + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return err + } + + return orgVdcNet.Refresh() +} + +// Rename is a wrapper around Update(), where we only change the name of the network +// Since the purpose is explicitly changing the name, the function will fail if the new name +// is not different from the existing one +func (orgVdcNet *OrgVDCNetwork) Rename(newName string) error { + if orgVdcNet.OrgVDCNetwork.Name == newName { + return fmt.Errorf("new name is the same ase the existing name") + } + orgVdcNet.OrgVDCNetwork.Name = newName + return orgVdcNet.Update() +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/productsection.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/productsection.go new file mode 100644 index 000000000..b6233089c --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/productsection.go @@ -0,0 +1,53 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// setProductSectionList is a shared function for both vApp and VM +func setProductSectionList(client *Client, href string, productSection *types.ProductSectionList) error { + if href == "" { + return fmt.Errorf("href cannot be empty to set product section") + } + + productSection.Xmlns = types.XMLNamespaceVCloud + productSection.Ovf = types.XMLNamespaceOVF + + task, err := client.ExecuteTaskRequest(href+"/productSections", http.MethodPut, + types.MimeProductSection, "error setting product section: %s", productSection) + + if err != nil { + return fmt.Errorf("unable to set product section: %s", err) + } + + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("task for setting product section failed: %s", err) + } + + return nil +} + +// getProductSectionList is a shared function for both vApp and VM +func getProductSectionList(client *Client, href string) (*types.ProductSectionList, error) { + if href == "" { + return nil, fmt.Errorf("href cannot be empty to get product section") + } + productSection := &types.ProductSectionList{} + + _, err := client.ExecuteRequest(href+"/productSections", http.MethodGet, + types.MimeProductSection, "error retrieving product section : %s", nil, productSection) + + if err != nil { + return nil, fmt.Errorf("unable to retrieve product section: %s", err) + } + + return productSection, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/query.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/query.go new file mode 100644 index 000000000..d142e467c --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/query.go @@ -0,0 +1,88 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +type Results struct { + Results *types.QueryResultRecordsType + client *Client +} + +func NewResults(cli *Client) *Results { + return &Results{ + Results: new(types.QueryResultRecordsType), + client: cli, + } +} + +func (vcdClient *VCDClient) Query(params map[string]string) (Results, error) { + + req := vcdClient.Client.NewRequest(params, http.MethodGet, vcdClient.QueryHREF, nil) + req.Header.Add("Accept", "vnd.vmware.vcloud.org+xml;version="+vcdClient.Client.APIVersion) + + return getResult(&vcdClient.Client, req) +} + +func (vdc *Vdc) Query(params map[string]string) (Results, error) { + queryUrl := vdc.client.VCDHREF + queryUrl.Path += "/query" + req := vdc.client.NewRequest(params, http.MethodGet, queryUrl, nil) + req.Header.Add("Accept", "vnd.vmware.vcloud.org+xml;version="+vdc.client.APIVersion) + + return getResult(vdc.client, req) +} + +// QueryWithNotEncodedParams uses Query API to search for requested data +func (client *Client) QueryWithNotEncodedParams(params map[string]string, notEncodedParams map[string]string) (Results, error) { + return client.QueryWithNotEncodedParamsWithApiVersion(params, notEncodedParams, client.APIVersion) +} + +// QueryWithNotEncodedParams uses Query API to search for requested data +func (client *Client) QueryWithNotEncodedParamsWithApiVersion(params map[string]string, notEncodedParams map[string]string, apiVersion string) (Results, error) { + queryUrl := client.VCDHREF + queryUrl.Path += "/query" + + req := client.NewRequestWitNotEncodedParamsWithApiVersion(params, notEncodedParams, http.MethodGet, queryUrl, nil, apiVersion) + req.Header.Add("Accept", "vnd.vmware.vcloud.org+xml;version="+apiVersion) + + return getResult(client, req) +} + +func (vcdClient *VCDClient) QueryWithNotEncodedParams(params map[string]string, notEncodedParams map[string]string) (Results, error) { + return vcdClient.Client.QueryWithNotEncodedParams(params, notEncodedParams) +} + +func (vdc *Vdc) QueryWithNotEncodedParams(params map[string]string, notEncodedParams map[string]string) (Results, error) { + return vdc.client.QueryWithNotEncodedParams(params, notEncodedParams) +} + +func (vcdClient *VCDClient) QueryWithNotEncodedParamsWithApiVersion(params map[string]string, notEncodedParams map[string]string, apiVersion string) (Results, error) { + return vcdClient.Client.QueryWithNotEncodedParamsWithApiVersion(params, notEncodedParams, apiVersion) +} + +func (vdc *Vdc) QueryWithNotEncodedParamsWithApiVersion(params map[string]string, notEncodedParams map[string]string, apiVersion string) (Results, error) { + return vdc.client.QueryWithNotEncodedParamsWithApiVersion(params, notEncodedParams, apiVersion) +} + +func getResult(client *Client, request *http.Request) (Results, error) { + resp, err := checkResp(client.Http.Do(request)) + if err != nil { + return Results{}, fmt.Errorf("error retrieving query: %s", err) + } + + results := NewResults(client) + + if err = decodeBody(types.BodyTypeXML, resp, results.Results); err != nil { + return Results{}, fmt.Errorf("error decoding query results: %s", err) + } + + return *results, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/query_metadata.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/query_metadata.go new file mode 100644 index 000000000..e20a60df4 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/query_metadata.go @@ -0,0 +1,323 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + "strings" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +/* +This file contains functions that allow an extended query including metadata fields. + +The metadata fields need to be requested explicitly (we can't just ask for generic metadata to be included +in the query result. Due to the query system implementation, when we request metadata fields, we must also +list the regular fields that we want in the result. +For this reason, we need to have the list of fields supported by the query for each query type. Not all the +fields can be used in the "fields" parameter of the query. + +The function queryFieldsOnDemand provides the fields for the supported types. + +Example: we have type "X" with fields "a", "b", "c", "d". It supports metadata. +If we want to query X without metadata, we run a simple query?type=X;[...] + +If we also want metadata, we need to know which keys we want to fetch, and run +query?type=X;fields=a,b,c,d,metadata:key1,metadata:key2 + +*/ + +// MetadataFilter is a definition of a value used to filter metadata. +// It is made of a Type (such as 'STRING', 'INT', 'BOOL") and a Value, which is the value we want to search for. +type MetadataFilter struct { + Type string + Value string +} + +// queryFieldsOnDemand returns the list of fields that can be requested in the option "fields" of a query +// Note that an alternative approach using `reflect` would require several exceptions to list all the +// fields that are not supported. +func queryFieldsOnDemand(queryType string) ([]string, error) { + // entities for which the fields on demand are supported + var ( + vappTemplatefields = []string{"ownerName", "catalogName", "isPublished", "name", "vdc", "vdcName", + "org", "creationDate", "isBusy", "isGoldMaster", "isEnabled", "status", "isDeployed", "isExpired", + "storageProfileName"} + edgeGatewayFields = []string{"name", "vdc", "orgVdcName", "numberOfExtNetworks", "numberOfOrgNetworks", "isBusy", + "gatewayStatus", "haStatus"} + orgVdcNetworkFields = []string{"name", "defaultGateway", "netmask", "dns1", "dns2", "dnsSuffix", "linkType", + "connectedTo", "vdc", "isBusy", "isShared", "vdcName", "isIpScopeInherited"} + catalogFields = []string{"name", "isPublished", "isShared", "creationDate", "orgName", "ownerName", + "numberOfMedia", "owner"} + mediaFields = []string{"ownerName", "catalogName", "isPublished", "name", "vdc", "vdcName", "org", + "creationDate", "isBusy", "storageB", "owner", "catalog", "catalogItem", "status", + "storageProfileName", "taskStatusName", "isInCatalog", "task", + "isIso", "isVdcEnabled", "taskStatus", "taskDetails"} + catalogItemFields = []string{"entity", "entityName", "entityType", "catalog", "catalogName", "ownerName", + "owner", "isPublished", "vdc", "vdcName", "isVdcEnabled", "creationDate", "isExpired", "status"} + vmFields = []string{"catalogName", "container", "containerName", "datastoreName", "description", + "gcStatus", "guestOs", "hardwareVersion", "hostName", "isAutoNature", "isDeleted", "isDeployed", "isPublished", + "isVAppTemplate", "isVdcEnabled", "memoryMB", "moref", "name", "numberOfCpus", "org", "status", + "storageProfileName", "vc", "vdc", "vmToolsVersion", "containerStatus", "pvdcHighestSupportedHardwareVersion", + "isComputePolicyCompliant", "vmSizingPolicyId", "vmPlacementPolicyId", "encrypted", "dateCreated", + "totalStorageAllocatedMb", "isExpired"} + vappFields = []string{"creationDate", "isBusy", "isDeployed", "isEnabled", "isExpired", "isInMaintenanceMode", "isPublic", + "ownerName", "status", "vdc", "vdcName", "numberOfVMs", "numberOfCpus", "cpuAllocationMhz", "cpuAllocationInMhz", + "storageKB", "memoryAllocationMB", "isAutoDeleteNotified", "isAutoUndeployNotified", "isVdcEnabled", "honorBookOrder", + "pvdcHighestSupportedHardwareVersion", "lowestHardwareVersionInVApp"} + orgVdcFields = []string{"name", "description", "isEnabled", "cpuAllocationMhz", "cpuLimitMhz", "cpuUsedMhz", + "memoryAllocationMB", "memoryLimitMB", "memoryUsedMB", "storageLimitMB", "storageUsedMB", "providerVdcName", + "providerVdc", "orgName", "org", "allocationModel", "numberOfVApps", "numberOfUnmanagedVApps", "numberOfMedia", + "numberOfDisks", "numberOfVAppTemplates", "vcName", "isBusy", "status", "networkPool", "numberOfResourcePools", + "numberOfStorageProfiles", "usedNetworksInVdc", "numberOfVMs", "numberOfRunningVMs", "numberOfDeployedVApps", + "numberOfDeployedUnmanagedVApps", "isThinProvisioned", "isFastProvisioned", "networkProviderType", + "cpuOverheadMhz", "isVCEnabled", "memoryReservedMB", "cpuReservedMhz", "storageOverheadMB", "memoryOverheadMB", "vc"} + fieldsOnDemand = map[string][]string{ + types.QtVappTemplate: vappTemplatefields, + types.QtAdminVappTemplate: vappTemplatefields, + types.QtEdgeGateway: edgeGatewayFields, + types.QtOrgVdcNetwork: orgVdcNetworkFields, + types.QtCatalog: catalogFields, + types.QtAdminCatalog: catalogFields, + types.QtMedia: mediaFields, + types.QtAdminMedia: mediaFields, + types.QtCatalogItem: catalogItemFields, + types.QtAdminCatalogItem: catalogItemFields, + types.QtVm: vmFields, + types.QtAdminVm: vmFields, + types.QtVapp: vappFields, + types.QtAdminVapp: vappFields, + types.QtOrgVdc: orgVdcFields, + types.QtAdminOrgVdc: orgVdcFields, + } + ) + + fields, ok := fieldsOnDemand[queryType] + if !ok { + return nil, fmt.Errorf("query type '%s' not supported", queryType) + } + return fields, nil +} + +// addResults takes records from the appropriate field in the latest results and adds them to the cumulative results +func addResults(queryType string, cumulativeResults, newResults Results) (Results, int, error) { + + var size int + switch queryType { + case types.QtAdminVappTemplate: + cumulativeResults.Results.AdminVappTemplateRecord = append(cumulativeResults.Results.AdminVappTemplateRecord, newResults.Results.AdminVappTemplateRecord...) + size = len(newResults.Results.AdminVappTemplateRecord) + case types.QtVappTemplate: + size = len(newResults.Results.VappTemplateRecord) + cumulativeResults.Results.VappTemplateRecord = append(cumulativeResults.Results.VappTemplateRecord, newResults.Results.VappTemplateRecord...) + case types.QtCatalogItem: + cumulativeResults.Results.CatalogItemRecord = append(cumulativeResults.Results.CatalogItemRecord, newResults.Results.CatalogItemRecord...) + size = len(newResults.Results.CatalogItemRecord) + case types.QtAdminCatalogItem: + cumulativeResults.Results.AdminCatalogItemRecord = append(cumulativeResults.Results.AdminCatalogItemRecord, newResults.Results.AdminCatalogItemRecord...) + size = len(newResults.Results.AdminCatalogItemRecord) + case types.QtMedia: + cumulativeResults.Results.MediaRecord = append(cumulativeResults.Results.MediaRecord, newResults.Results.MediaRecord...) + size = len(newResults.Results.MediaRecord) + case types.QtAdminMedia: + cumulativeResults.Results.AdminMediaRecord = append(cumulativeResults.Results.AdminMediaRecord, newResults.Results.AdminMediaRecord...) + size = len(newResults.Results.AdminMediaRecord) + case types.QtCatalog: + cumulativeResults.Results.CatalogRecord = append(cumulativeResults.Results.CatalogRecord, newResults.Results.CatalogRecord...) + size = len(newResults.Results.CatalogRecord) + case types.QtAdminCatalog: + cumulativeResults.Results.AdminCatalogRecord = append(cumulativeResults.Results.AdminCatalogRecord, newResults.Results.AdminCatalogRecord...) + size = len(newResults.Results.AdminCatalogRecord) + case types.QtOrgVdcNetwork: + cumulativeResults.Results.OrgVdcNetworkRecord = append(cumulativeResults.Results.OrgVdcNetworkRecord, newResults.Results.OrgVdcNetworkRecord...) + size = len(newResults.Results.OrgVdcNetworkRecord) + case types.QtEdgeGateway: + cumulativeResults.Results.EdgeGatewayRecord = append(cumulativeResults.Results.EdgeGatewayRecord, newResults.Results.EdgeGatewayRecord...) + size = len(newResults.Results.EdgeGatewayRecord) + case types.QtVm: + cumulativeResults.Results.VMRecord = append(cumulativeResults.Results.VMRecord, newResults.Results.VMRecord...) + size = len(newResults.Results.VMRecord) + case types.QtAdminVm: + cumulativeResults.Results.AdminVMRecord = append(cumulativeResults.Results.AdminVMRecord, newResults.Results.AdminVMRecord...) + size = len(newResults.Results.AdminVMRecord) + case types.QtVapp: + cumulativeResults.Results.VAppRecord = append(cumulativeResults.Results.VAppRecord, newResults.Results.VAppRecord...) + size = len(newResults.Results.VAppRecord) + case types.QtAdminVapp: + cumulativeResults.Results.AdminVAppRecord = append(cumulativeResults.Results.AdminVAppRecord, newResults.Results.AdminVAppRecord...) + size = len(newResults.Results.AdminVAppRecord) + case types.QtOrgVdc: + cumulativeResults.Results.OrgVdcRecord = append(cumulativeResults.Results.OrgVdcRecord, newResults.Results.OrgVdcRecord...) + size = len(newResults.Results.OrgVdcRecord) + case types.QtAdminOrgVdc: + cumulativeResults.Results.OrgVdcAdminRecord = append(cumulativeResults.Results.OrgVdcAdminRecord, newResults.Results.OrgVdcAdminRecord...) + size = len(newResults.Results.OrgVdcAdminRecord) + + default: + return Results{}, 0, fmt.Errorf("query type %s not supported", queryType) + } + + return cumulativeResults, size, nil +} + +// cumulativeQuery runs a paginated query and collects all elements until the total number of records is retrieved +func (client *Client) cumulativeQuery(queryType string, params, notEncodedParams map[string]string) (Results, error) { + var supportedQueryTypes = []string{ + types.QtVappTemplate, + types.QtAdminVappTemplate, + types.QtEdgeGateway, + types.QtOrgVdcNetwork, + types.QtCatalog, + types.QtAdminCatalog, + types.QtMedia, + types.QtAdminMedia, + types.QtCatalogItem, + types.QtAdminCatalogItem, + types.QtVm, + types.QtAdminVm, + types.QtVapp, + types.QtAdminVapp, + types.QtOrgVdc, + types.QtAdminOrgVdc, + } + // Make sure the query type is supported + // We need to check early, as queries that would return less than 25 items (default page size) would succeed, + // but the check on query type will happen once that threshold is crossed. + isSupported := false + for _, qt := range supportedQueryTypes { + if qt == queryType { + isSupported = true + break + } + } + if !isSupported { + return Results{}, fmt.Errorf("[cumulativeQuery] query type %s not supported", queryType) + } + + result, err := client.QueryWithNotEncodedParams(params, notEncodedParams) + if err != nil { + return Results{}, err + } + wanted := int(result.Results.Total) + retrieved := int(wanted) + if retrieved > result.Results.PageSize { + retrieved = result.Results.PageSize + } + if retrieved == wanted { + return result, nil + } + page := result.Results.Page + + var cumulativeResult = Results{ + Results: result.Results, + client: nil, + } + + for retrieved != wanted { + page++ + notEncodedParams["page"] = fmt.Sprintf("%d", page) + var size int + newResult, err := client.QueryWithNotEncodedParams(params, notEncodedParams) + if err != nil { + return Results{}, err + } + cumulativeResult, size, err = addResults(queryType, cumulativeResult, newResult) + if err != nil { + return Results{}, err + } + retrieved += size + } + + return result, nil +} + +// queryWithMetadataFields is a wrapper around QueryWithNotEncodedParams with additional metadata fields +// being returned. +// +// * queryType is the type of the query. Only the ones listed within queryFieldsOnDemand are supported +// * params and notEncodedParams are the same ones passed to QueryWithNotEncodedParams +// * metadataFields is the list of fields to be included in the query results +// * if isSystem is true, metadata fields are requested as 'metadata@SYSTEM:fieldName' +func (client *Client) queryWithMetadataFields(queryType string, params, notEncodedParams map[string]string, + metadataFields []string, isSystem bool) (Results, error) { + if notEncodedParams == nil { + notEncodedParams = make(map[string]string) + } + notEncodedParams["type"] = queryType + + if len(metadataFields) == 0 { + return client.cumulativeQuery(queryType, params, notEncodedParams) + } + + fields, err := queryFieldsOnDemand(queryType) + if err != nil { + return Results{}, fmt.Errorf("[queryWithMetadataFields] %s", err) + } + + if len(fields) == 0 { + return Results{}, fmt.Errorf("[queryWithMetadataFields] no fields found for type '%s'", queryType) + } + metadataFieldText := "" + prefix := "metadata" + if isSystem { + prefix = "metadata@SYSTEM" + } + for i, field := range metadataFields { + metadataFieldText += fmt.Sprintf("%s:%s", prefix, field) + if i != len(metadataFields) { + metadataFieldText += "," + } + } + + notEncodedParams["fields"] = strings.Join(fields, ",") + "," + metadataFieldText + + return client.cumulativeQuery(queryType, params, notEncodedParams) +} + +// queryByMetadataFilter is a wrapper around QueryWithNotEncodedParams with additional filtering +// on metadata fields +// Unlike queryWithMetadataFields, this function does not return the metadata fields, but only uses +// them to perform the filter. +// +// * params and notEncodedParams are the same ones passed to QueryWithNotEncodedParams +// * metadataFilter is is a map of conditions to use for filtering +// * if isSystem is true, metadata fields are requested as 'metadata@SYSTEM:fieldName' +func (client *Client) queryByMetadataFilter(queryType string, params, notEncodedParams map[string]string, + metadataFilters map[string]MetadataFilter, isSystem bool) (Results, error) { + + if len(metadataFilters) == 0 { + return Results{}, fmt.Errorf("[queryByMetadataFilter] no metadata fields provided") + } + if notEncodedParams == nil { + notEncodedParams = make(map[string]string) + } + notEncodedParams["type"] = queryType + + metadataFilterText := "" + prefix := "metadata" + if isSystem { + prefix = "metadata@SYSTEM" + } + count := 0 + for key, value := range metadataFilters { + metadataFilterText += fmt.Sprintf("%s:%s==%s:%s", prefix, key, value.Type, url.QueryEscape(value.Value)) + if count < len(metadataFilters)-1 { + metadataFilterText += ";" + } + count++ + } + + filter, ok := notEncodedParams["filter"] + if ok { + filter = "(" + filter + ";" + metadataFilterText + ")" + } else { + filter = metadataFilterText + } + notEncodedParams["filter"] = filter + + return client.cumulativeQuery(queryType, params, notEncodedParams) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/rights.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/rights.go new file mode 100644 index 000000000..fba155e71 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/rights.go @@ -0,0 +1,250 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ +package govcd + +import ( + "fmt" + "net/url" + "strings" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// getAllRights retrieves all rights. Query parameters can be supplied to perform additional +// filtering +func getAllRights(client *Client, queryParameters url.Values, additionalHeader map[string]string) ([]*types.Right, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRights + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.Right{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses, additionalHeader) + if err != nil { + return nil, err + } + + return typeResponses, nil +} + +// GetAllRights retrieves all available rights. +// Query parameters can be supplied to perform additional filtering +func (client *Client) GetAllRights(queryParameters url.Values) ([]*types.Right, error) { + return getAllRights(client, queryParameters, nil) +} + +// GetAllRights retrieves all available rights. Query parameters can be supplied to perform additional +// filtering +func (adminOrg *AdminOrg) GetAllRights(queryParameters url.Values) ([]*types.Right, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return getAllRights(adminOrg.client, queryParameters, getTenantContextHeader(tenantContext)) +} + +// getRights retrieves rights belonging to a given Role or similar container (global role, rights bundle). +// Query parameters can be supplied to perform additional filtering +func getRights(client *Client, roleId, endpoint string, queryParameters url.Values, additionalHeader map[string]string) ([]*types.Right, error) { + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint + roleId + "/rights") + if err != nil { + return nil, err + } + + typeResponses := []*types.Right{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses, additionalHeader) + if err != nil { + return nil, err + } + + return typeResponses, nil +} + +// GetRights retrieves all rights belonging to a given Role. Query parameters can be supplied to perform additional +// filtering +func (role *Role) GetRights(queryParameters url.Values) ([]*types.Right, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + return getRights(role.client, role.Role.ID, endpoint, queryParameters, getTenantContextHeader(role.TenantContext)) +} + +// getRightByName retrieves a right by given name +func getRightByName(client *Client, name string, additionalHeader map[string]string) (*types.Right, error) { + var params = url.Values{} + + slowSearch := false + + // When the right name contains commas or semicolons, the encoding is rejected by the API. + // For this reason, when one or more commas or semicolons are present (6 occurrences in more than 300 right names) + // we run the search brute force, by fetching all the rights, and comparing the names. + // This problem should be fixed in 10.3 + // TODO: revisit this function after 10.3 is released + if strings.Contains(name, ",") || strings.Contains(name, ";") { + slowSearch = true + } else { + params.Set("filter", "name=="+name) + } + rights, err := getAllRights(client, params, additionalHeader) + if err != nil { + return nil, err + } + if len(rights) == 0 { + return nil, ErrorEntityNotFound + } + + if slowSearch { + for _, right := range rights { + if right.Name == name { + return right, nil + } + } + return nil, ErrorEntityNotFound + } + + if len(rights) > 1 { + return nil, fmt.Errorf("more than one right found with name '%s'", name) + } + return rights[0], nil +} + +// GetRightByName retrieves right by given name +func (client *Client) GetRightByName(name string) (*types.Right, error) { + return getRightByName(client, name, nil) +} + +// GetRightByName retrieves right by given name +func (adminOrg *AdminOrg) GetRightByName(name string) (*types.Right, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return getRightByName(adminOrg.client, name, getTenantContextHeader(tenantContext)) +} + +func getRightById(client *Client, id string, additionalHeader map[string]string) (*types.Right, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRights + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty role id") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + right := &types.Right{} + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, nil, right, additionalHeader) + if err != nil { + return nil, err + } + + return right, nil +} + +func (client *Client) GetRightById(id string) (*types.Right, error) { + return getRightById(client, id, nil) +} + +func (adminOrg *AdminOrg) GetRightById(id string) (*types.Right, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return getRightById(adminOrg.client, id, getTenantContextHeader(tenantContext)) +} + +// getAllRightsCategories retrieves all rights categories. Query parameters can be supplied to perform additional +// filtering +func getAllRightsCategories(client *Client, queryParameters url.Values, additionalHeader map[string]string) ([]*types.RightsCategory, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsCategories + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.RightsCategory{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses, additionalHeader) + if err != nil { + return nil, err + } + + return typeResponses, nil +} + +// GetAllRightsCategories retrieves all rights categories. Query parameters can be supplied to perform additional +// filtering +func (client *Client) GetAllRightsCategories(queryParameters url.Values) ([]*types.RightsCategory, error) { + return getAllRightsCategories(client, queryParameters, nil) +} + +// GetAllRightsCategories retrieves all rights categories. Query parameters can be supplied to perform additional +// filtering +func (adminOrg *AdminOrg) GetAllRightsCategories(queryParameters url.Values) ([]*types.RightsCategory, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return getAllRightsCategories(adminOrg.client, queryParameters, getTenantContextHeader(tenantContext)) +} + +func getRightCategoryById(client *Client, id string, additionalHeader map[string]string) (*types.RightsCategory, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsCategories + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty category id") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + rightsCategory := &types.RightsCategory{} + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, nil, rightsCategory, additionalHeader) + if err != nil { + return nil, err + } + + return rightsCategory, nil +} + +// GetRightsCategoryById retrieves a rights category from its ID +func (adminOrg *AdminOrg) GetRightsCategoryById(id string) (*types.RightsCategory, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return getRightCategoryById(adminOrg.client, id, getTenantContextHeader(tenantContext)) +} + +// GetRightsCategoryById retrieves a rights category from its ID +func (client *Client) GetRightsCategoryById(id string) (*types.RightsCategory, error) { + return getRightCategoryById(client, id, nil) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/rights_bundle.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/rights_bundle.go new file mode 100644 index 000000000..0eb07b2c8 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/rights_bundle.go @@ -0,0 +1,262 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +type RightsBundle struct { + RightsBundle *types.RightsBundle + client *Client +} + +// CreateRightsBundle creates a new rights bundle as a system administrator +func (client *Client) CreateRightsBundle(newRightsBundle *types.RightsBundle) (*RightsBundle, error) { + if !client.IsSysAdmin { + return nil, fmt.Errorf("only system administrator can handle rights bundles") + } + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + if newRightsBundle.BundleKey == "" { + newRightsBundle.BundleKey = types.VcloudUndefinedKey + } + if newRightsBundle.PublishAll == nil { + newRightsBundle.PublishAll = takeBoolPointer(false) + } + returnBundle := &RightsBundle{ + RightsBundle: &types.RightsBundle{}, + client: client, + } + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, newRightsBundle, returnBundle.RightsBundle, nil) + if err != nil { + return nil, fmt.Errorf("error creating rights bundle: %s", err) + } + + return returnBundle, nil +} + +// Update updates existing rights bundle +func (rb *RightsBundle) Update() (*RightsBundle, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + minimumApiVersion, err := rb.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if rb.RightsBundle.Id == "" { + return nil, fmt.Errorf("cannot update role without id") + } + + urlRef, err := rb.client.OpenApiBuildEndpoint(endpoint, rb.RightsBundle.Id) + if err != nil { + return nil, err + } + + returnRightsBundle := &RightsBundle{ + RightsBundle: &types.RightsBundle{}, + client: rb.client, + } + + err = rb.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, rb.RightsBundle, returnRightsBundle.RightsBundle, nil) + if err != nil { + return nil, fmt.Errorf("error updating rights bundle: %s", err) + } + + return returnRightsBundle, nil +} + +// getAllRightsBundles retrieves all rights bundles. Query parameters can be supplied to perform additional +// filtering +func getAllRightsBundles(client *Client, queryParameters url.Values, additionalHeader map[string]string) ([]*RightsBundle, error) { + if !client.IsSysAdmin { + return nil, fmt.Errorf("only system administrator can handle rights bundles") + } + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.RightsBundle{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses, additionalHeader) + if err != nil { + return nil, err + } + if len(typeResponses) == 0 { + return []*RightsBundle{}, nil + } + var results = make([]*RightsBundle, len(typeResponses)) + for i, r := range typeResponses { + results[i] = &RightsBundle{ + RightsBundle: r, + client: client, + } + } + + return results, nil +} + +// GetAllRightsBundles retrieves all rights bundles. Query parameters can be supplied to perform additional +// filtering +func (client *Client) GetAllRightsBundles(queryParameters url.Values) ([]*RightsBundle, error) { + return getAllRightsBundles(client, queryParameters, nil) +} + +// GetTenants retrieves all tenants associated to a given Rights Bundle. +// Query parameters can be supplied to perform additional filtering +func (rb *RightsBundle) GetTenants(queryParameters url.Values) ([]types.OpenApiReference, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return getContainerTenants(rb.client, rb.RightsBundle.Id, endpoint, queryParameters) +} + +func (rb *RightsBundle) GetRights(queryParameters url.Values) ([]*types.Right, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return getRights(rb.client, rb.RightsBundle.Id, endpoint, queryParameters, nil) +} + +// AddRights adds a collection of rights to a rights bundle +func (rb *RightsBundle) AddRights(newRights []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return addRightsToRole(rb.client, "RightsBundle", rb.RightsBundle.Name, rb.RightsBundle.Id, endpoint, newRights, nil) +} + +// UpdateRights replaces existing rights with the given collection of rights +func (rb *RightsBundle) UpdateRights(newRights []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return updateRightsInRole(rb.client, "RightsBundle", rb.RightsBundle.Name, rb.RightsBundle.Id, endpoint, newRights, nil) +} + +// RemoveRights removes specific rights from a rights bundle +func (rb *RightsBundle) RemoveRights(removeRights []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return removeRightsFromRole(rb.client, "RightsBundle", rb.RightsBundle.Name, rb.RightsBundle.Id, endpoint, removeRights, nil) +} + +// RemoveAllRights removes all rights from a rights bundle +func (rb *RightsBundle) RemoveAllRights() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return removeAllRightsFromRole(rb.client, "RightsBundle", rb.RightsBundle.Name, rb.RightsBundle.Id, endpoint, nil) +} + +// PublishTenants publishes a rights bundle to one or more tenants +func (rb *RightsBundle) PublishTenants(tenants []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return publishContainerToTenants(rb.client, "RightsBundle", rb.RightsBundle.Name, rb.RightsBundle.Id, endpoint, tenants, "add") +} + +// UnpublishTenants removes publication status in rights bundle from one or more tenants +func (rb *RightsBundle) UnpublishTenants(tenants []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return publishContainerToTenants(rb.client, "RightsBundle", rb.RightsBundle.Name, rb.RightsBundle.Id, endpoint, tenants, "remove") +} + +// ReplacePublishedTenants publishes a rights bundle to one or more tenants, removing the tenants already present +func (rb *RightsBundle) ReplacePublishedTenants(tenants []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return publishContainerToTenants(rb.client, "RightsBundle", rb.RightsBundle.Name, rb.RightsBundle.Id, endpoint, tenants, "replace") +} + +// PublishAllTenants removes publication status in rights bundle from one or more tenants +func (rb *RightsBundle) PublishAllTenants() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return publishContainerToAllTenants(rb.client, "RightsBundle", rb.RightsBundle.Name, rb.RightsBundle.Id, endpoint, true) +} + +// UnpublishAllTenants removes publication status in rights bundle from one or more tenants +func (rb *RightsBundle) UnpublishAllTenants() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + return publishContainerToAllTenants(rb.client, "RightsBundle", rb.RightsBundle.Name, rb.RightsBundle.Id, endpoint, false) +} + +// GetRightsBundleByName retrieves rights bundle by given name +func (client *Client) GetRightsBundleByName(name string) (*RightsBundle, error) { + queryParams := url.Values{} + queryParams.Add("filter", "name=="+name) + rightsBundles, err := client.GetAllRightsBundles(queryParams) + if err != nil { + return nil, err + } + if len(rightsBundles) == 0 { + return nil, ErrorEntityNotFound + } + if len(rightsBundles) > 1 { + return nil, fmt.Errorf("more than one rights bundle found with name '%s'", name) + } + return rightsBundles[0], nil +} + +// GetRightsBundleById retrieves rights bundle by given ID +func (client *Client) GetRightsBundleById(id string) (*RightsBundle, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty rights bundle id") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + rightsBundle := &RightsBundle{ + RightsBundle: &types.RightsBundle{}, + client: client, + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, nil, rightsBundle.RightsBundle, nil) + if err != nil { + return nil, err + } + + return rightsBundle, nil +} + +// Delete deletes rights bundle +func (rb *RightsBundle) Delete() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRightsBundles + minimumApiVersion, err := rb.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if rb.RightsBundle.Id == "" { + return fmt.Errorf("cannot delete rights bundle without id") + } + + urlRef, err := rb.client.OpenApiBuildEndpoint(endpoint, rb.RightsBundle.Id) + if err != nil { + return err + } + + err = rb.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting rights bundle: %s", err) + } + + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/roles.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/roles.go new file mode 100644 index 000000000..83eaf90ba --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/roles.go @@ -0,0 +1,454 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// Role uses OpenAPI endpoint to operate user roles +type Role struct { + Role *types.Role + client *Client + TenantContext *TenantContext +} + +// GetRoleById retrieves role by given ID +func (adminOrg *AdminOrg) GetRoleById(id string) (*Role, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + minimumApiVersion, err := adminOrg.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty role id") + } + + urlRef, err := adminOrg.client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + role := &Role{ + Role: &types.Role{}, + client: adminOrg.client, + TenantContext: tenantContext, + } + + err = adminOrg.client.OpenApiGetItem(minimumApiVersion, urlRef, nil, role.Role, getTenantContextHeader(tenantContext)) + if err != nil { + return nil, err + } + + return role, nil +} + +// GetRoleByName retrieves role by given name +func (adminOrg *AdminOrg) GetRoleByName(name string) (*Role, error) { + queryParams := url.Values{} + queryParams.Add("filter", "name=="+name) + roles, err := adminOrg.GetAllRoles(queryParams) + if err != nil { + return nil, err + } + if len(roles) == 0 { + return nil, ErrorEntityNotFound + } + if len(roles) > 1 { + return nil, fmt.Errorf("more than one role found with name '%s'", name) + } + return roles[0], nil +} + +// getAllRoles retrieves all roles using OpenAPI endpoint. Query parameters can be supplied to perform additional +// filtering +func getAllRoles(client *Client, queryParameters url.Values, additionalHeader map[string]string) ([]*Role, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponses := []*types.Role{{}} + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &typeResponses, additionalHeader) + if err != nil { + return nil, err + } + + // Wrap all typeResponses into Role types with client + returnRoles := make([]*Role, len(typeResponses)) + for sliceIndex := range typeResponses { + returnRoles[sliceIndex] = &Role{ + Role: typeResponses[sliceIndex], + client: client, + TenantContext: getTenantContextFromHeader(additionalHeader), + } + } + + return returnRoles, nil +} + +// GetAllRoles retrieves all roles as tenant user. Query parameters can be supplied to perform additional +// filtering +func (adminOrg *AdminOrg) GetAllRoles(queryParameters url.Values) ([]*Role, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return getAllRoles(adminOrg.client, queryParameters, getTenantContextHeader(tenantContext)) +} + +// GetAllRoles retrieves all roles as System administrator. Query parameters can be supplied to perform additional +// filtering +func (client *Client) GetAllRoles(queryParameters url.Values) ([]*Role, error) { + return getAllRoles(client, queryParameters, nil) +} + +// CreateRole creates a new role as a tenant administrator +func (adminOrg *AdminOrg) CreateRole(newRole *types.Role) (*Role, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + minimumApiVersion, err := adminOrg.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if newRole.BundleKey == "" { + newRole.BundleKey = types.VcloudUndefinedKey + } + + urlRef, err := adminOrg.client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + returnRole := &Role{ + Role: &types.Role{}, + client: adminOrg.client, + TenantContext: tenantContext, + } + + err = adminOrg.client.OpenApiPostItem(minimumApiVersion, urlRef, nil, newRole, returnRole.Role, getTenantContextHeader(tenantContext)) + if err != nil { + return nil, fmt.Errorf("error creating role: %s", err) + } + + return returnRole, nil +} + +// Update updates existing OpenAPI role +func (role *Role) Update() (*Role, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + minimumApiVersion, err := role.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if role.Role.ID == "" { + return nil, fmt.Errorf("cannot update role without id") + } + + urlRef, err := role.client.OpenApiBuildEndpoint(endpoint, role.Role.ID) + if err != nil { + return nil, err + } + + returnRole := &Role{ + Role: &types.Role{}, + client: role.client, + TenantContext: role.TenantContext, + } + + err = role.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, role.Role, returnRole.Role, getTenantContextHeader(role.TenantContext)) + if err != nil { + return nil, fmt.Errorf("error updating role: %s", err) + } + + return returnRole, nil +} + +// Delete deletes OpenAPI role +func (role *Role) Delete() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + minimumApiVersion, err := role.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if role.Role.ID == "" { + return fmt.Errorf("cannot delete role without id") + } + + urlRef, err := role.client.OpenApiBuildEndpoint(endpoint, role.Role.ID) + if err != nil { + return err + } + + err = role.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, getTenantContextHeader(role.TenantContext)) + + if err != nil { + return fmt.Errorf("error deleting role: %s", err) + } + + return nil +} + +// AddRights adds a collection of rights to a role +func (role *Role) AddRights(newRights []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + return addRightsToRole(role.client, "Role", role.Role.Name, role.Role.ID, endpoint, newRights, getTenantContextHeader(role.TenantContext)) +} + +// UpdateRights replaces existing rights with the given collection of rights +func (role *Role) UpdateRights(newRights []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + return updateRightsInRole(role.client, "Role", role.Role.Name, role.Role.ID, endpoint, newRights, getTenantContextHeader(role.TenantContext)) +} + +// RemoveRights removes specific rights from a role +func (role *Role) RemoveRights(removeRights []types.OpenApiReference) error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + return removeRightsFromRole(role.client, "Role", role.Role.Name, role.Role.ID, endpoint, removeRights, getTenantContextHeader(role.TenantContext)) +} + +// RemoveAllRights removes all rights from a role +func (role *Role) RemoveAllRights() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointRoles + return removeAllRightsFromRole(role.client, "Role", role.Role.Name, role.Role.ID, endpoint, getTenantContextHeader(role.TenantContext)) +} + +// addRightsToRole is a generic function that can add rights to a rights collection (Role, Global Role, or Rights bundle) +// roleType is an informative string (one of "Role", "GlobalRole", or "RightsBundle") +// name and id are the name and ID of the collection +// endpoint is the API endpoint used as a basis for the POST operation +// newRights is a collection of rights (ID+name) to be added +// Note: the API call ignores duplicate rights. If the rights to be added already exist, the call succeeds +// but no changes are recorded +func addRightsToRole(client *Client, roleType, name, id, endpoint string, newRights []types.OpenApiReference, additionalHeader map[string]string) error { + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if id == "" { + return fmt.Errorf("cannot update %s without id", roleType) + } + if name == "" { + return fmt.Errorf("empty name given for %s %s", roleType, id) + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id, "/rights") + if err != nil { + return err + } + + var input types.OpenApiItems + + for _, right := range newRights { + input.Values = append(input.Values, types.OpenApiReference{ + Name: right.Name, + ID: right.ID, + }) + } + var pages types.OpenApiPages + + err = client.OpenApiPostItem(minimumApiVersion, urlRef, nil, &input, &pages, additionalHeader) + + if err != nil { + return fmt.Errorf("error adding rights to %s %s: %s", roleType, name, err) + } + + return nil +} + +// updateRightsInRole is a generic function that can change rights in a Role or Global Role +// roleType is an informative string (either "Role" or "GlobalRole") +// name and id are the name and ID of the role +// endpoint is the API endpoint used as a basis for the PUT operation +// newRights is a collection of rights (ID+name) to be added +func updateRightsInRole(client *Client, roleType, name, id, endpoint string, newRights []types.OpenApiReference, additionalHeader map[string]string) error { + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if id == "" { + return fmt.Errorf("cannot update %s without id", roleType) + } + if name == "" { + return fmt.Errorf("empty name given for %s %s", roleType, id) + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id, "/rights") + if err != nil { + return err + } + + var input = types.OpenApiItems{ + Values: []types.OpenApiReference{}, + } + + for _, right := range newRights { + input.Values = append(input.Values, types.OpenApiReference{ + Name: right.Name, + ID: right.ID, + }) + } + var pages types.OpenApiPages + + err = client.OpenApiPutItem(minimumApiVersion, urlRef, nil, &input, &pages, additionalHeader) + + if err != nil { + return fmt.Errorf("error updating rights in %s %s: %s", roleType, name, err) + } + + return nil +} + +// removeRightsFromRole is a generic function that can remove rights from a Role or Global Role +// roleType is an informative string (either "Role" or "GlobalRole") +// name and id are the name and ID of the role +// endpoint is the API endpoint used as a basis for the PUT operation +// removeRights is a collection of rights (ID+name) to be removed +func removeRightsFromRole(client *Client, roleType, name, id, endpoint string, removeRights []types.OpenApiReference, additionalHeader map[string]string) error { + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if id == "" { + return fmt.Errorf("cannot update %s without id", roleType) + } + if name == "" { + return fmt.Errorf("empty name given for %s %s", roleType, id) + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id, "/rights") + if err != nil { + return err + } + + var input = types.OpenApiItems{ + Values: []types.OpenApiReference{}, + } + var pages types.OpenApiPages + + currentRights, err := getRights(client, id, endpoint, nil, additionalHeader) + if err != nil { + return err + } + + var foundToRemove = make(map[string]bool) + + // Set the items to be removed as not found by default + for _, rr := range removeRights { + foundToRemove[rr.Name] = false + } + + // Search the current rights for items to delete + for _, cr := range currentRights { + for _, rr := range removeRights { + if cr.ID == rr.ID { + foundToRemove[cr.Name] = true + } + } + } + + for _, cr := range currentRights { + _, found := foundToRemove[cr.Name] + if !found { + input.Values = append(input.Values, types.OpenApiReference{Name: cr.Name, ID: cr.ID}) + } + } + + // Check that all the items to be removed were found in the current rights list + notFoundNames := "" + for name, found := range foundToRemove { + if !found { + if notFoundNames != "" { + notFoundNames += ", " + } + notFoundNames += `"` + name + `"` + } + } + + if notFoundNames != "" { + return fmt.Errorf("rights in %s %s not found for deletion: [%s]", roleType, name, notFoundNames) + } + + err = client.OpenApiPutItem(minimumApiVersion, urlRef, nil, &input, &pages, additionalHeader) + + if err != nil { + return fmt.Errorf("error updating rights in %s %s: %s", roleType, name, err) + } + + return nil +} + +// removeAllRightsFromRole removes all rights from the given role +func removeAllRightsFromRole(client *Client, roleType, name, id, endpoint string, additionalHeader map[string]string) error { + return updateRightsInRole(client, roleType, name, id, endpoint, []types.OpenApiReference{}, additionalHeader) +} + +// FindMissingImpliedRights returns a list of the rights that are implied in the rights provided as input +func FindMissingImpliedRights(client *Client, rights []types.OpenApiReference) ([]types.OpenApiReference, error) { + var ( + impliedRights []types.OpenApiReference + uniqueInputRights = make(map[string]types.OpenApiReference) + uniqueImpliedRights = make(map[string]types.OpenApiReference) + ) + + // Make a searchable collection of unique rights from the input + // This operation removes duplicates from the list + for _, right := range rights { + uniqueInputRights[right.Name] = right + } + + // Find the implied rights + for _, right := range rights { + fullRight, err := client.GetRightByName(right.Name) + if err != nil { + return nil, err + } + for _, ir := range fullRight.ImpliedRights { + _, seenAsInput := uniqueInputRights[ir.Name] + _, seenAsImplied := uniqueImpliedRights[ir.Name] + // If the right has already been added either as explicit ro as implied right, we skip it + if seenAsInput || seenAsImplied { + continue + } + // Add to the unique collection of implied rights + uniqueImpliedRights[ir.Name] = types.OpenApiReference{ + Name: ir.Name, + ID: ir.ID, + } + } + } + + // Create the output list from the implied rights collection + if len(uniqueImpliedRights) > 0 { + for _, right := range uniqueImpliedRights { + impliedRights = append(impliedRights, right) + } + } + + return impliedRights, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/saml_auth.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/saml_auth.go new file mode 100644 index 000000000..09e513944 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/saml_auth.go @@ -0,0 +1,321 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "bytes" + "compress/gzip" + "encoding/base64" + "errors" + "fmt" + "net/http" + "net/url" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +/* +This file implements SAML authentication flow using Microsoft Active Directory Federation Services +(ADFS). It adds support to authenticate to Cloud Director using SAML authentication (by applying +WithSamlAdfs() configuration option to NewVCDClient function). The identity provider (IdP) must be +Active Directory Federation Services (ADFS) and "/adfs/services/trust/13/usernamemixed" endpoint +must be enabled to make it work. Furthermore username must be supplied in ADFS friendly format - +test@contoso.com' or 'contoso.com\test'. + +It works by finding ADFS login endpoint for vCD by querying vCD SAML redirect endpoint +for specific Org and then submits authentication request to "/adfs/services/trust/13/usernamemixed" +endpoint of ADFS server. Using ADFS response it constructs a SIGN token which vCD accepts for the +"/api/sessions". After first initial "login" it grabs the regular X-Vcloud-Authorization token and +uses it for further requests. +More information in vCD documentation: +https://code.vmware.com/docs/10000/vcloud-api-programming-guide-for-service-providers/GUID-335CFC35-7AD8-40E5-91BE-53971937A2BB.html + +There is a working code example in /samples/saml_auth_adfs directory how to setup client using SAML +auth. +*/ + +// authorizeSamlAdfs is the main entry point for SAML authentication on ADFS endpoint +// "/adfs/services/trust/13/usernamemixed" +// Input parameters: +// user - username for authentication to ADFS server (e.g. 'test@contoso.com' or +// 'contoso.com\test') +// pass - password for authentication to ADFS server +// org - Org to authenticate to +// override_rpt_id - override relaying party trust ID. If it is empty - vCD Entity ID will be used +// as relaying party trust ID +// +// The general concept is to get a SIGN token from ADFS IdP (Identity Provider) and exchange it with +// regular vCD token for further operations. It is documented in +// https://code.vmware.com/docs/10000/vcloud-api-programming-guide-for-service-providers/GUID-335CFC35-7AD8-40E5-91BE-53971937A2BB.html +// This is achieved with the following steps: +// 1 - Lookup vCD Entity ID to use for ADFS authentication or use custom value if overrideRptId +// field is provided +// 2 - Find ADFS server name by querying vCD SAML URL which responds with HTTP redirect (302) +// 3 - Authenticate to ADFS server using vCD SAML Entity ID or custom value if overrideRptId is +// specified Relying Party Trust Identifier +// 4 - Process received ciphers from ADFS server (gzip and base64 encode) so that data can be used +// as SIGN token in vCD +// 5 - Authenticate to vCD using SIGN token in order to receive back regular +// X-Vcloud-Authorization token +// 6 - Set the received X-Vcloud-Authorization for further usage +func (vcdClient *VCDClient) authorizeSamlAdfs(user, pass, org, overrideRptId string) error { + // Step 1 - find SAML entity ID configured in vCD metadata URL unless overrideRptId is provided + // Example URL: url.Scheme + "://" + url.Host + "/cloud/org/" + org + "/saml/metadata/alias/vcd" + samlEntityId := overrideRptId + var err error + if overrideRptId == "" { + samlEntityId, err = getSamlEntityId(vcdClient, org) + if err != nil { + return fmt.Errorf("SAML - error getting vCD SAML Entity ID: %s", err) + } + } + + // Step 2 - find ADFS server used for SAML by calling vCD SAML endpoint and hoping for a + // redirect to ADFS server. Example URL: + // url.Scheme + "://" + url.Host + "/login/my-org/saml/login/alias/vcd?service=tenant:" + org + adfsAuthEndPoint, err := getSamlAdfsServer(vcdClient, org) + if err != nil { + return fmt.Errorf("SAML - error getting IdP (ADFS): %s", err) + } + + // Step 3 - authenticate to ADFS to receive SIGN token which can be used for vCD authentication + signToken, err := getSamlAuthToken(vcdClient, user, pass, samlEntityId, adfsAuthEndPoint, org) + if err != nil { + return fmt.Errorf("SAML - could not get auth token from IdP (ADFS). Did you specify "+ + "username in ADFS format ('user@contoso.com' or 'contoso.com\\user')? : %s", err) + } + + // Step 4 - gzip and base64 encode SIGN token so that vCD can understand it + base64GzippedSignToken, err := gzipAndBase64Encode(signToken) + if err != nil { + return fmt.Errorf("SAML - error encoding SIGN token: %s", err) + } + util.Logger.Printf("[DEBUG] SAML got SIGN token from IdP '%s' for entity with ID '%s'", + adfsAuthEndPoint, samlEntityId) + + // Step 5 - authenticate to vCD with SIGN token and receive vCD regular token in exchange + accessToken, err := authorizeSignToken(vcdClient, base64GzippedSignToken, org) + if err != nil { + return fmt.Errorf("SAML - error submitting SIGN token to vCD: %s", err) + } + + // Step 6 - set regular vCD auth token X-Vcloud-Authorization + err = vcdClient.SetToken(org, AuthorizationHeader, accessToken) + if err != nil { + return fmt.Errorf("error during token-based authentication: %s", err) + } + + return nil +} + +// getSamlAdfsServer finds out Active Directory Federation Service (ADFS) server to use +// for SAML authentication +// It works by temporarily patching existing http.Client behavior to avoid automatically +// following HTTP redirects and searches for Location header after the request to vCD SAML redirect +// address. The URL to search redirect location is: +// url.Scheme + "://" + url.Host + "/login/my-org/saml/login/alias/vcd?service=tenant:" + org +// +// Concurrency note. This function temporarily patches `vcdCli.Client.Http` therefore http.Client +// would not follow redirects during this time. It is however safe as vCDClient is not expected to +// use `http.Client` in any other place before authentication occurs. +func getSamlAdfsServer(vcdCli *VCDClient, org string) (string, error) { + url := vcdCli.Client.VCDHREF + + // Backup existing http.Client redirect behavior so that it does not follow HTTP redirects + // automatically and restore it right after this function by using defer. A new http.Client + // could be spawned here, but the existing one is re-used on purpose to inherit all other + // settings used for client (timeouts, etc). + backupRedirectChecker := vcdCli.Client.Http.CheckRedirect + + defer func() { + vcdCli.Client.Http.CheckRedirect = backupRedirectChecker + }() + + // Patch http client to avoid following redirects + vcdCli.Client.Http.CheckRedirect = func(req *http.Request, via []*http.Request) error { + return http.ErrUseLastResponse + } + + // Construct SAML login URL which should return a redirect to ADFS server + loginURLString := url.Scheme + "://" + url.Host + "/login/" + org + "/saml/login/alias/vcd" + loginURL, err := url.Parse(loginURLString) + if err != nil { + return "", fmt.Errorf("unable to parse login URL '%s': %s", loginURLString, err) + } + util.Logger.Printf("[DEBUG] SAML looking up IdP (ADFS) host redirect in: %s", loginURL.String()) + + // Make a request to URL adding unencoded query parameters in the format: + // "?service=tenant:my-org" + req := vcdCli.Client.NewRequestWitNotEncodedParams( + nil, map[string]string{"service": "tenant:" + org}, http.MethodGet, *loginURL, nil) + httpResponse, err := checkResp(vcdCli.Client.Http.Do(req)) + if err != nil { + return "", fmt.Errorf("SAML - ADFS server query failed: %s", err) + } + + err = decodeBody(types.BodyTypeXML, httpResponse, nil) + if err != nil { + return "", fmt.Errorf("SAML - error decoding body: %s", err) + } + + // httpResponse.Location() returns an error if no 'Location' header is present + adfsEndpoint, err := httpResponse.Location() + if err != nil { + return "", fmt.Errorf("SAML GET request for '%s' did not return HTTP redirect. "+ + "Is SAML configured? Got error: %s", loginURL, err) + } + + authEndPoint := adfsEndpoint.Scheme + "://" + adfsEndpoint.Host + "/adfs/services/trust/13/usernamemixed" + util.Logger.Printf("[DEBUG] SAML got IdP login endpoint: %s", authEndPoint) + + return authEndPoint, nil +} + +// getSamlEntityId attempts to load vCD hosted SAML metadata from URL: +// url.Scheme + "://" + url.Host + "/cloud/org/" + org + "/saml/metadata/alias/vcd" +// Returns an error if Entity ID is empty +// Sample response body can be found in saml_auth_unit_test.go +func getSamlEntityId(vcdCli *VCDClient, org string) (string, error) { + url := vcdCli.Client.VCDHREF + samlMetadataUrl := url.Scheme + "://" + url.Host + "/cloud/org/" + org + "/saml/metadata/alias/vcd" + + metadata := types.VcdSamlMetadata{} + errString := fmt.Sprintf("SAML - unable to load metadata from URL %s: %%s", samlMetadataUrl) + _, err := vcdCli.Client.ExecuteRequest(samlMetadataUrl, http.MethodGet, "", errString, nil, &metadata) + if err != nil { + return "", err + } + + samlEntityId := metadata.EntityID + util.Logger.Printf("[DEBUG] SAML got entity ID: %s", samlEntityId) + + if samlEntityId == "" { + return "", errors.New("SAML - got empty entity ID") + } + + return samlEntityId, nil +} + +// getSamlAuthToken generates a token request payload using function +// getSamlTokenRequestBody. This request is submitted to ADFS server endpoint +// "/adfs/services/trust/13/usernamemixed" and `RequestedSecurityTokenTxt` is expected in response +// Sample response body can be found in saml_auth_unit_test.go +func getSamlAuthToken(vcdCli *VCDClient, user, pass, samlEntityId, authEndpoint, org string) (string, error) { + requestBody := getSamlTokenRequestBody(user, pass, samlEntityId, authEndpoint) + samlTokenRequestBody := strings.NewReader(requestBody) + tokenRequestResponse := types.AdfsAuthResponseEnvelope{} + + // Post to ADFS endpoint "/adfs/services/trust/13/usernamemixed" + authEndpointUrl, err := url.Parse(authEndpoint) + if err != nil { + return "", fmt.Errorf("SAML - error parsing authentication endpoint %s: %s", authEndpoint, err) + } + req := vcdCli.Client.NewRequest(nil, http.MethodPost, *authEndpointUrl, samlTokenRequestBody) + req.Header.Add("Content-Type", types.SoapXML) + resp, err := vcdCli.Client.Http.Do(req) + resp, err = checkRespWithErrType(types.BodyTypeXML, resp, err, &types.AdfsAuthErrorEnvelope{}) + if err != nil { + return "", fmt.Errorf("SAML - ADFS token request query failed for RPT ID ('%s'): %s", + samlEntityId, err) + } + + err = decodeBody(types.BodyTypeXML, resp, &tokenRequestResponse) + if err != nil { + return "", fmt.Errorf("SAML - error decoding ADFS token request response: %s", err) + } + + tokenString := tokenRequestResponse.Body.RequestSecurityTokenResponseCollection.RequestSecurityTokenResponse.RequestedSecurityTokenTxt.Text + + return tokenString, nil +} + +// authorizeSignToken submits a SIGN token received from ADFS server and gets regular vCD +// "X-Vcloud-Authorization" token in exchange +// Sample response body can be found in saml_auth_unit_test.go +func authorizeSignToken(vcdCli *VCDClient, base64GzippedSignToken, org string) (string, error) { + url, err := url.Parse(vcdCli.Client.VCDHREF.Scheme + "://" + vcdCli.Client.VCDHREF.Host + "/api/sessions") + if err != nil { + return "", fmt.Errorf("SAML error - could not parse URL for posting SIGN token: %s", err) + } + + signHeader := http.Header{} + signHeader.Add("Authorization", `SIGN token="`+base64GzippedSignToken+`",org="`+org+`"`) + + req := vcdCli.Client.newRequest(nil, nil, http.MethodPost, *url, nil, vcdCli.Client.APIVersion, signHeader) + resp, err := checkResp(vcdCli.Client.Http.Do(req)) + if err != nil { + return "", fmt.Errorf("SAML - error submitting SIGN token for authentication to %s: %s", req.URL.String(), err) + } + err = decodeBody(types.BodyTypeXML, resp, nil) + if err != nil { + return "", fmt.Errorf("SAML - error decoding body SIGN token auth response: %s", err) + } + + accessToken := resp.Header.Get("X-Vcloud-Authorization") + util.Logger.Printf("[DEBUG] SAML - setting access token for further requests") + return accessToken, nil +} + +// getSamlTokenRequestBody returns a SAML Token request body which is accepted by ADFS server +// endpoint "/adfs/services/trust/13/usernamemixed". +// The payload is not configured as a struct and unmarshalled because Go's unmarshalling changes +// structure so that ADFS does not accept the payload +func getSamlTokenRequestBody(user, password, samlEntityIdReference, adfsAuthEndpoint string) string { + return ` + + http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue + + http://www.w3.org/2005/08/addressing/anonymous + + ` + adfsAuthEndpoint + ` + + + ` + time.Now().Format(time.RFC3339) + ` + ` + time.Now().Add(1*time.Minute).Format(time.RFC3339) + ` + + + ` + user + ` + ` + password + ` + + + + + + + + ` + samlEntityIdReference + ` + + + 0 + http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer + + http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue + http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0 + + +` +} + +// gzipAndBase64Encode accepts a string, gzips it and encodes in base64 +func gzipAndBase64Encode(text string) (string, error) { + var gzipBuffer bytes.Buffer + gz := gzip.NewWriter(&gzipBuffer) + if _, err := gz.Write([]byte(text)); err != nil { + return "", fmt.Errorf("error writing to gzip buffer: %s", err) + } + if err := gz.Close(); err != nil { + return "", fmt.Errorf("error closing gzip buffer: %s", err) + } + base64GzippedToken := base64.StdEncoding.EncodeToString(gzipBuffer.Bytes()) + + return base64GzippedToken, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/sample_govcd_test_config.yaml b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/sample_govcd_test_config.yaml new file mode 100644 index 000000000..51946162d --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/sample_govcd_test_config.yaml @@ -0,0 +1,192 @@ +# COPY THIS FILE to govcd_test_config.yaml +# in the same directory and change the values +# to match your environment. +# +# All items in this file must exist already +# (They will not be removed or left altered) +# The test will create a vApp and remove it at the end +# +provider: + # vCD administrator credentials + # (Providing org credentials will skip some tests) + user: someuser + password: somepassword + # If token is provided, username and password are ignored + token: an_auth_token + # If useSamlAdfs is true - client will try to authenticate against ADFS using SAML. + useSamlAdfs: false + # customAdfsRptId allows to specify custom Relaying Party Trust Identifier. By default client + # will use vCD SAML Entity ID + # customAdfsRptId: "" + + # The 3 fields below allow to set SAML credentials for tests that specifically use it. + # May be useful when local user credentials are used by default. Such credentials will + # authenticate to Org specified in vcd.org parameter. + # samlUser: test@test-forest.net + # samlPassword: XXX + # samlCustomRptId: "my-optional-custom-relaying-party-trust-id" + # + # The vCD address, in the format https://vCD_IP/api + # or https://vCD_host_name/api + url: https://11.111.1.111/api + # + # The organization you are authenticating with + sysOrg: System + # (Optional) MaxRetryTimeout specifies a time limit (in seconds) for retrying requests made by the SDK + # where vCloud director may take time to respond and retry mechanism is needed. + # This must be >0 to avoid instant timeout errors. If omitted - default value is set. + # maxRetryTimeout: 60 + # + # (Optional) httpTimeout specifies a time limit (in seconds) for waiting http response. + # If omitted - default value is set. + # httpTimeout: 600 +vcd: + # Name of the organization (mandatory) + org: myorg + # + # The virtual data center (mandatory) + # The tests will create a vApp here + # + vdc: myvdc + # Provider VDC; if omitted, some tests will be skipped + provider_vdc: + name: myprovidervdc + storage_profile: mystorageprofile + network_pool: mynetworkpool + # Provider VDC details for NSX-T testing + nsxt_provider_vdc: + name: nsxTPvdc1 + storage_profile: "*" + network_pool: "NSX-T Overlay 1" + nsxt: + # NSX-T manager name to be used as defined in VCD + manager: nsxManager1 + # NSX-T tier-0 router used for external network tests + tier0router: tier-0-router + # NSX-T tier-0 VRF router used for external network tests + tier0routerVrf: tier-0-router-vrf + # Existing External Network with correct configuration + externalNetwork: tier0-backed-external-network + # Existing NSX-T based VDC + vdc: nsxt-vdc-name + # Existing NSX-T edge gateway + edgeGateway: nsxt-gw-name + # Existing NSX-T segment to test NSX-T Imported Org Vdc network + nsxtImportSegment: vcd-org-vdc-imported-network-backing + # An Org catalog, possibly containing at least one item + catalog: + name: mycat + # One item in the catalog. It will be used to compose test vApps. Some tests rely on it + # being Photon OS. If it is not Photon OS - some tests will be skipped + catalogItem: myitem + # + # An optional description for the catalog. Its test will be skipped if omitted. + # If provided, it must be the current description of the catalog + description: mycat for loading + # + # An optional description for the catalog item + catalogItemDescription: myitem to create vapps + # + # Item in the catalog. If available it will be used to test vApp with multi VMs and `ovaMultiVmPath` will be ignored + catalogItemWithMultiVms: my item with multi VMs + # Name of VM in `catalogItemWithMultiVms` template or in `ovaMultiVmPath` if `catalogItemWithMultiVms` isn't provided. Default vmName `thirdVM` in default OVA. + vmNameInMultiVmItem: thirdVM + # Existing VDC networks. At least one is needed. + network: + # First vdc network (mandatory) + network1: "mynet" + # Second vdc network. If omitted, some tests will be skipped. + network2: "mynet2" + # Storage profiles used in the vDC + # One or two can be listed + storageProfile: + # First storage profile (mandatory) + storageProfile1: Development + # Second storage profile. If omitted, some tests will be skipped. + storageProfile2: "*" + # An edge gateway + # (see https://pubs.vmware.com/vca/topic/com.vmware.vcloud.api.doc_56/GUID-18B0FB8B-385C-4B6D-982C-4B24D271C646.html) + edgeGateway: myedgegw + # + # The IP of the gateway (must exist) + externalIp: 10.150.10.10 + # + # netmask for the external IP (MANDATORY for edge GW VPN) + externalNetmask: 255.255.224.0 + # + # A free IP in the Org vDC network + internalIp: 192.168.1.10 + # + # netmask for the internal IP (MANDATORY for edge GW VPN) + internalNetmask: 255.255.255.0 + # + # An existing external Network name + externalNetwork: myexternalnet + # + # A port group name for creating a new external network in tests + externalNetworkPortGroup: ForTestingPG + # + # A port group type for creating a new external network in tests. Can be DV_PORTGROUP or NETWORK + externalNetworkPortGroupType: NETWORK + # + # A vSphere server name for creating an external network + vimServer: vc9 + # +logging: + # All items in this section are optional + # Logging is disabled by default. + # See ./util/LOGGING.md for more info + # + # Enables or disables logs + enabled: true + # + # changes the log name + logFileName: "go-vcloud-director.log" + # + # Defines whether we log the requests in HTTP operations + logHttpRequests: true + # + # Defines whether we log the responses in HTTP operations + logHttpResponses: true + # + # Comma-separated list of XML tags to skip from the API logs + skipResponseTags: SupportedVersions,VAppTemplate + # + # Comma-separated list of functions from where we log the API calls. + # When this is set, we only log API requests and responses if the name + # of the function matches any of the names in this list. + logFunctions: FindVAppByName,GetAdminOrgByName + # + # Shows details of cleanup operations after tests + verboseCleanup: true +ova: + # The ova for uploading catalog item for tests. + # Default paths are simple ova provided by project + # Empty values skips the tests + # Absolute or relative path + ovaPath: ../test-resources/test_vapp_template.ova + # + # The chunked ova (vmdk inside are split) for tests + ovaChunkedPath: ../test-resources/template_with_custom_chunk_size.ova + # + # The ova with multi VMs for tests. + ovaMultiVmPath: ../test-resources/vapp_with_3_vms.ova + # + # The ova with no VMDK size in ovf for tests. + ovaWithoutSizePath: ../test-resources/template_without_vmdk_size.ova + # + # The ovf for uploading catalog item for tests. + ovfPath: ../test-resources/test_vapp_template_ovf/descriptor.ovf +media: + # The iso for uploading media item for tests. + # Default paths are simple iso provided by project + # Empty values skips the tests + # Absolute or relative path + mediaPath: ../test-resources/test.iso + # Existing media in test system + mediaName: uploadedMediaName +misc: + # By default tests in this repository pick LDAP container 'rroemhild/test-openldap'. As docker throttles downloads + # it can help to host the image on local registry and pull it from there. This variable overrides default container + # location when set. + #ldapContainer: custom-registry.yyy/directory/test-openldap:latest diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/session_info.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/session_info.go new file mode 100644 index 000000000..9eebb2c97 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/session_info.go @@ -0,0 +1,129 @@ +package govcd + +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +import ( + "encoding/json" + "fmt" + "strings" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// ExtendedSessionInfo collects data regarding a VCD connection +type ExtendedSessionInfo struct { + User string + Org string + Roles []string + Rights []string + Version string + ConnectionType string +} + +// GetSessionInfo collects the basic session information for a VCD connection +func (client *Client) GetSessionInfo() (*types.CurrentSessionInfo, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointSessionCurrent + + // We get the maximum supported version, as early versions of the API return less data + apiVersion, err := client.MaxSupportedVersion() + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + var info types.CurrentSessionInfo + + err = client.OpenApiGetItem(apiVersion, urlRef, nil, &info, nil) + if err != nil { + return nil, err + } + + return &info, nil +} + +// GetExtendedSessionInfo collects extended session information for support and debugging +// It will try to collect as much data as possible, failing only if the minimum data can't +// be collected. +func (vcdClient *VCDClient) GetExtendedSessionInfo() (*ExtendedSessionInfo, error) { + var extendedSessionInfo ExtendedSessionInfo + sessionInfo, err := vcdClient.Client.GetSessionInfo() + if err != nil { + return nil, err + } + switch { + case vcdClient.Client.UsingBearerToken: + extendedSessionInfo.ConnectionType = "Bearer token" + case vcdClient.Client.UsingAccessToken: + extendedSessionInfo.ConnectionType = "API Access token" + default: + extendedSessionInfo.ConnectionType = "Username + password" + } + version, err := vcdClient.Client.GetVcdFullVersion() + if err == nil { + extendedSessionInfo.Version = version.Version.String() + } + if sessionInfo.User.Name == "" { + return nil, fmt.Errorf("no user reference found") + } + extendedSessionInfo.User = sessionInfo.User.Name + + if sessionInfo.Org.Name == "" { + return nil, fmt.Errorf("no Org reference found") + } + extendedSessionInfo.Org = sessionInfo.Org.Name + + if len(sessionInfo.Roles) == 0 { + return &extendedSessionInfo, nil + } + extendedSessionInfo.Roles = append(extendedSessionInfo.Roles, sessionInfo.Roles...) + org, err := vcdClient.GetAdminOrgById(sessionInfo.Org.ID) + if err != nil { + return &extendedSessionInfo, err + } + for _, roleRef := range sessionInfo.RoleRefs { + role, err := org.GetRoleById(roleRef.ID) + if err != nil { + continue + } + rights, err := role.GetRights(nil) + if err != nil { + continue + } + for _, right := range rights { + extendedSessionInfo.Rights = append(extendedSessionInfo.Rights, right.Name) + } + } + return &extendedSessionInfo, nil +} + +// LogSessionInfo prints session information into the default logs +func (client *VCDClient) LogSessionInfo() { + + // If logging is disabled, there is no point in collecting session info + if util.EnableLogging { + info, err := client.GetExtendedSessionInfo() + if err != nil { + util.Logger.Printf("no session info collected: %s\n", err) + return + } + text, err := json.MarshalIndent(info, " ", " ") + if err != nil { + util.Logger.Printf("error formatting session info %s\n", err) + return + } + util.Logger.Println(strings.Repeat("*", 80)) + util.Logger.Println("START SESSION INFO") + util.Logger.Println(strings.Repeat("*", 80)) + util.Logger.Printf("%s\n", text) + util.Logger.Println(strings.Repeat("*", 80)) + util.Logger.Println("END SESSION INFO") + util.Logger.Println(strings.Repeat("*", 80)) + } +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/system.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/system.go new file mode 100644 index 000000000..f4426abfa --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/system.go @@ -0,0 +1,1116 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "encoding/xml" + "errors" + "fmt" + "net/http" + "net/url" + "regexp" + "strings" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// Simple structure to pass Edge Gateway creation parameters. +type EdgeGatewayCreation struct { + ExternalNetworks []string // List of external networks to be linked to this gateway + DefaultGateway string // Which network should be used as default gateway (empty name = no default gateway) + OrgName string // parent Org + VdcName string // parent VDC + Name string // edge gateway name + Description string // Optional description + BackingConfiguration string // Type of backing configuration (compact, full) + AdvancedNetworkingEnabled bool // enable advanced gateway + HAEnabled bool // enable HA + UseDefaultRouteForDNSRelay bool // True if the default gateway should be used as the DNS relay + DistributedRoutingEnabled bool // If advanced networking enabled, also enable distributed routing +} + +// Creates an Admin Organization based on settings, description, and org name. +// The Organization created will have these settings specified in the +// settings parameter. The settings variable is defined in types.go. +// Method will fail unless user has an admin token. +// API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/POST-CreateOrganization.html +// Organization creation in vCD has two bugs BZ 2177355, BZ 2228936 (fixes are in 9.1.0.3 and 9.5.0.2) which require +// organization settings to be provided as workarounds. +// At least one element among DelayAfterPowerOnSeconds, DeployedVMQuota, StoredVmQuota, UseServerBootSequence, getVdcQuota +// should be set when providing generalOrgSettings. +// If either VAppLeaseSettings or VAppTemplateLeaseSettings is provided then all elements need to have values, otherwise don't provide them at all. +// Overall elements must be in the correct order. +func CreateOrg(vcdClient *VCDClient, name string, fullName string, description string, settings *types.OrgSettings, isEnabled bool) (Task, error) { + vcomp := &types.AdminOrg{ + Xmlns: types.XMLNamespaceVCloud, + Name: name, + IsEnabled: isEnabled, + FullName: fullName, + Description: description, + OrgSettings: settings, + } + + // There is a bug in the settings of CanPublishCatalogs. + // If UseServerBootSequence is not set, CanPublishCatalogs is always false + // regardless of the value passed during creation. + if settings != nil { + if settings.OrgGeneralSettings != nil { + settings.OrgGeneralSettings.UseServerBootSequence = true + } + } + orgCreateHREF := vcdClient.Client.VCDHREF + orgCreateHREF.Path += "/admin/orgs" + + // Return the task + return vcdClient.Client.ExecuteTaskRequest(orgCreateHREF.String(), http.MethodPost, + "application/vnd.vmware.admin.organization+xml", "error instantiating a new Org: %s", vcomp) + +} + +// Returns the UUID part of an entity ID +// From "urn:vcloud:vdc:72fefde7-4fed-45b8-a774-79b72c870325", +// will return "72fefde7-4fed-45b8-a774-79b72c870325" +// From "urn:vcloud:catalog:97384890-180c-4563-b9b7-0dc50a2430b0" +// will return "97384890-180c-4563-b9b7-0dc50a2430b0" +func getBareEntityUuid(entityId string) (string, error) { + // Regular expression to match an ID: + // 3 strings (alphanumeric + "-") separated by a colon (:) + // 1 group of 8 hexadecimal digits + // 3 groups of 4 hexadecimal digits + // 1 group of 12 hexadecimal digits + reGetID := regexp.MustCompile(`^[\w-]+:[\w-]+:[\w-]+:([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})$`) + matchList := reGetID.FindAllStringSubmatch(entityId, -1) + + // matchList has the format + // [][]string{[]string{"TOTAL MATCHED STRING", "CAPTURED TEXT"}} + // such as + // [][]string{[]string{"urn:vcloud:catalog:97384890-180c-4563-b9b7-0dc50a2430b0", "97384890-180c-4563-b9b7-0dc50a2430b0"}} + if len(matchList) == 0 || len(matchList[0]) < 2 { + return "", fmt.Errorf("error extracting ID from '%s'", entityId) + } + return matchList[0][1], nil +} + +// CreateEdgeGatewayAsync creates an edge gateway using a simplified configuration structure +// https://code.vmware.com/apis/442/vcloud-director/doc/doc/operations/POST-CreateEdgeGateway.html +// +// Note. This function does not allow to pick exact subnet in external network to use for edge +// gateway. It will pick first one instead. +func CreateEdgeGatewayAsync(vcdClient *VCDClient, egwc EdgeGatewayCreation) (Task, error) { + + distributed := egwc.DistributedRoutingEnabled + if !egwc.AdvancedNetworkingEnabled { + distributed = false + } + // This is the main configuration structure + egwConfiguration := &types.EdgeGateway{ + Xmlns: types.XMLNamespaceVCloud, + Name: egwc.Name, + Description: egwc.Description, + Configuration: &types.GatewayConfiguration{ + UseDefaultRouteForDNSRelay: &egwc.UseDefaultRouteForDNSRelay, + HaEnabled: &egwc.HAEnabled, + GatewayBackingConfig: egwc.BackingConfiguration, + AdvancedNetworkingEnabled: &egwc.AdvancedNetworkingEnabled, + DistributedRoutingEnabled: &distributed, + GatewayInterfaces: &types.GatewayInterfaces{ + GatewayInterface: []*types.GatewayInterface{}, + }, + EdgeGatewayServiceConfiguration: &types.GatewayFeatures{}, + }, + } + + if len(egwc.ExternalNetworks) == 0 { + return Task{}, fmt.Errorf("no external networks provided. At least one is needed") + } + + // If the user has indicated a default gateway, we make sure that it matches + // a name in the list of external networks + if egwc.DefaultGateway != "" { + defaultGatewayFound := false + for _, name := range egwc.ExternalNetworks { + if egwc.DefaultGateway == name { + defaultGatewayFound = true + } + } + if !defaultGatewayFound { + return Task{}, fmt.Errorf("default gateway (%s) selected, but its name is not among the external networks (%v)", egwc.DefaultGateway, egwc.ExternalNetworks) + } + } + // Add external networks inside the configuration structure + for _, extNetName := range egwc.ExternalNetworks { + extNet, err := vcdClient.GetExternalNetworkByName(extNetName) + if err != nil { + return Task{}, err + } + + // Populate the subnet participation only if default gateway was set + var subnetParticipation *types.SubnetParticipation + if egwc.DefaultGateway != "" && extNet.ExternalNetwork.Name == egwc.DefaultGateway { + for _, net := range extNet.ExternalNetwork.Configuration.IPScopes.IPScope { + if net.IsEnabled { + subnetParticipation = &types.SubnetParticipation{ + Gateway: net.Gateway, + Netmask: net.Netmask, + } + break + } + } + } + networkConf := &types.GatewayInterface{ + Name: extNet.ExternalNetwork.Name, + DisplayName: extNet.ExternalNetwork.Name, + InterfaceType: "uplink", + Network: &types.Reference{ + HREF: extNet.ExternalNetwork.HREF, + ID: extNet.ExternalNetwork.ID, + Type: "application/vnd.vmware.admin.network+xml", + Name: extNet.ExternalNetwork.Name, + }, + UseForDefaultRoute: egwc.DefaultGateway == extNet.ExternalNetwork.Name, + SubnetParticipation: []*types.SubnetParticipation{subnetParticipation}, + } + + egwConfiguration.Configuration.GatewayInterfaces.GatewayInterface = + append(egwConfiguration.Configuration.GatewayInterfaces.GatewayInterface, networkConf) + } + + // Once the configuration structure has been filled using the simplified data, we delegate + // the edge gateway creation to the main configuration function. + return CreateAndConfigureEdgeGatewayAsync(vcdClient, egwc.OrgName, egwc.VdcName, egwc.Name, egwConfiguration) +} + +// CreateAndConfigureEdgeGatewayAsync creates an edge gateway using a full configuration structure +func CreateAndConfigureEdgeGatewayAsync(vcdClient *VCDClient, orgName, vdcName, egwName string, egwConfiguration *types.EdgeGateway) (Task, error) { + + if egwConfiguration.Name != egwName { + return Task{}, fmt.Errorf("name mismatch: '%s' used as parameter but '%s' in the configuration structure", egwName, egwConfiguration.Name) + } + + egwConfiguration.Xmlns = types.XMLNamespaceVCloud + + adminOrg, err := vcdClient.GetAdminOrgByName(orgName) + if err != nil { + return Task{}, err + } + vdc, err := adminOrg.GetVDCByName(vdcName, false) + if err != nil { + return Task{}, err + } + + egwCreateHREF := vcdClient.Client.VCDHREF + + vdcId, err := getBareEntityUuid(vdc.Vdc.ID) + if err != nil { + return Task{}, fmt.Errorf("error retrieving ID from Vdc %s: %s", vdcName, err) + } + if vdcId == "" { + return Task{}, fmt.Errorf("error retrieving ID from Vdc %s - empty ID returned", vdcName) + } + egwCreateHREF.Path += fmt.Sprintf("/admin/vdc/%s/edgeGateways", vdcId) + + // The first task is the creation task. It is quick, and does only create the vCD entity, + // but not yet deploy the underlying VM + creationTask, err := vcdClient.Client.ExecuteTaskRequest(egwCreateHREF.String(), http.MethodPost, + "application/vnd.vmware.admin.edgeGateway+xml", "error instantiating a new Edge Gateway: %s", egwConfiguration) + + if err != nil { + return Task{}, err + } + + err = creationTask.WaitTaskCompletion() + + if err != nil { + return Task{}, err + } + + // After creation, there is a build task that supervises the gateway deployment + for _, innerTask := range creationTask.Task.Tasks.Task { + if innerTask.OperationName == "networkEdgeGatewayCreate" { + deployTask := Task{ + Task: innerTask, + client: &vcdClient.Client, + } + return deployTask, nil + } + } + return Task{}, fmt.Errorf("no deployment task found for edge gateway %s - The edge gateway might have been created, but not deployed properly", egwName) +} + +// Private convenience function used by CreateAndConfigureEdgeGateway and CreateEdgeGateway to +// process the task and return the object that was created. +// It should not be invoked directly. +func createEdgeGateway(vcdClient *VCDClient, egwc EdgeGatewayCreation, egwConfiguration *types.EdgeGateway) (EdgeGateway, error) { + var task Task + var err error + if egwConfiguration != nil { + task, err = CreateAndConfigureEdgeGatewayAsync(vcdClient, egwc.OrgName, egwc.VdcName, egwc.Name, egwConfiguration) + } else { + task, err = CreateEdgeGatewayAsync(vcdClient, egwc) + } + + if err != nil { + return EdgeGateway{}, err + } + err = task.WaitTaskCompletion() + if err != nil { + return EdgeGateway{}, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + // The edge gateway is created. Now we retrieve it from the server + org, err := vcdClient.GetAdminOrgByName(egwc.OrgName) + if err != nil { + return EdgeGateway{}, err + } + vdc, err := org.GetVDCByName(egwc.VdcName, false) + if err != nil { + return EdgeGateway{}, err + } + egw, err := vdc.GetEdgeGatewayByName(egwc.Name, false) + if err != nil { + return EdgeGateway{}, err + } + return *egw, nil +} + +// CreateAndConfigureEdgeGateway creates an edge gateway using a full configuration structure +func CreateAndConfigureEdgeGateway(vcdClient *VCDClient, orgName, vdcName, egwName string, egwConfiguration *types.EdgeGateway) (EdgeGateway, error) { + return createEdgeGateway(vcdClient, EdgeGatewayCreation{OrgName: orgName, VdcName: vdcName, Name: egwName}, egwConfiguration) +} + +// CreateEdgeGateway creates an edge gateway using a simplified configuration structure +func CreateEdgeGateway(vcdClient *VCDClient, egwc EdgeGatewayCreation) (EdgeGateway, error) { + return createEdgeGateway(vcdClient, egwc, nil) +} + +func getOrgByHref(vcdClient *Client, href string) (*Org, error) { + org := NewOrg(vcdClient) + + _, err := vcdClient.ExecuteRequest(href, http.MethodGet, + "", "error retrieving org list: %s", nil, org.Org) + if err != nil { + return nil, err + } + + tenantContext, err := org.getTenantContext() + if err != nil { + return nil, err + } + org.TenantContext = tenantContext + + return org, nil +} + +func getAdminOrgByHref(vcdClient *Client, href string) (*AdminOrg, error) { + adminOrg := NewAdminOrg(vcdClient) + + _, err := vcdClient.ExecuteRequest(href, http.MethodGet, + "", "error retrieving org list: %s", nil, adminOrg.AdminOrg) + if err != nil { + return nil, err + } + + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + adminOrg.TenantContext = tenantContext + + return adminOrg, nil +} + +// If user specifies a valid organization name, then this returns a +// organization object. If no valid org is found, it returns an empty +// org and no error. Otherwise it returns an error and an empty +// Org object +// Deprecated: Use vcdClient.GetOrgByName instead +func GetOrgByName(vcdClient *VCDClient, orgName string) (Org, error) { + orgUrl, err := getOrgHREF(vcdClient, orgName) + if err != nil { + return Org{}, fmt.Errorf("organization '%s' fetch failed: %s", orgName, err) + } + org := NewOrg(&vcdClient.Client) + + _, err = vcdClient.Client.ExecuteRequest(orgUrl, http.MethodGet, + "", "error retrieving org list: %s", nil, org.Org) + if err != nil { + return Org{}, err + } + + return *org, nil +} + +// If user specifies valid organization name, +// then this returns an admin organization object. +// If no valid org is found, it returns an empty +// org and no error. Otherwise returns an empty AdminOrg +// and an error. +// API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/GET-Organization-AdminView.html +// Deprecated: Use vcdClient.GetAdminOrgByName instead +func GetAdminOrgByName(vcdClient *VCDClient, orgName string) (AdminOrg, error) { + orgUrl, err := getOrgHREF(vcdClient, orgName) + if err != nil { + return AdminOrg{}, err + } + orgHREF := vcdClient.Client.VCDHREF + orgHREF.Path += "/admin/org/" + strings.Split(orgUrl, "/api/org/")[1] + + org := NewAdminOrg(&vcdClient.Client) + + _, err = vcdClient.Client.ExecuteRequest(orgHREF.String(), http.MethodGet, + "", "error retrieving org: %s", nil, org.AdminOrg) + if err != nil { + return AdminOrg{}, err + } + + return *org, nil +} + +// Returns the HREF of the org with the name orgName +func getOrgHREF(vcdClient *VCDClient, orgName string) (string, error) { + orgListHREF := vcdClient.Client.VCDHREF + orgListHREF.Path += "/org" + + orgList := new(types.OrgList) + + _, err := vcdClient.Client.ExecuteRequest(orgListHREF.String(), http.MethodGet, + "", "error retrieving org list: %s", nil, orgList) + if err != nil { + return "", err + } + + // Look for orgName within OrgList + for _, org := range orgList.Org { + if org.Name == orgName { + return org.HREF, nil + } + } + return "", fmt.Errorf("couldn't find org with name: %s. Please check Org name as it is case sensitive", orgName) +} + +// Returns the HREF of the org from the org ID +func getOrgHREFById(vcdClient *VCDClient, orgId string) (string, error) { + orgListHREF := vcdClient.Client.VCDHREF + orgListHREF.Path += "/org" + + orgList := new(types.OrgList) + + _, err := vcdClient.Client.ExecuteRequest(orgListHREF.String(), http.MethodGet, + "", "error retrieving org list: %s", nil, orgList) + if err != nil { + return "", err + } + + orgUuid, err := getBareEntityUuid(orgId) + if err != nil { + return "", err + } + // Look for org UUID within OrgList + for _, org := range orgList.Org { + // ID in orgList is usually empty. We extract the UUID from HREF to make the comparison + uuidFromHref, err := GetUuidFromHref(org.HREF, true) + if err != nil { + return "", err + } + if uuidFromHref == orgUuid { + return org.HREF, nil + } + } + return "", fmt.Errorf("couldn't find org with ID: %s", orgId) +} + +// Find a list of Virtual Centers matching the filter parameter. +// Filter constructing guide: https://pubs.vmware.com/vcloud-api-1-5/wwhelp/wwhimpl/js/html/wwhelp.htm#href=api_prog/GUID-CDF04296-5EB5-47E1-9BEC-228837C584CE.html +// Possible parameters are any attribute from QueryResultVirtualCenterRecordType struct +// E.g. filter could look like: name==vC1 +func QueryVirtualCenters(vcdClient *VCDClient, filter string) ([]*types.QueryResultVirtualCenterRecordType, error) { + results, err := vcdClient.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "virtualCenter", + "filter": filter, + }) + if err != nil { + return nil, err + } + + return results.Results.VirtualCenterRecord, nil +} + +// Find a Network port group by name +func QueryNetworkPortGroup(vcdCli *VCDClient, name string) ([]*types.PortGroupRecordType, error) { + return QueryPortGroups(vcdCli, fmt.Sprintf("name==%s;portgroupType==%s", url.QueryEscape(name), "NETWORK")) +} + +// Find a Distributed port group by name +func QueryDistributedPortGroup(vcdCli *VCDClient, name string) ([]*types.PortGroupRecordType, error) { + return QueryPortGroups(vcdCli, fmt.Sprintf("name==%s;portgroupType==%s", url.QueryEscape(name), "DV_PORTGROUP")) +} + +// Find a list of Port groups matching the filter parameter. +func QueryPortGroups(vcdCli *VCDClient, filter string) ([]*types.PortGroupRecordType, error) { + results, err := vcdCli.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "portgroup", + "filter": filter, + "filterEncoded": "true", + }) + if err != nil { + return nil, err + } + + return results.Results.PortGroupRecord, nil +} + +// GetExternalNetwork returns an ExternalNetwork reference if the network name matches an existing one. +// If no valid external network is found, it returns an empty ExternalNetwork reference and an error +// Deprecated: use vcdClient.GetExternalNetworkByName instead +func GetExternalNetwork(vcdClient *VCDClient, networkName string) (*ExternalNetwork, error) { + + if !vcdClient.Client.IsSysAdmin { + return &ExternalNetwork{}, fmt.Errorf("functionality requires System Administrator privileges") + } + + extNetworkHREF, err := getExternalNetworkHref(&vcdClient.Client) + if err != nil { + return &ExternalNetwork{}, err + } + + extNetworkRefs := &types.ExternalNetworkReferences{} + _, err = vcdClient.Client.ExecuteRequest(extNetworkHREF, http.MethodGet, + types.MimeNetworkConnectionSection, "error retrieving external networks: %s", nil, extNetworkRefs) + if err != nil { + return &ExternalNetwork{}, err + } + + externalNetwork := NewExternalNetwork(&vcdClient.Client) + + found := false + for _, netRef := range extNetworkRefs.ExternalNetworkReference { + if netRef.Name == networkName { + externalNetwork.ExternalNetwork.HREF = netRef.HREF + err = externalNetwork.Refresh() + found = true + if err != nil { + return &ExternalNetwork{}, err + } + } + } + + if found { + return externalNetwork, nil + } + return externalNetwork, fmt.Errorf("could not find external network named %s", networkName) + +} + +// GetExternalNetworks returns a list of available external networks +func (vcdClient *VCDClient) GetExternalNetworks() (*types.ExternalNetworkReferences, error) { + + if !vcdClient.Client.IsSysAdmin { + return nil, fmt.Errorf("functionality requires System Administrator privileges") + } + + extNetworkHREF, err := getExternalNetworkHref(&vcdClient.Client) + if err != nil { + return nil, err + } + + extNetworkRefs := &types.ExternalNetworkReferences{} + _, err = vcdClient.Client.ExecuteRequest(extNetworkHREF, http.MethodGet, + types.MimeNetworkConnectionSection, "error retrieving external networks: %s", nil, extNetworkRefs) + if err != nil { + return nil, err + } + + return extNetworkRefs, nil +} + +// GetExternalNetworkByName returns an ExternalNetwork reference if the network name matches an existing one. +// If no valid external network is found, it returns a nil ExternalNetwork reference and an error +func (vcdClient *VCDClient) GetExternalNetworkByName(networkName string) (*ExternalNetwork, error) { + + extNetworkRefs, err := vcdClient.GetExternalNetworks() + + if err != nil { + return nil, err + } + + externalNetwork := NewExternalNetwork(&vcdClient.Client) + + for _, netRef := range extNetworkRefs.ExternalNetworkReference { + if netRef.Name == networkName { + externalNetwork.ExternalNetwork.HREF = netRef.HREF + err = externalNetwork.Refresh() + if err != nil { + return nil, err + } + return externalNetwork, nil + } + } + + return nil, ErrorEntityNotFound +} + +// GetExternalNetworkById returns an ExternalNetwork reference if the network ID matches an existing one. +// If no valid external network is found, it returns a nil ExternalNetwork reference and an error +func (vcdClient *VCDClient) GetExternalNetworkById(id string) (*ExternalNetwork, error) { + + extNetworkRefs, err := vcdClient.GetExternalNetworks() + + if err != nil { + return nil, err + } + + externalNetwork := NewExternalNetwork(&vcdClient.Client) + + for _, netRef := range extNetworkRefs.ExternalNetworkReference { + // ExternalNetworkReference items don't have ID + // We compare using the UUID from HREF + if equalIds(id, "", netRef.HREF) { + externalNetwork.ExternalNetwork.HREF = netRef.HREF + err = externalNetwork.Refresh() + if err != nil { + return nil, err + } + return externalNetwork, nil + } + } + + return nil, ErrorEntityNotFound +} + +// GetExternalNetworkByNameOrId returns an ExternalNetwork reference if either the network name or ID matches an existing one. +// If no valid external network is found, it returns a nil ExternalNetwork reference and an error +func (vcdClient *VCDClient) GetExternalNetworkByNameOrId(identifier string) (*ExternalNetwork, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return vcdClient.GetExternalNetworkByName(name) } + getById := func(id string, refresh bool) (interface{}, error) { return vcdClient.GetExternalNetworkById(id) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, false) + if entity == nil { + return nil, err + } + return entity.(*ExternalNetwork), err +} + +// CreateExternalNetwork allows create external network and returns Task or error. +// types.ExternalNetwork struct is general and used for various types of networks. But for external network +// fence mode is always isolated, isInherited is false, parentNetwork is empty. +func CreateExternalNetwork(vcdClient *VCDClient, externalNetworkData *types.ExternalNetwork) (Task, error) { + + if !vcdClient.Client.IsSysAdmin { + return Task{}, fmt.Errorf("functionality requires System Administrator privileges") + } + + err := validateExternalNetwork(externalNetworkData) + if err != nil { + return Task{}, err + } + + // Type: VimObjectRefType + // Namespace: http://www.vmware.com/vcloud/extension/v1.5 + // https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VimObjectRefsType.html + // Description: Represents the Managed Object Reference (MoRef) and the type of a vSphere object. + // Since: 0.9 + type vimObjectRefCreate struct { + VimServerRef *types.Reference `xml:"vmext:VimServerRef"` + MoRef string `xml:"vmext:MoRef"` + VimObjectType string `xml:"vmext:VimObjectType"` + } + + // Type: VimObjectRefsType + // Namespace: http://www.vmware.com/vcloud/extension/v1.5 + // https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VimObjectRefsType.html + // Description: List of VimObjectRef elements. + // Since: 0.9 + type vimObjectRefsCreate struct { + VimObjectRef []*vimObjectRefCreate `xml:"vmext:VimObjectRef"` + } + + // Type: VMWExternalNetworkType + // Namespace: http://www.vmware.com/vcloud/extension/v1.5 + // https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VMWExternalNetworkType.html + // Description: External network type. + // Since: 1.0 + type externalNetworkCreate struct { + XMLName xml.Name `xml:"vmext:VMWExternalNetwork"` + XmlnsVmext string `xml:"xmlns:vmext,attr,omitempty"` + XmlnsVcloud string `xml:"xmlns:vcloud,attr,omitempty"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Link []*types.Link `xml:"Link,omitempty"` + Description string `xml:"vcloud:Description,omitempty"` + Tasks *types.TasksInProgress `xml:"Tasks,omitempty"` + Configuration *types.NetworkConfiguration `xml:"vcloud:Configuration,omitempty"` + VimPortGroupRef *vimObjectRefCreate `xml:"VimPortGroupRef,omitempty"` + VimPortGroupRefs *vimObjectRefsCreate `xml:"vmext:VimPortGroupRefs,omitempty"` + VCloudExtension *types.VCloudExtension `xml:"VCloudExtension,omitempty"` + } + + // Specific struct is used as two different name spaces needed for vCD API and return struct has diff name spaces + externalNetwork := &externalNetworkCreate{} + externalNetwork.HREF = externalNetworkData.HREF + externalNetwork.Description = externalNetworkData.Description + externalNetwork.Name = externalNetworkData.Name + externalNetwork.Type = externalNetworkData.Type + externalNetwork.ID = externalNetworkData.ID + externalNetwork.OperationKey = externalNetworkData.OperationKey + externalNetwork.Link = externalNetworkData.Link + externalNetwork.Configuration = externalNetworkData.Configuration + if externalNetwork.Configuration != nil { + externalNetwork.Configuration.Xmlns = types.XMLNamespaceVCloud + } + externalNetwork.VCloudExtension = externalNetworkData.VCloudExtension + externalNetwork.XmlnsVmext = types.XMLNamespaceExtension + externalNetwork.XmlnsVcloud = types.XMLNamespaceVCloud + externalNetwork.Type = types.MimeExternalNetwork + if externalNetworkData.VimPortGroupRefs != nil { + externalNetwork.VimPortGroupRefs = &vimObjectRefsCreate{} + for _, vimObjRef := range externalNetworkData.VimPortGroupRefs.VimObjectRef { + externalNetwork.VimPortGroupRefs.VimObjectRef = append(externalNetwork.VimPortGroupRefs.VimObjectRef, &vimObjectRefCreate{ + VimServerRef: vimObjRef.VimServerRef, + MoRef: vimObjRef.MoRef, + VimObjectType: vimObjRef.VimObjectType, + }) + } + } + if externalNetworkData.VimPortGroupRef != nil { + externalNetwork.VimPortGroupRef = &vimObjectRefCreate{ + VimServerRef: externalNetworkData.VimPortGroupRef.VimServerRef, + MoRef: externalNetworkData.VimPortGroupRef.MoRef, + VimObjectType: externalNetworkData.VimPortGroupRef.VimObjectType, + } + } + + externalNetHREF := vcdClient.Client.VCDHREF + externalNetHREF.Path += "/admin/extension/externalnets" + + if externalNetwork.Configuration == nil { + externalNetwork.Configuration = &types.NetworkConfiguration{} + } + externalNetwork.Configuration.FenceMode = "isolated" + + // Return the task + task, err := vcdClient.Client.ExecuteTaskRequest(externalNetHREF.String(), http.MethodPost, + types.MimeExternalNetwork, "error instantiating a new ExternalNetwork: %s", externalNetwork) + + if err != nil { + return Task{}, err + } + if task.Task == nil || task.Task.Tasks == nil || len(task.Task.Tasks.Task) == 0 { + return Task{}, fmt.Errorf("create external network task wasn't found") + } + // Real task in task array + task.Task = task.Task.Tasks.Task[0] + + return task, err +} + +func getExtension(client *Client) (*types.Extension, error) { + extensions := &types.Extension{} + + extensionHREF := client.VCDHREF + extensionHREF.Path += "/admin/extension/" + + _, err := client.ExecuteRequest(extensionHREF.String(), http.MethodGet, + "", "error retrieving extension: %s", nil, extensions) + + return extensions, err +} + +// GetStorageProfileByHref fetches storage profile using provided HREF. +// Deprecated: use client.GetStorageProfileByHref or vcdClient.GetStorageProfileByHref +func GetStorageProfileByHref(vcdClient *VCDClient, url string) (*types.VdcStorageProfile, error) { + return vcdClient.Client.GetStorageProfileByHref(url) +} + +// GetStorageProfileByHref fetches a storage profile using its HREF. +func (vcdClient *VCDClient) GetStorageProfileByHref(url string) (*types.VdcStorageProfile, error) { + return vcdClient.Client.GetStorageProfileByHref(url) +} + +// GetStorageProfileByHref fetches a storage profile using its HREF. +func (client *Client) GetStorageProfileByHref(url string) (*types.VdcStorageProfile, error) { + + vdcStorageProfile := &types.VdcStorageProfile{} + + _, err := client.ExecuteRequest(url, http.MethodGet, + "", "error retrieving storage profile: %s", nil, vdcStorageProfile) + if err != nil { + return nil, err + } + + return vdcStorageProfile, nil +} + +// QueryProviderVdcStorageProfileByName finds a provider VDC storage profile by name +// There are four cases: +// 1. [FOUND] The name matches and is unique among all the storage profiles +// 2. [FOUND] The name matches, it is not unique, and it is disambiguated by the provider VDC HREF +// 3. [NOT FOUND] The name matches, is not unique, but no Provider HREF was given: the search will fail +// 4. [NOT FOUND] The name does not match any of the storage profiles +func (vcdClient *VCDClient) QueryProviderVdcStorageProfileByName(name, providerVDCHref string) (*types.QueryResultProviderVdcStorageProfileRecordType, error) { + results, err := vcdClient.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "providerVdcStorageProfile", + "pageSize": "128", + }) + if err != nil { + return nil, err + } + + // Note: pageSize of 128 (the maximum page size allowed) should be enough to get all storage profiles. + // In case this is not true, we trap the error, so that we become aware that this assumption is incorrect. + // TODO: convert this query into a cumulativeQuery + if results.Results.Total > 128.0 { + return nil, fmt.Errorf("[QueryWithNotEncodedParams] FATAL - more than 128 storage profiles found. Refactory needed") + } + + var recs []*types.QueryResultProviderVdcStorageProfileRecordType + for _, rec := range results.Results.ProviderVdcStorageProfileRecord { + if rec.Name == name { + // Double match: both the name and the provider VDC match: we can return the result + if providerVDCHref != "" && providerVDCHref == rec.ProviderVdcHREF { + return rec, nil + } + // if there is a name match, but no provider VDC was given, we add to the result, and we will check later. + if providerVDCHref == "" { + recs = append(recs, rec) + } + } + } + + providerVDCMessage := "" + if providerVDCHref != "" { + providerVDCMessage = fmt.Sprintf("in provider VDC '%s'", providerVDCHref) + } + if len(recs) == 0 { + return nil, fmt.Errorf("no records found for storage profile '%s' %s", name, providerVDCMessage) + } + if len(recs) > 1 { + return nil, fmt.Errorf("more than 1 record found for storage profile '%s'. Add Provider VDC HREF in the search to disambiguate", name) + } + return recs[0], nil +} + +// QueryProviderVdcStorageProfileByName finds a provider VDC storage profile by name +// Deprecated: wrong implementation. Use VCDClient.QueryProviderVdcStorageProfileByName +func QueryProviderVdcStorageProfileByName(vcdCli *VCDClient, name string) ([]*types.QueryResultProviderVdcStorageProfileRecordType, error) { + results, err := vcdCli.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "providerVdcStorageProfile", + "filter": fmt.Sprintf("name==%s", url.QueryEscape(name)), + "filterEncoded": "true", + }) + if err != nil { + return nil, err + } + + return results.Results.ProviderVdcStorageProfileRecord, nil +} + +// QueryNetworkPoolByName finds a network pool by name +func QueryNetworkPoolByName(vcdCli *VCDClient, name string) ([]*types.QueryResultNetworkPoolRecordType, error) { + results, err := vcdCli.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "networkPool", + "filter": fmt.Sprintf("name==%s", url.QueryEscape(name)), + "filterEncoded": "true", + }) + if err != nil { + return nil, err + } + + return results.Results.NetworkPoolRecord, nil +} + +// QueryProviderVdcByName finds a provider VDC by name +func QueryProviderVdcByName(vcdCli *VCDClient, name string) ([]*types.QueryResultVMWProviderVdcRecordType, error) { + results, err := vcdCli.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "providerVdc", + "filter": fmt.Sprintf("name==%s", url.QueryEscape(name)), + "filterEncoded": "true", + }) + if err != nil { + return nil, err + } + + return results.Results.VMWProviderVdcRecord, nil +} + +// QueryProviderVdcs gets the list of available provider VDCs +func (vcdClient *VCDClient) QueryProviderVdcs() ([]*types.QueryResultVMWProviderVdcRecordType, error) { + results, err := vcdClient.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "providerVdc", + }) + if err != nil { + return nil, err + } + + return results.Results.VMWProviderVdcRecord, nil +} + +// QueryNetworkPools gets the list of network pools +func (vcdClient *VCDClient) QueryNetworkPools() ([]*types.QueryResultNetworkPoolRecordType, error) { + results, err := vcdClient.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "networkPool", + }) + if err != nil { + return nil, err + } + + return results.Results.NetworkPoolRecord, nil +} + +// QueryProviderVdcStorageProfiles gets the list of provider VDC storage profiles from ALL provider VDCs +// Deprecated: use either client.QueryProviderVdcStorageProfiles or client.QueryAllProviderVdcStorageProfiles +func (vcdClient *VCDClient) QueryProviderVdcStorageProfiles() ([]*types.QueryResultProviderVdcStorageProfileRecordType, error) { + return vcdClient.Client.QueryAllProviderVdcStorageProfiles() +} + +// QueryAllProviderVdcStorageProfiles gets the list of provider VDC storage profiles from ALL provider VDCs +func (client *Client) QueryAllProviderVdcStorageProfiles() ([]*types.QueryResultProviderVdcStorageProfileRecordType, error) { + results, err := client.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "providerVdcStorageProfile", + }) + if err != nil { + return nil, err + } + + return results.Results.ProviderVdcStorageProfileRecord, nil +} + +// QueryProviderVdcStorageProfiles gets the list of provider VDC storage profiles for a given Provider VDC +func (client *Client) QueryProviderVdcStorageProfiles(providerVdcHref string) ([]*types.QueryResultProviderVdcStorageProfileRecordType, error) { + results, err := client.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "providerVdcStorageProfile", + "filter": fmt.Sprintf("providerVdc==%s", providerVdcHref), + }) + if err != nil { + return nil, err + } + + return results.Results.ProviderVdcStorageProfileRecord, nil +} + +// QueryCompatibleStorageProfiles retrieves all storage profiles belonging to the same provider VDC to which +// the Org VDC belongs +func (adminVdc *AdminVdc) QueryCompatibleStorageProfiles() ([]*types.QueryResultProviderVdcStorageProfileRecordType, error) { + return adminVdc.client.QueryProviderVdcStorageProfiles(adminVdc.AdminVdc.ProviderVdcReference.HREF) +} + +// GetNetworkPoolByHREF functions fetches an network pool using VDC client and network pool href +func GetNetworkPoolByHREF(client *VCDClient, href string) (*types.VMWNetworkPool, error) { + util.Logger.Printf("[TRACE] Get network pool by HREF: %s\n", href) + + networkPool := &types.VMWNetworkPool{} + + _, err := client.Client.ExecuteRequest(href, http.MethodGet, + "", "error fetching network pool: %s", nil, networkPool) + + // Return the disk + return networkPool, err + +} + +// QueryOrgVdcNetworkByName finds a org VDC network by name which has edge gateway as reference +func QueryOrgVdcNetworkByName(vcdCli *VCDClient, name string) ([]*types.QueryResultOrgVdcNetworkRecordType, error) { + results, err := vcdCli.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "orgVdcNetwork", + "filter": fmt.Sprintf("name==%s", url.QueryEscape(name)), + "filterEncoded": "true", + }) + if err != nil { + return nil, err + } + + return results.Results.OrgVdcNetworkRecord, nil +} + +// QueryAllVdcs returns all Org VDCs in a VCD instance +// +// This function requires "System" user or returns an error +func (client *Client) QueryAllVdcs() ([]*types.QueryResultOrgVdcRecordType, error) { + if !client.IsSysAdmin { + return nil, errors.New("this function only works with 'System' user") + } + return queryOrgVdcList(client, nil) +} + +// QueryNsxtManagerByName searches for NSX-T managers available in VCD +func (vcdClient *VCDClient) QueryNsxtManagerByName(name string) ([]*types.QueryResultNsxtManagerRecordType, error) { + results, err := vcdClient.QueryWithNotEncodedParams(nil, map[string]string{ + "type": "nsxTManager", + "filter": fmt.Sprintf("name==%s", url.QueryEscape(name)), + "filterEncoded": "true", + }) + if err != nil { + return nil, err + } + + return results.Results.NsxtManagerRecord, nil +} + +// GetOrgByName finds an Organization by name +// On success, returns a pointer to the Org structure and a nil error +// On failure, returns a nil pointer and an error +func (vcdClient *VCDClient) GetOrgByName(orgName string) (*Org, error) { + orgUrl, err := getOrgHREF(vcdClient, orgName) + if err != nil { + // Since this operation is a lookup from a list, we return the standard ErrorEntityNotFound + return nil, ErrorEntityNotFound + } + org := NewOrg(&vcdClient.Client) + + _, err = vcdClient.Client.ExecuteRequest(orgUrl, http.MethodGet, + "", "error retrieving org: %s", nil, org.Org) + if err != nil { + return nil, err + } + org.TenantContext = &TenantContext{ + OrgId: extractUuid(org.Org.ID), + OrgName: org.Org.Name, + } + return org, nil +} + +// GetOrgById finds an Organization by ID +// On success, returns a pointer to the Org structure and a nil error +// On failure, returns a nil pointer and an error +func (vcdClient *VCDClient) GetOrgById(orgId string) (*Org, error) { + orgUrl, err := getOrgHREFById(vcdClient, orgId) + if err != nil { + // Since this operation is a lookup from a list, we return the standard ErrorEntityNotFound + return nil, ErrorEntityNotFound + } + org := NewOrg(&vcdClient.Client) + + _, err = vcdClient.Client.ExecuteRequest(orgUrl, http.MethodGet, + "", "error retrieving org list: %s", nil, org.Org) + if err != nil { + return nil, err + } + org.TenantContext = &TenantContext{ + OrgId: extractUuid(org.Org.ID), + OrgName: org.Org.Name, + } + return org, nil +} + +// GetOrgByNameOrId finds an Organization by name or ID +// On success, returns a pointer to the Org structure and a nil error +// On failure, returns a nil pointer and an error +func (vcdClient *VCDClient) GetOrgByNameOrId(identifier string) (*Org, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return vcdClient.GetOrgByName(name) } + getById := func(id string, refresh bool) (interface{}, error) { return vcdClient.GetOrgById(id) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, false) + if entity == nil { + return nil, err + } + return entity.(*Org), err +} + +// GetAdminOrgByName finds an Admin Organization by name +// On success, returns a pointer to the Admin Org structure and a nil error +// On failure, returns a nil pointer and an error +func (vcdClient *VCDClient) GetAdminOrgByName(orgName string) (*AdminOrg, error) { + orgUrl, err := getOrgHREF(vcdClient, orgName) + if err != nil { + return nil, ErrorEntityNotFound + } + orgHREF := vcdClient.Client.VCDHREF + orgHREF.Path += "/admin/org/" + strings.Split(orgUrl, "/api/org/")[1] + + adminOrg := NewAdminOrg(&vcdClient.Client) + + _, err = vcdClient.Client.ExecuteRequest(orgHREF.String(), http.MethodGet, + "", "error retrieving org: %s", nil, adminOrg.AdminOrg) + if err != nil { + return nil, err + } + adminOrg.TenantContext = &TenantContext{ + OrgId: extractUuid(adminOrg.AdminOrg.ID), + OrgName: adminOrg.AdminOrg.Name, + } + + return adminOrg, nil +} + +// GetAdminOrgById finds an Admin Organization by ID +// On success, returns a pointer to the Admin Org structure and a nil error +// On failure, returns a nil pointer and an error +func (vcdClient *VCDClient) GetAdminOrgById(orgId string) (*AdminOrg, error) { + orgUrl, err := getOrgHREFById(vcdClient, orgId) + if err != nil { + return nil, ErrorEntityNotFound + } + orgHREF := vcdClient.Client.VCDHREF + orgHREF.Path += "/admin/org/" + strings.Split(orgUrl, "/api/org/")[1] + + adminOrg := NewAdminOrg(&vcdClient.Client) + + _, err = vcdClient.Client.ExecuteRequest(orgHREF.String(), http.MethodGet, + "", "error retrieving org: %s", nil, adminOrg.AdminOrg) + if err != nil { + return nil, err + } + adminOrg.TenantContext = &TenantContext{ + OrgId: extractUuid(adminOrg.AdminOrg.ID), + OrgName: adminOrg.AdminOrg.Name, + } + return adminOrg, nil +} + +// GetAdminOrgByNameOrId finds an Admin Organization by name or ID +// On success, returns a pointer to the Admin Org structure and a nil error +// On failure, returns a nil pointer and an error +func (vcdClient *VCDClient) GetAdminOrgByNameOrId(identifier string) (*AdminOrg, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return vcdClient.GetAdminOrgByName(name) } + getById := func(id string, refresh bool) (interface{}, error) { return vcdClient.GetAdminOrgById(id) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, false) + if entity == nil { + return nil, err + } + return entity.(*AdminOrg), err +} + +// Returns the UUID part of an HREF +// Similar to getBareEntityUuid, but tailored to HREF +func GetUuidFromHref(href string, idAtEnd bool) (string, error) { + util.Logger.Printf("[TRACE] GetUuidFromHref got href: %s with idAtEnd: %t", href, idAtEnd) + // Regular expression to match an ID: + // 1 string starting by 'https://' and ending with a '/', + // followed by + // 1 group of 8 hexadecimal digits + // 3 groups of 4 hexadecimal digits + // 1 group of 12 hexadecimal digits + + searchExpression := `^https://.+/([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})` + if idAtEnd { + searchExpression += `$` + } else { + searchExpression += `.*$` + } + reGetID := regexp.MustCompile(searchExpression) + matchList := reGetID.FindAllStringSubmatch(href, -1) + + if len(matchList) == 0 || len(matchList[0]) < 2 { + return "", fmt.Errorf("error extracting UUID from '%s'", href) + } + util.Logger.Printf("[TRACE] GetUuidFromHref returns UUID : %s", matchList[0][1]) + return matchList[0][1], nil +} + +// GetOrgList returns the list ov available orgs +func (vcdClient *VCDClient) GetOrgList() (*types.OrgList, error) { + orgListHREF := vcdClient.Client.VCDHREF + orgListHREF.Path += "/org" + + orgList := new(types.OrgList) + + _, err := vcdClient.Client.ExecuteRequest(orgListHREF.String(), http.MethodGet, + "", "error getting list of organizations: %s", nil, orgList) + if err != nil { + return nil, err + } + return orgList, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/task.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/task.go new file mode 100644 index 000000000..24c5f588e --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/task.go @@ -0,0 +1,198 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + "net/url" + "os" + "strconv" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type Task struct { + Task *types.Task + client *Client +} + +func NewTask(cli *Client) *Task { + return &Task{ + Task: new(types.Task), + client: cli, + } +} + +// If the error is not nil, composes an error message +// made of the error itself + the information from the task's Error component. +// See: +// https://code.vmware.com/apis/220/vcloud#/doc/doc/types/TaskType.html +// https://code.vmware.com/apis/220/vcloud#/doc/doc/types/ErrorType.html +func (task *Task) getErrorMessage(err error) string { + errorMessage := "" + if err != nil { + errorMessage = err.Error() + } + if task.Task.Error != nil { + errorMessage += " [" + + fmt.Sprintf("%d:%s", + task.Task.Error.MajorErrorCode, // The MajorError is a numeric code + task.Task.Error.MinorErrorCode) + // The MinorError is a string with a generic definition of the error + "] - " + task.Task.Error.Message + } + return errorMessage +} + +func (task *Task) Refresh() error { + + if task.Task == nil { + return fmt.Errorf("cannot refresh, Object is empty") + } + + refreshUrl := urlParseRequestURI(task.Task.HREF) + + req := task.client.NewRequest(map[string]string{}, http.MethodGet, *refreshUrl, nil) + + resp, err := checkResp(task.client.Http.Do(req)) + if err != nil { + return fmt.Errorf("error retrieving task: %s", err) + } + + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + task.Task = &types.Task{} + + if err = decodeBody(types.BodyTypeXML, resp, task.Task); err != nil { + return fmt.Errorf("error decoding task response: %s", task.getErrorMessage(err)) + } + + // The request was successful + return nil +} + +// This callback function can be passed to task.WaitInspectTaskCompletion +// to perform user defined operations +// * task is the task object being processed +// * howManyTimes is the number of times the task has been refreshed +// * elapsed is how much time since the task was initially processed +// * first is true if this is the first refresh of the task +// * last is true if the function is being called for the last time. +type InspectionFunc func(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool) + +// Customizable version of WaitTaskCompletion. +// Users can define the sleeping duration and an optional callback function for +// extra monitoring. +func (task *Task) WaitInspectTaskCompletion(inspectionFunc InspectionFunc, delay time.Duration) error { + + if task.Task == nil { + return fmt.Errorf("cannot refresh, Object is empty") + } + + taskMonitor := os.Getenv("GOVCD_TASK_MONITOR") + howManyTimesRefreshed := 0 + startTime := time.Now() + for { + howManyTimesRefreshed++ + elapsed := time.Since(startTime) + err := task.Refresh() + if err != nil { + return fmt.Errorf("error retrieving task: %s", err) + } + + // If an inspection function is provided, we pass information about the task processing: + // * the task itself + // * the number of iterations + // * how much time we have spent querying the task so far + // * whether this is the first iteration + // * whether this is the last iteration + // It's up to the inspection function to render this information fittingly. + + // If task is not in a waiting status we're done, check if there's an error and return it. + if task.Task.Status != "queued" && task.Task.Status != "preRunning" && task.Task.Status != "running" { + if inspectionFunc != nil { + inspectionFunc(task.Task, + howManyTimesRefreshed, + elapsed, + howManyTimesRefreshed == 1, // first + task.Task.Status == "error" || task.Task.Status == "success", // last + ) + } + if task.Task.Status == "error" { + return fmt.Errorf("task did not complete successfully: %s", task.getErrorMessage(err)) + } + return nil + } + + // If the environment variable "GOVCD_TASK_MONITOR" is set, its value + // will be used to choose among pre-defined InspectionFunc + if inspectionFunc == nil { + if taskMonitor != "" { + switch taskMonitor { + case "log": + inspectionFunc = LogTask // writes full task details to the log + case "show": + inspectionFunc = ShowTask // writes full task details to the screen + case "simple_log": + inspectionFunc = SimpleLogTask // writes a summary line for the task to the log + case "simple_show": + inspectionFunc = SimpleShowTask // writes a summary line for the task to the screen + } + } + } + if inspectionFunc != nil { + inspectionFunc(task.Task, + howManyTimesRefreshed, + elapsed, + howManyTimesRefreshed == 1, // first + false, // last + ) + } + + // Sleep for a given period and try again. + time.Sleep(delay) + } +} + +// Checks the status of the task every 3 seconds and returns when the +// task is either completed or failed +func (task *Task) WaitTaskCompletion() error { + return task.WaitInspectTaskCompletion(nil, 3*time.Second) +} + +func (task *Task) GetTaskProgress() (string, error) { + if task.Task == nil { + return "", fmt.Errorf("cannot refresh, Object is empty") + } + + err := task.Refresh() + if err != nil { + return "", fmt.Errorf("error retreiving task: %s", err) + } + + if task.Task.Status == "error" { + return "", fmt.Errorf("task did not complete successfully: %s", task.getErrorMessage(err)) + } + + return strconv.Itoa(task.Task.Progress), nil +} + +func (task *Task) CancelTask() error { + cancelTaskURL, err := url.ParseRequestURI(task.Task.HREF + "/action/cancel") + if err != nil { + util.Logger.Printf("[Error] Error cancelling task %v: %s", cancelTaskURL.String(), err) + return err + } + + request := task.client.NewRequest(map[string]string{}, http.MethodPost, *cancelTaskURL, nil) + _, err = checkResp(task.client.Http.Do(request)) + if err != nil { + util.Logger.Printf("[Error] Error cancelling task %v: %s", cancelTaskURL.String(), err) + return err + } + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/tenant_context.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/tenant_context.go new file mode 100644 index 000000000..6f540cd1d --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/tenant_context.go @@ -0,0 +1,185 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ +package govcd + +import ( + "fmt" + "strings" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +// TenantContext stores the information needed for an object to be used in the context of a given organization +type TenantContext struct { + OrgId string // The bare ID (without prefix) of an organization + OrgName string // The organization name +} + +// organization is an abstraction of types Org and AdminOrg +type organization interface { + orgId() string + orgName() string + tenantContext() (*TenantContext, error) + fullObject() interface{} +} + +//lint:ignore U1000 for future usage +type genericVdc interface { + vdcId() string + vdcName() string + vdcParent() interface{} +} + +//lint:ignore U1000 for future usage +type genericCatalog interface { + catalogId() string + catalogName() string + catalogParent() interface{} +} + +// Implementation of organization interface for Org +func (org *Org) orgId() string { return org.Org.ID } +func (org *Org) orgName() string { return org.Org.Name } +func (org *Org) tenantContext() (*TenantContext, error) { return org.getTenantContext() } +func (org *Org) fullObject() interface{} { return org } + +// Implementation of organization interface for AdminOrg +func (adminOrg *AdminOrg) orgId() string { return adminOrg.AdminOrg.ID } +func (adminOrg *AdminOrg) orgName() string { return adminOrg.AdminOrg.Name } +func (adminOrg *AdminOrg) tenantContext() (*TenantContext, error) { return adminOrg.getTenantContext() } +func (adminOrg *AdminOrg) fullObject() interface{} { return adminOrg } + +// Implementation of genericVdc interface for Vdc +func (vdc *Vdc) vdcId() string { return vdc.Vdc.ID } +func (vdc *Vdc) vdcName() string { return vdc.Vdc.Name } +func (vdc *Vdc) vdcParent() interface{} { return vdc.parent } + +// Implementation of genericVdc interface for AdminVdc +func (adminVdc *AdminVdc) vdcId() string { return adminVdc.AdminVdc.ID } +func (adminVdc *AdminVdc) vdcName() string { return adminVdc.AdminVdc.Name } +func (adminVdc *AdminVdc) vdcParent() interface{} { return adminVdc.parent } + +// Implementation of genericCatalog interface for AdminCatalog +func (adminCatalog *AdminCatalog) catalogId() string { return adminCatalog.AdminCatalog.ID } +func (adminCatalog *AdminCatalog) catalogName() string { return adminCatalog.AdminCatalog.Name } +func (adminCatalog *AdminCatalog) catalogParent() interface{} { return adminCatalog.parent } + +// Implementation of genericCatalog interface for AdminCatalog +func (catalog *Catalog) catalogId() string { return catalog.Catalog.ID } +func (catalog *Catalog) catalogName() string { return catalog.Catalog.Name } +func (catalog *Catalog) catalogParent() interface{} { return catalog.parent } + +// getTenantContext returns the tenant context information for an Org +// If the information was not stored, it gets created and stored for future use +func (org *Org) getTenantContext() (*TenantContext, error) { + if org.TenantContext == nil { + id, err := getBareEntityUuid(org.Org.ID) + if err != nil { + return nil, err + } + org.TenantContext = &TenantContext{ + OrgId: id, + OrgName: org.Org.Name, + } + } + return org.TenantContext, nil +} + +// getTenantContext returns the tenant context information for an AdminOrg +// If the information was not stored, it gets created and stored for future use +func (org *AdminOrg) getTenantContext() (*TenantContext, error) { + if org.TenantContext == nil { + id, err := getBareEntityUuid(org.AdminOrg.ID) + if err != nil { + return nil, err + } + org.TenantContext = &TenantContext{ + OrgId: id, + OrgName: org.AdminOrg.Name, + } + } + return org.TenantContext, nil +} + +// getTenantContext retrieves the tenant context for an AdminVdc +func (vdc *AdminVdc) getTenantContext() (*TenantContext, error) { + org := vdc.parent + + if org == nil { + return nil, fmt.Errorf("VDC %s has no parent", vdc.AdminVdc.Name) + } + return org.tenantContext() +} + +// getTenantContext retrieves the tenant context for a VDC +func (vdc *Vdc) getTenantContext() (*TenantContext, error) { + org := vdc.parent + + if org == nil { + return nil, fmt.Errorf("VDC %s has no parent", vdc.Vdc.Name) + } + return org.tenantContext() +} + +// getTenantContext retrieves the tenant context for an AdminCatalog +func (catalog *AdminCatalog) getTenantContext() (*TenantContext, error) { + org := catalog.parent + + if org == nil { + return nil, fmt.Errorf("catalog %s has no parent", catalog.AdminCatalog.Name) + } + return org.tenantContext() +} + +// getTenantContext retrieves the tenant context for a Catalog +func (catalog *Catalog) getTenantContext() (*TenantContext, error) { + org := catalog.parent + + if org == nil { + return nil, fmt.Errorf("catalog %s has no parent", catalog.Catalog.Name) + } + return org.tenantContext() +} + +// getTenantContextHeader returns a map of strings containing the tenant context items +// needed to be used in http.Request.Header +func getTenantContextHeader(tenantContext *TenantContext) map[string]string { + if tenantContext == nil { + return nil + } + if tenantContext.OrgName == "" || strings.EqualFold(tenantContext.OrgName, "system") { + return nil + } + return map[string]string{ + types.HeaderTenantContext: tenantContext.OrgId, + types.HeaderAuthContext: tenantContext.OrgName, + } +} + +// getTenantContextFromHeader does the opposite of getTenantContextHeader: +// given a header, returns a TenantContext +func getTenantContextFromHeader(header map[string]string) *TenantContext { + if len(header) == 0 { + return nil + } + tenantContext, okTenant := header[types.HeaderTenantContext] + AuthContext, okAuth := header[types.HeaderAuthContext] + if okTenant && okAuth { + return &TenantContext{ + OrgId: tenantContext, + OrgName: AuthContext, + } + } + return nil +} + +// getTenantContext retrieves the tenant context for a VdcGroup +func (vdcGroup *VdcGroup) getTenantContext() (*TenantContext, error) { + org := vdcGroup.parent + + if org == nil { + return nil, fmt.Errorf("VDC group %s has no parent", vdcGroup.VdcGroup.Name) + } + return org.tenantContext() +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/test-resources/cert.pem b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/test-resources/cert.pem new file mode 100644 index 000000000..81728c556 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/test-resources/cert.pem @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/test-resources/key.pem b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/test-resources/key.pem new file mode 100644 index 000000000..d63b4c432 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/test-resources/key.pem @@ -0,0 +1,54 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +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 +X/zTeUPmGZPiLyL4CMCPoQ== +-----END ENCRYPTED PRIVATE KEY----- diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/upload.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/upload.go new file mode 100644 index 000000000..eaa170a8f --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/upload.go @@ -0,0 +1,271 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "bytes" + "errors" + "fmt" + "io" + "net/http" + "net/url" + "os" + "path/filepath" + "strconv" + "sync" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// mutexedProgress is a thread-safe structure to update and report progress during an UploadTask. +// +// Value must be read/written using LockedGet/LockedSet values instead of directly accessing the `progress` variable +type mutexedProgress struct { + progress float64 + sync.Mutex +} + +func (p *mutexedProgress) LockedSet(progress float64) { + p.Lock() + defer p.Unlock() + p.progress = progress +} + +func (p *mutexedProgress) LockedGet() float64 { + p.Lock() + defer p.Unlock() + return p.progress +} + +// uploadLink - vCD created temporary upload link +// uploadedBytes - how much of file already uploaded +// fileSizeToUpload - how much bytes will be uploaded +// uploadPieceSize - size of chunks in which the file will be uploaded to the catalog. +// uploadedBytesForCallback all uploaded bytes if multi disk in ova +// allFilesSize overall sum of size if multi disk in ova +// callBack a function with signature //function(bytesUpload, totalSize) to let the caller monitor progress of the upload operation. +type uploadDetails struct { + uploadLink string + uploadedBytes, fileSizeToUpload, uploadPieceSize, uploadedBytesForCallback, allFilesSize int64 + callBack func(bytesUpload, totalSize int64) + uploadError *error +} + +// Upload file by parts which size is defined by user provided variable uploadPieceSize and +// provides how much bytes uploaded to callback. Callback allows to monitor upload progress. +// params: +// client - client for requests +// filePath - file path to file which will be uploaded +// uploadDetails - file upload settings and data +func uploadFile(client *Client, filePath string, uDetails uploadDetails) (int64, error) { + util.Logger.Printf("[TRACE] Starting uploading: %s, offset: %v, fileze: %v, toLink: %s \n", filePath, uDetails.uploadedBytes, uDetails.fileSizeToUpload, uDetails.uploadLink) + + var part []byte + var count int + var pieceSize int64 + + // #nosec G304 - linter does not like 'filePath' to be a variable. However this is necessary for file uploads. + file, err := os.Open(filePath) + if err != nil { + util.Logger.Printf("[ERROR] during upload process - file open issue : %s, error %s ", filePath, err) + *uDetails.uploadError = err + return 0, err + } + + fileInfo, err := file.Stat() + if err != nil { + util.Logger.Printf("[ERROR] during upload process - file issue : %s, error %s ", filePath, err) + *uDetails.uploadError = err + return 0, err + } + + defer file.Close() + + fileSize := fileInfo.Size() + // when file size in OVF does not exist, use real file size instead + if uDetails.fileSizeToUpload == -1 { + uDetails.fileSizeToUpload = fileSize + uDetails.allFilesSize += fileSize + } + // TODO: file size in OVF maybe wrong? how to handle that? + if uDetails.fileSizeToUpload != fileSize { + fmt.Printf("WARNING:file size %d in OVF is not align with real file size %d, upload task may hung.\n", + uDetails.fileSizeToUpload, fileSize) + } + + // do not allow smaller than 1kb + if uDetails.uploadPieceSize > 1024 && uDetails.uploadPieceSize < uDetails.fileSizeToUpload { + pieceSize = uDetails.uploadPieceSize + } else { + pieceSize = defaultPieceSize + } + + util.Logger.Printf("[TRACE] Uploading will use piece size: %#v \n", pieceSize) + part = make([]byte, pieceSize) + + for { + if count, err = io.ReadFull(file, part); err != nil { + break + } + err = uploadPartFile(client, part, int64(count), uDetails) + uDetails.uploadedBytes += int64(count) + uDetails.uploadedBytesForCallback += int64(count) + if err != nil { + util.Logger.Printf("[ERROR] during upload process: %s, error %s ", filePath, err) + *uDetails.uploadError = err + return 0, err + } + } + + // upload last part as ReadFull returns io.ErrUnexpectedEOF when reaches end of file. + if err == io.ErrUnexpectedEOF { + err = uploadPartFile(client, part[:count], int64(count), uDetails) + if err != nil { + util.Logger.Printf("[ERROR] during upload process: %s, error %s ", filePath, err) + *uDetails.uploadError = err + return 0, err + } + } else { + util.Logger.Printf("Error Uploading: %s, error %s ", filePath, err) + *uDetails.uploadError = err + return 0, err + } + + return fileSize, nil +} + +// Create Request with right headers and range settings. Support multi part file upload. +// client - client for requests +// requestUrl - upload url +// filePart - bytes to upload +// offset - how much is uploaded +// filePartSize - how much bytes will be uploaded +// fileSizeToUpload - final file size +func newFileUploadRequest(client *Client, requestUrl string, filePart []byte, offset, filePartSize, fileSizeToUpload int64) (*http.Request, error) { + util.Logger.Printf("[TRACE] Creating file upload request: %s, %v, %v, %v \n", requestUrl, offset, filePartSize, fileSizeToUpload) + + parsedRequestURL, err := url.ParseRequestURI(requestUrl) + if err != nil { + return nil, fmt.Errorf("error decoding vdc response: %s", err) + } + + uploadReq := client.NewRequestWitNotEncodedParams(nil, nil, http.MethodPut, *parsedRequestURL, bytes.NewReader(filePart)) + + uploadReq.ContentLength = filePartSize + uploadReq.Header.Set("Content-Length", strconv.FormatInt(uploadReq.ContentLength, 10)) + + rangeExpression := "bytes " + strconv.FormatInt(int64(offset), 10) + "-" + strconv.FormatInt(int64(offset+filePartSize-1), 10) + "/" + strconv.FormatInt(int64(fileSizeToUpload), 10) + uploadReq.Header.Set("Content-Range", rangeExpression) + + for key, value := range uploadReq.Header { + util.Logger.Printf("[TRACE] Header: %s :%s \n", key, value) + } + + return uploadReq, nil +} + +// Initiates file part upload by creating request and running it. +// params: +// client - client for requests +// part - bytes of file part +// partDataSize - how much bytes will be uploaded +// uploadDetails - file upload settings and data +func uploadPartFile(client *Client, part []byte, partDataSize int64, uDetails uploadDetails) error { + // Avoids session time out, as the multi part upload is treated as one request + makeEmptyRequest(client) + request, err := newFileUploadRequest(client, uDetails.uploadLink, part, uDetails.uploadedBytes, partDataSize, uDetails.fileSizeToUpload) + if err != nil { + return err + } + + response, err := checkResp(client.Http.Do(request)) + if err != nil { + return fmt.Errorf("file upload failed. Err: %s", err) + } + err = response.Body.Close() + if err != nil { + return fmt.Errorf("file closing failed. Err: %s", err) + } + + uDetails.callBack(uDetails.uploadedBytesForCallback+partDataSize, uDetails.allFilesSize) + + return nil +} + +// call query for task which are very fast and optimised as UI calls it very often +func makeEmptyRequest(client *Client) { + apiEndpoint := client.VCDHREF + apiEndpoint.Path += "/query?type=task&format=records&page=1&pageSize=5&" + + _, err := client.ExecuteRequest(apiEndpoint.String(), http.MethodGet, + "", "error making empty request: %s", nil, nil) + if err != nil { + util.Logger.Printf("[DEBUG - makeEmptyRequest] error executing request: %s", err) + } +} + +func getUploadLink(files *types.FilesList) (*url.URL, error) { + util.Logger.Printf("[TRACE] getUploadLink - Parsing upload link: %#v\n", files) + + if len(files.File) > 1 { + return nil, errors.New("unexpected response from vCD: found more than one link for upload") + } + + ovfUploadHref, err := url.ParseRequestURI(files.File[0].Link[0].HREF) + if err != nil { + return nil, err + } + + util.Logger.Printf("[TRACE] getUploadLink- upload link found: %#v\n", ovfUploadHref) + return ovfUploadHref, nil +} + +func createTaskForVcdImport(client *Client, taskHREF string) (Task, error) { + util.Logger.Printf("[TRACE] Create task for vcd with HREF: %s\n", taskHREF) + + taskURL, err := url.ParseRequestURI(taskHREF) + if err != nil { + return Task{}, err + } + + request := client.NewRequest(map[string]string{}, http.MethodGet, *taskURL, nil) + response, err := checkResp(client.Http.Do(request)) + if err != nil { + return Task{}, err + } + + task := NewTask(client) + + if err = decodeBody(types.BodyTypeXML, response, task.Task); err != nil { + return Task{}, fmt.Errorf("error decoding Task response: %s", err) + } + + // The request was successful + return *task, nil +} + +func getProgressCallBackFunction() (func(int64, int64), *mutexedProgress) { + uploadProgress := &mutexedProgress{} + callback := func(bytesUploaded, totalSize int64) { + uploadProgress.LockedSet((float64(bytesUploaded) / float64(totalSize)) * 100) + } + return callback, uploadProgress +} + +func validateAndFixFilePath(file string) (string, error) { + absolutePath, err := filepath.Abs(file) + if err != nil { + return "", err + } + fileInfo, err := os.Stat(absolutePath) + if os.IsNotExist(err) { + return "", err + } + if fileInfo.Size() == 0 { + return "", errors.New("file is empty") + } + return absolutePath, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/uploadtask.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/uploadtask.go new file mode 100644 index 000000000..66bc87568 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/uploadtask.go @@ -0,0 +1,60 @@ +/* + * Copyright 2018 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "time" +) + +type UploadTask struct { + uploadProgress *mutexedProgress + *Task + uploadError *error +} + +// Creates wrapped Task which is dedicated for upload functionality and +// provides additional functionality to monitor upload progress. +func NewUploadTask(task *Task, uploadProgress *mutexedProgress, uploadError *error) *UploadTask { + return &UploadTask{ + uploadProgress, + task, + uploadError, + } +} + +func (uploadTask *UploadTask) GetUploadProgress() string { + return fmt.Sprintf("%.2f", uploadTask.uploadProgress.LockedGet()) +} + +func (uploadTask *UploadTask) ShowUploadProgress() error { + fmt.Printf("Waiting...") + + for { + if *uploadTask.uploadError != nil { + return *uploadTask.uploadError + } + + fmt.Printf("\rUpload progress %.2f%%", uploadTask.uploadProgress.LockedGet()) + if uploadTask.uploadProgress.LockedGet() == 100.00 { + fmt.Println() + break + } + // Upload may be cancelled by user on GUI manually, detect task status + if err := uploadTask.Refresh(); err != nil { + return err + } + if uploadTask.Task.Task.Status != "queued" && uploadTask.Task.Task.Status != "preRunning" && uploadTask.Task.Task.Status != "running" { + fmt.Println() + break + } + time.Sleep(1 * time.Second) + } + return nil +} + +func (uploadTask *UploadTask) GetUploadError() error { + return *uploadTask.uploadError +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/user.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/user.go new file mode 100644 index 000000000..d1678025a --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/user.go @@ -0,0 +1,543 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + "net/url" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +// Definition of an OrgUser +type OrgUser struct { + User *types.User + client *Client + AdminOrg *AdminOrg // needed to be able to update, as the list of roles is found in the Org +} + +// Simplified structure to insert or modify an organization user +type OrgUserConfiguration struct { + Name string // Mandatory + Password string // Mandatory + RoleName string // Mandatory + ProviderType string // Optional: defaults to "INTEGRATED" + IsEnabled bool // Optional: defaults to false + IsLocked bool // Only used for updates + DeployedVmQuota int // Optional: 0 means "unlimited" + StoredVmQuota int // Optional: 0 means "unlimited" + FullName string // Optional + Description string // Optional + EmailAddress string // Optional + Telephone string // Optional + IM string // Optional +} + +const ( + // Common role names and provider types are kept here to reduce hard-coded text and prevent mistakes + // Roles that are added to the organization need to be entered as free text + + OrgUserRoleOrganizationAdministrator = "Organization Administrator" + OrgUserRoleCatalogAuthor = "Catalog Author" + OrgUserRoleVappAuthor = "vApp Author" + OrgUserRoleVappUser = "vApp User" + OrgUserRoleConsoleAccessOnly = "Console Access Only" + OrgUserRoleDeferToIdentityProvider = "Defer to Identity Provider" + + // Allowed values for provider types + OrgUserProviderIntegrated = "INTEGRATED" // The user is created locally or imported from LDAP + OrgUserProviderSAML = "SAML" // The user is imported from a SAML identity provider. + OrgUserProviderOAUTH = "OAUTH" // The user is imported from an OAUTH identity provider +) + +// Used to check the validity of provider type on creation +var OrgUserProviderTypes = []string{ + OrgUserProviderIntegrated, + OrgUserProviderSAML, + OrgUserProviderOAUTH, +} + +// NewUser creates an empty user +func NewUser(cli *Client, org *AdminOrg) *OrgUser { + return &OrgUser{ + User: new(types.User), + client: cli, + AdminOrg: org, + } +} + +// FetchUserByHref returns a user by its HREF +// Deprecated: use GetUserByHref instead +func (adminOrg *AdminOrg) FetchUserByHref(href string) (*OrgUser, error) { + return adminOrg.GetUserByHref(href) +} + +// FetchUserByName returns a user by its Name +// Deprecated: use GetUserByName instead +func (adminOrg *AdminOrg) FetchUserByName(name string, refresh bool) (*OrgUser, error) { + return adminOrg.GetUserByName(name, refresh) +} + +// FetchUserById returns a user by its ID +// Deprecated: use GetUserById instead +func (adminOrg *AdminOrg) FetchUserById(id string, refresh bool) (*OrgUser, error) { + return adminOrg.GetUserById(id, refresh) +} + +// FetchUserById returns a user by its Name or ID +// Deprecated: use GetUserByNameOrId instead +func (adminOrg *AdminOrg) FetchUserByNameOrId(identifier string, refresh bool) (*OrgUser, error) { + return adminOrg.GetUserByNameOrId(identifier, refresh) +} + +// GetUserByHref returns a user by its HREF, without need for +// searching in the adminOrg user list +func (adminOrg *AdminOrg) GetUserByHref(href string) (*OrgUser, error) { + orgUser := NewUser(adminOrg.client, adminOrg) + + _, err := adminOrg.client.ExecuteRequest(href, http.MethodGet, + types.MimeAdminUser, "error getting user: %s", nil, orgUser.User) + + if err != nil { + return nil, err + } + return orgUser, nil +} + +// GetUserByName retrieves a user within an admin organization by name +// Returns a valid user if it exists. If it doesn't, returns nil and ErrorEntityNotFound +// If argument refresh is true, the AdminOrg will be refreshed before searching. +// This is usually done after creating, modifying, or deleting users. +// If it is false, it will search within the data already in memory (useful when +// looping through the users and we know that no changes have occurred in the meantime) +func (adminOrg *AdminOrg) GetUserByName(name string, refresh bool) (*OrgUser, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + + for _, user := range adminOrg.AdminOrg.Users.User { + if user.Name == name { + return adminOrg.GetUserByHref(user.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetUserById retrieves a user within an admin organization by ID +// Returns a valid user if it exists. If it doesn't, returns nil and ErrorEntityNotFound +// If argument refresh is true, the AdminOrg will be refreshed before searching. +// This is usually done after creating, modifying, or deleting users. +// If it is false, it will search within the data already in memory (useful when +// looping through the users and we know that no changes have occurred in the meantime) +func (adminOrg *AdminOrg) GetUserById(id string, refresh bool) (*OrgUser, error) { + if refresh { + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + } + + for _, user := range adminOrg.AdminOrg.Users.User { + if equalIds(id, user.ID, user.HREF) { + return adminOrg.GetUserByHref(user.HREF) + } + } + return nil, ErrorEntityNotFound +} + +// GetUserByNameOrId retrieves a user within an admin organization +// by either name or ID +// Returns a valid user if it exists. If it doesn't, returns nil and ErrorEntityNotFound +// If argument refresh is true, the AdminOrg will be refreshed before searching. +// This is usually done after creating, modifying, or deleting users. +// If it is false, it will search within the data already in memory (useful when +// looping through the users and we know that no changes have occurred in the meantime) +func (adminOrg *AdminOrg) GetUserByNameOrId(identifier string, refresh bool) (*OrgUser, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return adminOrg.GetUserByName(name, refresh) } + getById := func(name string, refresh bool) (interface{}, error) { return adminOrg.GetUserById(name, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, refresh) + if entity == nil { + return nil, err + } + return entity.(*OrgUser), err +} + +// GetRoleReference finds a role within the organization +func (adminOrg *AdminOrg) GetRoleReference(roleName string) (*types.Reference, error) { + + // We force refresh of the organization, to make sure that roles recently created + // are taken into account. + // This will become unnecessary when we refactor the User management with OpenAPI + err := adminOrg.Refresh() + if err != nil { + return nil, err + } + for _, role := range adminOrg.AdminOrg.RoleReferences.RoleReference { + if role.Name == roleName { + return role, nil + } + } + + return nil, ErrorEntityNotFound +} + +// Retrieves a user within the boundaries of MaxRetryTimeout +func retrieveUserWithTimeout(adminOrg *AdminOrg, userName string) (*OrgUser, error) { + + // Attempting to retrieve the user + delayPerAttempt := 200 * time.Millisecond + maxOperationTimeout := time.Duration(adminOrg.client.MaxRetryTimeout) * time.Second + + // We make sure that the timeout is never less than 2 seconds + if maxOperationTimeout < 2*time.Second { + maxOperationTimeout = 2 * time.Second + } + + // If maxRetryTimeout is set to a higher limit, we lower it to match the + // expectations for this operation. If the user is not created within 10 seconds, + // there is no need to wait for more. Usually, the operation lasts between 200ms and 900ms + if maxOperationTimeout > 10*time.Second { + maxOperationTimeout = 10 * time.Second + } + + startTime := time.Now() + elapsed := time.Since(startTime) + var newUser *OrgUser + var err error + for elapsed < maxOperationTimeout { + newUser, err = adminOrg.GetUserByName(userName, true) + if err == nil { + break + } + time.Sleep(delayPerAttempt) + elapsed = time.Since(startTime) + } + + elapsed = time.Since(startTime) + + // If the user was not retrieved within the allocated time, we inform the user about the failure + // and the time it occurred to get to this point, so that they may try with a longer time + if err != nil { + return nil, fmt.Errorf("failure to retrieve a new user after %s : %s", elapsed, err) + } + + return newUser, nil +} + +// CreateUser creates an OrgUser from a full configuration structure +// The timeOut variable is the maximum time we wait for the user to be ready +// (This operation does not return a task) +// This function returns as soon as the user has been created, which could be as +// little as 200ms or as much as Client.MaxRetryTimeout +// Mandatory fields are: Name, Role, Password. +// https://code.vmware.com/apis/442/vcloud-director#/doc/doc/operations/POST-CreateUser.html +func (adminOrg *AdminOrg) CreateUser(userConfiguration *types.User) (*OrgUser, error) { + err := validateUserForCreation(userConfiguration) + if err != nil { + return nil, err + } + + userCreateHREF, err := url.ParseRequestURI(adminOrg.AdminOrg.HREF) + if err != nil { + return nil, fmt.Errorf("error parsing admin org url: %s", err) + } + userCreateHREF.Path += "/users" + + user := NewUser(adminOrg.client, adminOrg) + + _, err = adminOrg.client.ExecuteRequest(userCreateHREF.String(), http.MethodPost, + types.MimeAdminUser, "error creating user: %s", userConfiguration, user.User) + if err != nil { + return nil, err + } + + // If there is a valid task, we try to follow through + // A valid task exists if the Task object in the user structure + // is not nil and contains at least a task + if user.User.Tasks != nil && len(user.User.Tasks.Task) > 0 { + task := NewTask(adminOrg.client) + task.Task = user.User.Tasks.Task[0] + err = task.WaitTaskCompletion() + + if err != nil { + return nil, err + } + } + + return retrieveUserWithTimeout(adminOrg, userConfiguration.Name) +} + +// CreateUserSimple creates an org user from a simplified structure +func (adminOrg *AdminOrg) CreateUserSimple(userData OrgUserConfiguration) (*OrgUser, error) { + + if userData.Name == "" { + return nil, fmt.Errorf("name is mandatory to create a user") + } + if userData.Password == "" { + return nil, fmt.Errorf("password is mandatory to create a user") + } + if userData.RoleName == "" { + return nil, fmt.Errorf("role is mandatory to create a user") + } + role, err := adminOrg.GetRoleReference(userData.RoleName) + if err != nil { + return nil, fmt.Errorf("error finding a role named %s", userData.RoleName) + } + + var userConfiguration = types.User{ + Xmlns: types.XMLNamespaceVCloud, + Type: types.MimeAdminUser, + ProviderType: userData.ProviderType, + Name: userData.Name, + IsEnabled: userData.IsEnabled, + Password: userData.Password, + DeployedVmQuota: userData.DeployedVmQuota, + StoredVmQuota: userData.StoredVmQuota, + FullName: userData.FullName, + EmailAddress: userData.EmailAddress, + Description: userData.Description, + Telephone: userData.Telephone, + IM: userData.IM, + Role: &types.Reference{HREF: role.HREF}, + } + + // ShowUser(userConfiguration) + return adminOrg.CreateUser(&userConfiguration) +} + +// GetRoleName retrieves the name of the role currently assigned to the user +func (user *OrgUser) GetRoleName() string { + if user.User.Role == nil { + return "" + } + return user.User.Role.Name +} + +// Delete removes the user, returning an error if the call fails. +// if requested, it will attempt to take ownership before the removal. +// API Documentation: https://code.vmware.com/apis/442/vcloud-director#/doc/doc/operations/DELETE-User.html +// Note: in the GUI we need to disable the user before deleting. +// There is no such constraint with the API. +// +// Expected behaviour: +// with takeOwnership = true, all entities owned by the user being deleted will be transferred to the caller. +// with takeOwnership = false, if the user own catalogs, networks, or running VMs/vApps, the call will fail. +// If the user owns only powered-off VMs/vApps, the call will succeeds and the +// VMs/vApps will be removed. +func (user *OrgUser) Delete(takeOwnership bool) error { + util.Logger.Printf("[TRACE] Deleting user: %#v (take ownership: %v)", user.User.Name, takeOwnership) + + if takeOwnership { + err := user.TakeOwnership() + if err != nil { + return err + } + } + + userHREF, err := url.ParseRequestURI(user.User.Href) + if err != nil { + return fmt.Errorf("error getting HREF for user %s : %s", user.User.Name, err) + } + util.Logger.Printf("[TRACE] Url for deleting user : %#v and name: %s", userHREF, user.User.Name) + + return user.client.ExecuteRequestWithoutResponse(userHREF.String(), http.MethodDelete, + types.MimeAdminUser, "error deleting user : %s", nil) +} + +// UpdateSimple updates the user, using ALL the fields in userData structure +// returning an error if the call fails. +// Careful: DeployedVmQuota and StoredVmQuota use a `0` value to mean "unlimited" +func (user *OrgUser) UpdateSimple(userData OrgUserConfiguration) error { + util.Logger.Printf("[TRACE] Updating user: %#v", user.User.Name) + + if userData.Name != "" { + user.User.Name = userData.Name + } + if userData.ProviderType != "" { + user.User.ProviderType = userData.ProviderType + } + if userData.Description != "" { + user.User.Description = userData.Description + } + if userData.FullName != "" { + user.User.FullName = userData.FullName + } + if userData.EmailAddress != "" { + user.User.EmailAddress = userData.EmailAddress + } + if userData.Telephone != "" { + user.User.Telephone = userData.Telephone + } + if userData.Password != "" { + user.User.Password = userData.Password + } + user.User.StoredVmQuota = userData.StoredVmQuota + user.User.DeployedVmQuota = userData.DeployedVmQuota + user.User.IsEnabled = userData.IsEnabled + user.User.IsLocked = userData.IsLocked + + if userData.RoleName != "" && user.User.Role != nil && user.User.Role.Name != userData.RoleName { + newRole, err := user.AdminOrg.GetRoleReference(userData.RoleName) + if err != nil { + return err + } + user.User.Role = newRole + } + return user.Update() +} + +// Update updates the user, using its own configuration data +// returning an error if the call fails. +// API Documentation: https://code.vmware.com/apis/442/vcloud-director#/doc/doc/operations/PUT-User.html +func (user *OrgUser) Update() error { + util.Logger.Printf("[TRACE] Updating user: %s", user.User.Name) + + // Makes sure that GroupReferences is either properly filled or nil, + // because otherwise vCD will complain that the payload is not well formatted when + // the configuration contains a non-empty password. + if user.User.GroupReferences != nil { + if len(user.User.GroupReferences.GroupReference) == 0 { + user.User.GroupReferences = nil + } + } + + userHREF, err := url.ParseRequestURI(user.User.Href) + if err != nil { + return fmt.Errorf("error getting HREF for user %s : %s", user.User.Name, err) + } + util.Logger.Printf("[TRACE] Url for updating user : %#v and name: %s", userHREF, user.User.Name) + + _, err = user.client.ExecuteRequest(userHREF.String(), http.MethodPut, + types.MimeAdminUser, "error updating user : %s", user.User, nil) + return err +} + +// Disable disables a user, if it is enabled. Fails otherwise. +func (user *OrgUser) Disable() error { + util.Logger.Printf("[TRACE] Disabling user: %s", user.User.Name) + + if !user.User.IsEnabled { + return fmt.Errorf("user %s is already disabled", user.User.Name) + } + user.User.IsEnabled = false + + return user.Update() +} + +// ChangePassword changes user's password +// Constraints: the password must be non-empty, with a minimum of 6 characters +func (user *OrgUser) ChangePassword(newPass string) error { + util.Logger.Printf("[TRACE] Changing user's password user: %s", user.User.Name) + + user.User.Password = newPass + + return user.Update() +} + +// Enable enables a user if it was disabled. Fails otherwise. +func (user *OrgUser) Enable() error { + util.Logger.Printf("[TRACE] Enabling user: %s", user.User.Name) + + if user.User.IsEnabled { + return fmt.Errorf("user %s is already enabled", user.User.Name) + } + user.User.IsEnabled = true + + return user.Update() +} + +// Unlock unlocks a user that was locked out by the system. +// Note that there is no procedure to LOCK a user: it is locked by the system when it exceeds the number of +// unauthorized access attempts +func (user *OrgUser) Unlock() error { + util.Logger.Printf("[TRACE] Unlocking user: %s", user.User.Name) + + if !user.User.IsLocked { + return fmt.Errorf("user %s is not locked", user.User.Name) + } + user.User.IsLocked = false + + return user.Update() +} + +// ChangeRole changes a user's role +// Fails is we try to set the same role as the current one. +// Also fails if the provided role name is not found. +func (user *OrgUser) ChangeRole(roleName string) error { + util.Logger.Printf("[TRACE] Changing user's role: %s", user.User.Name) + + if roleName == "" { + return fmt.Errorf("role name cannot be empty") + } + + if user.User.Role != nil && user.User.Role.Name == roleName { + return fmt.Errorf("new role is the same as current role") + } + + newRole, err := user.AdminOrg.GetRoleReference(roleName) + if err != nil { + return err + } + user.User.Role = newRole + + return user.Update() +} + +// TakeOwnership takes ownership of the user's objects. +// Ownership is transferred to the caller. +// This is a call to make before deleting. Calling user.DeleteTakeOwnership() will +// run TakeOwnership before the actual user removal. +// API Documentation: https://code.vmware.com/apis/442/vcloud-director#/doc/doc/operations/POST-TakeOwnership.html +func (user *OrgUser) TakeOwnership() error { + util.Logger.Printf("[TRACE] Taking ownership from user: %s", user.User.Name) + + userHREF, err := url.ParseRequestURI(user.User.Href + "/action/takeOwnership") + if err != nil { + return fmt.Errorf("error getting HREF for user %s : %s", user.User.Name, err) + } + util.Logger.Printf("[TRACE] Url for taking ownership from user : %#v and name: %s", userHREF, user.User.Name) + + return user.client.ExecuteRequestWithoutResponse(userHREF.String(), http.MethodPost, + types.MimeAdminUser, "error taking ownership from user : %s", nil) +} + +// validateUserForInput makes sure that the minimum data +// needed for creating an org user has been included in the configuration +func validateUserForCreation(user *types.User) error { + var missingField = "missing field %s" + if user.Xmlns == "" { + user.Xmlns = types.XMLNamespaceVCloud + } + if user.Type == "" { + user.Type = types.MimeAdminUser + } + if user.Name == "" { + return fmt.Errorf(missingField, "Name") + } + if user.Password == "" { + return fmt.Errorf(missingField, "Password") + } + if user.ProviderType != "" { + validProviderType := false + for _, pt := range OrgUserProviderTypes { + if user.ProviderType == pt { + validProviderType = true + } + } + if !validProviderType { + return fmt.Errorf("'%s' is not a valid provider type", user.ProviderType) + } + } + if user.Role.HREF == "" { + return fmt.Errorf(missingField, "Role.HREF") + } + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapp.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapp.go new file mode 100644 index 000000000..337304805 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapp.go @@ -0,0 +1,1531 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "encoding/xml" + "errors" + "fmt" + "net/http" + "strconv" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type VApp struct { + VApp *types.VApp + client *Client +} + +func NewVApp(cli *Client) *VApp { + return &VApp{ + VApp: new(types.VApp), + client: cli, + } +} + +func (vcdClient *VCDClient) NewVApp(client *Client) VApp { + newvapp := NewVApp(client) + return *newvapp +} + +// struct type used to pass information for vApp network creation +type VappNetworkSettings struct { + ID string + Name string + Description string + Gateway string + NetMask string + DNS1 string + DNS2 string + DNSSuffix string + GuestVLANAllowed *bool + StaticIPRanges []*types.IPRange + DhcpSettings *DhcpSettings + RetainIpMacEnabled *bool + VappFenceEnabled *bool +} + +// struct type used to pass information for vApp network DHCP +type DhcpSettings struct { + IsEnabled bool + MaxLeaseTime int + DefaultLeaseTime int + IPRange *types.IPRange +} + +// Returns the vdc where the vapp resides in. +func (vapp *VApp) getParentVDC() (Vdc, error) { + for _, link := range vapp.VApp.Link { + if (link.Type == types.MimeVDC || link.Type == types.MimeAdminVDC) && link.Rel == "up" { + + vdc := NewVdc(vapp.client) + + _, err := vapp.client.ExecuteRequest(link.HREF, http.MethodGet, + "", "error retrieving parent vdc: %s", nil, vdc.Vdc) + if err != nil { + return Vdc{}, err + } + + parent, err := vdc.getParentOrg() + if err != nil { + return Vdc{}, err + } + vdc.parent = parent + return *vdc, nil + } + } + return Vdc{}, fmt.Errorf("could not find a parent Vdc") +} + +func (vapp *VApp) Refresh() error { + + if vapp.VApp.HREF == "" { + return fmt.Errorf("cannot refresh, Object is empty") + } + + url := vapp.VApp.HREF + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + vapp.VApp = &types.VApp{} + + _, err := vapp.client.ExecuteRequest(url, http.MethodGet, + "", "error refreshing vApp: %s", nil, vapp.VApp) + + // The request was successful + return err +} + +// AddVM create vm in vApp using vApp template +// orgVdcNetworks - adds org VDC networks to be available for vApp. Can be empty. +// vappNetworkName - adds vApp network to be available for vApp. Can be empty. +// vappTemplate - vApp Template which will be used for VM creation. +// name - name for VM. +// acceptAllEulas - setting allows to automatically accept or not Eulas. +// +// Deprecated: Use vapp.AddNewVM instead for more sophisticated network handling +func (vapp *VApp) AddVM(orgVdcNetworks []*types.OrgVDCNetwork, vappNetworkName string, vappTemplate VAppTemplate, name string, acceptAllEulas bool) (Task, error) { + util.Logger.Printf("[INFO] vapp.AddVM() is deprecated in favor of vapp.AddNewVM()") + if vappTemplate == (VAppTemplate{}) || vappTemplate.VAppTemplate == nil { + return Task{}, fmt.Errorf("vApp Template can not be empty") + } + + // primaryNetworkConnectionIndex will be inherited from template or defaulted to 0 + // if the template does not have any NICs assigned. + primaryNetworkConnectionIndex := 0 + if vappTemplate.VAppTemplate.Children != nil && len(vappTemplate.VAppTemplate.Children.VM) > 0 && + vappTemplate.VAppTemplate.Children.VM[0].NetworkConnectionSection != nil { + primaryNetworkConnectionIndex = vappTemplate.VAppTemplate.Children.VM[0].NetworkConnectionSection.PrimaryNetworkConnectionIndex + } + + networkConnectionSection := types.NetworkConnectionSection{ + Info: "Network config for sourced item", + PrimaryNetworkConnectionIndex: primaryNetworkConnectionIndex, + } + + for index, orgVdcNetwork := range orgVdcNetworks { + networkConnectionSection.NetworkConnection = append(networkConnectionSection.NetworkConnection, + &types.NetworkConnection{ + Network: orgVdcNetwork.Name, + NetworkConnectionIndex: index, + IsConnected: true, + IPAddressAllocationMode: types.IPAllocationModePool, + }, + ) + } + + if vappNetworkName != "" { + networkConnectionSection.NetworkConnection = append(networkConnectionSection.NetworkConnection, + &types.NetworkConnection{ + Network: vappNetworkName, + NetworkConnectionIndex: len(orgVdcNetworks), + IsConnected: true, + IPAddressAllocationMode: types.IPAllocationModePool, + }, + ) + } + + return vapp.AddNewVM(name, vappTemplate, &networkConnectionSection, acceptAllEulas) +} + +// AddNewVM adds VM from vApp template with custom NetworkConnectionSection +func (vapp *VApp) AddNewVM(name string, vappTemplate VAppTemplate, network *types.NetworkConnectionSection, acceptAllEulas bool) (Task, error) { + return vapp.AddNewVMWithStorageProfile(name, vappTemplate, network, nil, acceptAllEulas) +} + +// AddNewVMWithStorageProfile adds VM from vApp template with custom NetworkConnectionSection and optional storage profile +func (vapp *VApp) AddNewVMWithStorageProfile(name string, vappTemplate VAppTemplate, + network *types.NetworkConnectionSection, + storageProfileRef *types.Reference, acceptAllEulas bool) (Task, error) { + return addNewVMW(vapp, name, vappTemplate, network, storageProfileRef, nil, acceptAllEulas) +} + +// AddNewVMWithComputePolicy adds VM from vApp template with custom NetworkConnectionSection and optional storage profile +// and compute policy +func (vapp *VApp) AddNewVMWithComputePolicy(name string, vappTemplate VAppTemplate, + network *types.NetworkConnectionSection, + storageProfileRef *types.Reference, computePolicy *types.VdcComputePolicy, acceptAllEulas bool) (Task, error) { + return addNewVMW(vapp, name, vappTemplate, network, storageProfileRef, computePolicy, acceptAllEulas) +} + +// addNewVMW adds VM from vApp template with custom NetworkConnectionSection and optional storage profile +// and optional compute policy +func addNewVMW(vapp *VApp, name string, vappTemplate VAppTemplate, + network *types.NetworkConnectionSection, + storageProfileRef *types.Reference, computePolicy *types.VdcComputePolicy, acceptAllEulas bool) (Task, error) { + + if vappTemplate == (VAppTemplate{}) || vappTemplate.VAppTemplate == nil { + return Task{}, fmt.Errorf("vApp Template can not be empty") + } + + templateHref := vappTemplate.VAppTemplate.HREF + if vappTemplate.VAppTemplate.Children != nil && len(vappTemplate.VAppTemplate.Children.VM) != 0 { + templateHref = vappTemplate.VAppTemplate.Children.VM[0].HREF + } + + // Status 8 means The object is resolved and powered off. + // https://vdc-repo.vmware.com/vmwb-repository/dcr-public/94b8bd8d-74ff-4fe3-b7a4-41ae31516ed7/1b42f3b5-8b31-4279-8b3f-547f6c7c5aa8/doc/GUID-843BE3AD-5EF6-4442-B864-BCAE44A51867.html + if vappTemplate.VAppTemplate.Status != 8 { + return Task{}, fmt.Errorf("vApp Template shape is not ok (status: %d)", vappTemplate.VAppTemplate.Status) + } + + // Validate network config only if it was supplied + if network != nil && network.NetworkConnection != nil { + for _, nic := range network.NetworkConnection { + if nic.Network == "" { + return Task{}, fmt.Errorf("missing mandatory attribute Network: %s", nic.Network) + } + if nic.IPAddressAllocationMode == "" { + return Task{}, fmt.Errorf("missing mandatory attribute IPAddressAllocationMode: %s", nic.IPAddressAllocationMode) + } + } + } + + vAppComposition := &types.ReComposeVAppParams{ + Ovf: types.XMLNamespaceOVF, + Xsi: types.XMLNamespaceXSI, + Xmlns: types.XMLNamespaceVCloud, + Deploy: false, + Name: vapp.VApp.Name, + PowerOn: false, + Description: vapp.VApp.Description, + SourcedItem: &types.SourcedCompositionItemParam{ + Source: &types.Reference{ + HREF: templateHref, + Name: name, + }, + InstantiationParams: &types.InstantiationParams{}, // network config is injected below + }, + AllEULAsAccepted: acceptAllEulas, + } + + // Add storage profile + if storageProfileRef != nil && storageProfileRef.HREF != "" { + vAppComposition.SourcedItem.StorageProfile = storageProfileRef + } + + // Add compute policy + if computePolicy != nil && computePolicy.ID != "" { + vdcComputePolicyHref, err := vapp.client.OpenApiBuildEndpoint(types.OpenApiPathVersion1_0_0, types.OpenApiEndpointVdcComputePolicies, computePolicy.ID) + if err != nil { + return Task{}, fmt.Errorf("error constructing HREF for compute policy") + } + vAppComposition.SourcedItem.ComputePolicy = &types.ComputePolicy{VmSizingPolicy: &types.Reference{HREF: vdcComputePolicyHref.String()}} + } + + // Inject network config + vAppComposition.SourcedItem.InstantiationParams.NetworkConnectionSection = network + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/action/recomposeVApp" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + types.MimeRecomposeVappParams, "error instantiating a new VM: %s", vAppComposition) + +} + +// ========================= issue#252 ================================== +// TODO: To be refactored, handling networks better. See issue#252 for details +// https://github.com/vmware/go-vcloud-director/issues/252 +// ====================================================================== +func (vapp *VApp) RemoveVM(vm VM) error { + err := vapp.Refresh() + if err != nil { + return fmt.Errorf("error refreshing vApp before removing VM: %s", err) + } + task := NewTask(vapp.client) + if vapp.VApp.Tasks != nil { + for _, taskItem := range vapp.VApp.Tasks.Task { + task.Task = taskItem + // Leftover tasks may have unhandled errors that can be dismissed at this stage + // we complete any incomplete tasks at this stage, to finish the refresh. + if task.Task.Status != "error" && task.Task.Status != "success" { + err := task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error performing task: %s", err) + } + } + } + } + + vcomp := &types.ReComposeVAppParams{ + Ovf: types.XMLNamespaceOVF, + Xsi: types.XMLNamespaceXSI, + Xmlns: types.XMLNamespaceVCloud, + DeleteItem: &types.DeleteItem{ + HREF: vm.VM.HREF, + }, + } + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/action/recomposeVApp" + + deleteTask, err := vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + types.MimeRecomposeVappParams, "error removing VM: %s", vcomp) + if err != nil { + return err + } + + err = deleteTask.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error performing removing VM task: %s", err) + } + + return nil +} + +func (vapp *VApp) PowerOn() (Task, error) { + + err := vapp.BlockWhileStatus("UNRESOLVED", vapp.client.MaxRetryTimeout) + if err != nil { + return Task{}, fmt.Errorf("error powering on vApp: %s", err) + } + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/power/action/powerOn" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "", "error powering on vApp: %s", nil) +} + +func (vapp *VApp) PowerOff() (Task, error) { + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/power/action/powerOff" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "", "error powering off vApp: %s", nil) + +} + +func (vapp *VApp) Reboot() (Task, error) { + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/power/action/reboot" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "", "error rebooting vApp: %s", nil) +} + +func (vapp *VApp) Reset() (Task, error) { + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/power/action/reset" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "", "error resetting vApp: %s", nil) +} + +func (vapp *VApp) Suspend() (Task, error) { + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/power/action/suspend" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "", "error suspending vApp: %s", nil) +} + +func (vapp *VApp) Shutdown() (Task, error) { + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/power/action/shutdown" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "", "error shutting down vApp: %s", nil) +} + +func (vapp *VApp) Undeploy() (Task, error) { + + vu := &types.UndeployVAppParams{ + Xmlns: types.XMLNamespaceVCloud, + UndeployPowerAction: "powerOff", + } + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/action/undeploy" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + types.MimeUndeployVappParams, "error undeploy vApp: %s", vu) +} + +func (vapp *VApp) Deploy() (Task, error) { + + vu := &types.DeployVAppParams{ + Xmlns: types.XMLNamespaceVCloud, + PowerOn: false, + } + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/action/deploy" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + types.MimeDeployVappParams, "error deploy vApp: %s", vu) +} + +func (vapp *VApp) Delete() (Task, error) { + + // Return the task + return vapp.client.ExecuteTaskRequest(vapp.VApp.HREF, http.MethodDelete, + "", "error deleting vApp: %s", nil) +} + +func (vapp *VApp) RunCustomizationScript(computername, script string) (Task, error) { + return vapp.Customize(computername, script, false) +} + +// Customize applies customization to first child VM +// +// Deprecated: Use vm.SetGuestCustomizationSection() +func (vapp *VApp) Customize(computername, script string, changeSid bool) (Task, error) { + err := vapp.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing vApp before running customization: %s", err) + } + + // Check if VApp Children is populated + if vapp.VApp.Children == nil { + return Task{}, fmt.Errorf("vApp doesn't contain any children, interrupting customization") + } + + vu := &types.GuestCustomizationSection{ + Ovf: types.XMLNamespaceOVF, + Xsi: types.XMLNamespaceXSI, + Xmlns: types.XMLNamespaceVCloud, + + HREF: vapp.VApp.Children.VM[0].HREF, + Type: types.MimeGuestCustomizationSection, + Info: "Specifies Guest OS Customization Settings", + Enabled: takeBoolPointer(true), + ComputerName: computername, + CustomizationScript: script, + ChangeSid: takeBoolPointer(changeSid), + } + + apiEndpoint := urlParseRequestURI(vapp.VApp.Children.VM[0].HREF) + apiEndpoint.Path += "/guestCustomizationSection/" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeGuestCustomizationSection, "error customizing VM: %s", vu) +} + +func (vapp *VApp) GetStatus() (string, error) { + err := vapp.Refresh() + if err != nil { + return "", fmt.Errorf("error refreshing vApp: %s", err) + } + // Trying to make this function future-proof: + // If a new status is added to a future vCD API and the status map in types.go + // is not updated, we may get a panic. + // Using the ", ok" construct we take control of the data lookup and are able to fail + // gracefully. + statusText, ok := types.VAppStatuses[vapp.VApp.Status] + if ok { + return statusText, nil + } + return "", fmt.Errorf("status %d does not have a description in types.VappStatuses", vapp.VApp.Status) +} + +// BlockWhileStatus blocks until the status of vApp exits unwantedStatus. +// It sleeps 200 milliseconds between iterations and times out after timeOutAfterSeconds +// of seconds. +func (vapp *VApp) BlockWhileStatus(unwantedStatus string, timeOutAfterSeconds int) error { + timeoutAfter := time.After(time.Duration(timeOutAfterSeconds) * time.Second) + tick := time.NewTicker(200 * time.Millisecond) + + for { + select { + case <-timeoutAfter: + return fmt.Errorf("timed out waiting for vApp to exit state %s after %d seconds", + unwantedStatus, timeOutAfterSeconds) + case <-tick.C: + currentStatus, err := vapp.GetStatus() + + if err != nil { + return fmt.Errorf("could not get vApp status %s", err) + } + if currentStatus != unwantedStatus { + return nil + } + } + } +} + +func (vapp *VApp) GetNetworkConnectionSection() (*types.NetworkConnectionSection, error) { + + networkConnectionSection := &types.NetworkConnectionSection{} + + if vapp.VApp.Children.VM[0].HREF == "" { + return networkConnectionSection, fmt.Errorf("cannot refresh, Object is empty") + } + + _, err := vapp.client.ExecuteRequest(vapp.VApp.Children.VM[0].HREF+"/networkConnectionSection/", http.MethodGet, + types.MimeNetworkConnectionSection, "error retrieving network connection: %s", nil, networkConnectionSection) + + // The request was successful + return networkConnectionSection, err +} + +// Sets number of available virtual logical processors +// (i.e. CPUs x cores per socket) +// https://communities.vmware.com/thread/576209 +// Deprecated: Use vm.ChangeCPUcount() +func (vapp *VApp) ChangeCPUCount(virtualCpuCount int) (Task, error) { + return vapp.ChangeCPUCountWithCore(virtualCpuCount, nil) +} + +// Sets number of available virtual logical processors +// (i.e. CPUs x cores per socket) and cores per socket. +// Socket count is a result of: virtual logical processors/cores per socket +// https://communities.vmware.com/thread/576209 +// Deprecated: Use vm.ChangeCPUCountWithCore() +func (vapp *VApp) ChangeCPUCountWithCore(virtualCpuCount int, coresPerSocket *int) (Task, error) { + + err := vapp.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing vApp before running customization: %s", err) + } + + // Check if VApp Children is populated + if vapp.VApp.Children == nil { + return Task{}, fmt.Errorf("vApp doesn't contain any children, interrupting customization") + } + + newcpu := &types.OVFItem{ + XmlnsRasd: types.XMLNamespaceRASD, + XmlnsVCloud: types.XMLNamespaceVCloud, + XmlnsXsi: types.XMLNamespaceXSI, + XmlnsVmw: types.XMLNamespaceVMW, + VCloudHREF: vapp.VApp.Children.VM[0].HREF + "/virtualHardwareSection/cpu", + VCloudType: types.MimeRasdItem, + AllocationUnits: "hertz * 10^6", + Description: "Number of Virtual CPUs", + ElementName: strconv.Itoa(virtualCpuCount) + " virtual CPU(s)", + InstanceID: 4, + Reservation: 0, + ResourceType: types.ResourceTypeProcessor, + VirtualQuantity: int64(virtualCpuCount), + Weight: 0, + CoresPerSocket: coresPerSocket, + Link: &types.Link{ + HREF: vapp.VApp.Children.VM[0].HREF + "/virtualHardwareSection/cpu", + Rel: "edit", + Type: types.MimeRasdItem, + }, + } + + apiEndpoint := urlParseRequestURI(vapp.VApp.Children.VM[0].HREF) + apiEndpoint.Path += "/virtualHardwareSection/cpu" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeRasdItem, "error changing CPU count: %s", newcpu) +} + +func (vapp *VApp) ChangeStorageProfile(name string) (Task, error) { + err := vapp.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing vApp before running customization: %s", err) + } + + if vapp.VApp.Children == nil || len(vapp.VApp.Children.VM) == 0 { + return Task{}, fmt.Errorf("vApp doesn't contain any children, interrupting customization") + } + + vdc, err := vapp.getParentVDC() + if err != nil { + return Task{}, fmt.Errorf("error retrieving parent VDC for vApp %s", vapp.VApp.Name) + } + storageProfileRef, err := vdc.FindStorageProfileReference(name) + if err != nil { + return Task{}, fmt.Errorf("error retrieving storage profile %s for vApp %s", name, vapp.VApp.Name) + } + + newProfile := &types.Vm{ + Name: vapp.VApp.Children.VM[0].Name, + StorageProfile: &storageProfileRef, + Xmlns: types.XMLNamespaceVCloud, + } + + // Return the task + return vapp.client.ExecuteTaskRequest(vapp.VApp.Children.VM[0].HREF, http.MethodPut, + types.MimeVM, "error changing CPU count: %s", newProfile) +} + +// Deprecated as it changes only first VM's name +func (vapp *VApp) ChangeVMName(name string) (Task, error) { + err := vapp.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing vApp before running customization: %s", err) + } + + if vapp.VApp.Children == nil { + return Task{}, fmt.Errorf("vApp doesn't contain any children, interrupting customization") + } + + newName := &types.Vm{ + Name: name, + Xmlns: types.XMLNamespaceVCloud, + } + + // Return the task + return vapp.client.ExecuteTaskRequest(vapp.VApp.Children.VM[0].HREF, http.MethodPut, + types.MimeVM, "error changing VM name: %s", newName) +} + +// SetOvf sets guest properties for the first child VM in vApp +// +// Deprecated: Use vm.SetProductSectionList() +func (vapp *VApp) SetOvf(parameters map[string]string) (Task, error) { + err := vapp.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing vApp before running customization: %s", err) + } + + if vapp.VApp.Children == nil { + return Task{}, fmt.Errorf("vApp doesn't contain any children, interrupting customization") + } + + if vapp.VApp.Children.VM[0].ProductSection == nil { + return Task{}, fmt.Errorf("vApp doesn't contain any children with ProductSection, interrupting customization") + } + + for key, value := range parameters { + for _, ovf_value := range vapp.VApp.Children.VM[0].ProductSection.Property { + if ovf_value.Key == key { + ovf_value.Value = &types.Value{Value: value} + break + } + } + } + + ovf := &types.ProductSectionList{ + Xmlns: types.XMLNamespaceVCloud, + Ovf: types.XMLNamespaceOVF, + ProductSection: vapp.VApp.Children.VM[0].ProductSection, + } + + apiEndpoint := urlParseRequestURI(vapp.VApp.Children.VM[0].HREF) + apiEndpoint.Path += "/productSections" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeProductSection, "error setting ovf: %s", ovf) +} + +func (vapp *VApp) ChangeNetworkConfig(networks []map[string]interface{}, ip string) (Task, error) { + err := vapp.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing VM before running customization: %s", err) + } + + if vapp.VApp.Children == nil { + return Task{}, fmt.Errorf("vApp doesn't contain any children, interrupting customization") + } + + networksection, err := vapp.GetNetworkConnectionSection() + if err != nil { + return Task{}, err + } + + for index, network := range networks { + // Determine what type of address is requested for the vApp + ipAllocationMode := types.IPAllocationModeNone + ipAddress := "Any" + + // TODO: Review current behaviour of using DHCP when left blank + if ip == "" || ip == "dhcp" || network["ip"] == "dhcp" { + ipAllocationMode = types.IPAllocationModeDHCP + } else if ip == "allocated" || network["ip"] == "allocated" { + ipAllocationMode = types.IPAllocationModePool + } else if ip == "none" || network["ip"] == "none" { + ipAllocationMode = types.IPAllocationModeNone + } else if ip != "" || network["ip"] != "" { + ipAllocationMode = types.IPAllocationModeManual + // TODO: Check a valid IP has been given + ipAddress = ip + } + + util.Logger.Printf("[DEBUG] Function ChangeNetworkConfig() for %s invoked", network["orgnetwork"]) + + networksection.Xmlns = types.XMLNamespaceVCloud + networksection.Ovf = types.XMLNamespaceOVF + networksection.Info = "Specifies the available VM network connections" + + networksection.NetworkConnection[index].NeedsCustomization = true + networksection.NetworkConnection[index].IPAddress = ipAddress + networksection.NetworkConnection[index].IPAddressAllocationMode = ipAllocationMode + networksection.NetworkConnection[index].MACAddress = "" + + if network["is_primary"] == true { + networksection.PrimaryNetworkConnectionIndex = index + } + + } + + apiEndpoint := urlParseRequestURI(vapp.VApp.Children.VM[0].HREF) + apiEndpoint.Path += "/networkConnectionSection/" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeNetworkConnectionSection, "error changing network config: %s", networksection) +} + +// Deprecated as it changes only first VM's memory +func (vapp *VApp) ChangeMemorySize(size int) (Task, error) { + + err := vapp.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing vApp before running customization: %s", err) + } + + // Check if VApp Children is populated + if vapp.VApp.Children == nil { + return Task{}, fmt.Errorf("vApp doesn't contain any children, interrupting customization") + } + + newMem := &types.OVFItem{ + XmlnsRasd: types.XMLNamespaceRASD, + XmlnsVCloud: types.XMLNamespaceVCloud, + XmlnsXsi: types.XMLNamespaceXSI, + VCloudHREF: vapp.VApp.Children.VM[0].HREF + "/virtualHardwareSection/memory", + VCloudType: types.MimeRasdItem, + AllocationUnits: "byte * 2^20", + Description: "Memory Size", + ElementName: strconv.Itoa(size) + " MB of memory", + InstanceID: 5, + Reservation: 0, + ResourceType: types.ResourceTypeMemory, + VirtualQuantity: int64(size), + Weight: 0, + Link: &types.Link{ + HREF: vapp.VApp.Children.VM[0].HREF + "/virtualHardwareSection/memory", + Rel: "edit", + Type: types.MimeRasdItem, + }, + } + + apiEndpoint := urlParseRequestURI(vapp.VApp.Children.VM[0].HREF) + apiEndpoint.Path += "/virtualHardwareSection/memory" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeRasdItem, "error changing memory size: %s", newMem) +} + +func (vapp *VApp) GetNetworkConfig() (*types.NetworkConfigSection, error) { + + networkConfig := &types.NetworkConfigSection{} + + if vapp.VApp.HREF == "" { + return networkConfig, fmt.Errorf("cannot refresh, Object is empty") + } + + _, err := vapp.client.ExecuteRequest(vapp.VApp.HREF+"/networkConfigSection/", http.MethodGet, + types.MimeNetworkConfigSection, "error retrieving network config: %s", nil, networkConfig) + + // The request was successful + return networkConfig, err +} + +// AddRAWNetworkConfig adds existing VDC network to vApp +// Deprecated: in favor of vapp.AddOrgNetwork +func (vapp *VApp) AddRAWNetworkConfig(orgvdcnetworks []*types.OrgVDCNetwork) (Task, error) { + + vAppNetworkConfig, err := vapp.GetNetworkConfig() + if err != nil { + return Task{}, fmt.Errorf("error getting vApp networks: %s", err) + } + networkConfigurations := vAppNetworkConfig.NetworkConfig + + for _, network := range orgvdcnetworks { + networkConfigurations = append(networkConfigurations, + types.VAppNetworkConfiguration{ + NetworkName: network.Name, + Configuration: &types.NetworkConfiguration{ + ParentNetwork: &types.Reference{ + HREF: network.HREF, + }, + FenceMode: types.FenceModeBridged, + }, + }, + ) + } + + return updateNetworkConfigurations(vapp, networkConfigurations) +} + +// Function allows to create isolated network for vApp. This is equivalent to vCD UI function - vApp network creation. +// Deprecated: in favor of vapp.CreateVappNetwork +func (vapp *VApp) AddIsolatedNetwork(newIsolatedNetworkSettings *VappNetworkSettings) (Task, error) { + + err := validateNetworkConfigSettings(newIsolatedNetworkSettings) + if err != nil { + return Task{}, err + } + + // for case when range is one ip address + if newIsolatedNetworkSettings.DhcpSettings != nil && newIsolatedNetworkSettings.DhcpSettings.IPRange != nil && newIsolatedNetworkSettings.DhcpSettings.IPRange.EndAddress == "" { + newIsolatedNetworkSettings.DhcpSettings.IPRange.EndAddress = newIsolatedNetworkSettings.DhcpSettings.IPRange.StartAddress + } + + // only add values if available. Won't be send to API if not provided + var networkFeatures *types.NetworkFeatures + if newIsolatedNetworkSettings.DhcpSettings != nil { + networkFeatures = &types.NetworkFeatures{DhcpService: &types.DhcpService{ + IsEnabled: newIsolatedNetworkSettings.DhcpSettings.IsEnabled, + DefaultLeaseTime: newIsolatedNetworkSettings.DhcpSettings.DefaultLeaseTime, + MaxLeaseTime: newIsolatedNetworkSettings.DhcpSettings.MaxLeaseTime, + IPRange: newIsolatedNetworkSettings.DhcpSettings.IPRange}} + } + + networkConfigurations := vapp.VApp.NetworkConfigSection.NetworkConfig + networkConfigurations = append(networkConfigurations, + types.VAppNetworkConfiguration{ + NetworkName: newIsolatedNetworkSettings.Name, + Description: newIsolatedNetworkSettings.Description, + Configuration: &types.NetworkConfiguration{ + FenceMode: types.FenceModeIsolated, + GuestVlanAllowed: newIsolatedNetworkSettings.GuestVLANAllowed, + Features: networkFeatures, + IPScopes: &types.IPScopes{IPScope: []*types.IPScope{&types.IPScope{IsInherited: false, Gateway: newIsolatedNetworkSettings.Gateway, + Netmask: newIsolatedNetworkSettings.NetMask, DNS1: newIsolatedNetworkSettings.DNS1, + DNS2: newIsolatedNetworkSettings.DNS2, DNSSuffix: newIsolatedNetworkSettings.DNSSuffix, IsEnabled: true, + IPRanges: &types.IPRanges{IPRange: newIsolatedNetworkSettings.StaticIPRanges}}}}, + }, + IsDeployed: false, + }) + + return updateNetworkConfigurations(vapp, networkConfigurations) + +} + +// CreateVappNetwork creates isolated or nat routed(connected to Org VDC network) network for vApp. +// Returns pointer to types.NetworkConfigSection or error +// If orgNetwork is nil, then isolated network created. +func (vapp *VApp) CreateVappNetwork(newNetworkSettings *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork) (*types.NetworkConfigSection, error) { + task, err := vapp.CreateVappNetworkAsync(newNetworkSettings, orgNetwork) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + vAppNetworkConfig, err := vapp.GetNetworkConfig() + if err != nil { + return nil, fmt.Errorf("error getting vApp networks: %#v", err) + } + + return vAppNetworkConfig, nil +} + +// CreateVappNetworkAsync creates asynchronously isolated or nat routed network for vApp. Returns Task or error +// If orgNetwork is nil, then isolated network created. +func (vapp *VApp) CreateVappNetworkAsync(newNetworkSettings *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork) (Task, error) { + + err := validateNetworkConfigSettings(newNetworkSettings) + if err != nil { + return Task{}, err + } + + // for case when range is one ip address + if newNetworkSettings.DhcpSettings != nil && newNetworkSettings.DhcpSettings.IPRange != nil && newNetworkSettings.DhcpSettings.IPRange.EndAddress == "" { + newNetworkSettings.DhcpSettings.IPRange.EndAddress = newNetworkSettings.DhcpSettings.IPRange.StartAddress + } + + // only add values if available. Won't be send to API if not provided + var networkFeatures *types.NetworkFeatures + if newNetworkSettings.DhcpSettings != nil { + networkFeatures = &types.NetworkFeatures{DhcpService: &types.DhcpService{ + IsEnabled: newNetworkSettings.DhcpSettings.IsEnabled, + DefaultLeaseTime: newNetworkSettings.DhcpSettings.DefaultLeaseTime, + MaxLeaseTime: newNetworkSettings.DhcpSettings.MaxLeaseTime, + IPRange: newNetworkSettings.DhcpSettings.IPRange}, + } + } + + networkConfigurations := vapp.VApp.NetworkConfigSection.NetworkConfig + vappConfiguration := types.VAppNetworkConfiguration{ + NetworkName: newNetworkSettings.Name, + Description: newNetworkSettings.Description, + Configuration: &types.NetworkConfiguration{ + FenceMode: types.FenceModeIsolated, + GuestVlanAllowed: newNetworkSettings.GuestVLANAllowed, + Features: networkFeatures, + IPScopes: &types.IPScopes{IPScope: []*types.IPScope{&types.IPScope{IsInherited: false, Gateway: newNetworkSettings.Gateway, + Netmask: newNetworkSettings.NetMask, DNS1: newNetworkSettings.DNS1, + DNS2: newNetworkSettings.DNS2, DNSSuffix: newNetworkSettings.DNSSuffix, IsEnabled: true, + IPRanges: &types.IPRanges{IPRange: newNetworkSettings.StaticIPRanges}}}}, + RetainNetInfoAcrossDeployments: newNetworkSettings.RetainIpMacEnabled, + }, + IsDeployed: false, + } + if orgNetwork != nil { + vappConfiguration.Configuration.ParentNetwork = &types.Reference{ + HREF: orgNetwork.HREF, + } + vappConfiguration.Configuration.FenceMode = types.FenceModeNAT + } + + networkConfigurations = append(networkConfigurations, + vappConfiguration) + + return updateNetworkConfigurations(vapp, networkConfigurations) +} + +// AddOrgNetwork adds Org VDC network as vApp network. +// Returns pointer to types.NetworkConfigSection or error +func (vapp *VApp) AddOrgNetwork(newNetworkSettings *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork, isFenced bool) (*types.NetworkConfigSection, error) { + task, err := vapp.AddOrgNetworkAsync(newNetworkSettings, orgNetwork, isFenced) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + vAppNetworkConfig, err := vapp.GetNetworkConfig() + if err != nil { + return nil, fmt.Errorf("error getting vApp networks: %#v", err) + } + + return vAppNetworkConfig, nil +} + +// AddOrgNetworkAsync adds asynchronously Org VDC network as vApp network. Returns Task or error +func (vapp *VApp) AddOrgNetworkAsync(newNetworkSettings *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork, isFenced bool) (Task, error) { + + if orgNetwork == nil { + return Task{}, errors.New("org VDC network is missing") + } + + fenceMode := types.FenceModeBridged + if isFenced { + fenceMode = types.FenceModeNAT + } + + networkConfigurations := vapp.VApp.NetworkConfigSection.NetworkConfig + vappConfiguration := types.VAppNetworkConfiguration{ + NetworkName: orgNetwork.Name, + Configuration: &types.NetworkConfiguration{ + FenceMode: fenceMode, + ParentNetwork: &types.Reference{ + HREF: orgNetwork.HREF, + }, + RetainNetInfoAcrossDeployments: newNetworkSettings.RetainIpMacEnabled, + }, + IsDeployed: false, + } + networkConfigurations = append(networkConfigurations, + vappConfiguration) + + return updateNetworkConfigurations(vapp, networkConfigurations) + +} + +// UpdateNetwork updates vApp networks (isolated or connected to Org VDC network) +// Returns pointer to types.NetworkConfigSection or error +func (vapp *VApp) UpdateNetwork(newNetworkSettings *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork) (*types.NetworkConfigSection, error) { + task, err := vapp.UpdateNetworkAsync(newNetworkSettings, orgNetwork) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + vAppNetworkConfig, err := vapp.GetNetworkConfig() + if err != nil { + return nil, fmt.Errorf("error getting vApp networks: %#v", err) + } + + return vAppNetworkConfig, nil +} + +// UpdateNetworkAsync asynchronously updates vApp networks (isolated or connected to Org VDC network). +// Returns task or error +func (vapp *VApp) UpdateNetworkAsync(networkSettingsToUpdate *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork) (Task, error) { + util.Logger.Printf("[TRACE] UpdateNetworkAsync with values: %#v and connect to org network: %#v", networkSettingsToUpdate, orgNetwork) + currentNetworkConfiguration, err := vapp.GetNetworkConfig() + if err != nil { + return Task{}, err + } + var networkToUpdate types.VAppNetworkConfiguration + var networkToUpdateIndex int + for index, networkConfig := range currentNetworkConfiguration.NetworkConfig { + if networkConfig.Link != nil { + uuid, err := GetUuidFromHref(networkConfig.Link.HREF, false) + if err != nil { + return Task{}, err + } + if uuid == extractUuid(networkSettingsToUpdate.ID) { + networkToUpdate = networkConfig + networkToUpdateIndex = index + break + } + } + } + + if networkToUpdate == (types.VAppNetworkConfiguration{}) { + return Task{}, fmt.Errorf("not found network to update with Id %s", networkSettingsToUpdate.ID) + } + if networkToUpdate.Configuration == nil { + networkToUpdate.Configuration = &types.NetworkConfiguration{} + } + networkToUpdate.Configuration.RetainNetInfoAcrossDeployments = networkSettingsToUpdate.RetainIpMacEnabled + // new network to connect + if networkToUpdate.Configuration.ParentNetwork == nil && orgNetwork != nil { + networkToUpdate.Configuration.FenceMode = types.FenceModeNAT + networkToUpdate.Configuration.ParentNetwork = &types.Reference{HREF: orgNetwork.HREF} + } + // change network to connect + if networkToUpdate.Configuration.ParentNetwork != nil && orgNetwork != nil && networkToUpdate.Configuration.ParentNetwork.HREF != orgNetwork.HREF { + networkToUpdate.Configuration.ParentNetwork = &types.Reference{HREF: orgNetwork.HREF} + } + // remove network to connect + if orgNetwork == nil { + networkToUpdate.Configuration.FenceMode = types.FenceModeIsolated + networkToUpdate.Configuration.ParentNetwork = nil + } + networkToUpdate.Description = networkSettingsToUpdate.Description + networkToUpdate.NetworkName = networkSettingsToUpdate.Name + networkToUpdate.Configuration.GuestVlanAllowed = networkSettingsToUpdate.GuestVLANAllowed + networkToUpdate.Configuration.IPScopes.IPScope[0].Gateway = networkSettingsToUpdate.Gateway + networkToUpdate.Configuration.IPScopes.IPScope[0].Netmask = networkSettingsToUpdate.NetMask + networkToUpdate.Configuration.IPScopes.IPScope[0].DNS1 = networkSettingsToUpdate.DNS1 + networkToUpdate.Configuration.IPScopes.IPScope[0].DNS2 = networkSettingsToUpdate.DNS2 + networkToUpdate.Configuration.IPScopes.IPScope[0].DNSSuffix = networkSettingsToUpdate.DNSSuffix + networkToUpdate.Configuration.IPScopes.IPScope[0].IPRanges = &types.IPRanges{IPRange: networkSettingsToUpdate.StaticIPRanges} + + // for case when range is one ip address + if networkSettingsToUpdate.DhcpSettings != nil && networkSettingsToUpdate.DhcpSettings.IPRange != nil && networkSettingsToUpdate.DhcpSettings.IPRange.EndAddress == "" { + networkSettingsToUpdate.DhcpSettings.IPRange.EndAddress = networkSettingsToUpdate.DhcpSettings.IPRange.StartAddress + } + + // remove DHCP config + if networkSettingsToUpdate.DhcpSettings == nil { + networkToUpdate.Configuration.Features.DhcpService = nil + } + + // create DHCP config + if networkSettingsToUpdate.DhcpSettings != nil && networkToUpdate.Configuration.Features.DhcpService == nil { + networkToUpdate.Configuration.Features.DhcpService = &types.DhcpService{ + IsEnabled: networkSettingsToUpdate.DhcpSettings.IsEnabled, + DefaultLeaseTime: networkSettingsToUpdate.DhcpSettings.DefaultLeaseTime, + MaxLeaseTime: networkSettingsToUpdate.DhcpSettings.MaxLeaseTime, + IPRange: networkSettingsToUpdate.DhcpSettings.IPRange} + } + + // update DHCP config + if networkSettingsToUpdate.DhcpSettings != nil && networkToUpdate.Configuration.Features.DhcpService != nil { + networkToUpdate.Configuration.Features.DhcpService.IsEnabled = networkSettingsToUpdate.DhcpSettings.IsEnabled + networkToUpdate.Configuration.Features.DhcpService.DefaultLeaseTime = networkSettingsToUpdate.DhcpSettings.DefaultLeaseTime + networkToUpdate.Configuration.Features.DhcpService.MaxLeaseTime = networkSettingsToUpdate.DhcpSettings.MaxLeaseTime + networkToUpdate.Configuration.Features.DhcpService.IPRange = networkSettingsToUpdate.DhcpSettings.IPRange + } + + currentNetworkConfiguration.NetworkConfig[networkToUpdateIndex] = networkToUpdate + + return updateNetworkConfigurations(vapp, currentNetworkConfiguration.NetworkConfig) +} + +// UpdateOrgNetwork updates Org VDC network which is part of a vApp +// Returns pointer to types.NetworkConfigSection or error +func (vapp *VApp) UpdateOrgNetwork(newNetworkSettings *VappNetworkSettings, isFenced bool) (*types.NetworkConfigSection, error) { + task, err := vapp.UpdateOrgNetworkAsync(newNetworkSettings, isFenced) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + vAppNetworkConfig, err := vapp.GetNetworkConfig() + if err != nil { + return nil, fmt.Errorf("error getting vApp networks: %#v", err) + } + + return vAppNetworkConfig, nil +} + +// UpdateOrgNetworkAsync asynchronously updates Org VDC network which is part of a vApp +// Returns task or error +func (vapp *VApp) UpdateOrgNetworkAsync(networkSettingsToUpdate *VappNetworkSettings, isFenced bool) (Task, error) { + util.Logger.Printf("[TRACE] UpdateOrgNetworkAsync with values: %#v ", networkSettingsToUpdate) + currentNetworkConfiguration, err := vapp.GetNetworkConfig() + if err != nil { + return Task{}, err + } + var networkToUpdate types.VAppNetworkConfiguration + var networkToUpdateIndex int + + for index, networkConfig := range currentNetworkConfiguration.NetworkConfig { + if networkConfig.Link != nil { + uuid, err := GetUuidFromHref(networkConfig.Link.HREF, false) + if err != nil { + return Task{}, err + } + + if uuid == extractUuid(networkSettingsToUpdate.ID) { + networkToUpdate = networkConfig + networkToUpdateIndex = index + break + } + } + } + + if networkToUpdate == (types.VAppNetworkConfiguration{}) { + return Task{}, fmt.Errorf("not found network to update with Id %s", networkSettingsToUpdate.ID) + } + + fenceMode := types.FenceModeBridged + if isFenced { + fenceMode = types.FenceModeNAT + } + + if networkToUpdate.Configuration == nil { + networkToUpdate.Configuration = &types.NetworkConfiguration{} + } + networkToUpdate.Configuration.RetainNetInfoAcrossDeployments = networkSettingsToUpdate.RetainIpMacEnabled + networkToUpdate.Configuration.FenceMode = fenceMode + + currentNetworkConfiguration.NetworkConfig[networkToUpdateIndex] = networkToUpdate + + return updateNetworkConfigurations(vapp, currentNetworkConfiguration.NetworkConfig) +} + +func validateNetworkConfigSettings(networkSettings *VappNetworkSettings) error { + if networkSettings.Name == "" { + return errors.New("network name is missing") + } + + if networkSettings.Gateway == "" { + return errors.New("network gateway IP is missing") + } + + if networkSettings.NetMask == "" { + return errors.New("network mask config is missing") + } + + if networkSettings.NetMask == "" { + return errors.New("network mask config is missing") + } + + if networkSettings.DhcpSettings != nil && networkSettings.DhcpSettings.IPRange == nil { + return errors.New("network DHCP ip range config is missing") + } + + if networkSettings.DhcpSettings != nil && networkSettings.DhcpSettings.IPRange.StartAddress == "" { + return errors.New("network DHCP ip range start address is missing") + } + + return nil +} + +// RemoveNetwork removes any network (be it isolated or connected to an Org Network) from vApp +// Returns pointer to types.NetworkConfigSection or error +func (vapp *VApp) RemoveNetwork(identifier string) (*types.NetworkConfigSection, error) { + task, err := vapp.RemoveNetworkAsync(identifier) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + vAppNetworkConfig, err := vapp.GetNetworkConfig() + if err != nil { + return nil, fmt.Errorf("error getting vApp networks: %#v", err) + } + + return vAppNetworkConfig, nil +} + +// RemoveNetworkAsync asynchronously removes any network (be it isolated or connected to an Org Network) from vApp +// Accepts network ID or name +func (vapp *VApp) RemoveNetworkAsync(identifier string) (Task, error) { + + if identifier == "" { + return Task{}, fmt.Errorf("network ID/name can't be empty") + } + + networkConfigurations := vapp.VApp.NetworkConfigSection.NetworkConfig + for _, networkConfig := range networkConfigurations { + networkId, err := GetUuidFromHref(networkConfig.Link.HREF, false) + if err != nil { + return Task{}, fmt.Errorf("unable to get network ID from HREF: %s", err) + } + if networkId == extractUuid(identifier) || networkConfig.NetworkName == identifier { + deleteUrl := vapp.client.VCDHREF.String() + "/network/" + networkId + errMessage := fmt.Sprintf("detaching vApp network %s (id '%s'): %%s", networkConfig.NetworkName, networkId) + task, err := vapp.client.ExecuteTaskRequest(deleteUrl, http.MethodDelete, types.AnyXMLMime, errMessage, nil) + if err != nil { + return Task{}, err + } + + return task, nil + } + } + + return Task{}, fmt.Errorf("network to remove %s, wasn't found", identifier) + +} + +// Removes vApp isolated network +// Deprecated: in favor vapp.RemoveNetwork +func (vapp *VApp) RemoveIsolatedNetwork(networkName string) (Task, error) { + + if networkName == "" { + return Task{}, fmt.Errorf("network name can't be empty") + } + + networkConfigurations := vapp.VApp.NetworkConfigSection.NetworkConfig + isNetworkFound := false + for index, networkConfig := range networkConfigurations { + if networkConfig.NetworkName == networkName { + isNetworkFound = true + networkConfigurations = append(networkConfigurations[:index], networkConfigurations[index+1:]...) + } + } + + if !isNetworkFound { + return Task{}, fmt.Errorf("network to remove %s, wasn't found", networkName) + } + + return updateNetworkConfigurations(vapp, networkConfigurations) +} + +// Function allows to update vApp network configuration. This works for updating, deleting and adding. +// Network configuration has to be full with new, changed elements and unchanged. +// https://opengrok.eng.vmware.com/source/xref/cloud-sp-main.perforce-shark.1700/sp-main/dev-integration/system-tests/SystemTests/src/main/java/com/vmware/cloud/systemtests/util/VAppNetworkUtils.java#createVAppNetwork +// http://pubs.vmware.com/vcloud-api-1-5/wwhelp/wwhimpl/js/html/wwhelp.htm#href=api_prog/GUID-92622A15-E588-4FA1-92DA-A22A4757F2A0.html#1_14_12_10_1 +func updateNetworkConfigurations(vapp *VApp, networkConfigurations []types.VAppNetworkConfiguration) (Task, error) { + util.Logger.Printf("[TRACE] updateNetworkConfigurations for vAPP: %#v and network config: %#v", vapp, networkConfigurations) + networkConfig := &types.NetworkConfigSection{ + Info: "Configuration parameters for logical networks", + Ovf: types.XMLNamespaceOVF, + Type: types.MimeNetworkConfigSection, + Xmlns: types.XMLNamespaceVCloud, + NetworkConfig: networkConfigurations, + } + + apiEndpoint := urlParseRequestURI(vapp.VApp.HREF) + apiEndpoint.Path += "/networkConfigSection/" + + // Return the task + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeNetworkConfigSection, "error updating vApp Network: %s", networkConfig) +} + +// RemoveAllNetworks detaches all networks from vApp +func (vapp *VApp) RemoveAllNetworks() (Task, error) { + return updateNetworkConfigurations(vapp, []types.VAppNetworkConfiguration{}) +} + +// SetProductSectionList sets product section for a vApp. It allows to change vApp guest properties. +// +// The slice of properties "ProductSectionList.ProductSection.Property" is not necessarily ordered +// or returned as set before +func (vapp *VApp) SetProductSectionList(productSection *types.ProductSectionList) (*types.ProductSectionList, error) { + err := setProductSectionList(vapp.client, vapp.VApp.HREF, productSection) + if err != nil { + return nil, fmt.Errorf("unable to set vApp product section: %s", err) + } + + return vapp.GetProductSectionList() +} + +// GetProductSectionList retrieves product section for a vApp. It allows to read vApp guest properties. +// +// The slice of properties "ProductSectionList.ProductSection.Property" is not necessarily ordered +// or returned as set before +func (vapp *VApp) GetProductSectionList() (*types.ProductSectionList, error) { + return getProductSectionList(vapp.client, vapp.VApp.HREF) +} + +// GetVMByName returns a VM reference if the VM name matches an existing one. +// If no valid VM is found, it returns a nil VM reference and an error +func (vapp *VApp) GetVMByName(vmName string, refresh bool) (*VM, error) { + if refresh { + err := vapp.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing vApp: %s", err) + } + } + + //vApp Might Not Have Any VMs + if vapp.VApp.Children == nil { + return nil, ErrorEntityNotFound + } + + util.Logger.Printf("[TRACE] Looking for VM: %s", vmName) + for _, child := range vapp.VApp.Children.VM { + + util.Logger.Printf("[TRACE] Looking at: %s", child.Name) + if child.Name == vmName { + return vapp.client.GetVMByHref(child.HREF) + } + + } + util.Logger.Printf("[TRACE] Couldn't find VM: %s", vmName) + return nil, ErrorEntityNotFound +} + +// GetVMById returns a VM reference if the VM ID matches an existing one. +// If no valid VM is found, it returns a nil VM reference and an error +func (vapp *VApp) GetVMById(id string, refresh bool) (*VM, error) { + if refresh { + err := vapp.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing vApp: %s", err) + } + } + + //vApp Might Not Have Any VMs + if vapp.VApp.Children == nil { + return nil, ErrorEntityNotFound + } + + util.Logger.Printf("[TRACE] Looking for VM: %s", id) + for _, child := range vapp.VApp.Children.VM { + + util.Logger.Printf("[TRACE] Looking at: %s", child.Name) + if equalIds(id, child.ID, child.HREF) { + return vapp.client.GetVMByHref(child.HREF) + } + } + util.Logger.Printf("[TRACE] Couldn't find VM: %s", id) + return nil, ErrorEntityNotFound +} + +// GetVMByNameOrId returns a VM reference if either the VM name or ID matches an existing one. +// If no valid VM is found, it returns a nil VM reference and an error +func (vapp *VApp) GetVMByNameOrId(identifier string, refresh bool) (*VM, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return vapp.GetVMByName(name, refresh) } + getById := func(id string, refresh bool) (interface{}, error) { return vapp.GetVMById(id, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, false) + if entity == nil { + return nil, err + } + return entity.(*VM), err +} + +// QueryVappList returns a list of all vApps in all the organizations available to the caller +func (client *Client) QueryVappList() ([]*types.QueryResultVAppRecordType, error) { + var vappList []*types.QueryResultVAppRecordType + queryType := client.GetQueryType(types.QtVapp) + params := map[string]string{ + "type": queryType, + "filterEncoded": "true", + } + vappResult, err := client.cumulativeQuery(queryType, nil, params) + if err != nil { + return nil, fmt.Errorf("error getting vApp list : %s", err) + } + vappList = vappResult.Results.VAppRecord + if client.IsSysAdmin { + vappList = vappResult.Results.AdminVAppRecord + } + return vappList, nil +} + +// getOrgInfo finds the organization to which the vApp belongs (through the VDC), and returns its name and ID +func (vapp *VApp) getOrgInfo() (*TenantContext, error) { + previous, exists := orgInfoCache[vapp.VApp.ID] + if exists { + return previous, nil + } + var err error + vdc, err := vapp.getParentVDC() + if err != nil { + return nil, err + } + return vdc.getTenantContext() +} + +// UpdateNameDescription can change the name and the description of a vApp +// If name is empty, it is left unchanged. +func (vapp *VApp) UpdateNameDescription(newName, newDescription string) error { + if vapp == nil || vapp.VApp.HREF == "" { + return fmt.Errorf("vApp or href cannot be empty") + } + + // Skip update if we are using the original values + if (newName == vapp.VApp.Name || newName == "") && (newDescription == vapp.VApp.Description) { + return nil + } + + opType := types.MimeRecomposeVappParams + + href := "" + for _, link := range vapp.VApp.Link { + if link.Type == opType && link.Rel == "recompose" { + href = link.HREF + break + } + } + + if href == "" { + return fmt.Errorf("no appropriate link for update found for vApp %s", vapp.VApp.Name) + } + + if newName == "" { + newName = vapp.VApp.Name + } + + recomposeParams := &types.SmallRecomposeVappParams{ + XMLName: xml.Name{}, + Ovf: types.XMLNamespaceOVF, + Xsi: types.XMLNamespaceXSI, + Xmlns: types.XMLNamespaceVCloud, + Name: newName, + Description: newDescription, + Deploy: vapp.VApp.Deployed, + } + + task, err := vapp.client.ExecuteTaskRequest(href, http.MethodPost, + opType, "error updating vapp: %s", recomposeParams) + + if err != nil { + return fmt.Errorf("unable to update vApp: %s", err) + } + + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("task for updating vApp failed: %s", err) + } + return vapp.Refresh() +} + +// UpdateDescription changes the description of a vApp +func (vapp *VApp) UpdateDescription(newDescription string) error { + return vapp.UpdateNameDescription("", newDescription) +} + +// Rename changes the name of a vApp +func (vapp *VApp) Rename(newName string) error { + return vapp.UpdateNameDescription(newName, vapp.VApp.Description) +} + +func (vapp *VApp) getTenantContext() (*TenantContext, error) { + parentVdc, err := vapp.getParentVDC() + if err != nil { + return nil, err + } + return parentVdc.getTenantContext() +} + +// RenewLease updates the lease terms for the vApp +func (vapp *VApp) RenewLease(deploymentLeaseInSeconds, storageLeaseInSeconds int) error { + + href := "" + if vapp.VApp.LeaseSettingsSection != nil { + if vapp.VApp.LeaseSettingsSection.DeploymentLeaseInSeconds == deploymentLeaseInSeconds && + vapp.VApp.LeaseSettingsSection.StorageLeaseInSeconds == storageLeaseInSeconds { + // Requested parameters are the same as existing parameters: exit without updating + return nil + } + href = vapp.VApp.LeaseSettingsSection.HREF + } + if href == "" { + for _, link := range vapp.VApp.Link { + if link.Rel == "edit" && link.Type == types.MimeLeaseSettingSection { + href = link.HREF + break + } + } + } + if href == "" { + return fmt.Errorf("link to update lease sttings not found for vApp %s", vapp.VApp.Name) + } + + var leaseSettings = types.UpdateLeaseSettingsSection{ + HREF: href, + XmlnsOvf: types.XMLNamespaceOVF, + Xmlns: types.XMLNamespaceVCloud, + OVFInfo: "Lease section settings", + Type: types.MimeLeaseSettingSection, + DeploymentLeaseInSeconds: takeIntAddress(deploymentLeaseInSeconds), + StorageLeaseInSeconds: takeIntAddress(storageLeaseInSeconds), + } + + task, err := vapp.client.ExecuteTaskRequest(href, http.MethodPut, + types.MimeLeaseSettingSection, "error updating vapp lease : %s", &leaseSettings) + + if err != nil { + return fmt.Errorf("unable to update vApp lease: %s", err) + } + + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("task for updating vApp lease failed: %s", err) + } + return vapp.Refresh() +} + +// GetLease retrieves the lease terms for a vApp +func (vapp *VApp) GetLease() (*types.LeaseSettingsSection, error) { + + href := "" + if vapp.VApp.LeaseSettingsSection != nil { + href = vapp.VApp.LeaseSettingsSection.HREF + } + if href == "" { + for _, link := range vapp.VApp.Link { + if link.Type == types.MimeLeaseSettingSection { + href = link.HREF + break + } + } + } + if href == "" { + return nil, fmt.Errorf("link to retrieve lease settings not found for vApp %s", vapp.VApp.Name) + } + var leaseSettings types.LeaseSettingsSection + + _, err := vapp.client.ExecuteRequest(href, http.MethodGet, "", "error getting vApp lease info: %s", nil, &leaseSettings) + + if err != nil { + return nil, err + } + return &leaseSettings, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapp_network.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapp_network.go new file mode 100644 index 000000000..5f3acb6cc --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapp_network.go @@ -0,0 +1,302 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" + "net/http" +) + +// UpdateNetworkFirewallRules updates vApp networks firewall rules. It will overwrite existing ones as there is +// no 100% way to identify them separately. +// Returns pointer to types.VAppNetwork or error +func (vapp *VApp) UpdateNetworkFirewallRules(networkId string, firewallRules []*types.FirewallRule, enabled bool, defaultAction string, logDefaultAction bool) (*types.VAppNetwork, error) { + task, err := vapp.UpdateNetworkFirewallRulesAsync(networkId, firewallRules, enabled, defaultAction, logDefaultAction) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + return vapp.GetVappNetworkById(networkId, false) +} + +// UpdateNetworkFirewallRulesAsync asynchronously updates vApp networks firewall rules. It will overwrite existing ones +// as there is no 100% way to identify them separately. +// Returns task or error +func (vapp *VApp) UpdateNetworkFirewallRulesAsync(networkId string, firewallRules []*types.FirewallRule, enabled bool, defaultAction string, logDefaultAction bool) (Task, error) { + util.Logger.Printf("[TRACE] UpdateNetworkFirewallRulesAsync with values: id: %s and firewallServiceConfiguration: %#v", networkId, firewallRules) + uuid := extractUuid(networkId) + networkToUpdate, err := vapp.GetVappNetworkById(uuid, true) + if err != nil { + return Task{}, err + } + + if networkToUpdate.Configuration.Features == nil { + networkToUpdate.Configuration.Features = &types.NetworkFeatures{} + } + networkToUpdate.Xmlns = types.XMLNamespaceVCloud + + // If API didn't return Firewall service XML part, that means vApp network isn't connected to org network or not fenced. + // In other words there isn't firewall when you connected directly or isolated. + if networkToUpdate.Configuration.Features.FirewallService == nil { + return Task{}, fmt.Errorf("provided network isn't connecd to org network or isn't fenced") + } + networkToUpdate.Configuration.Features.FirewallService.IsEnabled = enabled + networkToUpdate.Configuration.Features.FirewallService.LogDefaultAction = logDefaultAction + networkToUpdate.Configuration.Features.FirewallService.DefaultAction = defaultAction + networkToUpdate.Configuration.Features.FirewallService.FirewallRule = firewallRules + + // here we use `PUT /network/{id}` which allow to change vApp network. + // But `GET /network/{id}` can return org VDC network or vApp network. + apiEndpoint := vapp.client.VCDHREF + apiEndpoint.Path += "/network/" + uuid + + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeVappNetwork, "error updating vApp Network firewall rules: %s", networkToUpdate) +} + +// GetVappNetworkById returns a VApp network reference if the vApp network ID matches an existing one. +// If no valid VApp network is found, it returns a nil VApp network reference and an error +func (vapp *VApp) GetVappNetworkById(id string, refresh bool) (*types.VAppNetwork, error) { + util.Logger.Printf("[TRACE] [GetVappNetworkById] getting vApp Network: %s and refresh %t", id, refresh) + + if refresh { + err := vapp.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing vApp: %s", err) + } + } + + //vApp Might Not Have Any networks + if vapp.VApp.NetworkConfigSection == nil || len(vapp.VApp.NetworkConfigSection.NetworkConfig) == 0 { + return nil, ErrorEntityNotFound + } + + util.Logger.Printf("[TRACE] Looking for networks: %s --- %d", id, len(vapp.VApp.NetworkConfigSection.NetworkConfig)) + for _, vappNetwork := range vapp.VApp.NetworkConfigSection.NetworkConfig { + // Break early for empty network interfaces. They don't have all information + if vappNetwork.NetworkName == types.NoneNetwork { + continue + } + util.Logger.Printf("[TRACE] Looking at: %s", vappNetwork.Link.HREF) + if equalIds(id, vappNetwork.ID, vappNetwork.Link.HREF) { + vappNetwork := &types.VAppNetwork{} + + apiEndpoint := vapp.client.VCDHREF + apiEndpoint.Path += "/network/" + extractUuid(id) + + _, err := vapp.client.ExecuteRequest(apiEndpoint.String(), http.MethodGet, + types.MimeVappNetwork, "error getting vApp network: %s", nil, vappNetwork) + if err != nil { + return nil, err + } + return vappNetwork, nil + } + } + util.Logger.Printf("[TRACE] GetVappNetworkById returns not found entity") + return nil, ErrorEntityNotFound +} + +// GetVappNetworkByName returns a VAppNetwork reference if the vApp network name matches an existing one. +// If no valid vApp network is found, it returns a nil VAppNetwork reference and an error +func (vapp *VApp) GetVappNetworkByName(vappNetworkName string, refresh bool) (*types.VAppNetwork, error) { + util.Logger.Printf("[TRACE] [GetVappNetworkByName] getting vApp Network: %s and refresh %t", vappNetworkName, refresh) + if refresh { + err := vapp.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing vApp: %s", err) + } + } + + //vApp Might Not Have Any networks + if vapp.VApp.NetworkConfigSection == nil || len(vapp.VApp.NetworkConfigSection.NetworkConfig) == 0 { + return nil, ErrorEntityNotFound + } + + util.Logger.Printf("[TRACE] Looking for networks: %s", vappNetworkName) + for _, vappNetwork := range vapp.VApp.NetworkConfigSection.NetworkConfig { + + util.Logger.Printf("[TRACE] Looking at: %s", vappNetwork.NetworkName) + if vappNetwork.NetworkName == vappNetworkName { + return vapp.GetVappNetworkById(extractUuid(vappNetwork.Link.HREF), refresh) + } + + } + util.Logger.Printf("[TRACE] Couldn't find vApp network: %s", vappNetworkName) + return nil, ErrorEntityNotFound +} + +// GetVappNetworkByNameOrId returns a types.VAppNetwork reference if either the vApp network name or ID matches an existing one. +// If no valid vApp network is found, it returns a nil types.VAppNetwork reference and an error +func (vapp *VApp) GetVappNetworkByNameOrId(identifier string, refresh bool) (*types.VAppNetwork, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return vapp.GetVappNetworkByName(name, refresh) } + getById := func(id string, refresh bool) (interface{}, error) { return vapp.GetVappNetworkById(id, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, false) + if entity == nil { + return nil, err + } + return entity.(*types.VAppNetwork), err +} + +// UpdateNetworkNatRules updates vApp networks NAT rules. +// Returns pointer to types.VAppNetwork or error +func (vapp *VApp) UpdateNetworkNatRules(networkId string, natRules []*types.NatRule, enabled bool, natType, policy string) (*types.VAppNetwork, error) { + task, err := vapp.UpdateNetworkNatRulesAsync(networkId, natRules, enabled, natType, policy) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + return vapp.GetVappNetworkById(networkId, false) +} + +// UpdateNetworkNatRulesAsync asynchronously updates vApp NAT rules. +// Returns task or error +func (vapp *VApp) UpdateNetworkNatRulesAsync(networkId string, natRules []*types.NatRule, enabled bool, natType, policy string) (Task, error) { + util.Logger.Printf("[TRACE] UpdateNetworkNatRulesAsync with values: id: %s and natRules: %#v", networkId, natRules) + + uuid := extractUuid(networkId) + networkToUpdate, err := vapp.GetVappNetworkById(uuid, true) + if err != nil { + return Task{}, err + } + + if networkToUpdate.Configuration.Features == nil { + networkToUpdate.Configuration.Features = &types.NetworkFeatures{} + } + networkToUpdate.Xmlns = types.XMLNamespaceVCloud + + // if services are empty return by API, then we can deduce that network isn't connected to Org network or fenced + if networkToUpdate.Configuration.Features.NatService == nil && networkToUpdate.Configuration.Features.FirewallService == nil { + return Task{}, fmt.Errorf("provided network isn't connected to org network or isn't fenced") + } + if networkToUpdate.Configuration.Features.NatService == nil { + networkToUpdate.Configuration.Features.NatService = &types.NatService{} + } + networkToUpdate.Configuration.Features.NatService.IsEnabled = enabled + networkToUpdate.Configuration.Features.NatService.NatType = natType + networkToUpdate.Configuration.Features.NatService.Policy = policy + networkToUpdate.Configuration.Features.NatService.NatRule = natRules + + // here we use `PUT /network/{id}` which allow to change vApp network. + // But `GET /network/{id}` can return org VDC network or vApp network. + apiEndpoint := vapp.client.VCDHREF + apiEndpoint.Path += "/network/" + uuid + + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeVappNetwork, "error updating vApp Network NAT rules: %s", networkToUpdate) +} + +// RemoveAllNetworkNatRules removes all NAT rules from a vApp network +// Returns error +func (vapp *VApp) RemoveAllNetworkNatRules(networkId string) error { + task, err := vapp.UpdateNetworkNatRulesAsync(networkId, []*types.NatRule{}, false, "ipTranslation", "allowTraffic") + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + return nil +} + +// RemoveAllNetworkFirewallRules removes all network firewall rules from a vApp network. +// Returns error +func (vapp *VApp) RemoveAllNetworkFirewallRules(networkId string) error { + networkToUpdate, err := vapp.GetVappNetworkById(networkId, true) + if err != nil { + return err + } + task, err := vapp.UpdateNetworkFirewallRulesAsync(networkId, []*types.FirewallRule{}, false, + networkToUpdate.Configuration.Features.FirewallService.DefaultAction, networkToUpdate.Configuration.Features.FirewallService.LogDefaultAction) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + return nil +} + +// UpdateNetworkStaticRouting updates vApp network static routes. +// Returns pointer to types.VAppNetwork or error +func (vapp *VApp) UpdateNetworkStaticRouting(networkId string, staticRoutes []*types.StaticRoute, enabled bool) (*types.VAppNetwork, error) { + task, err := vapp.UpdateNetworkStaticRoutingAsync(networkId, staticRoutes, enabled) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + + return vapp.GetVappNetworkById(networkId, false) +} + +// UpdateNetworkStaticRoutingAsync asynchronously updates vApp network static routes. +// Returns task or error +func (vapp *VApp) UpdateNetworkStaticRoutingAsync(networkId string, staticRoutes []*types.StaticRoute, enabled bool) (Task, error) { + util.Logger.Printf("[TRACE] UpdateNetworkStaticRoutingAsync with values: id: %s and staticRoutes: %#v, enable: %t", networkId, staticRoutes, enabled) + + uuid := extractUuid(networkId) + networkToUpdate, err := vapp.GetVappNetworkById(uuid, true) + if err != nil { + return Task{}, err + } + + if !IsVappNetwork(networkToUpdate.Configuration) { + return Task{}, fmt.Errorf("network static routing can be applied only for vapp network, not vapp org network") + } + + if networkToUpdate.Configuration.Features == nil { + networkToUpdate.Configuration.Features = &types.NetworkFeatures{} + } + networkToUpdate.Xmlns = types.XMLNamespaceVCloud + + networkToUpdate.Configuration.Features.StaticRoutingService = &types.StaticRoutingService{IsEnabled: enabled, StaticRoute: staticRoutes} + + // here we use `PUT /network/{id}` which allow to change vApp network. + // But `GET /network/{id}` can return org VDC network or vApp network. + apiEndpoint := vapp.client.VCDHREF + apiEndpoint.Path += "/network/" + uuid + + return vapp.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeVappNetwork, "error updating vApp Network static routes: %s", networkToUpdate) +} + +// IsVappNetwork allows to identify if given network config is a vApp network and not a vApp Org network +func IsVappNetwork(networkConfig *types.NetworkConfiguration) bool { + if networkConfig.FenceMode == types.FenceModeIsolated || + (networkConfig.FenceMode == types.FenceModeNAT && networkConfig.IPScopes != nil && + networkConfig.IPScopes.IPScope != nil && len(networkConfig.IPScopes.IPScope) > 0 && + !networkConfig.IPScopes.IPScope[0].IsInherited) { + return true + } + return false +} + +// RemoveAllNetworkStaticRoutes removes all static routes from a vApp network +// Returns error +func (vapp *VApp) RemoveAllNetworkStaticRoutes(networkId string) error { + task, err := vapp.UpdateNetworkStaticRoutingAsync(networkId, []*types.StaticRoute{}, false) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("%s", combinedTaskErrorMessage(task.Task, err)) + } + return nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapptemplate.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapptemplate.go new file mode 100644 index 000000000..be2f2d02a --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vapptemplate.go @@ -0,0 +1,71 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net/http" + "net/url" + + "github.com/vmware/go-vcloud-director/v2/types/v56" +) + +type VAppTemplate struct { + VAppTemplate *types.VAppTemplate + client *Client +} + +func NewVAppTemplate(cli *Client) *VAppTemplate { + return &VAppTemplate{ + VAppTemplate: new(types.VAppTemplate), + client: cli, + } +} + +func (vdc *Vdc) InstantiateVAppTemplate(template *types.InstantiateVAppTemplateParams) error { + vdcHref, err := url.ParseRequestURI(vdc.Vdc.HREF) + if err != nil { + return fmt.Errorf("error getting vdc href: %s", err) + } + vdcHref.Path += "/action/instantiateVAppTemplate" + + vapptemplate := NewVAppTemplate(vdc.client) + + _, err = vdc.client.ExecuteRequest(vdcHref.String(), http.MethodPut, + types.MimeInstantiateVappTemplateParams, "error instantiating a new template: %s", template, vapptemplate) + if err != nil { + return err + } + + task := NewTask(vdc.client) + for _, taskItem := range vapptemplate.VAppTemplate.Tasks.Task { + task.Task = taskItem + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error performing task: %s", err) + } + } + return nil +} + +// Refresh refreshes the vApp template item information by href +func (vAppTemplate *VAppTemplate) Refresh() error { + + if vAppTemplate.VAppTemplate == nil { + return fmt.Errorf("cannot refresh, Object is empty") + } + + url := vAppTemplate.VAppTemplate.HREF + if url == "nil" { + return fmt.Errorf("cannot refresh, HREF is empty") + } + + vAppTemplate.VAppTemplate = &types.VAppTemplate{} + + _, err := vAppTemplate.client.ExecuteRequest(url, http.MethodGet, + "", "error retrieving vApp template item: %s", nil, vAppTemplate.VAppTemplate) + + return err +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdc.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdc.go new file mode 100644 index 000000000..98613da6f --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdc.go @@ -0,0 +1,1234 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "errors" + "fmt" + "net/http" + "net/url" + "strconv" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type Vdc struct { + Vdc *types.Vdc + client *Client + parent organization +} + +func NewVdc(cli *Client) *Vdc { + return &Vdc{ + Vdc: new(types.Vdc), + client: cli, + } +} + +// Gets a vapp with a specific url vappHREF +func (vdc *Vdc) getVdcVAppbyHREF(vappHREF *url.URL) (*VApp, error) { + vapp := NewVApp(vdc.client) + + _, err := vdc.client.ExecuteRequest(vappHREF.String(), http.MethodGet, + "", "error retrieving VApp: %s", nil, vapp.VApp) + + return vapp, err +} + +// Undeploys every vapp in the vdc +func (vdc *Vdc) undeployAllVdcVApps() error { + err := vdc.Refresh() + if err != nil { + return fmt.Errorf("error refreshing vdc: %s", err) + } + for _, resents := range vdc.Vdc.ResourceEntities { + for _, resent := range resents.ResourceEntity { + if resent.Type == "application/vnd.vmware.vcloud.vApp+xml" { + vappHREF, err := url.Parse(resent.HREF) + if err != nil { + return err + } + vapp, err := vdc.getVdcVAppbyHREF(vappHREF) + if err != nil { + return fmt.Errorf("error retrieving vapp with url: %s and with error %s", vappHREF.Path, err) + } + task, err := vapp.Undeploy() + if err != nil { + return err + } + if task == (Task{}) { + continue + } + err = task.WaitTaskCompletion() + if err != nil { + return err + } + } + } + } + return nil +} + +// Removes all vapps in the vdc +func (vdc *Vdc) removeAllVdcVApps() error { + err := vdc.Refresh() + if err != nil { + return fmt.Errorf("error refreshing vdc: %s", err) + } + for _, resents := range vdc.Vdc.ResourceEntities { + for _, resent := range resents.ResourceEntity { + if resent.Type == "application/vnd.vmware.vcloud.vApp+xml" { + vappHREF, err := url.Parse(resent.HREF) + if err != nil { + return err + } + vapp, err := vdc.getVdcVAppbyHREF(vappHREF) + if err != nil { + return fmt.Errorf("error retrieving vapp with url: %s and with error %s", vappHREF.Path, err) + } + task, err := vapp.Delete() + if err != nil { + return fmt.Errorf("error deleting vapp: %s", err) + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("couldn't finish removing vapp %s", err) + } + } + } + } + return nil +} + +func (vdc *Vdc) Refresh() error { + + if vdc.Vdc.HREF == "" { + return fmt.Errorf("cannot refresh, Object is empty") + } + + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + unmarshalledVdc := &types.Vdc{} + + _, err := vdc.client.ExecuteRequest(vdc.Vdc.HREF, http.MethodGet, + "", "error refreshing vDC: %s", nil, unmarshalledVdc) + if err != nil { + return err + } + + vdc.Vdc = unmarshalledVdc + + // The request was successful + return nil +} + +// Deletes the vdc, returning an error of the vCD call fails. +// API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Vdc.html +func (vdc *Vdc) Delete(force bool, recursive bool) (Task, error) { + util.Logger.Printf("[TRACE] Vdc.Delete - deleting VDC with force: %t, recursive: %t", force, recursive) + + if vdc.Vdc.HREF == "" { + return Task{}, fmt.Errorf("cannot delete, Object is empty") + } + + vdcUrl, err := url.ParseRequestURI(vdc.Vdc.HREF) + if err != nil { + return Task{}, fmt.Errorf("error parsing vdc url: %s", err) + } + + req := vdc.client.NewRequest(map[string]string{ + "force": strconv.FormatBool(force), + "recursive": strconv.FormatBool(recursive), + }, http.MethodDelete, *vdcUrl, nil) + resp, err := checkResp(vdc.client.Http.Do(req)) + if err != nil { + return Task{}, fmt.Errorf("error deleting vdc: %s", err) + } + task := NewTask(vdc.client) + if err = decodeBody(types.BodyTypeXML, resp, task.Task); err != nil { + return Task{}, fmt.Errorf("error decoding task response: %s", err) + } + if task.Task.Status == "error" { + return Task{}, fmt.Errorf("vdc not properly destroyed") + } + return *task, nil +} + +// Deletes the vdc and waits for the asynchronous task to complete. +func (vdc *Vdc) DeleteWait(force bool, recursive bool) error { + task, err := vdc.Delete(force, recursive) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("couldn't finish removing vdc %s", err) + } + return nil +} + +// Deprecated: use GetOrgVdcNetworkByName +func (vdc *Vdc) FindVDCNetwork(network string) (OrgVDCNetwork, error) { + + err := vdc.Refresh() + if err != nil { + return OrgVDCNetwork{}, fmt.Errorf("error refreshing vdc: %s", err) + } + for _, an := range vdc.Vdc.AvailableNetworks { + for _, reference := range an.Network { + if reference.Name == network { + orgNet := NewOrgVDCNetwork(vdc.client) + + _, err := vdc.client.ExecuteRequest(reference.HREF, http.MethodGet, + "", "error retrieving org vdc network: %s", nil, orgNet.OrgVDCNetwork) + + // The request was successful + return *orgNet, err + + } + } + } + + return OrgVDCNetwork{}, fmt.Errorf("can't find VDC Network: %s", network) +} + +// GetOrgVdcNetworkByHref returns an Org VDC Network reference if the network HREF matches an existing one. +// If no valid external network is found, it returns a nil Network reference and an error +func (vdc *Vdc) GetOrgVdcNetworkByHref(href string) (*OrgVDCNetwork, error) { + + orgNet := NewOrgVDCNetwork(vdc.client) + + _, err := vdc.client.ExecuteRequest(href, http.MethodGet, + "", "error retrieving org vdc network: %s", nil, orgNet.OrgVDCNetwork) + + // The request was successful + return orgNet, err +} + +// GetOrgVdcNetworkByName returns an Org VDC Network reference if the network name matches an existing one. +// If no valid external network is found, it returns a nil Network reference and an error +func (vdc *Vdc) GetOrgVdcNetworkByName(name string, refresh bool) (*OrgVDCNetwork, error) { + if refresh { + err := vdc.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing vdc: %s", err) + } + } + for _, an := range vdc.Vdc.AvailableNetworks { + for _, reference := range an.Network { + if reference.Name == name { + return vdc.GetOrgVdcNetworkByHref(reference.HREF) + } + } + } + + return nil, ErrorEntityNotFound +} + +// GetOrgVdcNetworkById returns an Org VDC Network reference if the network ID matches an existing one. +// If no valid external network is found, it returns a nil Network reference and an error +func (vdc *Vdc) GetOrgVdcNetworkById(id string, refresh bool) (*OrgVDCNetwork, error) { + if refresh { + err := vdc.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing vdc: %s", err) + } + } + for _, an := range vdc.Vdc.AvailableNetworks { + for _, reference := range an.Network { + // Some versions of vCD do not return an ID in the network reference + // We use equalIds to overcome this issue + if equalIds(id, reference.ID, reference.HREF) { + return vdc.GetOrgVdcNetworkByHref(reference.HREF) + } + } + } + + return nil, ErrorEntityNotFound +} + +// GetOrgVdcNetworkByNameOrId returns a VDC Network reference if either the network name or ID matches an existing one. +// If no valid external network is found, it returns a nil ExternalNetwork reference and an error +func (vdc *Vdc) GetOrgVdcNetworkByNameOrId(identifier string, refresh bool) (*OrgVDCNetwork, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return vdc.GetOrgVdcNetworkByName(name, refresh) } + getById := func(id string, refresh bool) (interface{}, error) { return vdc.GetOrgVdcNetworkById(id, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, false) + if entity == nil { + return nil, err + } + return entity.(*OrgVDCNetwork), err +} + +func (vdc *Vdc) FindStorageProfileReference(name string) (types.Reference, error) { + + err := vdc.Refresh() + if err != nil { + return types.Reference{}, fmt.Errorf("error refreshing vdc: %s", err) + } + for _, sp := range vdc.Vdc.VdcStorageProfiles.VdcStorageProfile { + if sp.Name == name { + return types.Reference{HREF: sp.HREF, Name: sp.Name, ID: sp.ID}, nil + } + } + return types.Reference{}, fmt.Errorf("can't find any VDC Storage_profiles") +} + +// GetDefaultStorageProfileReference should find the default storage profile for a VDC +// Deprecated: unused and implemented in the wrong way. Use adminVdc.GetDefaultStorageProfileReference instead +func (vdc *Vdc) GetDefaultStorageProfileReference(storageprofiles *types.QueryResultRecordsType) (types.Reference, error) { + + err := vdc.Refresh() + if err != nil { + return types.Reference{}, fmt.Errorf("error refreshing vdc: %s", err) + } + for _, spr := range storageprofiles.OrgVdcStorageProfileRecord { + if spr.IsDefaultStorageProfile { + return types.Reference{HREF: spr.HREF, Name: spr.Name}, nil + } + } + return types.Reference{}, fmt.Errorf("can't find Default VDC Storage_profile") +} + +// Deprecated: use GetEdgeGatewayByName +func (vdc *Vdc) FindEdgeGateway(edgegateway string) (EdgeGateway, error) { + + err := vdc.Refresh() + if err != nil { + return EdgeGateway{}, fmt.Errorf("error refreshing vdc: %s", err) + } + for _, av := range vdc.Vdc.Link { + if av.Rel == "edgeGateways" && av.Type == types.MimeQueryRecords { + + query := new(types.QueryResultEdgeGatewayRecordsType) + + _, err := vdc.client.ExecuteRequest(av.HREF, http.MethodGet, + "", "error querying edge gateways: %s", nil, query) + if err != nil { + return EdgeGateway{}, err + } + + var href string + + for _, edge := range query.EdgeGatewayRecord { + if edge.Name == edgegateway { + href = edge.HREF + } + } + + if href == "" { + return EdgeGateway{}, fmt.Errorf("can't find edge gateway with name: %s", edgegateway) + } + + edge := NewEdgeGateway(vdc.client) + + _, err = vdc.client.ExecuteRequest(href, http.MethodGet, + "", "error retrieving edge gateway: %s", nil, edge.EdgeGateway) + + // TODO - remove this if a solution is found or once 9.7 is deprecated + // vCD 9.7 has a bug and sometimes it fails to retrieve edge gateway with weird error. + // At this point in time the solution is to retry a few times as it does not fail to + // retrieve when retried. + // + // GitHUB issue - https://github.com/vmware/go-vcloud-director/issues/218 + if err != nil { + util.Logger.Printf("[DEBUG] vCD 9.7 is known to sometimes respond with error on edge gateway (%s) "+ + "retrieval. As a workaround this is done a few times before failing. Retrying: ", edgegateway) + for i := 1; i < 4 && err != nil; i++ { + time.Sleep(200 * time.Millisecond) + util.Logger.Printf("%d ", i) + _, err = vdc.client.ExecuteRequest(href, http.MethodGet, + "", "error retrieving edge gateway: %s", nil, edge.EdgeGateway) + } + util.Logger.Printf("\n") + } + + return *edge, err + + } + } + return EdgeGateway{}, fmt.Errorf("can't find Edge Gateway") + +} + +// GetEdgeGatewayByHref retrieves an edge gateway from VDC +// by querying directly its HREF. +// The name passed as parameter is only used for error reporting +func (vdc *Vdc) GetEdgeGatewayByHref(href string) (*EdgeGateway, error) { + if href == "" { + return nil, fmt.Errorf("empty edge gateway HREF") + } + + edge := NewEdgeGateway(vdc.client) + + _, err := vdc.client.ExecuteRequest(href, http.MethodGet, + "", "error retrieving edge gateway: %s", nil, edge.EdgeGateway) + + // TODO - remove this if a solution is found or once 9.7 is deprecated + // vCD 9.7 has a bug and sometimes it fails to retrieve edge gateway with weird error. + // At this point in time the solution is to retry a few times as it does not fail to + // retrieve when retried. + // + // GitHUB issue - https://github.com/vmware/go-vcloud-director/issues/218 + if err != nil { + util.Logger.Printf("[DEBUG] vCD 9.7 is known to sometimes respond with error on edge gateway " + + "retrieval. As a workaround this is done a few times before failing. Retrying:") + for i := 1; i < 4 && err != nil; i++ { + time.Sleep(200 * time.Millisecond) + util.Logger.Printf("%d ", i) + _, err = vdc.client.ExecuteRequest(href, http.MethodGet, + "", "error retrieving edge gateway: %s", nil, edge.EdgeGateway) + } + util.Logger.Printf("\n") + } + + if err != nil { + return nil, err + } + return edge, nil +} + +// QueryEdgeGatewayList returns a list of all the edge gateways in a VDC +func (vdc *Vdc) QueryEdgeGatewayList() ([]*types.QueryResultEdgeGatewayRecordType, error) { + results, err := vdc.client.cumulativeQuery(types.QtEdgeGateway, nil, map[string]string{ + "type": types.QtEdgeGateway, + "filter": fmt.Sprintf("orgVdcName==%s", url.QueryEscape(vdc.Vdc.Name)), + "filterEncoded": "true", + }) + if err != nil { + return nil, err + } + return results.Results.EdgeGatewayRecord, nil +} + +// GetEdgeGatewayRecordsType retrieves a list of edge gateways from VDC +// Deprecated: use QueryEdgeGatewayList instead +func (vdc *Vdc) GetEdgeGatewayRecordsType(refresh bool) (*types.QueryResultEdgeGatewayRecordsType, error) { + items, err := vdc.QueryEdgeGatewayList() + if err != nil { + return nil, fmt.Errorf("error retrieving edge gateway list: %s", err) + } + return &types.QueryResultEdgeGatewayRecordsType{ + Total: float64(len(items)), + EdgeGatewayRecord: items, + }, nil +} + +// GetEdgeGatewayByName search the VDC list of edge gateways for a given name. +// If the name matches, it returns a pointer to an edge gateway object. +// On failure, it returns a nil object and an error +func (vdc *Vdc) GetEdgeGatewayByName(name string, refresh bool) (*EdgeGateway, error) { + edgeGatewayList, err := vdc.QueryEdgeGatewayList() + if err != nil { + return nil, fmt.Errorf("error retrieving edge gateways list: %s", err) + } + + for _, edge := range edgeGatewayList { + if edge.Name == name { + return vdc.GetEdgeGatewayByHref(edge.HREF) + } + } + + return nil, ErrorEntityNotFound +} + +// GetEdgeGatewayById search VDC list of edge gateways for a given ID. +// If the id matches, it returns a pointer to an edge gateway object. +// On failure, it returns a nil object and an error +func (vdc *Vdc) GetEdgeGatewayById(id string, refresh bool) (*EdgeGateway, error) { + edgeGatewayList, err := vdc.QueryEdgeGatewayList() + if err != nil { + return nil, fmt.Errorf("error retrieving edge gateways list: %s", err) + } + + for _, edge := range edgeGatewayList { + if equalIds(id, "", edge.HREF) { + return vdc.GetEdgeGatewayByHref(edge.HREF) + } + } + + return nil, ErrorEntityNotFound +} + +// GetEdgeGatewayByNameOrId search the VDC list of edge gateways for a given name or ID. +// If the name or the ID match, it returns a pointer to an edge gateway object. +// On failure, it returns a nil object and an error +func (vdc *Vdc) GetEdgeGatewayByNameOrId(identifier string, refresh bool) (*EdgeGateway, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return vdc.GetEdgeGatewayByName(name, refresh) } + getById := func(id string, refresh bool) (interface{}, error) { return vdc.GetEdgeGatewayById(id, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, false) + if entity == nil { + return nil, err + } + return entity.(*EdgeGateway), err +} + +// ComposeRawVApp creates an empty vApp +// Deprecated: use CreateRawVApp instead +func (vdc *Vdc) ComposeRawVApp(name string, description string) error { + vcomp := &types.ComposeVAppParams{ + Ovf: types.XMLNamespaceOVF, + Xsi: types.XMLNamespaceXSI, + Xmlns: types.XMLNamespaceVCloud, + Deploy: false, + Name: name, + PowerOn: false, + Description: description, + } + + vdcHref, err := url.ParseRequestURI(vdc.Vdc.HREF) + if err != nil { + return fmt.Errorf("error getting vdc href: %s", err) + } + vdcHref.Path += "/action/composeVApp" + + // This call is wrong: /action/composeVApp returns a vApp, not a task + task, err := vdc.client.ExecuteTaskRequest(vdcHref.String(), http.MethodPost, + types.MimeComposeVappParams, "error instantiating a new vApp:: %s", vcomp) + if err != nil { + return fmt.Errorf("error executing task request: %s", err) + } + + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error performing task: %s", err) + } + + return nil +} + +// CreateRawVApp creates an empty vApp +func (vdc *Vdc) CreateRawVApp(name string, description string) (*VApp, error) { + vcomp := &types.ComposeVAppParams{ + Ovf: types.XMLNamespaceOVF, + Xsi: types.XMLNamespaceXSI, + Xmlns: types.XMLNamespaceVCloud, + Deploy: false, + Name: name, + PowerOn: false, + Description: description, + } + + vdcHref, err := url.ParseRequestURI(vdc.Vdc.HREF) + if err != nil { + return nil, fmt.Errorf("error getting vdc href: %s", err) + } + vdcHref.Path += "/action/composeVApp" + + var vAppContents types.VApp + + _, err = vdc.client.ExecuteRequest(vdcHref.String(), http.MethodPost, + types.MimeComposeVappParams, "error instantiating a new vApp:: %s", vcomp, &vAppContents) + if err != nil { + return nil, fmt.Errorf("error executing task request: %s", err) + } + + if vAppContents.Tasks != nil { + for _, innerTask := range vAppContents.Tasks.Task { + if innerTask != nil { + task := NewTask(vdc.client) + task.Task = innerTask + err = task.WaitTaskCompletion() + if err != nil { + return nil, fmt.Errorf("error performing task: %s", err) + } + } + } + } + + vapp := NewVApp(vdc.client) + vapp.VApp = &vAppContents + + err = vapp.Refresh() + if err != nil { + return nil, err + } + + err = vdc.Refresh() + if err != nil { + return nil, err + } + return vapp, nil +} + +// ComposeVApp creates a vapp with the given template, name, and description +// that uses the storageprofile and networks given. If you want all eulas +// to be accepted set acceptalleulas to true. Returns a successful task +// if completed successfully, otherwise returns an error and an empty task. +// Deprecated: bad implementation +func (vdc *Vdc) ComposeVApp(orgvdcnetworks []*types.OrgVDCNetwork, vapptemplate VAppTemplate, storageprofileref types.Reference, name string, description string, acceptalleulas bool) (Task, error) { + if vapptemplate.VAppTemplate.Children == nil || orgvdcnetworks == nil { + return Task{}, fmt.Errorf("can't compose a new vApp, objects passed are not valid") + } + + // Determine primary network connection index number. We normally depend on it being inherited from vApp template + // but in the case when vApp template does not have network card it would fail on the index being undefined. We + // set the value to 0 (first NIC instead) + primaryNetworkConnectionIndex := 0 + if vapptemplate.VAppTemplate.Children != nil && len(vapptemplate.VAppTemplate.Children.VM) > 0 && + vapptemplate.VAppTemplate.Children.VM[0].NetworkConnectionSection != nil { + primaryNetworkConnectionIndex = vapptemplate.VAppTemplate.Children.VM[0].NetworkConnectionSection.PrimaryNetworkConnectionIndex + } + + // Build request XML + vcomp := &types.ComposeVAppParams{ + Ovf: types.XMLNamespaceOVF, + Xsi: types.XMLNamespaceXSI, + Xmlns: types.XMLNamespaceVCloud, + Deploy: false, + Name: name, + PowerOn: false, + Description: description, + InstantiationParams: &types.InstantiationParams{ + NetworkConfigSection: &types.NetworkConfigSection{ + Info: "Configuration parameters for logical networks", + }, + }, + AllEULAsAccepted: acceptalleulas, + SourcedItem: &types.SourcedCompositionItemParam{ + Source: &types.Reference{ + HREF: vapptemplate.VAppTemplate.Children.VM[0].HREF, + Name: vapptemplate.VAppTemplate.Children.VM[0].Name, + }, + InstantiationParams: &types.InstantiationParams{ + NetworkConnectionSection: &types.NetworkConnectionSection{ + Info: "Network config for sourced item", + PrimaryNetworkConnectionIndex: primaryNetworkConnectionIndex, + }, + }, + }, + } + for index, orgvdcnetwork := range orgvdcnetworks { + vcomp.InstantiationParams.NetworkConfigSection.NetworkConfig = append(vcomp.InstantiationParams.NetworkConfigSection.NetworkConfig, + types.VAppNetworkConfiguration{ + NetworkName: orgvdcnetwork.Name, + Configuration: &types.NetworkConfiguration{ + FenceMode: types.FenceModeBridged, + ParentNetwork: &types.Reference{ + HREF: orgvdcnetwork.HREF, + Name: orgvdcnetwork.Name, + Type: orgvdcnetwork.Type, + }, + }, + }, + ) + vcomp.SourcedItem.InstantiationParams.NetworkConnectionSection.NetworkConnection = append(vcomp.SourcedItem.InstantiationParams.NetworkConnectionSection.NetworkConnection, + &types.NetworkConnection{ + Network: orgvdcnetwork.Name, + NetworkConnectionIndex: index, + IsConnected: true, + IPAddressAllocationMode: types.IPAllocationModePool, + }, + ) + vcomp.SourcedItem.NetworkAssignment = append(vcomp.SourcedItem.NetworkAssignment, + &types.NetworkAssignment{ + InnerNetwork: orgvdcnetwork.Name, + ContainerNetwork: orgvdcnetwork.Name, + }, + ) + } + if storageprofileref.HREF != "" { + vcomp.SourcedItem.StorageProfile = &storageprofileref + } + + vdcHref, err := url.ParseRequestURI(vdc.Vdc.HREF) + if err != nil { + return Task{}, fmt.Errorf("error getting vdc href: %s", err) + } + vdcHref.Path += "/action/composeVApp" + + // Like ComposeRawVApp, this function returns a task, while it should be returning a vApp + // Since we don't use this function in terraform-provider-vcd, we are not going to + // replace it. + return vdc.client.ExecuteTaskRequest(vdcHref.String(), http.MethodPost, + types.MimeComposeVappParams, "error instantiating a new vApp: %s", vcomp) +} + +// Deprecated: use vdc.GetVAppByName instead +func (vdc *Vdc) FindVAppByName(vapp string) (VApp, error) { + + err := vdc.Refresh() + if err != nil { + return VApp{}, fmt.Errorf("error refreshing vdc: %s", err) + } + + for _, resents := range vdc.Vdc.ResourceEntities { + for _, resent := range resents.ResourceEntity { + + if resent.Name == vapp && resent.Type == "application/vnd.vmware.vcloud.vApp+xml" { + + newVapp := NewVApp(vdc.client) + + _, err := vdc.client.ExecuteRequest(resent.HREF, http.MethodGet, + "", "error retrieving vApp: %s", nil, newVapp.VApp) + + return *newVapp, err + + } + } + } + return VApp{}, fmt.Errorf("can't find vApp: %s", vapp) +} + +// Deprecated: use vapp.GetVMByName instead +func (vdc *Vdc) FindVMByName(vapp VApp, vm string) (VM, error) { + + err := vdc.Refresh() + if err != nil { + return VM{}, fmt.Errorf("error refreshing vdc: %s", err) + } + + err = vapp.Refresh() + if err != nil { + return VM{}, fmt.Errorf("error refreshing vApp: %s", err) + } + + //vApp Might Not Have Any VMs + + if vapp.VApp.Children == nil { + return VM{}, fmt.Errorf("VApp Has No VMs") + } + + util.Logger.Printf("[TRACE] Looking for VM: %s", vm) + for _, child := range vapp.VApp.Children.VM { + + util.Logger.Printf("[TRACE] Found: %s", child.Name) + if child.Name == vm { + + newVm := NewVM(vdc.client) + + _, err := vdc.client.ExecuteRequest(child.HREF, http.MethodGet, + "", "error retrieving vm: %s", nil, newVm.VM) + + return *newVm, err + } + + } + util.Logger.Printf("[TRACE] Couldn't find VM: %s", vm) + return VM{}, fmt.Errorf("can't find vm: %s", vm) +} + +// Find vm using vApp name and VM name. Returns VMRecord query return type +func (vdc *Vdc) QueryVM(vappName, vmName string) (VMRecord, error) { + + if vmName == "" { + return VMRecord{}, errors.New("error querying vm name is empty") + } + + if vappName == "" { + return VMRecord{}, errors.New("error querying vapp name is empty") + } + + typeMedia := "vm" + if vdc.client.IsSysAdmin { + typeMedia = "adminVM" + } + + results, err := vdc.QueryWithNotEncodedParams(nil, map[string]string{"type": typeMedia, + "filter": "name==" + url.QueryEscape(vmName) + ";containerName==" + url.QueryEscape(vappName), + "filterEncoded": "true"}) + if err != nil { + return VMRecord{}, fmt.Errorf("error querying vm %s", err) + } + + vmResults := results.Results.VMRecord + if vdc.client.IsSysAdmin { + vmResults = results.Results.AdminVMRecord + } + + newVM := NewVMRecord(vdc.client) + + if len(vmResults) == 1 { + newVM.VM = vmResults[0] + } else { + return VMRecord{}, fmt.Errorf("found results %d", len(vmResults)) + } + + return *newVM, nil +} + +// Deprecated: use vdc.GetVAppById instead +func (vdc *Vdc) FindVAppByID(vappid string) (VApp, error) { + + // Horrible hack to fetch a vapp with its id. + // urn:vcloud:vapp:00000000-0000-0000-0000-000000000000 + + err := vdc.Refresh() + if err != nil { + return VApp{}, fmt.Errorf("error refreshing vdc: %s", err) + } + + urnslice := strings.SplitAfter(vappid, ":") + urnid := urnslice[len(urnslice)-1] + + for _, resents := range vdc.Vdc.ResourceEntities { + for _, resent := range resents.ResourceEntity { + + hrefslice := strings.SplitAfter(resent.HREF, "/") + hrefslice = strings.SplitAfter(hrefslice[len(hrefslice)-1], "-") + res := strings.Join(hrefslice[1:], "") + + if res == urnid && resent.Type == "application/vnd.vmware.vcloud.vApp+xml" { + + newVapp := NewVApp(vdc.client) + + _, err := vdc.client.ExecuteRequest(resent.HREF, http.MethodGet, + "", "error retrieving vApp: %s", nil, newVapp.VApp) + + return *newVapp, err + + } + } + } + return VApp{}, fmt.Errorf("can't find vApp") + +} + +// FindMediaImage returns media image found in system using `name` as query. +// Can find a few of them if media with same name exist in different catalogs. +// Deprecated: Use catalog.GetMediaByName() +func (vdc *Vdc) FindMediaImage(mediaName string) (MediaItem, error) { + util.Logger.Printf("[TRACE] Querying medias by name\n") + + mediaResults, err := queryMediaWithFilter(vdc, + fmt.Sprintf("name==%s", url.QueryEscape(mediaName))) + if err != nil { + return MediaItem{}, err + } + + newMediaItem := NewMediaItem(vdc) + + if len(mediaResults) == 1 { + newMediaItem.MediaItem = mediaResults[0] + } + + if len(mediaResults) == 0 { + return MediaItem{}, nil + } + + if len(mediaResults) > 1 { + return MediaItem{}, errors.New("found more than result") + } + + util.Logger.Printf("[TRACE] Found media record by name: %#v \n", mediaResults[0]) + return *newMediaItem, nil +} + +// GetVappByHref returns a vApp reference by running a vCD API call +// If no valid vApp is found, it returns a nil VApp reference and an error +func (vdc *Vdc) GetVAppByHref(vappHref string) (*VApp, error) { + + newVapp := NewVApp(vdc.client) + + _, err := vdc.client.ExecuteRequest(vappHref, http.MethodGet, + "", "error retrieving vApp: %s", nil, newVapp.VApp) + + if err != nil { + return nil, err + } + return newVapp, nil +} + +// GetVappByName returns a vApp reference if the vApp Name matches an existing one. +// If no valid vApp is found, it returns a nil VApp reference and an error +func (vdc *Vdc) GetVAppByName(vappName string, refresh bool) (*VApp, error) { + + if refresh { + err := vdc.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing VDC: %s", err) + } + } + + for _, resourceEntities := range vdc.Vdc.ResourceEntities { + for _, resourceReference := range resourceEntities.ResourceEntity { + if resourceReference.Name == vappName && resourceReference.Type == "application/vnd.vmware.vcloud.vApp+xml" { + return vdc.GetVAppByHref(resourceReference.HREF) + } + } + } + return nil, ErrorEntityNotFound +} + +// GetVappById returns a vApp reference if the vApp ID matches an existing one. +// If no valid vApp is found, it returns a nil VApp reference and an error +func (vdc *Vdc) GetVAppById(id string, refresh bool) (*VApp, error) { + + if refresh { + err := vdc.Refresh() + if err != nil { + return nil, fmt.Errorf("error refreshing VDC: %s", err) + } + } + + for _, resourceEntities := range vdc.Vdc.ResourceEntities { + for _, resourceReference := range resourceEntities.ResourceEntity { + if equalIds(id, resourceReference.ID, resourceReference.HREF) { + return vdc.GetVAppByHref(resourceReference.HREF) + } + } + } + return nil, ErrorEntityNotFound +} + +// GetVappByNameOrId returns a vApp reference if either the vApp name or ID matches an existing one. +// If no valid vApp is found, it returns a nil VApp reference and an error +func (vdc *Vdc) GetVAppByNameOrId(identifier string, refresh bool) (*VApp, error) { + getByName := func(name string, refresh bool) (interface{}, error) { return vdc.GetVAppByName(name, refresh) } + getById := func(id string, refresh bool) (interface{}, error) { return vdc.GetVAppById(id, refresh) } + entity, err := getEntityByNameOrId(getByName, getById, identifier, false) + if entity == nil { + return nil, err + } + return entity.(*VApp), err +} + +// buildNsxvNetworkServiceEndpointURL uses vDC HREF as a base to derive NSX-V based "network +// services" endpoint (eg: https://_hostname_or_ip_/network/services + optionalSuffix) +func (vdc *Vdc) buildNsxvNetworkServiceEndpointURL(optionalSuffix string) (string, error) { + apiEndpoint, err := url.ParseRequestURI(vdc.Vdc.HREF) + if err != nil { + return "", fmt.Errorf("unable to process vDC URL: %s", err) + } + + hostname := apiEndpoint.Scheme + "://" + apiEndpoint.Host + "/network/services" + + if optionalSuffix != "" { + return hostname + optionalSuffix, nil + } + + return hostname, nil +} + +// QueryMediaList retrieves a list of media items for the VDC +func (vdc *Vdc) QueryMediaList() ([]*types.MediaRecordType, error) { + return getExistingMedia(vdc) +} + +// QueryVappVmTemplate Finds VM template using catalog name, vApp template name, VN name in template. Returns types.QueryResultVMRecordType +func (vdc *Vdc) QueryVappVmTemplate(catalogName, vappTemplateName, vmNameInTemplate string) (*types.QueryResultVMRecordType, error) { + + queryType := "vm" + if vdc.client.IsSysAdmin { + queryType = "adminVM" + } + + // this allows to query deployed and not deployed templates + results, err := vdc.QueryWithNotEncodedParams(nil, map[string]string{"type": queryType, + "filter": "catalogName==" + url.QueryEscape(catalogName) + ";containerName==" + url.QueryEscape(vappTemplateName) + ";name==" + url.QueryEscape(vmNameInTemplate) + + ";isVAppTemplate==true;status!=FAILED_CREATION;status!=UNKNOWN;status!=UNRECOGNIZED;status!=UNRESOLVED&links=true;", + "filterEncoded": "true"}) + if err != nil { + return nil, fmt.Errorf("error quering all vApp templates: %s", err) + } + + vmResults := results.Results.VMRecord + if vdc.client.IsSysAdmin { + vmResults = results.Results.AdminVMRecord + } + + if len(vmResults) == 0 { + return nil, fmt.Errorf("[QueryVappVmTemplate] did not find any result with catalog name: %s, "+ + "vApp template name: %s, VM name: %s", catalogName, vappTemplateName, vmNameInTemplate) + } + + if len(vmResults) > 1 { + return nil, fmt.Errorf("[QueryVappVmTemplate] found more than 1 result: %d with with catalog name: %s, "+ + "vApp template name: %s, VM name: %s", len(vmResults), catalogName, vappTemplateName, vmNameInTemplate) + } + + return vmResults[0], nil +} + +// getLinkHref returns a link HREF for a wanted combination of rel and type +func (vdc *Vdc) getLinkHref(rel, linkType string) string { + for _, link := range vdc.Vdc.Link { + if link.Rel == rel && link.Type == linkType { + return link.HREF + } + } + return "" +} + +// GetVappList returns the list of vApps for a VDC +func (vdc *Vdc) GetVappList() []*types.ResourceReference { + var list []*types.ResourceReference + for _, resourceEntities := range vdc.Vdc.ResourceEntities { + for _, resourceReference := range resourceEntities.ResourceEntity { + if resourceReference.Type == types.MimeVApp { + list = append(list, resourceReference) + } + } + } + return list +} + +// CreateStandaloneVmAsync starts a standalone VM creation without a template, returning a task +func (vdc *Vdc) CreateStandaloneVmAsync(params *types.CreateVmParams) (Task, error) { + util.Logger.Printf("[TRACE] Vdc.CreateStandaloneVmAsync - Creating VM ") + + if vdc.Vdc.HREF == "" { + return Task{}, fmt.Errorf("cannot create VM, Object VDC is empty") + } + + href := "" + for _, link := range vdc.Vdc.Link { + if link.Type == types.MimeCreateVmParams && link.Rel == "add" { + href = link.HREF + break + } + } + if href == "" { + return Task{}, fmt.Errorf("error retrieving VM creation link from VDC %s", vdc.Vdc.Name) + } + if params == nil { + return Task{}, fmt.Errorf("empty parameters passed to standalone VM creation") + } + params.XmlnsOvf = types.XMLNamespaceOVF + + return vdc.client.ExecuteTaskRequest(href, http.MethodPost, types.MimeCreateVmParams, "error creating standalone VM: %s", params) +} + +// getVmFromTask finds a VM from a running standalone VM creation task +// It retrieves the VM owner (the hidden vApp), and from that one finds the new VM +func (vdc *Vdc) getVmFromTask(task Task, name string) (*VM, error) { + owner := task.Task.Owner.HREF + if owner == "" { + return nil, fmt.Errorf("task owner is null for VM %s", name) + } + vapp, err := vdc.GetVAppByHref(owner) + if err != nil { + return nil, err + } + if vapp.VApp.Children == nil { + return nil, ErrorEntityNotFound + } + if len(vapp.VApp.Children.VM) == 0 { + return nil, fmt.Errorf("vApp %s contains no VMs", vapp.VApp.Name) + } + if len(vapp.VApp.Children.VM) > 1 { + return nil, fmt.Errorf("vApp %s contains more than one VM", vapp.VApp.Name) + } + for _, child := range vapp.VApp.Children.VM { + util.Logger.Printf("[TRACE] Looking at: %s", child.Name) + return vapp.client.GetVMByHref(child.HREF) + } + return nil, ErrorEntityNotFound +} + +// CreateStandaloneVm creates a standalone VM without a template +func (vdc *Vdc) CreateStandaloneVm(params *types.CreateVmParams) (*VM, error) { + + task, err := vdc.CreateStandaloneVmAsync(params) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, err + } + return vdc.getVmFromTask(task, params.Name) +} + +// QueryVmByName finds a standalone VM by name +// The search fails either if there are more VMs with the wanted name, or if there are none +// It can also retrieve a standard VM (created from vApp) +func (vdc *Vdc) QueryVmByName(name string) (*VM, error) { + vmList, err := vdc.QueryVmList(types.VmQueryFilterOnlyDeployed) + if err != nil { + return nil, err + } + var foundVM []*types.QueryResultVMRecordType + for _, vm := range vmList { + if vm.Name == name { + foundVM = append(foundVM, vm) + } + } + if len(foundVM) == 0 { + return nil, ErrorEntityNotFound + } + if len(foundVM) > 1 { + return nil, fmt.Errorf("more than one VM found with name %s", name) + } + return vdc.client.GetVMByHref(foundVM[0].HREF) +} + +// QueryVmById retrieves a standalone VM by ID in an Org +// It can also retrieve a standard VM (created from vApp) +func (org *Org) QueryVmById(id string) (*VM, error) { + return queryVmById(id, org.client, org.QueryVmList) +} + +// QueryVmById retrieves a standalone VM by ID in a Vdc +// It can also retrieve a standard VM (created from vApp) +func (vdc *Vdc) QueryVmById(id string) (*VM, error) { + return queryVmById(id, vdc.client, vdc.QueryVmList) +} + +// queryVmListFunc +type queryVmListFunc func(filter types.VmQueryFilter) ([]*types.QueryResultVMRecordType, error) + +// queryVmById is shared between org.QueryVmById and vdc.QueryVmById which allow to search for VM +// in different scope (Org or VDC) +func queryVmById(id string, client *Client, queryFunc queryVmListFunc) (*VM, error) { + vmList, err := queryFunc(types.VmQueryFilterOnlyDeployed) + if err != nil { + return nil, err + } + var foundVM []*types.QueryResultVMRecordType + for _, vm := range vmList { + if equalIds(id, vm.ID, vm.HREF) { + foundVM = append(foundVM, vm) + } + } + if len(foundVM) == 0 { + return nil, ErrorEntityNotFound + } + if len(foundVM) > 1 { + return nil, fmt.Errorf("more than one VM found with ID %s", id) + } + return client.GetVMByHref(foundVM[0].HREF) +} + +// CreateStandaloneVMFromTemplateAsync starts a standalone VM creation using a template +func (vdc *Vdc) CreateStandaloneVMFromTemplateAsync(params *types.InstantiateVmTemplateParams) (Task, error) { + + util.Logger.Printf("[TRACE] Vdc.CreateStandaloneVMFromTemplateAsync - Creating VM") + + if vdc.Vdc.HREF == "" { + return Task{}, fmt.Errorf("cannot create VM, provided VDC is empty") + } + + href := "" + for _, link := range vdc.Vdc.Link { + if link.Type == types.MimeInstantiateVmTemplateParams && link.Rel == "add" { + href = link.HREF + break + } + } + if href == "" { + return Task{}, fmt.Errorf("error retrieving VM instantiate from template link from VDC %s", vdc.Vdc.Name) + } + + if params.Name == "" { + return Task{}, fmt.Errorf("[CreateStandaloneVMFromTemplateAsync] missing VM name") + } + if params.SourcedVmTemplateItem == nil { + return Task{}, fmt.Errorf("[CreateStandaloneVMFromTemplateAsync] missing SourcedVmTemplateItem") + } + if params.SourcedVmTemplateItem.Source == nil { + return Task{}, fmt.Errorf("[CreateStandaloneVMFromTemplateAsync] missing vApp template Source") + } + if params.SourcedVmTemplateItem.Source.HREF == "" { + return Task{}, fmt.Errorf("[CreateStandaloneVMFromTemplateAsync] empty HREF in vApp template Source") + } + params.XmlnsOvf = types.XMLNamespaceOVF + + return vdc.client.ExecuteTaskRequest(href, http.MethodPost, types.MimeInstantiateVmTemplateParams, "error creating standalone VM from template: %s", params) +} + +// CreateStandaloneVMFromTemplate creates a standalone VM from a template +func (vdc *Vdc) CreateStandaloneVMFromTemplate(params *types.InstantiateVmTemplateParams) (*VM, error) { + + task, err := vdc.CreateStandaloneVMFromTemplateAsync(params) + if err != nil { + return nil, err + } + err = task.WaitTaskCompletion() + if err != nil { + return nil, err + } + return vdc.getVmFromTask(task, params.Name) +} + +// GetCapabilities allows to retrieve a list of VDC capabilities. It has a list of values. Some particularly useful are: +// * networkProvider - overlay stack responsible for providing network functionality. (NSX_V or NSX_T) +// * crossVdc - supports cross vDC network creation +func (vdc *Vdc) GetCapabilities() ([]types.VdcCapability, error) { + if vdc.Vdc.ID == "" { + return nil, fmt.Errorf("VDC ID must be set to get capabilities") + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcCapabilities + minimumApiVersion, err := vdc.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := vdc.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, url.QueryEscape(vdc.Vdc.ID))) + if err != nil { + return nil, err + } + + capabilities := make([]types.VdcCapability, 0) + err = vdc.client.OpenApiGetAllItems(minimumApiVersion, urlRef, nil, &capabilities, nil) + if err != nil { + return nil, err + } + return capabilities, nil +} + +// IsNsxt is a convenience function to check if VDC is backed by NSX-T pVdc +// If error occurs - it returns false +func (vdc *Vdc) IsNsxt() bool { + vdcCapabilities, err := vdc.GetCapabilities() + if err != nil { + return false + } + + networkProviderCapability := getCapabilityValue(vdcCapabilities, "networkProvider") + return networkProviderCapability == types.VdcCapabilityNetworkProviderNsxt +} + +// IsNsxv is a convenience function to check if VDC is backed by NSX-V pVdc +// If error occurs - it returns false +func (vdc *Vdc) IsNsxv() bool { + vdcCapabilities, err := vdc.GetCapabilities() + if err != nil { + return false + } + + networkProviderCapability := getCapabilityValue(vdcCapabilities, "networkProvider") + return networkProviderCapability == types.VdcCapabilityNetworkProviderNsxv +} + +// getCapabilityValue helps to lookup a specific capability in []types.VdcCapability by provided fieldName +func getCapabilityValue(capabilities []types.VdcCapability, fieldName string) string { + for _, field := range capabilities { + if field.Name == fieldName { + return field.Value.(string) + } + } + + return "" +} + +func (vdc *Vdc) getParentOrg() (organization, error) { + for _, vdcLink := range vdc.Vdc.Link { + if vdcLink.Rel != "up" { + continue + } + switch vdcLink.Type { + case types.MimeOrg: + org, err := getOrgByHref(vdc.client, vdcLink.HREF) + if err != nil { + return nil, err + } + return org, nil + case types.MimeAdminOrg: + adminOrg, err := getAdminOrgByHref(vdc.client, vdcLink.HREF) + if err != nil { + return nil, err + } + return adminOrg, nil + + default: + continue + } + } + return nil, fmt.Errorf("no parent found for VDC %s", vdc.Vdc.Name) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdc_group.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdc_group.go new file mode 100644 index 000000000..52a84366e --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdc_group.go @@ -0,0 +1,502 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "github.com/vmware/go-vcloud-director/v2/types/v56" + "net/url" +) + +// VdcGroup is a structure defining a VdcGroup in Organization +type VdcGroup struct { + VdcGroup *types.VdcGroup + Href string + client *Client + parent organization +} + +// CreateNsxtVdcGroup create NSX-T VDC group with provided VDC IDs. +// More generic creation method available also - CreateVdcGroup +func (adminOrg *AdminOrg) CreateNsxtVdcGroup(name, description, startingVdcId string, participatingVdcIds []string) (*VdcGroup, error) { + participatingVdcs, err := composeParticipatingOrgVdcs(adminOrg, startingVdcId, participatingVdcIds) + if err != nil { + return nil, err + } + + vdcGroupConfig := &types.VdcGroup{} + vdcGroupConfig.OrgId = adminOrg.orgId() + vdcGroupConfig.Name = name + vdcGroupConfig.Description = description + vdcGroupConfig.ParticipatingOrgVdcs = participatingVdcs + vdcGroupConfig.LocalEgress = false + vdcGroupConfig.UniversalNetworkingEnabled = false + vdcGroupConfig.NetworkProviderType = "NSX_T" + vdcGroupConfig.Type = "LOCAL" + vdcGroupConfig.ParticipatingOrgVdcs = participatingVdcs + return adminOrg.CreateVdcGroup(vdcGroupConfig) +} + +// composeParticipatingOrgVdcs converts fetched candidate VDCs to []types.ParticipatingOrgVdcs +// returns error also in case participatingVdcId not found as candidate VDC. +func composeParticipatingOrgVdcs(adminOrg *AdminOrg, startingVdcId string, participatingVdcIds []string) ([]types.ParticipatingOrgVdcs, error) { + candidateVdcs, err := adminOrg.GetAllNsxtVdcGroupCandidates(startingVdcId, nil) + if err != nil { + return nil, err + } + participatingVdcs := []types.ParticipatingOrgVdcs{} + var foundParticipatingVdcsIds []string + for _, candidateVdc := range candidateVdcs { + if contains(candidateVdc.Id, participatingVdcIds) { + participatingVdcs = append(participatingVdcs, types.ParticipatingOrgVdcs{ + OrgRef: candidateVdc.OrgRef, + SiteRef: candidateVdc.SiteRef, + VdcRef: types.OpenApiReference{ + ID: candidateVdc.Id, + }, + FaultDomainTag: candidateVdc.FaultDomainTag, + NetworkProviderScope: candidateVdc.NetworkProviderScope, + }) + foundParticipatingVdcsIds = append(foundParticipatingVdcsIds, candidateVdc.Id) + } + } + + if len(participatingVdcs) != len(participatingVdcIds) { + var notFoundVdcs []string + for _, participatingVdcId := range participatingVdcIds { + if !contains(participatingVdcId, foundParticipatingVdcsIds) { + notFoundVdcs = append(notFoundVdcs, participatingVdcId) + } + } + return nil, fmt.Errorf("VDC IDs are not found as Candidate VDCs: %s", notFoundVdcs) + } + + return participatingVdcs, nil +} + +// contains tells whether slice of string contains item. +func contains(item string, slice []string) bool { + for _, n := range slice { + if item == n { + return true + } + } + return false +} + +// CreateVdcGroup create VDC group with provided VDC ref. +// Only supports NSX-T VDCs. +func (adminOrg *AdminOrg) CreateVdcGroup(vdcGroup *types.VdcGroup) (*VdcGroup, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + return createVdcGroup(adminOrg, vdcGroup, getTenantContextHeader(tenantContext)) +} + +// createVdcGroup create VDC group with provided VDC ref. +// Only supports NSX-T VDCs. +func createVdcGroup(adminOrg *AdminOrg, vdcGroup *types.VdcGroup, + additionalHeader map[string]string) (*VdcGroup, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroups + apiVersion, err := adminOrg.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := adminOrg.client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + typeResponse := &VdcGroup{ + VdcGroup: &types.VdcGroup{}, + client: adminOrg.client, + Href: urlRef.String(), + parent: adminOrg, + } + + err = adminOrg.client.OpenApiPostItem(apiVersion, urlRef, nil, + vdcGroup, typeResponse.VdcGroup, additionalHeader) + if err != nil { + return nil, err + } + + return typeResponse, nil +} + +// GetAllNsxtVdcGroupCandidates returns NSXT candidate VDCs for VDC group +func (adminOrg *AdminOrg) GetAllNsxtVdcGroupCandidates(startingVdcId string, queryParameters url.Values) ([]*types.CandidateVdc, error) { + queryParams := copyOrNewUrlValues(queryParameters) + queryParams = queryParameterFilterAnd("_context==LOCAL", queryParams) + queryParams = queryParameterFilterAnd(fmt.Sprintf("_context==%s", startingVdcId), queryParams) + queryParams.Add("filterEncoded", "true") + queryParams.Add("links", "true") + return adminOrg.GetAllVdcGroupCandidates(queryParams) +} + +// GetAllVdcGroupCandidates returns candidate VDCs for VDC group +func (adminOrg *AdminOrg) GetAllVdcGroupCandidates(queryParameters url.Values) ([]*types.CandidateVdc, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroupsCandidateVdcs + minimumApiVersion, err := adminOrg.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := adminOrg.client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + responses := []*types.CandidateVdc{} + err = adminOrg.client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &responses, getTenantContextHeader(tenantContext)) + if err != nil { + return nil, err + } + + return responses, nil +} + +// Delete deletes VDC group +func (vdcGroup *VdcGroup) Delete() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroups + minimumApiVersion, err := vdcGroup.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if vdcGroup.VdcGroup.Id == "" { + return fmt.Errorf("cannot delete VDC group without id") + } + + urlRef, err := vdcGroup.client.OpenApiBuildEndpoint(endpoint, vdcGroup.VdcGroup.Id) + if err != nil { + return err + } + + err = vdcGroup.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting VDC group: %s", err) + } + + return nil +} + +// GetAllVdcGroups retrieves all VDC groups. Query parameters can be supplied to perform additional filtering +func (adminOrg *AdminOrg) GetAllVdcGroups(queryParameters url.Values) ([]*VdcGroup, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroups + minimumApiVersion, err := adminOrg.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := adminOrg.client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + responses := []*types.VdcGroup{} + err = adminOrg.client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &responses, getTenantContextHeader(tenantContext)) + if err != nil { + return nil, err + } + + var wrappedVdcGroups []*VdcGroup + for _, response := range responses { + urlRef, err := adminOrg.client.OpenApiBuildEndpoint(endpoint, response.Id) + if err != nil { + return nil, err + } + wrappedVdcGroup := &VdcGroup{ + VdcGroup: response, + client: adminOrg.client, + Href: urlRef.String(), + parent: adminOrg, + } + wrappedVdcGroups = append(wrappedVdcGroups, wrappedVdcGroup) + } + + return wrappedVdcGroups, nil +} + +// GetVdcGroupByName retrieves VDC group by given name +// When the name contains commas, semicolons or asterisks, the encoding is rejected by the API in VCD 10.2 version. +// For this reason, when one or more commas, semicolons or asterisks are present we run the search brute force, +// by fetching all VDC groups and comparing the names. Yet, this not needed anymore in VCD 10.3 version. +// Also, url.QueryEscape as well as url.Values.Encode() both encode the space as a + character. So we use +// search brute force too. Reference to issue: +// https://github.com/golang/go/issues/4013 +// https://github.com/czos/goamz/pull/11/files +func (adminOrg *AdminOrg) GetVdcGroupByName(name string) (*VdcGroup, error) { + slowSearch, params, err := shouldDoSlowSearch("name", name, adminOrg.client) + if err != nil { + return nil, err + } + + var foundVdcGroups []*VdcGroup + vdcGroups, err := adminOrg.GetAllVdcGroups(params) + if err != nil { + return nil, err + } + if len(vdcGroups) == 0 { + return nil, ErrorEntityNotFound + } + foundVdcGroups = append(foundVdcGroups, vdcGroups[0]) + + if slowSearch { + foundVdcGroups = nil + for _, vdcGroup := range vdcGroups { + if vdcGroup.VdcGroup.Name == name { + foundVdcGroups = append(foundVdcGroups, vdcGroup) + } + } + if len(foundVdcGroups) == 0 { + return nil, ErrorEntityNotFound + } + if len(foundVdcGroups) > 1 { + return nil, fmt.Errorf("more than one VDC group found with name '%s'", name) + } + } + + if len(vdcGroups) > 1 && !slowSearch { + return nil, fmt.Errorf("more than one VDC group found with name '%s'", name) + } + + return foundVdcGroups[0], nil +} + +// GetVdcGroupById Returns VDC group using provided ID +func (adminOrg *AdminOrg) GetVdcGroupById(id string) (*VdcGroup, error) { + tenantContext, err := adminOrg.getTenantContext() + if err != nil { + return nil, err + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroups + minimumApiVersion, err := adminOrg.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty VDC group ID") + } + + urlRef, err := adminOrg.client.OpenApiBuildEndpoint(endpoint, id) + if err != nil { + return nil, err + } + + vdcGroup := &VdcGroup{ + VdcGroup: &types.VdcGroup{}, + client: adminOrg.client, + Href: urlRef.String(), + parent: adminOrg, + } + + err = adminOrg.client.OpenApiGetItem(minimumApiVersion, urlRef, nil, vdcGroup.VdcGroup, getTenantContextHeader(tenantContext)) + if err != nil { + return nil, err + } + + return vdcGroup, nil +} + +// Update updates existing Vdc group. Allows changing only name and description and participating VCDs +// Not restrictive update method also available - GenericUpdate +func (vdcGroup *VdcGroup) Update(name, description string, participatingOrgVddIs []string) (*VdcGroup, error) { + + vdcGroup.VdcGroup.Name = name + vdcGroup.VdcGroup.Description = description + + participatingOrgVdcs, err := composeParticipatingOrgVdcs(vdcGroup.parent.fullObject().(*AdminOrg), vdcGroup.VdcGroup.Id, participatingOrgVddIs) + if err != nil { + return nil, err + } + vdcGroup.VdcGroup.ParticipatingOrgVdcs = participatingOrgVdcs + + return vdcGroup.GenericUpdate() +} + +// GenericUpdate updates existing Vdc group. API allows changing only name and description and participating VCDs +func (vdcGroup *VdcGroup) GenericUpdate() (*VdcGroup, error) { + tenantContext, err := vdcGroup.getTenantContext() + if err != nil { + return nil, err + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroups + minimumApiVersion, err := vdcGroup.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if vdcGroup.VdcGroup.Id == "" { + return nil, fmt.Errorf("cannot update VDC group without id") + } + + urlRef, err := vdcGroup.client.OpenApiBuildEndpoint(endpoint, vdcGroup.VdcGroup.Id) + if err != nil { + return nil, err + } + + returnVdcGroup := &VdcGroup{ + VdcGroup: &types.VdcGroup{}, + client: vdcGroup.client, + Href: vdcGroup.Href, + parent: vdcGroup.parent, + } + + err = vdcGroup.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, vdcGroup.VdcGroup, + returnVdcGroup.VdcGroup, getTenantContextHeader(tenantContext)) + if err != nil { + return nil, fmt.Errorf("error updating VDC group: %s", err) + } + + return returnVdcGroup, nil +} + +// UpdateDfwPolicies updates distributed firewall policies +func (vdcGroup *VdcGroup) UpdateDfwPolicies(dfwPolicies types.DfwPolicies) (*VdcGroup, error) { + tenantContext, err := vdcGroup.getTenantContext() + if err != nil { + return nil, err + } + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroupsDfwPolicies + minimumApiVersion, err := vdcGroup.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if vdcGroup.VdcGroup.Id == "" { + return nil, fmt.Errorf("cannot update VDC group Dfw policies without id") + } + + urlRef, err := vdcGroup.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, vdcGroup.VdcGroup.Id)) + if err != nil { + return nil, err + } + + err = vdcGroup.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, dfwPolicies, + nil, getTenantContextHeader(tenantContext)) + if err != nil { + return nil, fmt.Errorf("error updating VDC group Dfw policies: %s", err) + } + + adminOrg := vdcGroup.parent.fullObject().(*AdminOrg) + return adminOrg.GetVdcGroupById(vdcGroup.VdcGroup.Id) +} + +// UpdateDefaultDfwPolicies updates distributed firewall default policies +func (vdcGroup *VdcGroup) UpdateDefaultDfwPolicies(defaultDfwPolicies types.DefaultPolicy) (*VdcGroup, error) { + tenantContext, err := vdcGroup.getTenantContext() + if err != nil { + return nil, err + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroupsDfwDefaultPolicies + minimumApiVersion, err := vdcGroup.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if vdcGroup.VdcGroup.Id == "" { + return nil, fmt.Errorf("cannot update VDC group default DFW policies without id") + } + + urlRef, err := vdcGroup.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, vdcGroup.VdcGroup.Id)) + if err != nil { + return nil, err + } + + err = vdcGroup.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, defaultDfwPolicies, + nil, getTenantContextHeader(tenantContext)) + if err != nil { + return nil, fmt.Errorf("error updating VDC group default DFW policies: %s", err) + } + + adminOrg := vdcGroup.parent.fullObject().(*AdminOrg) + return adminOrg.GetVdcGroupById(vdcGroup.VdcGroup.Id) +} + +// ActivateDfw activates distributed firewall +func (vdcGroup *VdcGroup) ActivateDfw() (*VdcGroup, error) { + return vdcGroup.UpdateDfwPolicies(types.DfwPolicies{ + Enabled: true, + }) +} + +// DeactivateDfw deactivates distributed firewall +func (vdcGroup *VdcGroup) DeactivateDfw() (*VdcGroup, error) { + return vdcGroup.UpdateDfwPolicies(types.DfwPolicies{ + Enabled: false, + }) +} + +// GetDfwPolicies retrieves all distributed firewall policies +func (vdcGroup *VdcGroup) GetDfwPolicies() (*types.DfwPolicies, error) { + tenantContext, err := vdcGroup.getTenantContext() + if err != nil { + return nil, err + } + + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcGroupsDfwPolicies + minimumApiVersion, err := vdcGroup.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := vdcGroup.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, vdcGroup.VdcGroup.Id)) + if err != nil { + return nil, err + } + + response := types.DfwPolicies{} + err = vdcGroup.client.OpenApiGetItem(minimumApiVersion, urlRef, nil, &response, getTenantContextHeader(tenantContext)) + if err != nil { + return nil, err + } + + return &response, nil +} + +// EnableDefaultPolicy activates default dfw policy +func (vdcGroup *VdcGroup) EnableDefaultPolicy() (*VdcGroup, error) { + dfwPolicies, err := vdcGroup.GetDfwPolicies() + if err != nil { + return nil, err + } + + if dfwPolicies.DefaultPolicy == nil { + return nil, fmt.Errorf("DFW has to be enabled before changing Default policy") + } + dfwPolicies.DefaultPolicy.Enabled = takeBoolPointer(true) + return vdcGroup.UpdateDefaultDfwPolicies(*dfwPolicies.DefaultPolicy) +} + +// DisableDefaultPolicy deactivates default dfw policy +func (vdcGroup *VdcGroup) DisableDefaultPolicy() (*VdcGroup, error) { + dfwPolicies, err := vdcGroup.GetDfwPolicies() + if err != nil { + return nil, err + } + + if dfwPolicies.DefaultPolicy == nil { + return nil, fmt.Errorf("DFW has to be enabled before changing Default policy") + } + dfwPolicies.DefaultPolicy.Enabled = takeBoolPointer(false) + return vdcGroup.UpdateDefaultDfwPolicies(*dfwPolicies.DefaultPolicy) +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdccomputepolicy.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdccomputepolicy.go new file mode 100644 index 000000000..a7816a30c --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vdccomputepolicy.go @@ -0,0 +1,253 @@ +package govcd + +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +import ( + "fmt" + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" + "net/http" + "net/url" +) + +// In UI called VM sizing policy. In API VDC compute policy +type VdcComputePolicy struct { + VdcComputePolicy *types.VdcComputePolicy + Href string + client *Client +} + +// GetVdcComputePolicyById retrieves VDC compute policy by given ID +func (org *AdminOrg) GetVdcComputePolicyById(id string) (*VdcComputePolicy, error) { + return getVdcComputePolicyById(org.client, id) +} + +// GetVdcComputePolicyById retrieves VDC compute policy by given ID +func (org *Org) GetVdcComputePolicyById(id string) (*VdcComputePolicy, error) { + return getVdcComputePolicyById(org.client, id) +} + +// getVdcComputePolicyById retrieves VDC compute policy by given ID +func getVdcComputePolicyById(client *Client, id string) (*VdcComputePolicy, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcComputePolicies + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if id == "" { + return nil, fmt.Errorf("empty VDC id") + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint, id) + + if err != nil { + return nil, err + } + + vdcComputePolicy := &VdcComputePolicy{ + VdcComputePolicy: &types.VdcComputePolicy{}, + Href: urlRef.String(), + client: client, + } + + err = client.OpenApiGetItem(minimumApiVersion, urlRef, nil, vdcComputePolicy.VdcComputePolicy, nil) + if err != nil { + return nil, err + } + + return vdcComputePolicy, nil +} + +// GetAllVdcComputePolicies retrieves all VDC compute policies using OpenAPI endpoint. Query parameters can be supplied to perform additional +// filtering +func (org *AdminOrg) GetAllVdcComputePolicies(queryParameters url.Values) ([]*VdcComputePolicy, error) { + return getAllVdcComputePolicies(org.client, queryParameters) +} + +// GetAllVdcComputePolicies retrieves all VDC compute policies using OpenAPI endpoint. Query parameters can be supplied to perform additional +// filtering +func (org *Org) GetAllVdcComputePolicies(queryParameters url.Values) ([]*VdcComputePolicy, error) { + return getAllVdcComputePolicies(org.client, queryParameters) +} + +// getAllVdcComputePolicies retrieves all VDC compute policies using OpenAPI endpoint. Query parameters can be supplied to perform additional +// filtering +func getAllVdcComputePolicies(client *Client, queryParameters url.Values) ([]*VdcComputePolicy, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcComputePolicies + minimumApiVersion, err := client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + responses := []*types.VdcComputePolicy{{}} + + err = client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &responses, nil) + if err != nil { + return nil, err + } + + var wrappedVdcComputePolicies []*VdcComputePolicy + for _, response := range responses { + wrappedVdcComputePolicy := &VdcComputePolicy{ + client: client, + VdcComputePolicy: response, + } + wrappedVdcComputePolicies = append(wrappedVdcComputePolicies, wrappedVdcComputePolicy) + } + + return wrappedVdcComputePolicies, nil +} + +// CreateVdcComputePolicy creates a new VDC Compute Policy using OpenAPI endpoint +func (org *AdminOrg) CreateVdcComputePolicy(newVdcComputePolicy *types.VdcComputePolicy) (*VdcComputePolicy, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcComputePolicies + minimumApiVersion, err := org.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := org.client.OpenApiBuildEndpoint(endpoint) + if err != nil { + return nil, err + } + + returnVdcComputePolicy := &VdcComputePolicy{ + VdcComputePolicy: &types.VdcComputePolicy{}, + client: org.client, + } + + err = org.client.OpenApiPostItem(minimumApiVersion, urlRef, nil, newVdcComputePolicy, returnVdcComputePolicy.VdcComputePolicy, nil) + if err != nil { + return nil, fmt.Errorf("error creating VDC compute policy: %s", err) + } + + return returnVdcComputePolicy, nil +} + +// Update existing VDC compute policy +func (vdcComputePolicy *VdcComputePolicy) Update() (*VdcComputePolicy, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcComputePolicies + minimumApiVersion, err := vdcComputePolicy.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + if vdcComputePolicy.VdcComputePolicy.ID == "" { + return nil, fmt.Errorf("cannot update VDC compute policy without ID") + } + + urlRef, err := vdcComputePolicy.client.OpenApiBuildEndpoint(endpoint, vdcComputePolicy.VdcComputePolicy.ID) + if err != nil { + return nil, err + } + + returnVdcComputePolicy := &VdcComputePolicy{ + VdcComputePolicy: &types.VdcComputePolicy{}, + client: vdcComputePolicy.client, + } + + err = vdcComputePolicy.client.OpenApiPutItem(minimumApiVersion, urlRef, nil, vdcComputePolicy.VdcComputePolicy, returnVdcComputePolicy.VdcComputePolicy, nil) + if err != nil { + return nil, fmt.Errorf("error updating VDC compute policy: %s", err) + } + + return returnVdcComputePolicy, nil +} + +// Delete deletes VDC compute policy +func (vdcComputePolicy *VdcComputePolicy) Delete() error { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcComputePolicies + minimumApiVersion, err := vdcComputePolicy.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return err + } + + if vdcComputePolicy.VdcComputePolicy.ID == "" { + return fmt.Errorf("cannot delete VDC compute policy without id") + } + + urlRef, err := vdcComputePolicy.client.OpenApiBuildEndpoint(endpoint, vdcComputePolicy.VdcComputePolicy.ID) + if err != nil { + return err + } + + err = vdcComputePolicy.client.OpenApiDeleteItem(minimumApiVersion, urlRef, nil, nil) + + if err != nil { + return fmt.Errorf("error deleting VDC compute policy: %s", err) + } + + return nil +} + +// GetAllAssignedVdcComputePolicies retrieves all VDC assigned compute policies using OpenAPI endpoint. Query parameters can be supplied to perform additional +// filtering +func (vdc *AdminVdc) GetAllAssignedVdcComputePolicies(queryParameters url.Values) ([]*VdcComputePolicy, error) { + endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointVdcAssignedComputePolicies + minimumApiVersion, err := vdc.client.checkOpenApiEndpointCompatibility(endpoint) + if err != nil { + return nil, err + } + + urlRef, err := vdc.client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, vdc.AdminVdc.ID)) + if err != nil { + return nil, err + } + + responses := []*types.VdcComputePolicy{{}} + + err = vdc.client.OpenApiGetAllItems(minimumApiVersion, urlRef, queryParameters, &responses, nil) + if err != nil { + return nil, err + } + + var wrappedVdcComputePolicies []*VdcComputePolicy + for _, response := range responses { + wrappedVdcComputePolicy := &VdcComputePolicy{ + client: vdc.client, + VdcComputePolicy: response, + } + wrappedVdcComputePolicies = append(wrappedVdcComputePolicies, wrappedVdcComputePolicy) + } + + return wrappedVdcComputePolicies, nil +} + +// SetAssignedComputePolicies assign(set) compute policies. +func (vdc *AdminVdc) SetAssignedComputePolicies(computePolicyReferences types.VdcComputePolicyReferences) (*types.VdcComputePolicyReferences, error) { + util.Logger.Printf("[TRACE] Set Compute Policies started") + + if !vdc.client.IsSysAdmin { + return nil, fmt.Errorf("functionality requires System Administrator privileges") + } + + adminVdcPolicyHREF, err := url.ParseRequestURI(vdc.AdminVdc.HREF) + if err != nil { + return nil, fmt.Errorf("error parsing VDC URL: %s", err) + } + + vdcId, err := GetUuidFromHref(vdc.AdminVdc.HREF, true) + if err != nil { + return nil, fmt.Errorf("unable to get vdc ID from HREF: %s", err) + } + adminVdcPolicyHREF.Path = "/api/admin/vdc/" + vdcId + "/computePolicies" + + returnedVdcComputePolicies := &types.VdcComputePolicyReferences{} + computePolicyReferences.Xmlns = types.XMLNamespaceVCloud + + _, err = vdc.client.ExecuteRequest(adminVdcPolicyHREF.String(), http.MethodPut, + types.MimeVdcComputePolicyReferences, "error setting compute policies for VDC: %s", computePolicyReferences, returnedVdcComputePolicies) + if err != nil { + return nil, err + } + + return returnedVdcComputePolicies, nil +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vm.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vm.go new file mode 100644 index 000000000..06dd5a48c --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/govcd/vm.go @@ -0,0 +1,1815 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package govcd + +import ( + "fmt" + "net" + "net/http" + "strconv" + "strings" + "time" + + "github.com/vmware/go-vcloud-director/v2/types/v56" + "github.com/vmware/go-vcloud-director/v2/util" +) + +type VM struct { + VM *types.Vm + client *Client +} + +type VMRecord struct { + VM *types.QueryResultVMRecordType + client *Client +} + +func NewVM(cli *Client) *VM { + return &VM{ + VM: new(types.Vm), + client: cli, + } +} + +// NewVMRecord creates an instance with reference to types.QueryResultVMRecordType +func NewVMRecord(cli *Client) *VMRecord { + return &VMRecord{ + VM: new(types.QueryResultVMRecordType), + client: cli, + } +} + +func (vm *VM) GetStatus() (string, error) { + err := vm.Refresh() + if err != nil { + return "", fmt.Errorf("error refreshing VM: %s", err) + } + return types.VAppStatuses[vm.VM.Status], nil +} + +// IsDeployed checks if the VM is deployed or not +func (vm *VM) IsDeployed() (bool, error) { + err := vm.Refresh() + if err != nil { + return false, fmt.Errorf("error refreshing VM: %s", err) + } + return vm.VM.Deployed, nil +} + +func (vm *VM) Refresh() error { + + if vm.VM.HREF == "" { + return fmt.Errorf("cannot refresh VM, Object is empty") + } + + refreshUrl := vm.VM.HREF + + // Empty struct before a new unmarshal, otherwise we end up with duplicate + // elements in slices. + vm.VM = &types.Vm{} + + _, err := vm.client.ExecuteRequest(refreshUrl, http.MethodGet, "", "error refreshing VM: %s", nil, vm.VM) + + // The request was successful + return err +} + +// GetVirtualHardwareSection returns the virtual hardware items attached to a VM +func (vm *VM) GetVirtualHardwareSection() (*types.VirtualHardwareSection, error) { + + virtualHardwareSection := &types.VirtualHardwareSection{} + + if vm.VM.HREF == "" { + return nil, fmt.Errorf("cannot refresh, invalid reference url") + } + + _, err := vm.client.ExecuteRequest(vm.VM.HREF+"/virtualHardwareSection/", http.MethodGet, + types.MimeVirtualHardwareSection, "error retrieving virtual hardware: %s", nil, virtualHardwareSection) + + // The request was successful + return virtualHardwareSection, err +} + +// GetNetworkConnectionSection returns current networks attached to VM +// +// The slice of NICs is not necessarily ordered by NIC index +func (vm *VM) GetNetworkConnectionSection() (*types.NetworkConnectionSection, error) { + + networkConnectionSection := &types.NetworkConnectionSection{} + + if vm.VM.HREF == "" { + return networkConnectionSection, fmt.Errorf("cannot retrieve network when VM HREF is unset") + } + + _, err := vm.client.ExecuteRequest(vm.VM.HREF+"/networkConnectionSection/", http.MethodGet, + types.MimeNetworkConnectionSection, "error retrieving network connection: %s", nil, networkConnectionSection) + + // The request was successful + return networkConnectionSection, err +} + +// UpdateNetworkConnectionSection applies network configuration of types.NetworkConnectionSection for the VM +// Runs synchronously, VM is ready for another operation after this function returns. +func (vm *VM) UpdateNetworkConnectionSection(networks *types.NetworkConnectionSection) error { + if vm.VM.HREF == "" { + return fmt.Errorf("cannot update network connection when VM HREF is unset") + } + + // Retrieve current network configuration so that we are not altering any other internal fields + updateNetwork, err := vm.GetNetworkConnectionSection() + if err != nil { + return fmt.Errorf("cannot read network section for update: %s", err) + } + updateNetwork.PrimaryNetworkConnectionIndex = networks.PrimaryNetworkConnectionIndex + updateNetwork.NetworkConnection = networks.NetworkConnection + updateNetwork.Ovf = types.XMLNamespaceOVF + + task, err := vm.client.ExecuteTaskRequest(vm.VM.HREF+"/networkConnectionSection/", http.MethodPut, + types.MimeNetworkConnectionSection, "error updating network connection: %s", updateNetwork) + if err != nil { + return err + } + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error waiting for task completion after network update for vm %s: %s", vm.VM.Name, err) + } + + return nil +} + +// Deprecated: use client.GetVMByHref instead +func (client *Client) FindVMByHREF(vmHREF string) (VM, error) { + + newVm := NewVM(client) + + _, err := client.ExecuteRequest(vmHREF, http.MethodGet, + "", "error retrieving VM: %s", nil, newVm.VM) + + return *newVm, err + +} + +func (vm *VM) PowerOn() (Task, error) { + + apiEndpoint := urlParseRequestURI(vm.VM.HREF) + apiEndpoint.Path += "/power/action/powerOn" + + // Return the task + return vm.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "", "error powering on VM: %s", nil) + +} + +// PowerOnAndForceCustomization is a synchronous function which is equivalent to the functionality +// one has in UI. It triggers customization which may be useful in some cases (like altering NICs) +// +// The VM _must_ be un-deployed for this action to actually work. +func (vm *VM) PowerOnAndForceCustomization() error { + // PowerOnAndForceCustomization only works if the VM was previously un-deployed + vmIsDeployed, err := vm.IsDeployed() + if err != nil { + return fmt.Errorf("unable to check if VM %s is un-deployed forcing customization: %s", + vm.VM.Name, err) + } + + if vmIsDeployed { + return fmt.Errorf("VM %s must be undeployed before forcing customization", vm.VM.Name) + } + + apiEndpoint := urlParseRequestURI(vm.VM.HREF) + apiEndpoint.Path += "/action/deploy" + + powerOnAndCustomize := &types.DeployVAppParams{ + Xmlns: types.XMLNamespaceVCloud, + PowerOn: true, + ForceCustomization: true, + } + + task, err := vm.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "", "error powering on VM with customization: %s", powerOnAndCustomize) + + if err != nil { + return err + } + + err = task.WaitTaskCompletion() + if err != nil { + return fmt.Errorf("error waiting for task completion after power on with customization %s: %s", vm.VM.Name, err) + } + + return nil +} + +func (vm *VM) PowerOff() (Task, error) { + + apiEndpoint := urlParseRequestURI(vm.VM.HREF) + apiEndpoint.Path += "/power/action/powerOff" + + // Return the task + return vm.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPost, + "", "error powering off VM: %s", nil) +} + +// ChangeCPUCount sets number of available virtual logical processors +// (i.e. CPUs x cores per socket) +// Cpu cores count is inherited from template. +// https://communities.vmware.com/thread/576209 +func (vm *VM) ChangeCPUCount(virtualCpuCount int) (Task, error) { + return vm.ChangeCPUCountWithCore(virtualCpuCount, nil) +} + +// ChangeCPUCountWithCore sets number of available virtual logical processors +// (i.e. CPUs x cores per socket) and cores per socket. +// Socket count is a result of: virtual logical processors/cores per socket +// https://communities.vmware.com/thread/576209 +func (vm *VM) ChangeCPUCountWithCore(virtualCpuCount int, coresPerSocket *int) (Task, error) { + + err := vm.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing VM before running customization: %s", err) + } + + newCpu := &types.OVFItem{ + XmlnsRasd: types.XMLNamespaceRASD, + XmlnsVCloud: types.XMLNamespaceVCloud, + XmlnsXsi: types.XMLNamespaceXSI, + XmlnsVmw: types.XMLNamespaceVMW, + VCloudHREF: vm.VM.HREF + "/virtualHardwareSection/cpu", + VCloudType: types.MimeRasdItem, + AllocationUnits: "hertz * 10^6", + Description: "Number of Virtual CPUs", + ElementName: strconv.Itoa(virtualCpuCount) + " virtual CPU(s)", + InstanceID: 4, + Reservation: 0, + ResourceType: types.ResourceTypeProcessor, + VirtualQuantity: int64(virtualCpuCount), + CoresPerSocket: coresPerSocket, + Link: &types.Link{ + HREF: vm.VM.HREF + "/virtualHardwareSection/cpu", + Rel: "edit", + Type: types.MimeRasdItem, + }, + } + + apiEndpoint := urlParseRequestURI(vm.VM.HREF) + apiEndpoint.Path += "/virtualHardwareSection/cpu" + + // Return the task + return vm.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeRasdItem, "error changing CPU count: %s", newCpu) + +} + +func (vm *VM) updateNicParameters(networks []map[string]interface{}, networkSection *types.NetworkConnectionSection) error { + for tfNicSlot, network := range networks { + for loopIndex := range networkSection.NetworkConnection { + // Change network config only if we have the same virtual slot number as in .tf config + if tfNicSlot == networkSection.NetworkConnection[loopIndex].NetworkConnectionIndex { + + // Determine what type of address is requested for the vApp + var ipAllocationMode string + ipAddress := "Any" + + var ipFieldString string + ipField, ipIsSet := network["ip"] + if ipIsSet { + ipFieldString = ipField.(string) + } + + switch { + // TODO v3.0 remove from here when deprecated `ip` and `network_name` attributes are removed + case ipIsSet && ipFieldString == "dhcp": // Deprecated ip="dhcp" mode + ipAllocationMode = types.IPAllocationModeDHCP + case ipIsSet && ipFieldString == "allocated": // Deprecated ip="allocated" mode + ipAllocationMode = types.IPAllocationModePool + case ipIsSet && ipFieldString == "none": // Deprecated ip="none" mode + ipAllocationMode = types.IPAllocationModeNone + + // Deprecated ip="valid_ip" mode (currently it is hit by ip_allocation_mode=MANUAL as well) + case ipIsSet && net.ParseIP(ipFieldString) != nil: + ipAllocationMode = types.IPAllocationModeManual + ipAddress = ipFieldString + case ipIsSet && ipFieldString != "": // Deprecated ip="something_invalid" we default to DHCP. This is odd but backwards compatible. + ipAllocationMode = types.IPAllocationModeDHCP + // TODO v3.0 remove until here when deprecated `ip` and `network_name` attributes are removed + + // Removed for Coverity warning: dead code - We can reinstate after removing above code + //case ipIsSet && net.ParseIP(ipFieldString) != nil && (network["ip_allocation_mode"].(string) == types.IPAllocationModeManual): + // ipAllocationMode = types.IPAllocationModeManual + // ipAddress = ipFieldString + default: // New networks functionality. IP was not set and we're defaulting to provided ip_allocation_mode (only manual requires the IP) + ipAllocationMode = network["ip_allocation_mode"].(string) + } + + networkSection.NetworkConnection[loopIndex].NeedsCustomization = true + networkSection.NetworkConnection[loopIndex].IsConnected = true + networkSection.NetworkConnection[loopIndex].IPAddress = ipAddress + networkSection.NetworkConnection[loopIndex].IPAddressAllocationMode = ipAllocationMode + + // for IPAllocationModeNone we hardcode special network name used by vcd 'none' + if ipAllocationMode == types.IPAllocationModeNone { + networkSection.NetworkConnection[loopIndex].Network = types.NoneNetwork + } else { + if _, ok := network["network_name"]; !ok { + return fmt.Errorf("could not identify network name") + } + networkSection.NetworkConnection[loopIndex].Network = network["network_name"].(string) + } + + // If we have one NIC only then it is primary by default, otherwise we check for "is_primary" key + if (len(networks) == 1) || (network["is_primary"] != nil && network["is_primary"].(bool)) { + networkSection.PrimaryNetworkConnectionIndex = tfNicSlot + } + } + } + } + return nil +} + +// ChangeNetworkConfig allows to update existing VM NIC configuration.f +func (vm *VM) ChangeNetworkConfig(networks []map[string]interface{}) (Task, error) { + err := vm.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing VM before running customization: %s", err) + } + + networkSection, err := vm.GetNetworkConnectionSection() + if err != nil { + return Task{}, fmt.Errorf("could not retrieve network connection for VM: %s", err) + } + + err = vm.updateNicParameters(networks, networkSection) + if err != nil { + return Task{}, fmt.Errorf("failed processing NIC parameters: %s", err) + } + + networkSection.Xmlns = types.XMLNamespaceVCloud + networkSection.Ovf = types.XMLNamespaceOVF + networkSection.Info = "Specifies the available VM network connections" + + apiEndpoint := urlParseRequestURI(vm.VM.HREF) + apiEndpoint.Path += "/networkConnectionSection/" + + // Return the task + return vm.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeNetworkConnectionSection, "error changing network config: %s", networkSection) +} + +func (vm *VM) ChangeMemorySize(size int) (Task, error) { + + err := vm.Refresh() + if err != nil { + return Task{}, fmt.Errorf("error refreshing VM before running customization: %s", err) + } + + newMem := &types.OVFItem{ + XmlnsRasd: types.XMLNamespaceRASD, + XmlnsVCloud: types.XMLNamespaceVCloud, + XmlnsXsi: types.XMLNamespaceXSI, + VCloudHREF: vm.VM.HREF + "/virtualHardwareSection/memory", + VCloudType: types.MimeRasdItem, + AllocationUnits: "byte * 2^20", + Description: "Memory SizeMb", + ElementName: strconv.Itoa(size) + " MB of memory", + InstanceID: 5, + Reservation: 0, + ResourceType: types.ResourceTypeMemory, + VirtualQuantity: int64(size), + Weight: 0, + Link: &types.Link{ + HREF: vm.VM.HREF + "/virtualHardwareSection/memory", + Rel: "edit", + Type: types.MimeRasdItem, + }, + } + + apiEndpoint := urlParseRequestURI(vm.VM.HREF) + apiEndpoint.Path += "/virtualHardwareSection/memory" + + // Return the task + return vm.client.ExecuteTaskRequest(apiEndpoint.String(), http.MethodPut, + types.MimeRasdItem, "error changing memory size: %s", newMem) +} + +func (vm *VM) RunCustomizationScript(computerName, script string) (Task, error) { + return vm.Customize(computerName, script, false) +} + +// GetGuestCustomizationStatus retrieves guest customization status. +// It can be one of "GC_PENDING", "REBOOT_PENDING", "GC_FAILED", "POST_GC_PENDING", "GC_COMPLETE" +func (vm *VM) GetGuestCustomizationStatus() (string, error) { + guestCustomizationStatus := &types.GuestCustomizationStatusSection{} + + if vm.VM.HREF == "" { + return "", fmt.Errorf("cannot retrieve guest customization, VM HREF is empty") + } + + _, err := vm.client.ExecuteRequest(vm.VM.HREF+"/guestcustomizationstatus", http.MethodGet, + types.MimeGuestCustomizationStatus, "error retrieving guest customization status: %s", nil, guestCustomizationStatus) + + // The request was successful + return guestCustomizationStatus.GuestCustStatus, err +} + +// BlockWhileGuestCustomizationStatus blocks until the customization status of VM exits unwantedStatus. +// It sleeps 3 seconds between iterations and times out after timeOutAfterSeconds of seconds. +// +// timeOutAfterSeconds must be more than 4 and less than 2 hours (60s*120) +func (vm *VM) BlockWhileGuestCustomizationStatus(unwantedStatus string, timeOutAfterSeconds int) error { + if timeOutAfterSeconds < 5 || timeOutAfterSeconds > 60*120 { + return fmt.Errorf("timeOutAfterSeconds must be in range 4 end +// 4. if error, validation with VM checks +// 4a. if validation error, it was a VM issue: return combined original error + validation error +// 4b. if no validation error, the failure was due to something else: return only original error +func validateAffinityRule(client *Client, affinityRuleDef *types.VmAffinityRule, checkVMs bool) (*types.VmAffinityRule, error) { + if affinityRuleDef == nil { + return nil, fmt.Errorf("empty definition given for a VM affinity rule") + } + if affinityRuleDef.Name == "" { + return nil, fmt.Errorf("no name given for a VM affinity rule") + } + if affinityRuleDef.Polarity == "" { + return nil, fmt.Errorf("no polarity given for a VM affinity rule") + } + if !validPolarity(affinityRuleDef.Polarity) { + return nil, fmt.Errorf("illegal polarity given (%s) for a VM affinity rule", affinityRuleDef.Polarity) + } + // Ensure the VMs in the list are different + var seenVms = make(map[string]bool) + var allVmMap = make(map[string]bool) + if checkVMs { + vmList, err := client.QueryVmList(types.VmQueryFilterOnlyDeployed) + if err != nil { + return nil, fmt.Errorf("error getting VM list : %s", err) + } + for _, vm := range vmList { + allVmMap[extractUuid(vm.HREF)] = true + } + } + for _, vmr := range affinityRuleDef.VmReferences { + if len(vmr.VMReference) == 0 { + continue + } + for _, vm := range vmr.VMReference { + if vm == nil { + continue + } + // The only mandatory field is the HREF + if vm.HREF == "" { + return nil, fmt.Errorf("empty VM HREF provided in VM list") + } + _, seen := seenVms[vm.HREF] + if seen { + return nil, fmt.Errorf("VM HREF %s used more than once", vm.HREF) + } + seenVms[vm.HREF] = true + + if checkVMs { + // Checking that the VMs indicated exist. + // Without this check, if any of the VMs do not exist, we would get an ugly error that doesn't easily explain + // the nature of the problem, such as + // > "error instantiating a new VM affinity rule: API Error: 403: [ ... ] + // > Either you need some or all of the following rights [ORG_VDC_VM_VM_AFFINITY_EDIT] + // > to perform operations [VAPP_VM_EDIT_AFFINITY_RULE] for $OP_ID or the target entity is invalid" + + _, vmInList := allVmMap[extractUuid(vm.HREF)] + if !vmInList { + return nil, fmt.Errorf("VM identified by '%s' not found ", vm.HREF) + } + } + } + } + if len(seenVms) < 2 { + return nil, fmt.Errorf("at least 2 VMs should be given for a VM Affinity Rule") + } + return affinityRuleDef, nil +} + +// CreateVmAffinityRuleAsync creates a new VM affinity rule, and returns a task that handles the operation +func (vdc *Vdc) CreateVmAffinityRuleAsync(affinityRuleDef *types.VmAffinityRule) (Task, error) { + + var err error + // We validate the input, without a strict check on the VMs + affinityRuleDef, err = validateAffinityRule(vdc.client, affinityRuleDef, false) + if err != nil { + return Task{}, fmt.Errorf("[CreateVmAffinityRuleAsync] %s", err) + } + + affinityRuleDef.Xmlns = types.XMLNamespaceVCloud + + href := vdc.getLinkHref("add", "application/vnd.vmware.vcloud.vmaffinityrule+xml") + if href == "" { + return Task{}, fmt.Errorf("no link with VM affinity rule found in VDC %s", vdc.Vdc.Name) + } + + task, err := vdc.client.ExecuteTaskRequest(href, http.MethodPost, + "application/vnd.vmware.vcloud.vmaffinityrule+xml", "error instantiating a new VM affinity rule: %s", affinityRuleDef) + if err != nil { + // if we get any error, we repeat the validation + // with a strict check on VM existence. + _, validationErr := validateAffinityRule(vdc.client, affinityRuleDef, true) + if validationErr != nil { + // If we get any error from the validation now, it should be an invalid VM, + // so we combine the original error with the validation error + return Task{}, fmt.Errorf("%s - %s", err, validationErr) + } + // If the validation error is nil, we return just the original error + return Task{}, err + } + return task, err +} + +// CreateVmAffinityRule is a wrap around CreateVmAffinityRuleAsync that handles the task and returns the finished object +func (vdc *Vdc) CreateVmAffinityRule(affinityRuleDef *types.VmAffinityRule) (*VmAffinityRule, error) { + + task, err := vdc.CreateVmAffinityRuleAsync(affinityRuleDef) + if err != nil { + return nil, err + } + // The rule ID is the ID of the task owner (see Task definition in types.go) + ruleId := task.Task.Owner.ID + + err = task.WaitTaskCompletion() + if err != nil { + return nil, err + } + + // Retrieving the newly created rule using the ID from the task + vmAffinityRule, err := vdc.GetVmAffinityRuleById(ruleId) + if err != nil { + return nil, fmt.Errorf("error retrieving VmAffinityRule %s using ID %s: %s", affinityRuleDef.Name, ruleId, err) + } + return vmAffinityRule, nil +} + +// Delete removes a VM affinity rule from vCD +func (vmar *VmAffinityRule) Delete() error { + + if vmar == nil || vmar.VmAffinityRule == nil { + return fmt.Errorf("nil VM Affinity Rule passed for deletion") + } + + if vmar.VmAffinityRule.HREF == "" { + return fmt.Errorf("VM Affinity Rule passed for deletion has no HREF") + } + + deleteHref := vmar.VmAffinityRule.HREF + linkHref := vmar.getLinkHref("remove") + if linkHref != "" { + deleteHref = linkHref + } + + deleteTask, err := vmar.client.ExecuteTaskRequest(deleteHref, http.MethodDelete, + "", "error removing VM Affinity Rule : %s", nil) + if err != nil { + return err + } + return deleteTask.WaitTaskCompletion() +} + +// getLinkHref returns an HREF for a given value of Rel +func (vmar *VmAffinityRule) getLinkHref(rel string) string { + if vmar.VmAffinityRule.Link != nil { + for _, link := range vmar.VmAffinityRule.Link { + if link.Rel == rel { + return link.HREF + } + } + } + return "" +} + +// Update modifies a VM affinity rule using as input +// the entity's internal data. +func (vmar *VmAffinityRule) Update() error { + var err error + var affinityRuleDef *types.VmAffinityRule + + if vmar == nil || vmar.VmAffinityRule == nil { + return fmt.Errorf("nil VM Affinity Rule passed for update") + } + if vmar.VmAffinityRule.HREF == "" { + return fmt.Errorf("VM Affinity Rule passed for update has no HREF") + } + + // We validate the input, without a strict check on the VMs + affinityRuleDef, err = validateAffinityRule(vmar.client, vmar.VmAffinityRule, false) + if err != nil { + return fmt.Errorf("[Update] %s", err) + } + vmar.VmAffinityRule = affinityRuleDef + + updateRef := vmar.VmAffinityRule.HREF + linkHref := vmar.getLinkHref("edit") + if linkHref != "" { + updateRef = linkHref + } + + vmar.VmAffinityRule.Link = nil + vmar.VmAffinityRule.VCloudExtension = nil + updateTask, err := vmar.client.ExecuteTaskRequest(updateRef, http.MethodPut, + "", "error updating VM Affinity Rule : %s", vmar.VmAffinityRule) + if err != nil { + // if we get any error, we repeat the validation + // with a strict check on VM existence. + _, validationErr := validateAffinityRule(vmar.client, affinityRuleDef, true) + // If we get any error from the validation now, it should be an invalid VM, + // so we combine the original error with the validation error + if validationErr != nil { + return fmt.Errorf("%s - %s", err, validationErr) + } + // If the validation error is nil, we return just the original error + return err + } + err = updateTask.WaitTaskCompletion() + if err != nil { + return err + } + return vmar.Refresh() +} + +// Refresh gets a fresh copy of the VM affinity rule from vCD +func (vmar *VmAffinityRule) Refresh() error { + var newVmAffinityRule types.VmAffinityRule + _, err := vmar.client.ExecuteRequest(vmar.VmAffinityRule.HREF, http.MethodGet, + "", "error retrieving affinity rule: %v", nil, &newVmAffinityRule) + if err != nil { + return err + } + vmar.VmAffinityRule = &newVmAffinityRule + return nil +} + +// SetEnabled is a shortcut to update only the IsEnabled property of a VM affinity rule +func (vmar *VmAffinityRule) SetEnabled(value bool) error { + if vmar.VmAffinityRule.IsEnabled != nil { + currentValue := *vmar.VmAffinityRule.IsEnabled + if currentValue == value { + return nil + } + } + vmar.VmAffinityRule.IsEnabled = takeBoolPointer(value) + return vmar.Update() +} + +// SetMandatory is a shortcut to update only the IsMandatory property of a VM affinity rule +func (vmar *VmAffinityRule) SetMandatory(value bool) error { + if vmar.VmAffinityRule.IsMandatory != nil { + currentValue := *vmar.VmAffinityRule.IsMandatory + if currentValue == value { + return nil + } + } + vmar.VmAffinityRule.IsMandatory = takeBoolPointer(value) + return vmar.Update() +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/constants.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/constants.go new file mode 100644 index 000000000..48ea3ec0f --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/constants.go @@ -0,0 +1,480 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package types + +const ( + // PublicCatalog Name + PublicCatalog = "Public Catalog" + + // DefaultCatalog Name + DefaultCatalog = "Default Catalog" + + // JSONMimeV57 the json mime for version 5.7 of the API + JSONMimeV57 = "application/json;version=5.7" + // AnyXMLMime511 the wildcard xml mime for version 5.11 of the API + AnyXMLMime511 = "application/*+xml;version=5.11" + AnyXMLMime = "application/xml" + // Version511 the 5.11 version + Version511 = "5.11" + // Version is the default version number + Version = Version511 + // SoapXML mime type + SoapXML = "application/soap+xml" + // JSONMime + JSONMime = "application/json" +) + +const ( + // MimeOrgList mime for org list + MimeOrgList = "application/vnd.vmware.vcloud.orgList+xml" + // MimeOrg mime for org + MimeOrg = "application/vnd.vmware.vcloud.org+xml" + // MimeAdminOrg mime for admin org + MimeAdminOrg = "application/vnd.vmware.admin.organization+xml" + // MimeCatalog mime for catalog + MimeCatalog = "application/vnd.vmware.vcloud.catalog+xml" + // MimeCatalogItem mime for catalog item + MimeCatalogItem = "application/vnd.vmware.vcloud.catalogItem+xml" + // MimeVDC mime for a VDC + MimeVDC = "application/vnd.vmware.vcloud.vdc+xml" + // MimeVDC mime for a admin VDC + MimeAdminVDC = "application/vnd.vmware.admin.vdc+xml" + // MimeEdgeGateway mime for an Edge Gateway + MimeEdgeGateway = "application/vnd.vmware.admin.edgeGateway+xml" + // MimeVAppTemplate mime for a vapp template + MimeVAppTemplate = "application/vnd.vmware.vcloud.vAppTemplate+xml" + // MimeVApp mime for a vApp + MimeVApp = "application/vnd.vmware.vcloud.vApp+xml" + // MimeQueryRecords mime for the query records + MimeQueryRecords = "application/vnd.vmware.vcloud.query.records+xml" + // MimeAPIExtensibility mime for api extensibility + MimeAPIExtensibility = "application/vnd.vmware.vcloud.apiextensibility+xml" + // MimeEntity mime for vcloud entity + MimeEntity = "application/vnd.vmware.vcloud.entity+xml" + // MimeQueryList mime for query list + MimeQueryList = "application/vnd.vmware.vcloud.query.queryList+xml" + // MimeSession mime for a session + MimeSession = "application/vnd.vmware.vcloud.session+xml" + // MimeTask mime for task + MimeTask = "application/vnd.vmware.vcloud.task+xml" + // MimeError mime for error + MimeError = "application/vnd.vmware.vcloud.error+xml" + // MimeNetwork mime for a network + MimeNetwork = "application/vnd.vmware.vcloud.network+xml" + // MimeOrgVdcNetwork mime for an Org VDC network + MimeOrgVdcNetwork = "application/vnd.vmware.vcloud.orgVdcNetwork+xml" + //MimeDiskCreateParams mime for create independent disk + MimeDiskCreateParams = "application/vnd.vmware.vcloud.diskCreateParams+xml" + // Mime for VMs + MimeVMs = "application/vnd.vmware.vcloud.vms+xml" + // Mime for attach or detach independent disk + MimeDiskAttachOrDetachParams = "application/vnd.vmware.vcloud.diskAttachOrDetachParams+xml" + // Mime for Disk + MimeDisk = "application/vnd.vmware.vcloud.disk+xml" + // Mime for insert or eject media + MimeMediaInsertOrEjectParams = "application/vnd.vmware.vcloud.mediaInsertOrEjectParams+xml" + // Mime for catalog + MimeAdminCatalog = "application/vnd.vmware.admin.catalog+xml" + // Mime for virtual hardware section + MimeVirtualHardwareSection = "application/vnd.vmware.vcloud.virtualHardwareSection+xml" + // Mime for networkConnectionSection + MimeNetworkConnectionSection = "application/vnd.vmware.vcloud.networkConnectionSection+xml" + // Mime for Item + MimeRasdItem = "application/vnd.vmware.vcloud.rasdItem+xml" + // Mime for guest customization section + MimeGuestCustomizationSection = "application/vnd.vmware.vcloud.guestCustomizationSection+xml" + // Mime for guest customization status + MimeGuestCustomizationStatus = "application/vnd.vmware.vcloud.guestcustomizationstatussection" + // Mime for network config section + MimeNetworkConfigSection = "application/vnd.vmware.vcloud.networkconfigsection+xml" + // Mime for recompose vApp params + MimeRecomposeVappParams = "application/vnd.vmware.vcloud.recomposeVAppParams+xml" + // Mime for compose vApp params + MimeComposeVappParams = "application/vnd.vmware.vcloud.composeVAppParams+xml" + // Mime for undeploy vApp params + MimeUndeployVappParams = "application/vnd.vmware.vcloud.undeployVAppParams+xml" + // Mime for deploy vApp params + MimeDeployVappParams = "application/vnd.vmware.vcloud.deployVAppParams+xml" + // Mime for VM + MimeVM = "application/vnd.vmware.vcloud.vm+xml" + // Mime for instantiate vApp template params + MimeInstantiateVappTemplateParams = "application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml" + // Mime for product section + MimeProductSection = "application/vnd.vmware.vcloud.productSections+xml" + // Mime for metadata + MimeMetaData = "application/vnd.vmware.vcloud.metadata+xml" + // Mime for metadata value + MimeMetaDataValue = "application/vnd.vmware.vcloud.metadata.value+xml" + // Mime for a admin network + MimeExtensionNetwork = "application/vnd.vmware.admin.extension.network+xml" + // Mime for an external network + MimeExternalNetwork = "application/vnd.vmware.admin.vmwexternalnet+xml" + // Mime of an Org User + MimeAdminUser = "application/vnd.vmware.admin.user+xml" + // MimeAdminGroup specifies groups + MimeAdminGroup = "application/vnd.vmware.admin.group+xml" + // MimeOrgLdapSettings + MimeOrgLdapSettings = "application/vnd.vmware.admin.organizationldapsettings+xml" + // Mime of vApp network + MimeVappNetwork = "application/vnd.vmware.vcloud.vAppNetwork+xml" + // Mime of access control + MimeControlAccess = "application/vnd.vmware.vcloud.controlAccess+xml" + // Mime of VM capabilities + MimeVmCapabilities = "application/vnd.vmware.vcloud.vmCapabilitiesSection+xml" + // Mime of Vdc Compute Policy References + MimeVdcComputePolicyReferences = "application/vnd.vmware.vcloud.vdcComputePolicyReferences+xml" + // Mime for Storage profile + MimeStorageProfile = "application/vnd.vmware.admin.vdcStorageProfile+xml " + // Mime for create VM Params + MimeCreateVmParams = "application/vnd.vmware.vcloud.CreateVmParams+xml" + // Mime for instantiate VM Params from template + MimeInstantiateVmTemplateParams = "application/vnd.vmware.vcloud.instantiateVmTemplateParams+xml" + // Mime for adding or removing VDC storage profiles + MimeUpdateVdcStorageProfiles = "application/vnd.vmware.admin.updateVdcStorageProfiles+xml" + // Mime to modify lease settings + MimeLeaseSettingSection = "application/vnd.vmware.vcloud.leaseSettingsSection+xml" +) + +const ( + VMsCDResourceSubType = "vmware.cdrom.iso" +) + +// https://blogs.vmware.com/vapp/2009/11/virtual-hardware-in-ovf-part-1.html + +const ( + ResourceTypeOther int = 0 + ResourceTypeProcessor int = 3 + ResourceTypeMemory int = 4 + ResourceTypeIDE int = 5 + ResourceTypeSCSI int = 6 + ResourceTypeEthernet int = 10 + ResourceTypeFloppy int = 14 + ResourceTypeCD int = 15 + ResourceTypeDVD int = 16 + ResourceTypeDisk int = 17 + ResourceTypeUSB int = 23 +) + +const ( + FenceModeIsolated = "isolated" + FenceModeBridged = "bridged" + FenceModeNAT = "natRouted" +) + +const ( + IPAllocationModeDHCP = "DHCP" + IPAllocationModeManual = "MANUAL" + IPAllocationModeNone = "NONE" + IPAllocationModePool = "POOL" +) + +// NoneNetwork is a special type of network in vCD which represents a network card which is not +// attached to any network. +const ( + NoneNetwork = "none" +) + +const ( + XMLNamespaceVCloud = "http://www.vmware.com/vcloud/v1.5" + XMLNamespaceOVF = "http://schemas.dmtf.org/ovf/envelope/1" + XMLNamespaceVMW = "http://www.vmware.com/schema/ovf" + XMLNamespaceXSI = "http://www.w3.org/2001/XMLSchema-instance" + XMLNamespaceRASD = "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" + XMLNamespaceVSSD = "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" + XMLNamespaceExtension = "http://www.vmware.com/vcloud/extension/v1.5" +) + +// NSX-V Edge gateway API endpoints +const ( + EdgeNatPath = "/nat/config" + EdgeCreateNatPath = "/nat/config/rules" + EdgeFirewallPath = "/firewall/config" + EdgeCreateFirewallPath = "/firewall/config/rules" + EdgeVnicConfig = "/vnics" + EdgeVdcVnicConfig = "/vdcNetworks" + EdgeDhcpRelayPath = "/dhcp/config/relay" + EdgeDhcpLeasePath = "/dhcp/leaseInfo" + LbConfigPath = "/loadbalancer/config/" + LbMonitorPath = "/loadbalancer/config/monitors/" + LbServerPoolPath = "/loadbalancer/config/pools/" + LbAppProfilePath = "/loadbalancer/config/applicationprofiles/" + LbAppRulePath = "/loadbalancer/config/applicationrules/" + LbVirtualServerPath = "/loadbalancer/config/virtualservers/" +) + +// NSX-V proxied services API endpoints +const ( + NsxvIpSetServicePath = "/ipset" +) + +// Guest customization statuses. These are all known possible statuses +const ( + GuestCustStatusPending = "GC_PENDING" + GuestCustStatusPostPending = "POST_GC_PENDING" + GuestCustStatusComplete = "GC_COMPLETE" + GuestCustStatusFailed = "GC_FAILED" + GuestCustStatusRebootPending = "REBOOT_PENDING" +) + +// Edge gateway vNic types +const ( + EdgeGatewayVnicTypeUplink = "uplink" + EdgeGatewayVnicTypeInternal = "internal" + EdgeGatewayVnicTypeTrunk = "trunk" + EdgeGatewayVnicTypeSubinterface = "subinterface" + EdgeGatewayVnicTypeAny = "any" +) + +// Names of the filters allowed in the search engine +const ( + FilterNameRegex = "name_regex" // a name, searched by regular expression + FilterDate = "date" // a date expression (>|<|==|>=|<= date) + FilterIp = "ip" // An IP, searched by regular expression + FilterLatest = "latest" // gets the newest element + FilterEarliest = "earliest" // gets the oldest element + FilterParent = "parent" // matches the entity parent + FilterParentId = "parent_id" // matches the entity parent ID +) + +const ( + // The Qt* (Query Type) constants are the names used with Query requests to retrieve the corresponding entities + QtVappTemplate = "vAppTemplate" // vApp template + QtAdminVappTemplate = "adminVAppTemplate" // vApp template as admin + QtEdgeGateway = "edgeGateway" // edge gateway + QtOrgVdcNetwork = "orgVdcNetwork" // Org VDC network + QtCatalog = "catalog" // catalog + QtAdminCatalog = "adminCatalog" // catalog as admin + QtCatalogItem = "catalogItem" // catalog item + QtAdminCatalogItem = "adminCatalogItem" // catalog item as admin + QtAdminMedia = "adminMedia" // media item as admin + QtMedia = "media" // media item + QtVm = "vm" // Virtual machine + QtAdminVm = "adminVM" // Virtual machine as admin + QtVapp = "vApp" // vApp + QtAdminVapp = "adminVApp" // vApp as admin + QtOrgVdc = "orgVdc" // Org VDC + QtAdminOrgVdc = "adminOrgVdc" // Org VDC as admin +) + +// AdminQueryTypes returns the corresponding "admin" query type for each regular type +var AdminQueryTypes = map[string]string{ + QtEdgeGateway: QtEdgeGateway, // EdgeGateway query type is the same for admin and regular users + QtOrgVdcNetwork: QtOrgVdcNetwork, // Org VDC Network query type is the same for admin and regular users + QtVappTemplate: QtAdminVappTemplate, + QtCatalog: QtAdminCatalog, + QtCatalogItem: QtAdminCatalogItem, + QtMedia: QtAdminMedia, + QtVm: QtAdminVm, + QtVapp: QtAdminVapp, + QtOrgVdc: QtAdminOrgVdc, +} + +const ( + // Affinity and anti affinity definitions + PolarityAffinity = "Affinity" + PolarityAntiAffinity = "Anti-Affinity" +) + +// VmQueryFilter defines how we search VMs +type VmQueryFilter int + +const ( + // VmQueryFilterAll defines a no-filter search, i.e. will return all elements + VmQueryFilterAll VmQueryFilter = iota + + // VmQueryFilterOnlyDeployed defines a filter for deployed VMs + VmQueryFilterOnlyDeployed + + // VmQueryFilterOnlyTemplates defines a filter for VMs inside a template + VmQueryFilterOnlyTemplates +) + +// String converts a VmQueryFilter into the corresponding filter needed by the query to get the wanted result +func (qf VmQueryFilter) String() string { + // Makes sure that we handle out-of-range values + if qf < VmQueryFilterAll || qf > VmQueryFilterOnlyTemplates { + return "" + } + return [...]string{ + "", // No filter: will not remove any items + "isVAppTemplate==false", // Will find only the deployed VMs + "isVAppTemplate==true", // Will find only those VM that are inside a template + }[qf] +} + +// LDAP modes for Organization +const ( + LdapModeNone = "NONE" + LdapModeSystem = "SYSTEM" + LdapModeCustom = "CUSTOM" +) + +// Access control modes +const ( + ControlAccessReadOnly = "ReadOnly" + ControlAccessReadWrite = "Change" + ControlAccessFullControl = "FullControl" +) + +// BodyType allows to define API body types where applicable +type BodyType int + +const ( + // BodyTypeXML + BodyTypeXML BodyType = iota + + // BodyTypeJSON + BodyTypeJSON +) + +const ( + // FiqlQueryTimestampFormat is the format accepted by Cloud API time comparison operator in FIQL query filters + FiqlQueryTimestampFormat = "2006-01-02T15:04:05.000Z" +) + +// These constants allow constructing OpenAPI endpoint paths and avoid strings in code for easy replacement in the +// future. +const ( + OpenApiPathVersion1_0_0 = "1.0.0/" + OpenApiEndpointRoles = "roles/" + OpenApiEndpointGlobalRoles = "globalRoles/" + OpenApiEndpointRights = "rights/" + OpenApiEndpointRightsCategories = "rightsCategories/" + OpenApiEndpointRightsBundles = "rightsBundles/" + OpenApiEndpointAuditTrail = "auditTrail/" + OpenApiEndpointImportableTier0Routers = "nsxTResources/importableTier0Routers" + OpenApiEndpointImportableSwitches = "/network/orgvdcnetworks/importableswitches" + OpenApiEndpointEdgeClusters = "nsxTResources/edgeClusters" + OpenApiEndpointExternalNetworks = "externalNetworks/" + OpenApiEndpointVdcComputePolicies = "vdcComputePolicies/" + OpenApiEndpointVdcAssignedComputePolicies = "vdcs/%s/computePolicies" + OpenApiEndpointVdcCapabilities = "vdcs/%s/capabilities" + OpenApiEndpointEdgeGateways = "edgeGateways/" + OpenApiEndpointNsxtFirewallRules = "edgeGateways/%s/firewall/rules" + OpenApiEndpointFirewallGroups = "firewallGroups/" + OpenApiEndpointOrgVdcNetworks = "orgVdcNetworks/" + OpenApiEndpointOrgVdcNetworksDhcp = "orgVdcNetworks/%s/dhcp" + OpenApiEndpointNsxtNatRules = "edgeGateways/%s/nat/rules/" + OpenApiEndpointAppPortProfiles = "applicationPortProfiles/" + OpenApiEndpointIpSecVpnTunnel = "edgeGateways/%s/ipsec/tunnels/" + OpenApiEndpointIpSecVpnTunnelConnectionProperties = "edgeGateways/%s/ipsec/tunnels/%s/connectionProperties" + OpenApiEndpointIpSecVpnTunnelStatus = "edgeGateways/%s/ipsec/tunnels/%s/status" + OpenApiEndpointSSLCertificateLibrary = "ssl/certificateLibrary/" + OpenApiEndpointSSLCertificateLibraryOld = "ssl/cetificateLibrary/" + OpenApiEndpointSessionCurrent = "sessions/current" + OpenApiEndpointVdcGroups = "vdcGroups/" + OpenApiEndpointVdcGroupsCandidateVdcs = "vdcGroups/networkingCandidateVdcs" + OpenApiEndpointVdcGroupsDfwPolicies = "vdcGroups/%s/dfwPolicies" + OpenApiEndpointVdcGroupsDfwDefaultPolicies = "vdcGroups/%s/dfwPolicies/default" + + // NSX-T ALB related endpoints + + OpenApiEndpointAlbController = "loadBalancer/controllers/" + + // OpenApiEndpointAlbImportableClouds endpoint requires a filter _context==urn:vcloud:loadBalancerController:aa23ef66-ba32-48b2-892f-7acdffe4587e + OpenApiEndpointAlbImportableClouds = "nsxAlbResources/importableClouds/" + OpenApiEndpointAlbImportableServiceEngineGroups = "nsxAlbResources/importableServiceEngineGroups" + OpenApiEndpointAlbCloud = "loadBalancer/clouds/" + OpenApiEndpointAlbServiceEngineGroups = "loadBalancer/serviceEngineGroups/" + OpenApiEndpointAlbPools = "loadBalancer/pools/" + // OpenApiEndpointAlbPoolSummaries returns a limited subset of data provided by OpenApiEndpointAlbPools + // however only the summary endpoint can list all available pools for an edge gateway + OpenApiEndpointAlbPoolSummaries = "edgeGateways/%s/loadBalancer/poolSummaries" // %s contains edge gateway + OpenApiEndpointAlbVirtualServices = "loadBalancer/virtualServices/" + OpenApiEndpointAlbVirtualServiceSummaries = "edgeGateways/%s/loadBalancer/virtualServiceSummaries" // %s contains edge gateway + OpenApiEndpointAlbServiceEngineGroupAssignments = "loadBalancer/serviceEngineGroups/assignments/" + OpenApiEndpointAlbEdgeGateway = "edgeGateways/%s/loadBalancer" +) + +// Header keys to run operations in tenant context +const ( + // HeaderTenantContext requires the Org ID of the tenant + HeaderTenantContext = "X-VMWARE-VCLOUD-TENANT-CONTEXT" + // HeaderAuthContext requires the Org name of the tenant + HeaderAuthContext = "X-VMWARE-VCLOUD-AUTH-CONTEXT" +) + +const ( + // ExternalNetworkBackingTypeNsxtTier0Router defines backing type of NSX-T Tier-0 router + ExternalNetworkBackingTypeNsxtTier0Router = "NSXT_TIER0" + // ExternalNetworkBackingTypeNsxtVrfTier0Router defines backing type of NSX-T Tier-0 VRF router + ExternalNetworkBackingTypeNsxtVrfTier0Router = "NSXT_VRF_TIER0" + // ExternalNetworkBackingTypeNsxtSegment defines backing type of NSX-T Segment (supported in VCD 10.3+) + ExternalNetworkBackingTypeNsxtSegment = "IMPORTED_T_LOGICAL_SWITCH" + // ExternalNetworkBackingTypeNetwork defines vSwitch portgroup + ExternalNetworkBackingTypeNetwork = "NETWORK" + // ExternalNetworkBackingDvPortgroup refers distributed switch portgroup + ExternalNetworkBackingDvPortgroup = "DV_PORTGROUP" +) + +const ( + // OrgVdcNetworkTypeRouted can be used to create NSX-T or NSX-V routed Org Vdc network + OrgVdcNetworkTypeRouted = "NAT_ROUTED" + // OrgVdcNetworkTypeIsolated can be used to create NSX-T or NSX-V isolated Org Vdc network + OrgVdcNetworkTypeIsolated = "ISOLATED" + // OrgVdcNetworkTypeOpaque type is used to create NSX-T imported Org Vdc network + OrgVdcNetworkTypeOpaque = "OPAQUE" + // OrgVdcNetworkTypeDirect can be used to create NSX-V direct Org Vdc network + OrgVdcNetworkTypeDirect = "DIRECT" +) + +const ( + // VdcCapabilityNetworkProviderNsxv is a convenience constant to match VDC capability + VdcCapabilityNetworkProviderNsxv = "NSX_V" + // VdcCapabilityNetworkProviderNsxt is a convenience constant to match VDC capability + VdcCapabilityNetworkProviderNsxt = "NSX_T" +) + +const ( + // FirewallGroupTypeSecurityGroup can be used in types.NsxtFirewallGroup for 'type' field to + // create Security Group + FirewallGroupTypeSecurityGroup = "SECURITY_GROUP" + // FirewallGroupTypeIpSet can be used in types.NsxtFirewallGroup for 'type' field to create IP + // Set + FirewallGroupTypeIpSet = "IP_SET" +) + +// These constants can be used to pick type of NSX-T NAT Rule +const ( + NsxtNatRuleTypeDnat = "DNAT" + NsxtNatRuleTypeNoDnat = "NO_DNAT" + NsxtNatRuleTypeSnat = "SNAT" + NsxtNatRuleTypeNoSnat = "NO_SNAT" + NsxtNatRuleTypeReflexive = "REFLEXIVE" // Only in VCD 10.3+ (API V36.0) +) + +// In VCD versions 10.2.2+ (API V35.2+) there is a FirewallMatch field in NAT rule with these +// options +const ( + // NsxtNatRuleFirewallMatchInternalAddress will match firewall rules based on NAT rules internal + // address (DEFAULT) + NsxtNatRuleFirewallMatchInternalAddress = "MATCH_INTERNAL_ADDRESS" + // NsxtNatRuleFirewallMatchExternalAddress will match firewall rules based on NAT rule external + // address + NsxtNatRuleFirewallMatchExternalAddress = "MATCH_EXTERNAL_ADDRESS" + // NsxtNatRuleFirewallMatchBypass will skip evaluating NAT rules in firewall + NsxtNatRuleFirewallMatchBypass = "BYPASS" +) + +const ( + // ApplicationPortProfileScopeSystem is a defined scope which allows user to only read (no write capability) system + // predefined Application Port Profiles + ApplicationPortProfileScopeSystem = "SYSTEM" + // ApplicationPortProfileScopeProvider allows user to read and set Application Port Profiles at provider level. In + // reality Network Provider (NSX-T Manager) must be specified while creating. + ApplicationPortProfileScopeProvider = "PROVIDER" + // ApplicationPortProfileScopeTenant allows user to read and set Application Port Profiles at Org VDC level. + ApplicationPortProfileScopeTenant = "TENANT" +) + +const ( + // VcloudUndefinedKey is the bundles key automatically added to new role related objects + VcloudUndefinedKey = "com.vmware.vcloud.undefined.key" +) + +const ( + // NsxtAlbCloudBackingTypeNsxtAlb is a backing type for NSX-T ALB used in types.NsxtAlbCloudBacking + NsxtAlbCloudBackingTypeNsxtAlb = "NSXALB_NSXT" +) diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/link.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/link.go new file mode 100644 index 000000000..ec166bb2e --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/link.go @@ -0,0 +1,215 @@ +/* + * Copyright 2018 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package types + +// LinkPredicate is a predicate for finding links in a link list +type LinkPredicate func(*Link) bool + +func byTypeAndRel(tpe, rel string) LinkPredicate { + if rel == "" { + rel = RelDown + } + return func(lnk *Link) bool { + return lnk != nil && lnk.Type == tpe && lnk.Rel == rel + } +} + +func byNameTypeAndRel(nme, tpe, rel string) LinkPredicate { + tpePred := byTypeAndRel(tpe, rel) + return func(lnk *Link) bool { + return tpePred(lnk) && lnk.Name == nme + } +} + +// LinkList represents a list of links +type LinkList []*Link + +// Find the first occurrence that matches the predicate +func (l LinkList) Find(predicate LinkPredicate) *Link { + for _, lnk := range l { + if predicate(lnk) { + return lnk + } + } + return nil +} + +// ForType finds a link for a given type +func (l LinkList) ForType(tpe, rel string) *Link { + return l.Find(byTypeAndRel(tpe, rel)) +} + +// ForName finds a link for a given name and type +func (l LinkList) ForName(name, tpe, rel string) *Link { + return l.Find(byNameTypeAndRel(name, tpe, rel)) +} + +const ( + RelDown = "down" + RelAdd = "add" + RelUp = "up" + RelEdit = "edit" + RelRemove = "remove" + RelCopy = "copy" + RelMove = "move" + RelAlternate = "alternate" + RelTaskCancel = "task:cancel" + RelDeploy = "deploy" + RelUndeploy = "undeploy" + RelDiscardState = "discardState" + RelPowerOn = "power:powerOn" + RelPowerOff = "power:powerOff" + RelPowerReset = "power:reset" + RelPowerReboot = "power:reboot" + RelPowerSuspend = "power:suspend" + RelPowerShutdown = "power:shutdown" + + RelScreenThumbnail = "screen:thumbnail" + RelScreenAcquireTicket = "screen:acquireTicket" + RelScreenAcquireMksTicket = "screen:acquireMksTicket" + + RelMediaInsertMedia = "media:insertMedia" + RelMediaEjectMedia = "media:ejectMedia" + + RelDiskAttach = "disk:attach" + RelDiskDetach = "disk:detach" + + RelUploadDefault = "upload:default" + RelUploadAlternate = "upload:alternate" + + RelDownloadDefault = "download:default" + RelDownloadAlternate = "download:alternate" + RelDownloadIdentity = "download:identity" + + RelSnapshotCreate = "snapshot:create" + RelSnapshotRevertToCurrent = "snapshot:revertToCurrent" + RelSnapshotRemoveAll = "snapshot:removeAll" + + RelOVF = "ovf" + RelOVA = "ova" + RelControlAccess = "controlAccess" + RelPublish = "publish" + RelPublishExternal = "publishToExternalOrganizations" + RelSubscribeExternal = "subscribeToExternalCatalog" + RelExtension = "extension" + RelEnable = "enable" + RelDisable = "disable" + RelMerge = "merge" + RelCatalogItem = "catalogItem" + RelRecompose = "recompose" + RelRegister = "register" + RelUnregister = "unregister" + RelRepair = "repair" + RelReconnect = "reconnect" + RelDisconnect = "disconnect" + RelUpgrade = "upgrade" + RelAnswer = "answer" + RelAddOrgs = "addOrgs" + RelRemoveOrgs = "removeOrgs" + RelSync = "sync" + + RelVSphereWebClientURL = "vSphereWebClientUrl" + RelVimServerDvSwitches = "vimServerDvSwitches" + + RelCollaborationResume = "resume" + RelCollaborationFail = "fail" + RelEnterMaintenanceMode = "enterMaintenanceMode" + RelExitMaintenanceMode = "exitMaintenanceMode" + RelTask = "task" + RelTaskOwner = "task:owner" + RelPreviousPage = "previousPage" + RelNextPage = "nextPage" + RelFirstPage = "firstPage" + RelLastPage = "lastPage" + RelInstallVMWareTools = "installVmwareTools" + RelConsolidate = "consolidate" + RelEntity = "entity" + RelEntityResolver = "entityResolver" + RelRelocate = "relocate" + RelBlockingTasks = "blockingTasks" + RelUpdateProgress = "updateProgress" + RelSyncSyslogSettings = "syncSyslogSettings" + RelTakeOwnership = "takeOwnership" + RelUnlock = "unlock" + RelShadowVMs = "shadowVms" + RelTest = "test" + RelUpdateResourcePools = "update:resourcePools" + RelRemoveForce = "remove:force" + RelStorageClass = "storageProfile" + RelRefreshStorageClasses = "refreshStorageProfile" + RelRefreshVirtualCenter = "refreshVirtualCenter" + RelCheckCompliance = "checkCompliance" + RelForceFullCustomization = "customizeAtNextPowerOn" + RelReloadFromVC = "reloadFromVc" + RelMetricsDayView = "interval:day" + RelMetricsWeekView = "interval:week" + RelMetricsMonthView = "interval:month" + RelMetricsYearView = "interval:year" + RelMetricsPreviousRange = "range:previous" + RelMetricsNextRange = "range:next" + RelMetricsLatestRange = "range:latest" + RelRights = "rights" + RelMigratVMs = "migrateVms" + RelResourcePoolVMList = "resourcePoolVmList" + RelCreateEvent = "event:create" + RelCreateTask = "task:create" + RelUploadBundle = "bundle:upload" + RelCleanupBundles = "bundles:cleanup" + RelAuthorizationCheck = "authorization:check" + RelCleanupRights = "rights:cleanup" + + RelEdgeGatewayRedeploy = "edgeGateway:redeploy" + RelEdgeGatewayReapplyServices = "edgeGateway:reapplyServices" + RelEdgeGatewayConfigureServices = "edgeGateway:configureServices" + RelEdgeGatewayConfigureSyslog = "edgeGateway:configureSyslogServerSettings" + RelEdgeGatewaySyncSyslogSettings = "edgeGateway:syncSyslogSettings" + RelEdgeGatewayUpgrade = "edgeGateway:upgrade" + RelEdgeGatewayUpgradeNetworking = "edgeGateway:convertToAdvancedNetworking" + RelVDCManageFirewall = "manageFirewall" + + RelCertificateUpdate = "certificate:update" + RelCertificateReset = "certificate:reset" + RelTruststoreUpdate = "truststore:update" + RelTruststoreReset = "truststore:reset" + RelKeyStoreUpdate = "keystore:update" + RelKeystoreReset = "keystore:reset" + RelKeytabUpdate = "keytab:update" + RelKeytabReset = "keytab:reset" + + RelServiceLinks = "down:serviceLinks" + RelAPIFilters = "down:apiFilters" + RelResourceClasses = "down:resourceClasses" + RelResourceClassActions = "down:resourceClassActions" + RelServices = "down:services" + RelACLRules = "down:aclRules" + RelFileDescriptors = "down:fileDescriptors" + RelAPIDefinitions = "down:apiDefinitions" + RelServiceResources = "down:serviceResources" + RelExtensibility = "down:extensibility" + RelAPIServiceQuery = "down:service" + RelAPIDefinitionsQuery = "down:apidefinitions" + RelAPIFilesQuery = "down:files" + RelServiceOfferings = "down:serviceOfferings" + RelServiceOfferingInstances = "down:serviceOfferingInstances" + RelHybrid = "down:hybrid" + + RelServiceRefresh = "service:refresh" + RelServiceAssociate = "service:associate" + RelServiceDisassociate = "service:disassociate" + + RelReconfigureVM = "reconfigureVM" + + RelOrgVDCGateways = "edgeGateways" + RelOrgVDCNetworks = "orgVdcNetworks" + + RelHybridAcquireControlTicket = "hybrid:acquireControlTicket" + RelHybridAcquireTicket = "hybrid:acquireTicket" + RelHybridRefreshTunnel = "hybrid:refreshTunnel" + + RelMetrics = "metrics" + + RelFederationRegenerateCertificate = "federation:regenerateFederationCertificate" + RelTemplateInstantiate = "instantiate" +) diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/nsxt_types.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/nsxt_types.go new file mode 100644 index 000000000..8b705fa93 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/nsxt_types.go @@ -0,0 +1,1108 @@ +package types + +// OpenAPIEdgeGateway structure supports marshalling both - NSX-V and NSX-T edge gateways as returned by OpenAPI +// endpoint (cloudapi/1.0.0edgeGateways/), but the endpoint only allows users to create NSX-T edge gateways. +type OpenAPIEdgeGateway struct { + Status string `json:"status,omitempty"` + ID string `json:"id,omitempty"` + // Name of edge gateway + Name string `json:"name"` + // Description of edge gateway + Description string `json:"description"` + // OwnerRef defines Org VDC or VDC Group that this network belongs to. If the ownerRef is set to a VDC Group, this + // network will be available across all the VDCs in the vDC Group. If the VDC Group is backed by a NSX-V network + // provider, the Org VDC network is automatically connected to the distributed router associated with the VDC Group + // and the "connection" field does not need to be set. For API version 35.0 and above, this field should be set for + // network creation. + OwnerRef *OpenApiReference `json:"ownerRef,omitempty"` + // OrgVdc holds the organization vDC or vDC Group that this edge gateway belongs to. If the ownerRef is set to a VDC + // Group, this gateway will be available across all the participating Organization vDCs in the VDC Group. + OrgVdc *OpenApiReference `json:"orgVdc,omitempty"` + // Org holds the organization to which the gateway belongs. + Org *OpenApiReference `json:"orgRef,omitempty"` + // EdgeGatewayUplink defines uplink connections for the edge gateway. + EdgeGatewayUplinks []EdgeGatewayUplinks `json:"edgeGatewayUplinks"` + // DistributedRoutingEnabled is a flag indicating whether distributed routing is enabled or not. The default is false. + DistributedRoutingEnabled *bool `json:"distributedRoutingEnabled,omitempty"` + // EdgeClusterConfig holds Edge Cluster Configuration for the Edge Gateway. Can be specified if a gateway needs to be + // placed on a specific set of Edge Clusters. For NSX-T Edges, user should specify the ID of the NSX-T edge cluster as + // the value of primaryEdgeCluster's backingId. The gateway defaults to the Edge Cluster of the connected External + // Network's backing Tier-0 router, if nothing is specified. + // + // Note. The value of secondaryEdgeCluster will be set to NULL for NSX-T edge gateways. For NSX-V Edges, this is + // read-only and the legacy API must be used for edge specific placement. + EdgeClusterConfig *OpenAPIEdgeGatewayEdgeClusterConfig `json:"edgeClusterConfig,omitempty"` + // OrgVdcNetworkCount holds the number of Org VDC networks connected to the gateway. + OrgVdcNetworkCount *int `json:"orgVdcNetworkCount,omitempty"` + // GatewayBacking must contain backing details of the edge gateway only if importing an NSX-T router. + GatewayBacking *OpenAPIEdgeGatewayBacking `json:"gatewayBacking,omitempty"` + + // ServiceNetworkDefinition holds network definition in CIDR form that DNS and DHCP service on an NSX-T edge will run + // on. The subnet prefix length must be 27. This property applies to creating or importing an NSX-T Edge. This is not + // supported for VMC. If nothing is set, the default is 192.168.255.225/27. The DHCP listener IP network is on + // 192.168.255.225/30. The DNS listener IP network is on 192.168.255.228/32. This field cannot be updated. + ServiceNetworkDefinition string `json:"serviceNetworkDefinition,omitempty"` +} + +// EdgeGatewayUplink defines uplink connections for the edge gateway. +type EdgeGatewayUplinks struct { + // UplinkID contains ID of external network + UplinkID string `json:"uplinkId,omitempty"` + // UplinkID contains Name of external network + UplinkName string `json:"uplinkName,omitempty"` + // Subnets contain subnets to be used on edge gateway + Subnets OpenAPIEdgeGatewaySubnets `json:"subnets,omitempty"` + Connected bool `json:"connected,omitempty"` + // QuickAddAllocatedIPCount allows users to allocate additional IPs during update + QuickAddAllocatedIPCount int `json:"quickAddAllocatedIpCount,omitempty"` + // Dedicated defines if the external network is dedicated. Dedicating the External Network will enable Route + // Advertisement for this Edge Gateway + Dedicated bool `json:"dedicated,omitempty"` +} + +// OpenApiIPRanges is a type alias to reuse the same definitions with appropriate names +type OpenApiIPRanges = ExternalNetworkV2IPRanges + +// OpenApiIPRangeValues is a type alias to reuse the same definitions with appropriate names +type OpenApiIPRangeValues = ExternalNetworkV2IPRange + +// OpenAPIEdgeGatewaySubnets lists slice of OpenAPIEdgeGatewaySubnetValue values +type OpenAPIEdgeGatewaySubnets struct { + Values []OpenAPIEdgeGatewaySubnetValue `json:"values"` +} + +// OpenAPIEdgeGatewaySubnetValue holds one subnet definition in external network +type OpenAPIEdgeGatewaySubnetValue struct { + // Gateway specified subnet gateway + Gateway string `json:"gateway"` + // PrefixLength from CIDR format (e.g. 24 from 192.168.1.1/24) + PrefixLength int `json:"prefixLength"` + // DNSSuffix can only be used for reading NSX-V edge gateway + DNSSuffix string `json:"dnsSuffix,omitempty"` + // DNSServer1 can only be used for reading NSX-V edge gateway + DNSServer1 string `json:"dnsServer1,omitempty"` + // DNSServer2 can only be used for reading NSX-V edge gateway + DNSServer2 string `json:"dnsServer2,omitempty"` + // IPRanges contain IP allocations + IPRanges *OpenApiIPRanges `json:"ipRanges,omitempty"` + // Enabled toggles if the subnet is enabled + Enabled bool `json:"enabled"` + TotalIPCount int `json:"totalIpCount,omitempty"` + UsedIPCount int `json:"usedIpCount,omitempty"` + PrimaryIP string `json:"primaryIp,omitempty"` + AutoAllocateIPRanges bool `json:"autoAllocateIpRanges,omitempty"` +} + +// OpenAPIEdgeGatewayBacking specifies edge gateway backing details +type OpenAPIEdgeGatewayBacking struct { + BackingID string `json:"backingId,omitempty"` + GatewayType string `json:"gatewayType,omitempty"` + NetworkProvider NetworkProvider `json:"networkProvider"` +} + +// OpenAPIEdgeGatewayEdgeCluster allows users to specify edge cluster reference +type OpenAPIEdgeGatewayEdgeCluster struct { + EdgeClusterRef OpenApiReference `json:"edgeClusterRef"` + BackingID string `json:"backingId"` +} + +type OpenAPIEdgeGatewayEdgeClusterConfig struct { + PrimaryEdgeCluster OpenAPIEdgeGatewayEdgeCluster `json:"primaryEdgeCluster,omitempty"` + SecondaryEdgeCluster OpenAPIEdgeGatewayEdgeCluster `json:"secondaryEdgeCluster,omitempty"` +} + +// OpenApiOrgVdcNetwork allows users to manage Org Vdc networks +type OpenApiOrgVdcNetwork struct { + ID string `json:"id,omitempty"` + Name string `json:"name"` + Description string `json:"description"` + Status string `json:"status,omitempty"` + // OwnerRef defines Org VDC or VDC Group that this network belongs to. If the ownerRef is set to a VDC Group, this + // network will be available across all the VDCs in the vDC Group. If the VDC Group is backed by a NSX-V network + // provider, the Org VDC network is automatically connected to the distributed router associated with the VDC Group + // and the "connection" field does not need to be set. For API version 35.0 and above, this field should be set for + // network creation. + // + // Note. In lower API versions (i.e. 32.0) this field is not recognized and OrgVdc should be used instead + OwnerRef *OpenApiReference `json:"ownerRef,omitempty"` + + OrgVdc *OpenApiReference `json:"orgVdc,omitempty"` + + // NetworkType describes type of Org Vdc network. ('NAT_ROUTED', 'ISOLATED') + NetworkType string `json:"networkType"` + + // Connection specifies the edge gateway this network is connected to. + // + // Note. When NetworkType == ISOLATED, there is no uplink connection. + Connection *Connection `json:"connection,omitempty"` + + // backingNetworkId contains the NSX ID of the backing network. + BackingNetworkId string `json:"backingNetworkId,omitempty"` + // backingNetworkType contains object type of the backing network. ('VIRTUAL_WIRE' for NSX-V, 'NSXT_FLEXIBLE_SEGMENT' + // for NSX-T) + BackingNetworkType string `json:"backingNetworkType,omitempty"` + + // ParentNetwork should have external network ID specified when creating NSX-V direct network + ParentNetwork *OpenApiReference `json:"parentNetworkId"` + + // GuestVlanTaggingAllowed specifies whether guest VLAN tagging is allowed + GuestVlanTaggingAllowed *bool `json:"guestVlanTaggingAllowed"` + + // Subnets contains list of subnets defined on + Subnets OrgVdcNetworkSubnets `json:"subnets"` + + // SecurityGroups defines a list of firewall groups of type SECURITY_GROUP that are assigned to the Org VDC Network. + // These groups can then be used in firewall rules to protect the Org VDC Network and allow/deny traffic. + SecurityGroups *OpenApiReferences `json:"securityGroups,omitempty"` + + // RouteAdvertised reports if this network is advertised so that it can be routed out to the external networks. This + // applies only to network backed by NSX-T. Value will be unset if route advertisement is not applicable. + RouteAdvertised *bool `json:"routeAdvertised,omitempty"` + + // TotalIpCount is a read only attribute reporting total number of IPs available in network + TotalIpCount *int `json:"totalIpCount"` + + // UsedIpCount is a read only attribute reporting number of used IPs in network + UsedIpCount *int `json:"usedIpCount"` + + // Shared shares network with other VDCs in the organization + Shared *bool `json:"shared,omitempty"` +} + +// OrgVdcNetworkSubnetIPRanges is a type alias to reuse the same definitions with appropriate names +type OrgVdcNetworkSubnetIPRanges = ExternalNetworkV2IPRanges + +// OrgVdcNetworkSubnetIPRangeValues is a type alias to reuse the same definitions with appropriate names +type OrgVdcNetworkSubnetIPRangeValues = ExternalNetworkV2IPRange + +//OrgVdcNetworkSubnets +type OrgVdcNetworkSubnets struct { + Values []OrgVdcNetworkSubnetValues `json:"values"` +} + +type OrgVdcNetworkSubnetValues struct { + Gateway string `json:"gateway"` + PrefixLength int `json:"prefixLength"` + DNSServer1 string `json:"dnsServer1"` + DNSServer2 string `json:"dnsServer2"` + DNSSuffix string `json:"dnsSuffix"` + IPRanges OrgVdcNetworkSubnetIPRanges `json:"ipRanges"` +} + +// Connection specifies the edge gateway this network is connected to +type Connection struct { + RouterRef OpenApiReference `json:"routerRef"` + ConnectionType string `json:"connectionType,omitempty"` +} + +// NsxtImportableSwitch is a type alias with better name for holding NSX-T Segments (Logical Switches) which can be used +// to back NSX-T imported Org VDC network +type NsxtImportableSwitch = OpenApiReference + +// OpenApiOrgVdcNetworkDhcp allows users to manage DHCP configuration for Org VDC networks by using OpenAPI endpoint +type OpenApiOrgVdcNetworkDhcp struct { + Enabled *bool `json:"enabled,omitempty"` + LeaseTime *int `json:"leaseTime,omitempty"` + DhcpPools []OpenApiOrgVdcNetworkDhcpPools `json:"dhcpPools,omitempty"` + // Mode describes how the DHCP service is configured for this network. Once a DHCP service has been created, the mode + // attribute cannot be changed. The mode field will default to 'EDGE' if it is not provided. This field only applies + // to networks backed by an NSX-T network provider. + // + // The supported values are EDGE (default) and NETWORK. + // * If EDGE is specified, the DHCP service of the edge is used to obtain DHCP IPs. + // * If NETWORK is specified, a DHCP server is created for use by this network. (To use NETWORK + // + // In order to use DHCP for IPV6, NETWORK mode must be used. Routed networks which are using NETWORK DHCP services can + // be disconnected from the edge gateway and still retain their DHCP configuration, however network using EDGE DHCP + // cannot be disconnected from the gateway until DHCP has been disabled. + Mode string `json:"mode,omitempty"` + // IPAddress is only applicable when mode=NETWORK. This will specify IP address of DHCP server in network. + IPAddress string `json:"ipAddress,omitempty"` +} + +// OpenApiOrgVdcNetworkDhcpIpRange is a type alias to fit naming +type OpenApiOrgVdcNetworkDhcpIpRange = ExternalNetworkV2IPRange + +type OpenApiOrgVdcNetworkDhcpPools struct { + // Enabled defines if the DHCP pool is enabled or not + Enabled *bool `json:"enabled,omitempty"` + // IPRange holds IP ranges + IPRange OpenApiOrgVdcNetworkDhcpIpRange `json:"ipRange"` + // MaxLeaseTime is the maximum lease time that can be accepted on clients request + // This applies for NSX-V Isolated network + MaxLeaseTime *int `json:"maxLeaseTime,omitempty"` + // DefaultLeaseTime is the lease time that clients get if they do not specify particular lease time + // This applies for NSX-V Isolated network + DefaultLeaseTime *int `json:"defaultLeaseTime,omitempty"` +} + +// NsxtFirewallGroup allows users to set either SECURITY_GROUP or IP_SET which is defined by Type field. +// SECURITY_GROUP (constant types.FirewallGroupTypeSecurityGroup) is a dynamic structure which +// allows users to add Routed Org VDC networks +// +// IP_SET (constant FirewallGroupTypeIpSet) allows users to enter static IPs and later on firewall rules +// can be created both of these objects +// +// When the type is SECURITY_GROUP 'Members' field is used to specify Org VDC networks +// When the type is IP_SET 'IpAddresses' field is used to specify IP addresses or ranges +// field is used +type NsxtFirewallGroup struct { + // ID contains Firewall Group ID (URN format) + // e.g. urn:vcloud:firewallGroup:d7f4e0b4-b83f-4a07-9f22-d242c9c0987a + ID string `json:"id"` + // Name of Firewall Group. Name are unique per 'Type'. There cannot be two SECURITY_GROUP or two + // IP_SET objects with the same name, but there can be one object of Type SECURITY_GROUP and one + // of Type IP_SET named the same. + Name string `json:"name"` + Description string `json:"description"` + // IP Addresses included in the group. This is only applicable for IP_SET Firewall Groups. This + // can support IPv4 and IPv6 addresses in single, range, and CIDR formats. + // E.g [ + // "12.12.12.1", + // "10.10.10.0/24", + // "11.11.11.1-11.11.11.2", + // "2001:db8::/48", + // "2001:db6:0:0:0:0:0:0-2001:db6:0:ffff:ffff:ffff:ffff:ffff", + // ], + IpAddresses []string `json:"ipAddresses,omitempty"` + + // Members define list of Org VDC networks belonging to this Firewall Group (only for Security + // groups ) + Members []OpenApiReference `json:"members,omitempty"` + + // OwnerRef replaces EdgeGatewayRef in API V35.0+ and can accept both - NSX-T Edge Gateway or a + // VDC group ID + // Sample VDC Group URN - urn:vcloud:vdcGroup:89a53000-ef41-474d-80dc-82431ff8a020 + // Sample Edge Gateway URN - urn:vcloud:gateway:71df3e4b-6da9-404d-8e44-0865751c1c38 + // + // Note. Using API V34.0 Firewall Groups can be created for VDC groups, but on a GET operation + // there will be no VDC group ID returned. + OwnerRef *OpenApiReference `json:"ownerRef,omitempty"` + + // EdgeGatewayRef is a deprecated field (use OwnerRef) for setting value, but during read the + // value is only populated in this field (not OwnerRef) + EdgeGatewayRef *OpenApiReference `json:"edgeGatewayRef,omitempty"` + + // Type is either SECURITY_GROUP or IP_SET + Type string `json:"type"` +} + +// NsxtFirewallGroupMemberVms is a structure to read NsxtFirewallGroup associated VMs when its type +// is SECURITY_GROUP +type NsxtFirewallGroupMemberVms struct { + VmRef *OpenApiReference `json:"vmRef"` + // VappRef will be empty if it is a standalone VM (although hidden vApp exists) + VappRef *OpenApiReference `json:"vappRef"` + VdcRef *OpenApiReference `json:"vdcRef"` + OrgRef *OpenApiReference `json:"orgRef"` +} + +// NsxtFirewallRule defines single NSX-T Firewall Rule +type NsxtFirewallRule struct { + // ID contains UUID (e.g. d0bf5d51-f83a-489a-9323-1661024874b8) + ID string `json:"id,omitempty"` + // Name - API does not enforce uniqueness + Name string `json:"name"` + // Action 'ALLOW', 'DROP' + Action string `json:"action"` + // Enabled allows to enable or disable the rule + Enabled bool `json:"enabled"` + // SourceFirewallGroups contains a list of references to Firewall Groups. Empty list means 'Any' + SourceFirewallGroups []OpenApiReference `json:"sourceFirewallGroups,omitempty"` + // DestinationFirewallGroups contains a list of references to Firewall Groups. Empty list means 'Any' + DestinationFirewallGroups []OpenApiReference `json:"destinationFirewallGroups,omitempty"` + // ApplicationPortProfiles contains a list of references to Application Port Profiles. Empty list means 'Any' + ApplicationPortProfiles []OpenApiReference `json:"applicationPortProfiles,omitempty"` + // IpProtocol 'IPV4', 'IPV6', 'IPV4_IPV6' + IpProtocol string `json:"ipProtocol"` + Logging bool `json:"logging"` + // Direction 'IN_OUT', 'OUT', 'IN' + Direction string `json:"direction"` + // Version of firewall rule. Must not be set when creating. + Version *struct { + // Version is incremented after each update + Version *int `json:"version,omitempty"` + } `json:"version,omitempty"` +} + +// NsxtFirewallRuleContainer wraps NsxtFirewallRule for user-defined and default and system Firewall Rules suitable for +// API. Only UserDefinedRules are writeable. Others are read-only. +type NsxtFirewallRuleContainer struct { + // SystemRules contain ordered list of system defined edge firewall rules. System rules are applied before user + // defined rules in the order in which they are returned. + SystemRules []*NsxtFirewallRule `json:"systemRules"` + // DefaultRules contain ordered list of user defined edge firewall rules. Users are allowed to add/modify/delete rules + // only to this list. + DefaultRules []*NsxtFirewallRule `json:"defaultRules"` + // UserDefinedRules ordered list of default edge firewall rules. Default rules are applied after the user defined + // rules in the order in which they are returned. + UserDefinedRules []*NsxtFirewallRule `json:"userDefinedRules"` +} + +// NsxtAppPortProfile allows user to set custom application port definitions so that these can later be used +// in NSX-T Firewall rules in combination with IP Sets and Security Groups. +type NsxtAppPortProfile struct { + ID string `json:"id,omitempty"` + // Name must be unique per Scope + Name string `json:"name,omitempty"` + Description string `json:"description,omitempty"` + // ApplicationPorts contains one or more protocol and port definitions + ApplicationPorts []NsxtAppPortProfilePort `json:"applicationPorts,omitempty"` + // OrgRef must contain at least Org ID when SCOPE==TENANT + OrgRef *OpenApiReference `json:"orgRef,omitempty"` + // ContextEntityId must contain: + // * NSX-T Manager URN (when scope==PROVIDER) + // * VDC or VDC Group ID (when scope==TENANT) + ContextEntityId string `json:"contextEntityId,omitempty"` + // Scope can be one of the following: + // * SYSTEM - Read-only (The ones that are provided by SYSTEM). Constant `types.ApplicationPortProfileScopeSystem` + // * PROVIDER - Created by Provider on a particular network provider (NSX-T manager). Constant `types.ApplicationPortProfileScopeProvider` + // * TENANT (Created by Tenant at Org VDC level). Constant `types.ApplicationPortProfileScopeTenant` + // + // When scope==PROVIDER: + // OrgRef is not required + // ContextEntityId must have NSX-T Managers URN + // When scope==TENANT + // OrgRef ID must be specified + // ContextEntityId must be set to VDC or VDC group URN + Scope string `json:"scope,omitempty"` +} + +// NsxtAppPortProfilePort allows user to set protocol and one or more ports +type NsxtAppPortProfilePort struct { + // Protocol can be one of the following: + // * "ICMPv4" + // * "ICMPv6" + // * "TCP" + // * "UDP" + Protocol string `json:"protocol"` + // DestinationPorts is optional, but can define list of ports ("1000", "1500") or port ranges ("1200-1400") + DestinationPorts []string `json:"destinationPorts,omitempty"` +} + +// NsxtNatRule describes a single NAT rule of 4 diferent RuleTypes - DNAT`, `NO_DNAT`, `SNAT`, `NO_SNAT`. +// +// A SNAT or a DNAT rule on an Edge Gateway in the VMware Cloud Director environment, you always configure the rule +// from the perspective of your organization VDC. +// DNAT and NO_DNAT - outside traffic going inside +// SNAT and NO_SNAT - inside traffic going outside +// More docs in https://docs.vmware.com/en/VMware-Cloud-Director/10.2/VMware-Cloud-Director-Tenant-Portal-Guide/GUID-9E43E3DC-C028-47B3-B7CA-59F0ED40E0A6.html +type NsxtNatRule struct { + ID string `json:"id,omitempty"` + // Name holds a meaningful name for the rule. (API does not enforce uniqueness) + Name string `json:"name"` + // Description holds optional description for the rule + Description string `json:"description"` + // Enabled defines if the rule is active + Enabled bool `json:"enabled"` + + // RuleType - one of the following: `DNAT`, `NO_DNAT`, `SNAT`, `NO_SNAT` + // * An SNAT rule translates an internal IP to an external IP and is used for outbound traffic + // * A NO SNAT rule prevents the translation of the internal IP address of packets sent from an organization VDC out + // to an external network or to another organization VDC network. + // * A DNAT rule translates the external IP to an internal IP and is used for inbound traffic. + // * A NO DNAT rule prevents the translation of the external IP address of packets received by an organization VDC + // from an external network or from another organization VDC network. + // Deprecated in API V36.0 + RuleType string `json:"ruleType,omitempty"` + // Type replaces RuleType in V36.0 and adds a new Rule - REFLEXIVE + Type string `json:"type,omitempty"` + + // ExternalAddresses + // * SNAT - enter the public IP address of the edge gateway for which you are configuring the SNAT rule. + // * NO_SNAT - leave empty (but field cannot be skipped at all, therefore it does not have 'omitempty' tag) + // + // * DNAT - public IP address of the edge gateway for which you are configuring the DNAT rule. The IP + // addresses that you enter must belong to the suballocated IP range of the edge gateway. + // * NO_DNAT - leave empty + ExternalAddresses string `json:"externalAddresses"` + + // InternalAddresses + // * SNAT - the IP address or a range of IP addresses of the virtual machines for which you are configuring SNAT, so + // that they can send traffic to the external network. + // + // * DNAT - enter the IP address or a range of IP addresses of the virtual machines for which you are configuring + // DNAT, so that they can receive traffic from the external network. + // * NO_DNAT - leave empty + InternalAddresses string `json:"internalAddresses"` + ApplicationPortProfile *OpenApiReference `json:"applicationPortProfile,omitempty"` + + // InternalPort specifies port number or port range for incoming network traffic. If Any Traffic is selected for the + // Application Port Profile, the default internal port is "ANY". + // Deprecated since API V35.0 and is replaced by DnatExternalPort + InternalPort string `json:"internalPort,omitempty"` + + // DnatExternalPort can set a port into which the DNAT rule is translating for the packets inbound to the virtual + // machines. + DnatExternalPort string `json:"dnatExternalPort,omitempty"` + + // SnatDestinationAddresses applies only for RuleTypes `SNAT`, `NO_SNAT` + // If you want the rule to apply only for traffic to a specific domain, enter an IP address for this domain or an IP + // address range in CIDR format. If you leave this text box blank, the SNAT rule applies to all destinations outside + // of the local subnet. + SnatDestinationAddresses string `json:"snatDestinationAddresses,omitempty"` + + // Logging enabled or disabled logging of that rule + Logging bool `json:"logging"` + + // Below two fields are only supported in VCD 10.2.2+ (API v35.2) + + // FirewallMatch determines how the firewall matches the address during NATing if firewall stage is not skipped. + // * MATCH_INTERNAL_ADDRESS indicates the firewall will be applied to internal address of a NAT rule. For SNAT, the + // internal address is the original source address before NAT is done. For DNAT, the internal address is the translated + // destination address after NAT is done. For REFLEXIVE, to egress traffic, the internal address is the original + // source address before NAT is done; to ingress traffic, the internal address is the translated destination address + // after NAT is done. + // * MATCH_EXTERNAL_ADDRESS indicates the firewall will be applied to external address of a NAT rule. For SNAT, the + // external address is the translated source address after NAT is done. For DNAT, the external address is the original + // destination address before NAT is done. For REFLEXIVE, to egress traffic, the external address is the translated + // internal address after NAT is done; to ingress traffic, the external address is the original destination address + // before NAT is done. + // * BYPASS firewall stage will be skipped. + FirewallMatch string `json:"firewallMatch,omitempty"` + // Priority helps to select rule with highest priority if an address has multiple NAT rules. A lower value means a + // higher precedence for this rule. Maximum value 2147481599 + Priority *int `json:"priority,omitempty"` + + // Version of NAT rule. Must not be set when creating. + Version *struct { + // Version is incremented after each update + Version *int `json:"version,omitempty"` + } `json:"version,omitempty"` +} + +// NsxtIpSecVpnTunnel defines the IPsec VPN Tunnel configuration +// Some of the fields like AuthenticationMode and ConnectorInitiationMode are meant for future, because they have only +// one default value at the moment. +type NsxtIpSecVpnTunnel struct { + // ID unique for IPsec VPN tunnel. On updates, the ID is required for the tunnel, while for create a new ID will be + // generated. + ID string `json:"id,omitempty"` + // Name for the IPsec VPN Tunnel + Name string `json:"name"` + // Description for the IPsec VPN Tunnel + Description string `json:"description,omitempty"` + // Enabled describes whether the IPsec VPN Tunnel is enabled or not. The default is true. + Enabled bool `json:"enabled"` + // LocalEndpoint which corresponds to the Edge Gateway the IPsec VPN Tunnel is being configured on. Local Endpoint + // requires an IP. That IP must be sub-allocated to the edge gateway + LocalEndpoint NsxtIpSecVpnTunnelLocalEndpoint `json:"localEndpoint"` + // RemoteEndpoint corresponds to the device on the remote site terminating the VPN tunnel + RemoteEndpoint NsxtIpSecVpnTunnelRemoteEndpoint `json:"remoteEndpoint"` + // PreSharedKey is key used for authentication. It must be the same on the other end of IPsec VPN Tunnel + PreSharedKey string `json:"preSharedKey"` + // SecurityType is the security type used for the IPsec VPN Tunnel. If nothing is specified, this will be set to + // DEFAULT in which the default settings in NSX will be used. For custom settings, one should use the + // NsxtIpSecVpnTunnelSecurityProfile and UpdateTunnelConnectionProperties(), GetTunnelConnectionProperties() endpoint to + // specify custom settings. The security type will then appropriately reflect itself as CUSTOM. + // To revert back to system default, this field must be set to "DEFAULT" + SecurityType string `json:"securityType,omitempty"` + // Logging sets whether logging for the tunnel is enabled or not. The default is false. + Logging bool `json:"logging"` + + // AuthenticationMode is authentication mode this IPsec tunnel will use to authenticate with the peer endpoint. The + // default is a pre-shared key (PSK). + // * PSK - A known key is shared between each site before the tunnel is established. + // * CERTIFICATE - Incoming connections are required to present an identifying digital certificate, which VCD verifies + // has been signed by a trusted certificate authority. + // + // Note. Up to version 10.3 VCD only supports PSK + AuthenticationMode string `json:"authenticationMode,omitempty"` + + // ConnectorInitiationMode is the mode used by the local endpoint to establish an IKE Connection with the remote site. + // The default is INITIATOR. + // Possible values are: INITIATOR , RESPOND_ONLY , ON_DEMAND + // + // Note. Up to version 10.3 VCD only supports INITIATOR + ConnectorInitiationMode string `json:"connectorInitiationMode,omitempty"` + + // Version of IPsec VPN Tunnel configuration. Must not be set when creating, but required for updates + Version *struct { + // Version is incremented after each update + Version *int `json:"version,omitempty"` + } `json:"version,omitempty"` +} + +// NsxtIpSecVpnTunnelLocalEndpoint which corresponds to the Edge Gateway the IPsec VPN Tunnel is being configured on. +// Local Endpoint requires an IP. That IP must be sub-allocated to the edge gateway +type NsxtIpSecVpnTunnelLocalEndpoint struct { + // LocalId is the optional local identifier for the endpoint. It is usually the same as LocalAddress + LocalId string `json:"localId,omitempty"` + // LocalAddress is the IPv4 Address for the endpoint. This has to be a sub-allocated IP on the Edge Gateway. This is + // required + LocalAddress string `json:"localAddress"` + // LocalNetworks is the list of local networks. These must be specified in normal Network CIDR format. At least one is + // required + LocalNetworks []string `json:"localNetworks,omitempty"` +} + +// NsxtIpSecVpnTunnelRemoteEndpoint corresponds to the device on the remote site terminating the VPN tunnel +type NsxtIpSecVpnTunnelRemoteEndpoint struct { + // RemoteId is needed to uniquely identify the peer site. If this tunnel is using PSK authentication, + // the Remote ID is the public IP Address of the remote device terminating the VPN Tunnel. When NAT is configured on + // the Remote ID, enter the private IP Address of the Remote Site. If the remote ID is not set, VCD will set the + // remote ID to the remote address. + RemoteId string `json:"remoteId,omitempty"` + // RemoteAddress is IPv4 Address of the remote endpoint on the remote site. This is the Public IPv4 Address of the + // remote device terminating the IPsec VPN Tunnel connection. This is required + RemoteAddress string `json:"remoteAddress"` + // RemoteNetworks is the list of remote networks. These must be specified in normal Network CIDR format. + // Specifying no value is interpreted as 0.0.0.0/0 + RemoteNetworks []string `json:"remoteNetworks,omitempty"` +} + +// NsxtIpSecVpnTunnelStatus helps to read IPsec VPN Tunnel Status +type NsxtIpSecVpnTunnelStatus struct { + // TunnelStatus gives the overall IPsec VPN Tunnel Status. If IKE is properly set and the tunnel is up, the tunnel + // status will be UP + TunnelStatus string `json:"tunnelStatus"` + IkeStatus struct { + // IkeServiceStatus status for the actual IKE Session for the given tunnel. + IkeServiceStatus string `json:"ikeServiceStatus"` + // FailReason contains more details of failure if the IKE service is not UP + FailReason string `json:"failReason"` + } `json:"ikeStatus"` +} + +// NsxtIpSecVpnTunnelSecurityProfile specifies the given security profile/connection properties of a given IP Sec VPN +// Tunnel, such as Dead Probe Interval and IKE settings. If a security type is set to 'CUSTOM', then ike, tunnel, and/or +// dpd configurations can be specified. Otherwise, those fields are read only and are set to the values based on the +// specific security type. +type NsxtIpSecVpnTunnelSecurityProfile struct { + // SecurityType is the security type used for the IPSec Tunnel. If nothing is specified, this will be set to DEFAULT + // in which the default settings in NSX will be used. If CUSTOM is specified, then IKE, Tunnel, and DPD + // configurations can be set. + // To "RESET" configuration to DEFAULT, the NsxtIpSecVpnTunnel.SecurityType field should be changed instead of this + SecurityType string `json:"securityType,omitempty"` + // IkeConfiguration is the IKE Configuration to be used for the tunnel. If nothing is explicitly set, the system + // defaults will be used. + IkeConfiguration NsxtIpSecVpnTunnelProfileIkeConfiguration `json:"ikeConfiguration,omitempty"` + // TunnelConfiguration contains parameters such as encryption algorithm to be used. If nothing is explicitly set, + // the system defaults will be used. + TunnelConfiguration NsxtIpSecVpnTunnelProfileTunnelConfiguration `json:"tunnelConfiguration,omitempty"` + // DpdConfiguration contains Dead Peer Detection configuration. If nothing is explicitly set, the system defaults + // will be used. + DpdConfiguration NsxtIpSecVpnTunnelProfileDpdConfiguration `json:"dpdConfiguration,omitempty"` +} + +// NsxtIpSecVpnTunnelProfileIkeConfiguration is the Internet Key Exchange (IKE) profiles provide information about the +// algorithms that are used to authenticate, encrypt, and establish a shared secret between network sites when you +// establish an IKE tunnel. +// +// Note. While quite a few fields accepts a []string it actually supports single values only. +type NsxtIpSecVpnTunnelProfileIkeConfiguration struct { + // IkeVersion IKE Protocol Version to use. + // The default is IKE_V2. + // + // Possible values are: IKE_V1 , IKE_V2 , IKE_FLEX + IkeVersion string `json:"ikeVersion"` + // EncryptionAlgorithms contains list of Encryption algorithms for IKE. This is used during IKE negotiation. + // Default is AES_128. + // + // Possible values are: AES_128 , AES_256 , AES_GCM_128 , AES_GCM_192 , AES_GCM_256 + EncryptionAlgorithms []string `json:"encryptionAlgorithms"` + // DigestAlgorithms contains list of Digest algorithms - secure hashing algorithms to use during the IKE negotiation. + // + // Default is SHA2_256. + // + // Possible values are: SHA1 , SHA2_256 , SHA2_384 , SHA2_512 + DigestAlgorithms []string `json:"digestAlgorithms"` + // DhGroups contains list of Diffie-Hellman groups to be used if Perfect Forward Secrecy is enabled. These are + // cryptography schemes that allows the peer site and the edge gateway to establish a shared secret over an insecure + // communications channel + // + // Default is GROUP14. + // + // Possible values are: GROUP2, GROUP5, GROUP14, GROUP15, GROUP16, GROUP19, GROUP20, GROUP21 + DhGroups []string `json:"dhGroups"` + // SaLifeTime is the Security Association life time in seconds. It is number of seconds before the IPsec tunnel needs + // to reestablish + // + // Default is 86400 seconds (1 day). + SaLifeTime *int `json:"saLifeTime"` +} + +// NsxtIpSecVpnTunnelProfileTunnelConfiguration adjusts IPsec VPN Tunnel settings +// +// Note. While quite a few fields accepts a []string it actually supports single values only. +type NsxtIpSecVpnTunnelProfileTunnelConfiguration struct { + // PerfectForwardSecrecyEnabled enabled or disabled. PFS (Perfect Forward Secrecy) ensures the same key will not be + // generated and used again, and because of this, the VPN peers negotiate a new Diffie-Hellman key exchange. This + // would ensure if a hacker\criminal was to compromise the private key, they would only be able to access data in + // transit protected by that key. Any future data will not be compromised, as future data would not be associated + // with that compromised key. Both sides of the VPN must be able to support PFS in order for PFS to work. + // + // The default value is true. + PerfectForwardSecrecyEnabled bool `json:"perfectForwardSecrecyEnabled"` + // DfPolicy Policy for handling defragmentation bit. The default is COPY. + // + // Possible values are: COPY, CLEAR + // * COPY Copies the defragmentation bit from the inner IP packet to the outer packet. + // * CLEAR Ignores the defragmentation bit present in the inner packet. + DfPolicy string `json:"dfPolicy"` + + // EncryptionAlgorithms contains list of Encryption algorithms to use in IPSec tunnel establishment. + // Default is AES_GCM_128. + // * NO_ENCRYPTION_AUTH_AES_GMAC_XX (XX is 128, 192, 256) enables authentication on input data without encryption. + // If one of these options is used, digest algorithm should be empty. + // + // Possible values are: AES_128, AES_256, AES_GCM_128, AES_GCM_192, AES_GCM_256, NO_ENCRYPTION_AUTH_AES_GMAC_128, + // NO_ENCRYPTION_AUTH_AES_GMAC_192, NO_ENCRYPTION_AUTH_AES_GMAC_256, NO_ENCRYPTION + EncryptionAlgorithms []string `json:"encryptionAlgorithms"` + + // DigestAlgorithms contains list of Digest algorithms to be used for message digest. The default digest algorithm is + // implicitly covered by default encryption algorithm AES_GCM_128. + // + // Possible values are: SHA1 , SHA2_256 , SHA2_384 , SHA2_512 + // Note. Only one value can be set inside the slice + DigestAlgorithms []string `json:"digestAlgorithms"` + + // DhGroups contains list of Diffie-Hellman groups to be used is PFS is enabled. Default is GROUP14. + // + // Possible values are: GROUP2, GROUP5, GROUP14, GROUP15, GROUP16, GROUP19, GROUP20, GROUP21 + // Note. Only one value can be set inside the slice + DhGroups []string `json:"dhGroups"` + + // SaLifeTime is the Security Association life time in seconds. + // + // Default is 3600 seconds. + SaLifeTime *int `json:"saLifeTime"` +} + +// NsxtIpSecVpnTunnelProfileDpdConfiguration specifies the Dead Peer Detection Profile. This configurations determines +// the number of seconds to wait in time between probes to detect if an IPSec peer is alive or not. The default value +// for the DPD probe interval is 60 seconds. +type NsxtIpSecVpnTunnelProfileDpdConfiguration struct { + // ProbeInternal is value of the probe interval in seconds. This defines a periodic interval for DPD probes. The + // minimum is 3 seconds and the maximum is 60 seconds. + ProbeInterval int `json:"probeInterval"` +} + +// NsxtAlbController helps to integrate VMware Cloud Director with NSX-T Advanced Load Balancer deployment. +// Controller instances are registered with VMware Cloud Director instance. Controller instances serve as a central +// control plane for the load-balancing services provided by NSX-T Advanced Load Balancer. +// To configure an NSX-T ALB one needs to supply AVI Controller endpoint, credentials and license to be used. +type NsxtAlbController struct { + // ID holds URN for load balancer controller (e.g. urn:vcloud:loadBalancerController:aa23ef66-ba32-48b2-892f-7acdffe4587e) + ID string `json:"id,omitempty"` + // Name as shown in VCD + Name string `json:"name"` + // Description as shown in VCD + Description string `json:"description,omitempty"` + // Url of ALB controller + Url string `json:"url"` + // Username of user + Username string `json:"username"` + // Password (will not be returned on read) + Password string `json:"password,omitempty"` + // LicenseType By enabling this feature, the provider acknowledges that they have independently licensed the + // enterprise version of the NSX AVI LB. + // Possible options: 'BASIC', 'ENTERPRISE' + LicenseType string `json:"licenseType,omitempty"` + // Version of ALB (e.g. 20.1.3). Read-only + Version string `json:"version,omitempty"` +} + +// NsxtAlbImportableCloud allows user to list importable NSX-T ALB Clouds. Each importable cloud can only be imported +// once. It has a flag AlreadyImported which hints if it is already consumed or not. +type NsxtAlbImportableCloud struct { + // ID (e.g. 'cloud-43726181-f73e-41f2-bf1d-8a9609502586') + ID string `json:"id"` + + DisplayName string `json:"displayName"` + // AlreadyImported shows if this ALB Cloud is already imported + AlreadyImported bool `json:"alreadyImported"` + + // NetworkPoolRef contains a reference to NSX-T network pool + NetworkPoolRef OpenApiReference `json:"networkPoolRef"` + + // TransportZoneName contains transport zone name + TransportZoneName string `json:"transportZoneName"` +} + +// NsxtAlbCloud helps to use the virtual infrastructure provided by NSX Advanced Load Balancer, register NSX-T Cloud +// instances with VMware Cloud Director by consuming NsxtAlbImportableCloud. +type NsxtAlbCloud struct { + // ID (e.g. 'urn:vcloud:loadBalancerCloud:947ea2ba-e448-4249-91f7-1432b3d2fcbf') + ID string `json:"id,omitempty"` + Status string `json:"status,omitempty"` + // Name of NSX-T ALB Cloud + Name string `json:"name"` + // Description of NSX-T ALB Cloud + Description string `json:"description,omitempty"` + // LoadBalancerCloudBacking uniquely identifies a Load Balancer Cloud configured within a Load Balancer Controller. At + // the present, VCD only supports NSX-T Clouds configured within an NSX-ALB Controller deployment. + LoadBalancerCloudBacking NsxtAlbCloudBacking `json:"loadBalancerCloudBacking"` + // NetworkPoolRef for the Network Pool associated with this Cloud + NetworkPoolRef *OpenApiReference `json:"networkPoolRef"` + // HealthStatus contains status of the Load Balancer Cloud. Possible values are: + // UP - The cloud is healthy and ready to enable Load Balancer for an Edge Gateway. + // DOWN - The cloud is in a failure state. Enabling Load balancer on an Edge Gateway may not be possible. + // RUNNING - The cloud is currently processing. An example is if it's enabling a Load Balancer for an Edge Gateway. + // UNAVAILABLE - The cloud is unavailable. + // UNKNOWN - The cloud state is unknown. + HealthStatus string `json:"healthStatus,omitempty"` + // DetailedHealthMessage contains detailed message on the health of the Cloud. + DetailedHealthMessage string `json:"detailedHealthMessage,omitempty"` +} + +// NsxtAlbCloudBacking is embedded into NsxtAlbCloud +type NsxtAlbCloudBacking struct { + // BackingId is the ID of NsxtAlbImportableCloud + BackingId string `json:"backingId"` + // BackingType contains type of ALB (The only supported now is 'NSXALB_NSXT') + BackingType string `json:"backingType,omitempty"` + // LoadBalancerControllerRef contains reference to NSX-T ALB Controller + LoadBalancerControllerRef OpenApiReference `json:"loadBalancerControllerRef"` +} + +// NsxtAlbServiceEngineGroup provides virtual service management capabilities for tenants. This entity can be created +// by referencing a backing importable service engine group - NsxtAlbImportableServiceEngineGroups. +// +// A service engine group is an isolation domain that also defines shared service engine properties, such as size, +// network access, and failover. Resources in a service engine group can be used for different virtual services, +// depending on your tenant needs. These resources cannot be shared between different service engine groups. +type NsxtAlbServiceEngineGroup struct { + // ID of the Service Engine Group + ID string `json:"id,omitempty"` + // Name of the Service Engine Group + Name string `json:"name"` + // Description of the Service Engine Group + Description string `json:"description"` + // ServiceEngineGroupBacking holds backing details that uniquely identifies a Load Balancer Service Engine Group + // configured within a load balancer cloud. + ServiceEngineGroupBacking ServiceEngineGroupBacking `json:"serviceEngineGroupBacking"` + // HaMode defines High Availability Mode for Service Engine Group + // * ELASTIC_N_PLUS_M_BUFFER - Service Engines will scale out to N active nodes with M nodes as buffer. + // * ELASTIC_ACTIVE_ACTIVE - Active-Active with scale out. + // * LEGACY_ACTIVE_STANDBY - Traditional single Active-Standby configuration + HaMode string `json:"haMode,omitempty"` + // ReservationType can be `DEDICATED` or `SHARED` + // * DEDICATED - Dedicated to a single Edge Gateway and can only be assigned to a single Edge Gateway + // * SHARED - Shared between multiple Edge Gateways. Can be assigned to multiple Edge Gateways + ReservationType string `json:"reservationType"` + // MaxVirtualServices holds maximum number of virtual services supported on the Load Balancer Service Engine Group + MaxVirtualServices *int `json:"maxVirtualServices,omitempty"` + // NumDeployedVirtualServices shows number of virtual services currently deployed on the Load Balancer Service Engine + // Group + NumDeployedVirtualServices *int `json:"numDeployedVirtualServices,omitempty"` + // ReservedVirtualServices holds number of virtual services already reserved on the Load Balancer Service Engine Group. + // This value is the sum of the guaranteed virtual services given to Edge Gateways assigned to the Load Balancer + // Service Engine Group. + ReservedVirtualServices *int `json:"reservedVirtualServices,omitempty"` + // OverAllocated indicates whether the maximum number of virtual services supported on the Load Balancer Service + // Engine Group has been surpassed by the current number of reserved virtual services. + OverAllocated *bool `json:"overAllocated,omitempty"` +} + +type ServiceEngineGroupBacking struct { + BackingId string `json:"backingId"` + BackingType string `json:"backingType,omitempty"` + LoadBalancerCloudRef *OpenApiReference `json:"loadBalancerCloudRef"` +} + +// NsxtAlbImportableServiceEngineGroups provides capability to list all Importable Service Engine Groups available in +// ALB Controller so that they can be consumed by NsxtAlbServiceEngineGroup +// +// Note. The API does not return Importable Service Engine Group once it is consumed. +type NsxtAlbImportableServiceEngineGroups struct { + // ID (e.g. 'serviceenginegroup-b633f16f-2733-4bf5-b552-3a6c4949caa4') + ID string `json:"id"` + // DisplayName is the name of + DisplayName string `json:"displayName"` + // HaMode (e.g. 'ELASTIC_N_PLUS_M_BUFFER') + HaMode string `json:"haMode"` +} + +// NsxtAlbConfig describes Load Balancer Service configuration on an NSX-T Edge Gateway +type NsxtAlbConfig struct { + // Enabled is a mandatory flag indicating whether Load Balancer Service is enabled or not + Enabled bool `json:"enabled"` + // LicenseType of the backing Load Balancer Cloud. + // * BASIC - Basic edition of the NSX Advanced Load Balancer. + // * ENTERPRISE - Full featured edition of the NSX Advanced Load Balancer. + LicenseType string `json:"licenseType,omitempty"` + // LoadBalancerCloudRef + LoadBalancerCloudRef *OpenApiReference `json:"loadBalancerCloudRef,omitempty"` + + // ServiceNetworkDefinition in Gateway CIDR format which will be used by Load Balancer service. All the load balancer + // service engines associated with the Service Engine Group will be attached to this network. The subnet prefix length + // must be 25. If nothing is set, the default is 192.168.255.1/25. Default CIDR can be configured. This field cannot + // be updated. + ServiceNetworkDefinition string `json:"serviceNetworkDefinition,omitempty"` +} + +// NsxtAlbServiceEngineGroupAssignment configures Service Engine Group assignments to Edge Gateway. The only mandatory +// fields are `GatewayRef` and `ServiceEngineGroupRef`. `MinVirtualServices` and `MaxVirtualServices` are only available +// for SHARED Service Engine Groups. +type NsxtAlbServiceEngineGroupAssignment struct { + ID string `json:"id,omitempty"` + // GatewayRef contains reference to Edge Gateway + GatewayRef *OpenApiReference `json:"gatewayRef"` + // ServiceEngineGroupRef contains a reference to Service Engine Group + ServiceEngineGroupRef *OpenApiReference `json:"serviceEngineGroupRef"` + // GatewayOrgRef optional Org reference for gateway + GatewayOrgRef *OpenApiReference `json:"gatewayOrgRef,omitempty"` + // GatewayOwnerRef can be a VDC or VDC group + GatewayOwnerRef *OpenApiReference `json:"gatewayOwnerRef,omitempty"` + MaxVirtualServices *int `json:"maxVirtualServices,omitempty"` + MinVirtualServices *int `json:"minVirtualServices,omitempty"` + // NumDeployedVirtualServices is a read only value + NumDeployedVirtualServices int `json:"numDeployedVirtualServices,omitempty"` +} + +// NsxtAlbPool defines configuration of a single NSX-T ALB Pool. Pools maintain the list of servers assigned to them and +// perform health monitoring, load balancing, persistence. A pool may only be used or referenced by only one virtual +// service at a time. +type NsxtAlbPool struct { + ID string `json:"id,omitempty"` + // Name is mandatory + Name string `json:"name"` + // Description is optional + Description string `json:"description,omitempty"` + + // GatewayRef is mandatory and associates NSX-T Edge Gateway with this Load Balancer Pool. + GatewayRef OpenApiReference `json:"gatewayRef"` + + // Enabled defines if the Pool is enabled + Enabled *bool `json:"enabled,omitempty"` + + // Algorithm for choosing a member within the pools list of available members for each new connection. + // Default value is LEAST_CONNECTIONS + // Supported algorithms are: + // * LEAST_CONNECTIONS + // * ROUND_ROBIN + // * CONSISTENT_HASH (uses Source IP Address hash) + // * FASTEST_RESPONSE + // * LEAST_LOAD + // * FEWEST_SERVERS + // * RANDOM + // * FEWEST_TASKS + // * CORE_AFFINITY + Algorithm string `json:"algorithm,omitempty"` + + // DefaultPort defines destination server port used by the traffic sent to the member. + DefaultPort *int `json:"defaultPort,omitempty"` + + // GracefulTimeoutPeriod sets maximum time (in minutes) to gracefully disable a member. Virtual service waits for the + // specified time before terminating the existing connections to the pool members that are disabled. + // + // Special values: 0 represents Immediate, -1 represents Infinite. + GracefulTimeoutPeriod *int `json:"gracefulTimeoutPeriod,omitempty"` + + // PassiveMonitoringEnabled sets if client traffic should be used to check if pool member is up or down. + PassiveMonitoringEnabled *bool `json:"passiveMonitoringEnabled,omitempty"` + + // HealthMonitors check member servers health. It can be monitored by using one or more health monitors. Active + // monitors generate synthetic traffic and mark a server up or down based on the response. + HealthMonitors []NsxtAlbPoolHealthMonitor `json:"healthMonitors,omitempty"` + + // Members field defines list of destination servers which are used by the Load Balancer Pool to direct load balanced + // traffic. + Members []NsxtAlbPoolMember `json:"members,omitempty"` + + // CaCertificateRefs point to root certificates to use when validating certificates presented by the pool members. + CaCertificateRefs []OpenApiReference `json:"caCertificateRefs,omitempty"` + + // CommonNameCheckEnabled specifies whether to check the common name of the certificate presented by the pool member. + // This cannot be enabled if no caCertificateRefs are specified. + CommonNameCheckEnabled *bool `json:"commonNameCheckEnabled,omitempty"` + + // DomainNames holds a list of domain names which will be used to verify the common names or subject alternative + // names presented by the pool member certificates. It is performed only when common name check + // (CommonNameCheckEnabled) is enabled. If common name check is enabled, but domain names are not specified then the + // incoming host header will be used to check the certificate. + DomainNames []string `json:"domainNames,omitempty"` + + // PersistenceProfile of a Load Balancer Pool. Persistence profile will ensure that the same user sticks to the same + // server for a desired duration of time. If the persistence profile is unmanaged by Cloud Director, updates that + // leave the values unchanged will continue to use the same unmanaged profile. Any changes made to the persistence + // profile will cause Cloud Director to switch the pool to a profile managed by Cloud Director. + PersistenceProfile *NsxtAlbPoolPersistenceProfile `json:"persistenceProfile,omitempty"` + + // MemberCount is a read only value that reports number of members added + MemberCount int `json:"memberCount,omitempty"` + + // EnabledMemberCount is a read only value that reports number of enabled members + EnabledMemberCount int `json:"enabledMemberCount,omitempty"` + + // UpMemberCount is a read only value that reports number of members that are serving traffic + UpMemberCount int `json:"upMemberCount,omitempty"` + + // HealthMessage shows a pool health status (e.g. "The pool is unassigned.") + HealthMessage string `json:"healthMessage,omitempty"` + + // VirtualServiceRefs holds list of Load Balancer Virtual Services associated with this Load balancer Pool. + VirtualServiceRefs []OpenApiReference `json:"virtualServiceRefs,omitempty"` +} + +// NsxtAlbPoolHealthMonitor checks member servers health. Active monitor generates synthetic traffic and mark a server +// up or down based on the response. +type NsxtAlbPoolHealthMonitor struct { + Name string `json:"name,omitempty"` + // SystemDefined is a boolean value + SystemDefined bool `json:"systemDefined,omitempty"` + // Type + // * HTTP - HTTP request/response is used to validate health. + // * HTTPS - Used against HTTPS encrypted web servers to validate health. + // * TCP - TCP connection is used to validate health. + // * UDP - A UDP datagram is used to validate health. + // * PING - An ICMP ping is used to validate health. + Type string `json:"type"` +} + +// NsxtAlbPoolMember defines a single destination server which is used by the Load Balancer Pool to direct load balanced +// traffic. +type NsxtAlbPoolMember struct { + // Enabled defines if member is enabled (will receive incoming requests) or not + Enabled bool `json:"enabled"` + // IpAddress of the Load Balancer Pool member. + IpAddress string `json:"ipAddress"` + + // Port number of the Load Balancer Pool member. If unset, the port that the client used to connect will be used. + Port int `json:"port,omitempty"` + + // Ratio of selecting eligible servers in the pool. + Ratio *int `json:"ratio,omitempty"` + + // MarkedDownBy gives the names of the health monitors that marked the member as down when it is DOWN. If a monitor + // cannot be determined, the value will be UNKNOWN. + MarkedDownBy []string `json:"markedDownBy,omitempty"` + + // HealthStatus of the pool member. Possible values are: + // * UP - The member is operational + // * DOWN - The member is down + // * DISABLED - The member is disabled + // * UNKNOWN - The state is unknown + HealthStatus string `json:"healthStatus,omitempty"` + + // DetailedHealthMessage contains non-localized detailed message on the health of the pool member. + DetailedHealthMessage string `json:"detailedHealthMessage,omitempty"` +} + +// NsxtAlbPoolPersistenceProfile holds Persistence Profile of a Load Balancer Pool. Persistence profile will ensure that +// the same user sticks to the same server for a desired duration of time. If the persistence profile is unmanaged by +// Cloud Director, updates that leave the values unchanged will continue to use the same unmanaged profile. Any changes +// made to the persistence profile will cause Cloud Director to switch the pool to a profile managed by Cloud Director. +type NsxtAlbPoolPersistenceProfile struct { + // Name field is tricky. It remains empty in some case, but if it is sent it can become computed. + // (e.g. setting 'CUSTOM_HTTP_HEADER' results in value being + // 'VCD-LoadBalancer-3510eae9-53bb-49f1-b7aa-7aedf5ce3a77-CUSTOM_HTTP_HEADER') + Name string `json:"name,omitempty"` + + // Type of persistence strategy to use. Supported values are: + // * CLIENT_IP - The clients IP is used as the identifier and mapped to the server + // * HTTP_COOKIE - Load Balancer inserts a cookie into HTTP responses. Cookie name must be provided as value + // * CUSTOM_HTTP_HEADER - Custom, static mappings of header values to specific servers are used. Header name must be + // provided as value + // * APP_COOKIE - Load Balancer reads existing server cookies or URI embedded data such as JSessionID. Cookie name + // must be provided as value + // * TLS - Information is embedded in the client's SSL/TLS ticket ID. This will use default system profile + // System-Persistence-TLS + Type string `json:"type,omitempty"` + + // Value of attribute based on selected persistence type. + // This is required for HTTP_COOKIE, CUSTOM_HTTP_HEADER and APP_COOKIE persistence types. + // + // HTTP_COOKIE, APP_COOKIE must have cookie name set as the value and CUSTOM_HTTP_HEADER must have header name set as + // the value. + Value string `json:"value,omitempty"` +} + +// NsxtAlbVirtualService combines Load Balancer Pools with Service Engine Groups and exposes a virtual service on +// defined VIP (virtual IP address) while optionally allowing to use encrypted traffic +type NsxtAlbVirtualService struct { + ID string `json:"id,omitempty"` + + // Name contains meaningful name + Name string `json:"name,omitempty"` + + // Description is optional + Description string `json:"description,omitempty"` + + // Enabled defines if the virtual service is enabled to accept traffic + Enabled *bool `json:"enabled"` + + // ApplicationProfile sets protocol for load balancing by using NsxtAlbVirtualServiceApplicationProfile + ApplicationProfile NsxtAlbVirtualServiceApplicationProfile `json:"applicationProfile"` + + // GatewayRef contains NSX-T Edge Gateway reference + GatewayRef OpenApiReference `json:"gatewayRef"` + //LoadBalancerPoolRef contains Pool reference + LoadBalancerPoolRef OpenApiReference `json:"loadBalancerPoolRef"` + // ServiceEngineGroupRef points to service engine group (which must be assigned to NSX-T Edge Gateway) + ServiceEngineGroupRef OpenApiReference `json:"serviceEngineGroupRef"` + + // CertificateRef contains certificate reference if serving encrypted traffic + CertificateRef *OpenApiReference `json:"certificateRef,omitempty"` + + // ServicePorts define one or more ports (or port ranges) of the virtual service + ServicePorts []NsxtAlbVirtualServicePort `json:"servicePorts"` + + // VirtualIpAddress to be used for exposing this virtual service + VirtualIpAddress string `json:"virtualIpAddress"` + + // HealthStatus contains status of the Load Balancer Cloud. Possible values are: + // UP - The cloud is healthy and ready to enable Load Balancer for an Edge Gateway. + // DOWN - The cloud is in a failure state. Enabling Load balancer on an Edge Gateway may not be possible. + // RUNNING - The cloud is currently processing. An example is if it's enabling a Load Balancer for an Edge Gateway. + // UNAVAILABLE - The cloud is unavailable. + // UNKNOWN - The cloud state is unknown. + HealthStatus string `json:"healthStatus,omitempty"` + + // HealthMessage shows a pool health status (e.g. "The pool is unassigned.") + HealthMessage string `json:"healthMessage,omitempty"` + + // DetailedHealthMessage containes a more in depth health message + DetailedHealthMessage string `json:"detailedHealthMessage,omitempty"` +} + +// NsxtAlbVirtualServicePort port (or port ranges) of the virtual service +type NsxtAlbVirtualServicePort struct { + // PortStart is always required + PortStart *int `json:"portStart"` + // PortEnd is only required if a port range is specified. For single port cases PortStart is sufficient + PortEnd *int `json:"portEnd,omitempty"` + // SslEnabled defines if traffic is served as secure. CertificateRef must be specified in NsxtAlbVirtualService when + // true + SslEnabled *bool `json:"sslEnabled,omitempty"` + // TcpUdpProfile defines + TcpUdpProfile *NsxtAlbVirtualServicePortTcpUdpProfile `json:"tcpUdpProfile,omitempty"` +} + +// NsxtAlbVirtualServicePortTcpUdpProfile profile determines the type and settings of the network protocol that a +// subscribing virtual service will use. It sets a number of parameters, such as whether the virtual service is a TCP +// proxy versus a pass-through via fast path. A virtual service can have both TCP and UDP enabled, which is useful for +// protocols such as DNS or syslog. +type NsxtAlbVirtualServicePortTcpUdpProfile struct { + SystemDefined bool `json:"systemDefined"` + // Type defines L4 or L4_TLS profiles: + // * TCP_PROXY (the only possible type when L4_TLS is used). Enabling TCP Proxy causes ALB to terminate an inbound + // connection from a client. Any application data from the client that is destined for a server is forwarded to that + // server over a new TCP connection. Separating (or proxying) the client-to-server connections enables ALB to provide + // enhanced security, such as TCP protocol sanitization or DoS mitigation. It also provides better client and server + // performance, such as maximizing client and server TCP MSS or window sizes independently and buffering server + // responses. One must use a TCP/UDP profile with the type set to Proxy for application profiles such as HTTP. + // + // * TCP_FAST_PATH profile does not proxy TCP connections - rather, it directly connects clients to the + // destination server and translates the client's destination virtual service address with the chosen destination + // server's IP address. The client's source IP address is still translated to the Service Engine address to ensure + // that server response traffic returns symmetrically. + // + // * UDP_FAST_PATH profile enables a virtual service to support UDP. Avi Vantage translates the client's destination + // virtual service address to the destination server and rewrites the client's source IP address to the Service + // Engine's address when forwarding the packet to the server. This ensures that server response traffic traverses + // symmetrically through the original SE. + Type string `json:"type"` +} + +// NsxtAlbVirtualServiceApplicationProfile sets protocol for load balancing. Type field defines possible options. +type NsxtAlbVirtualServiceApplicationProfile struct { + SystemDefined bool `json:"systemDefined,omitempty"` + // Type defines Traffic + // * HTTP + // * HTTPS (certificate reference is mandatory) + // * L4 + // * L4 TLS (certificate reference is mandatory) + Type string `json:"type"` +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/nsxv_types.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/nsxv_types.go new file mode 100644 index 000000000..0c0750429 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/nsxv_types.go @@ -0,0 +1,450 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package types + +import "encoding/xml" + +// FirewallConfigWithXml allows to enable/disable firewall on a specific edge gateway +// Reference: vCloud Director API for NSX Programming Guide +// https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide +// +// Warning. It nests all firewall rules because Edge Gateway API is done so that if this data is not +// sent while enabling it would wipe all firewall rules. InnerXML type field is used with struct tag +//`innerxml` to prevent any manipulation of configuration and sending it verbatim +type FirewallConfigWithXml struct { + XMLName xml.Name `xml:"firewall"` + Enabled bool `xml:"enabled"` + DefaultPolicy FirewallDefaultPolicy `xml:"defaultPolicy"` + + // Each configuration change has a version number + Version string `xml:"version,omitempty"` + + // The below field has `innerxml` tag so that it is not processed but instead + // sent verbatim + FirewallRules InnerXML `xml:"firewallRules,omitempty"` + GlobalConfig InnerXML `xml:"globalConfig,omitempty"` +} + +// FirewallDefaultPolicy represent default rule +type FirewallDefaultPolicy struct { + LoggingEnabled bool `xml:"loggingEnabled"` + Action string `xml:"action"` +} + +// LbGeneralParamsWithXml allows to enable/disable load balancing capabilities on specific edge gateway +// Reference: vCloud Director API for NSX Programming Guide +// https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide +// +// Warning. It nests all components (LbMonitor, LbPool, LbAppProfile, LbAppRule, LbVirtualServer) +// because Edge Gateway API is done so that if this data is not sent while enabling it would wipe +// all load balancer configurations. InnerXML type fields are used with struct tag `innerxml` to +// prevent any manipulation of configuration and sending it verbatim +type LbGeneralParamsWithXml struct { + XMLName xml.Name `xml:"loadBalancer"` + Enabled bool `xml:"enabled"` + AccelerationEnabled bool `xml:"accelerationEnabled"` + Logging *LbLogging `xml:"logging"` + + // This field is not used anywhere but needs to be passed through + EnableServiceInsertion bool `xml:"enableServiceInsertion"` + // Each configuration change has a version number + Version string `xml:"version,omitempty"` + + // The below fields have `innerxml` tag so that they are not processed but instead + // sent verbatim + VirtualServers []InnerXML `xml:"virtualServer,omitempty"` + Pools []InnerXML `xml:"pool,omitempty"` + AppProfiles []InnerXML `xml:"applicationProfile,omitempty"` + Monitors []InnerXML `xml:"monitor,omitempty"` + AppRules []InnerXML `xml:"applicationRule,omitempty"` +} + +// LbLogging represents logging configuration for load balancer +type LbLogging struct { + Enable bool `xml:"enable"` + LogLevel string `xml:"logLevel"` +} + +// InnerXML is meant to be used when unmarshaling a field into text rather than struct +// It helps to avoid missing out any fields which may not have been specified in the struct. +type InnerXML struct { + Text string `xml:",innerxml"` +} + +// LbMonitor defines health check parameters for a particular type of network traffic +// Reference: vCloud Director API for NSX Programming Guide +// https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide +type LbMonitor struct { + XMLName xml.Name `xml:"monitor"` + ID string `xml:"monitorId,omitempty"` + Type string `xml:"type"` + Interval int `xml:"interval,omitempty"` + Timeout int `xml:"timeout,omitempty"` + MaxRetries int `xml:"maxRetries,omitempty"` + Method string `xml:"method,omitempty"` + URL string `xml:"url,omitempty"` + Expected string `xml:"expected,omitempty"` + Name string `xml:"name,omitempty"` + Send string `xml:"send,omitempty"` + Receive string `xml:"receive,omitempty"` + Extension string `xml:"extension,omitempty"` +} + +type LbMonitors []LbMonitor + +// LbPool represents a load balancer server pool as per "vCloud Director API for NSX Programming Guide" +// Type: LBPoolHealthCheckType +// https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide +type LbPool struct { + XMLName xml.Name `xml:"pool"` + ID string `xml:"poolId,omitempty"` + Name string `xml:"name"` + Description string `xml:"description,omitempty"` + Algorithm string `xml:"algorithm"` + AlgorithmParameters string `xml:"algorithmParameters,omitempty"` + Transparent bool `xml:"transparent"` + MonitorId string `xml:"monitorId,omitempty"` + Members LbPoolMembers `xml:"member,omitempty"` +} + +type LbPools []LbPool + +// LbPoolMember represents a single member inside LbPool +type LbPoolMember struct { + ID string `xml:"memberId,omitempty"` + Name string `xml:"name"` + IpAddress string `xml:"ipAddress"` + Weight int `xml:"weight,omitempty"` + MonitorPort int `xml:"monitorPort,omitempty"` + Port int `xml:"port"` + MaxConn int `xml:"maxConn,omitempty"` + MinConn int `xml:"minConn,omitempty"` + Condition string `xml:"condition,omitempty"` +} + +type LbPoolMembers []LbPoolMember + +// LbAppProfile represents a load balancer application profile as per "vCloud Director API for NSX +// Programming Guide" +// https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide +type LbAppProfile struct { + XMLName xml.Name `xml:"applicationProfile"` + ID string `xml:"applicationProfileId,omitempty"` + Name string `xml:"name,omitempty"` + SslPassthrough bool `xml:"sslPassthrough"` + Template string `xml:"template,omitempty"` + HttpRedirect *LbAppProfileHttpRedirect `xml:"httpRedirect,omitempty"` + Persistence *LbAppProfilePersistence `xml:"persistence,omitempty"` + InsertXForwardedForHttpHeader bool `xml:"insertXForwardedFor"` + ServerSslEnabled bool `xml:"serverSslEnabled"` +} + +type LbAppProfiles []LbAppProfile + +// LbAppProfilePersistence defines persistence profile settings in LbAppProfile +type LbAppProfilePersistence struct { + XMLName xml.Name `xml:"persistence"` + Method string `xml:"method,omitempty"` + CookieName string `xml:"cookieName,omitempty"` + CookieMode string `xml:"cookieMode,omitempty"` + Expire int `xml:"expire,omitempty"` +} + +// LbAppProfileHttpRedirect defines http redirect settings in LbAppProfile +type LbAppProfileHttpRedirect struct { + XMLName xml.Name `xml:"httpRedirect"` + To string `xml:"to,omitempty"` +} + +// LbAppRule represents a load balancer application rule as per "vCloud Director API for NSX +// Programming Guide" +// https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide +type LbAppRule struct { + XMLName xml.Name `xml:"applicationRule"` + ID string `xml:"applicationRuleId,omitempty"` + Name string `xml:"name,omitempty"` + Script string `xml:"script,omitempty"` +} + +type LbAppRules []LbAppRule + +// LbVirtualServer represents a load balancer virtual server as per "vCloud Director API for NSX +// Programming Guide" +// https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide +type LbVirtualServer struct { + XMLName xml.Name `xml:"virtualServer"` + ID string `xml:"virtualServerId,omitempty"` + Name string `xml:"name,omitempty"` + Description string `xml:"description,omitempty"` + Enabled bool `xml:"enabled"` + IpAddress string `xml:"ipAddress"` + Protocol string `xml:"protocol"` + Port int `xml:"port"` + AccelerationEnabled bool `xml:"accelerationEnabled"` + ConnectionLimit int `xml:"connectionLimit,omitempty"` + ConnectionRateLimit int `xml:"connectionRateLimit,omitempty"` + ApplicationProfileId string `xml:"applicationProfileId,omitempty"` + DefaultPoolId string `xml:"defaultPoolId,omitempty"` + ApplicationRuleIds []string `xml:"applicationRuleId,omitempty"` +} + +// EdgeNatRule contains shared structure for SNAT and DNAT rule configuration using +// NSX-V proxied edge gateway endpoint +// https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide +type EdgeNatRule struct { + XMLName xml.Name `xml:"natRule"` + ID string `xml:"ruleId,omitempty"` + RuleType string `xml:"ruleType,omitempty"` + RuleTag string `xml:"ruleTag,omitempty"` + Action string `xml:"action"` + Vnic *int `xml:"vnic,omitempty"` + OriginalAddress string `xml:"originalAddress"` + TranslatedAddress string `xml:"translatedAddress"` + LoggingEnabled bool `xml:"loggingEnabled"` + Enabled bool `xml:"enabled"` + Description string `xml:"description,omitempty"` + Protocol string `xml:"protocol,omitempty"` + OriginalPort string `xml:"originalPort,omitempty"` + TranslatedPort string `xml:"translatedPort,omitempty"` + IcmpType string `xml:"icmpType,omitempty"` +} + +// EdgeFirewall holds data for creating firewall rule using proxied NSX-V API +// https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide +type EdgeFirewallRule struct { + XMLName xml.Name `xml:"firewallRule" ` + ID string `xml:"id,omitempty"` + Name string `xml:"name,omitempty"` + RuleType string `xml:"ruleType,omitempty"` + RuleTag string `xml:"ruleTag,omitempty"` + Source EdgeFirewallEndpoint `xml:"source" ` + Destination EdgeFirewallEndpoint `xml:"destination"` + Application EdgeFirewallApplication `xml:"application"` + MatchTranslated *bool `xml:"matchTranslated,omitempty"` + Direction string `xml:"direction,omitempty"` + Action string `xml:"action,omitempty"` + Enabled bool `xml:"enabled"` + LoggingEnabled bool `xml:"loggingEnabled"` +} + +// EdgeFirewallEndpoint can contains slices of objects for source or destination in EdgeFirewall +type EdgeFirewallEndpoint struct { + Exclude bool `xml:"exclude"` + VnicGroupIds []string `xml:"vnicGroupId,omitempty"` + GroupingObjectIds []string `xml:"groupingObjectId,omitempty"` + IpAddresses []string `xml:"ipAddress,omitempty"` +} + +// EdgeFirewallApplication Wraps []EdgeFirewallApplicationService for multiple protocol/port specification +type EdgeFirewallApplication struct { + ID string `xml:"applicationId,omitempty"` + Services []EdgeFirewallApplicationService `xml:"service,omitempty"` +} + +// EdgeFirewallApplicationService defines port/protocol details for one service in EdgeFirewallRule +type EdgeFirewallApplicationService struct { + Protocol string `xml:"protocol,omitempty"` + Port string `xml:"port,omitempty"` + SourcePort string `xml:"sourcePort,omitempty"` +} + +// EdgeIpSet defines a group of IP addresses that you can add as the source or destination in a +// firewall rule or in DHCP relay configuration. The object itself has more fields in API response, +// however vCD UI only uses the below mentioned. It looks as if the other fields are used in NSX +// internally and are simply proxied back. +// +// Note. Only advanced edge gateways support IP sets +type EdgeIpSet struct { + XMLName xml.Name `xml:"ipset"` + // ID holds composite ID of IP set which is formatted as + // 'f9daf2da-b4f9-4921-a2f4-d77a943a381c:ipset-4' where the first segment before colon is vDC id + // and the second one is IP set ID + ID string `xml:"objectId,omitempty"` + // Name is mandatory and must be unique + Name string `xml:"name"` + // Description - optional + Description string `xml:"description,omitempty"` + // IPAddresses is a mandatory field with comma separated values. The API is known to re-order + // data after submiting and may shuffle components even if re-submitted as it was return from + // API itself + // (eg: "192.168.200.1,192.168.200.1/24,192.168.200.1-192.168.200.24") + IPAddresses string `xml:"value"` + // InheritanceAllowed defines visibility at underlying scopes + InheritanceAllowed *bool `xml:"inheritanceAllowed"` + // Revision is a "version" of IP set configuration. During read current revision is being + // returned and when update is performed this latest version must be sent as it validates if no + // updates ocurred in between. When not the latest version is being sent during update one can + // expect similar error response from API: "The object ipset-27 used in this operation has an + // older version 0 than the current system version 1. Refresh UI or fetch the latest copy of the + // object and retry operation." + Revision *int `xml:"revision,omitempty"` +} + +// EdgeIpSets is a slice of pointers to EdgeIpSet +type EdgeIpSets []*EdgeIpSet + +// EdgeGatewayVnics is a data structure holding information of vNic configuration in NSX-V edge +// gateway using "/network/edges/edge_id/vnics" endpoint +type EdgeGatewayVnics struct { + XMLName xml.Name `xml:"vnics"` + Vnic []struct { + Label string `xml:"label"` + Name string `xml:"name"` + AddressGroups struct { + AddressGroup struct { + PrimaryAddress string `xml:"primaryAddress,omitempty"` + SecondaryAddresses struct { + IpAddress []string `xml:"ipAddress,omitempty"` + } `xml:"secondaryAddresses,omitempty"` + SubnetMask string `xml:"subnetMask,omitempty"` + SubnetPrefixLength string `xml:"subnetPrefixLength,omitempty"` + } `xml:"addressGroup,omitempty"` + } `xml:"addressGroups,omitempty"` + Mtu string `xml:"mtu,omitempty"` + Type string `xml:"type,omitempty"` + IsConnected string `xml:"isConnected,omitempty"` + Index *int `xml:"index"` + PortgroupId string `xml:"portgroupId,omitempty"` + PortgroupName string `xml:"portgroupName,omitempty"` + EnableProxyArp string `xml:"enableProxyArp,omitempty"` + EnableSendRedirects string `xml:"enableSendRedirects,omitempty"` + SubInterfaces struct { + SubInterface []struct { + IsConnected string `xml:"isConnected,omitempty"` + Label string `xml:"label,omitempty"` + Name string `xml:"name,omitempty"` + Index *int `xml:"index,omitempty"` + TunnelId string `xml:"tunnelId,omitempty"` + LogicalSwitchId string `xml:"logicalSwitchId,omitempty"` + LogicalSwitchName string `xml:"logicalSwitchName,omitempty"` + EnableSendRedirects string `xml:"enableSendRedirects,omitempty"` + Mtu string `xml:"mtu,omitempty"` + AddressGroups struct { + AddressGroup struct { + PrimaryAddress string `xml:"primaryAddress,omitempty"` + SubnetMask string `xml:"subnetMask,omitempty"` + SubnetPrefixLength string `xml:"subnetPrefixLength,omitempty"` + } `xml:"addressGroup,omitempty"` + } `xml:"addressGroups,omitempty"` + } `xml:"subInterface,omitempty"` + } `xml:"subInterfaces,omitempty"` + } `xml:"vnic,omitempty"` +} + +// EdgeGatewayInterfaces is a data structure holding information of vNic configuration in NSX-V edge +// gateway using "/network/edges/edge_id/vdcNetworks" endpoint +type EdgeGatewayInterfaces struct { + XMLName xml.Name `xml:"edgeInterfaces"` + EdgeInterface []struct { + Name string `xml:"name"` + Type string `xml:"type"` + Index *int `xml:"index"` + NetworkReference struct { + ID string `xml:"id"` + Name string `xml:"name"` + Type string `xml:"type"` + } `xml:"networkReference"` + AddressGroups struct { + AddressGroup struct { + PrimaryAddress string `xml:"primaryAddress"` + SubnetMask string `xml:"subnetMask"` + SubnetPrefixLength string `xml:"subnetPrefixLength"` + SecondaryAddresses struct { + IpAddress []string `xml:"ipAddress"` + } `xml:"secondaryAddresses"` + } `xml:"addressGroup"` + } `xml:"addressGroups"` + PortgroupId string `xml:"portgroupId"` + PortgroupName string `xml:"portgroupName"` + IsConnected string `xml:"isConnected"` + TunnelId string `xml:"tunnelId"` + } `xml:"edgeInterface"` +} + +// EdgeDhcpRelay - Dynamic Host Configuration Protocol (DHCP) relay enables you to leverage your +// existing DHCP infrastructure from within NSX without any interruption to the IP address +// management in your environment. DHCP messages are relayed from virtual machine(s) to the +// designated DHCP server(s) in the physical world. This enables IP addresses within NSX to continue +// to be in sync with IP addresses in other environments. +type EdgeDhcpRelay struct { + XMLName xml.Name `xml:"relay"` + // RelayServer specifies external relay server(s) to which DHCP messages are to be relayed to. + // The relay server can be an IP set, IP address block, domain, or a combination of all of + // these. Messages are relayed to each listed DHCP server. + RelayServer *EdgeDhcpRelayServer `xml:"relayServer"` + // EdgeDhcRelayAgents specifies a list of edge gateway interfaces (vNics) from which DHCP + // messages are to be relayed to the external DHCP relay server(s) with optional gateway + // interface addresses. + RelayAgents *EdgeDhcpRelayAgents `xml:"relayAgents"` +} + +type EdgeDhcpRelayServer struct { + // GroupingObjectIds is a general concept in NSX which allows to pass in many types of objects + // (like VM IDs, IP set IDs, org networks, security groups) howether in this case it accepts + // only IP sets which have IDs specified as 'f9daf2da-b4f9-4921-a2f4-d77a943a381c:ipset-2' where + // first part is vDC ID and the second part is unique IP set ID + GroupingObjectId []string `xml:"groupingObjectId,omitempty"` + // IpAddresses holds a list of IP addresses for DHCP servers + IpAddress []string `xml:"ipAddress,omitempty"` + // Fqdn holds a list of FQDNs (fully qualified domain names) + Fqdns []string `xml:"fqdn,omitempty"` +} + +// EdgeDhcpRelayAgent specifies which edge gateway interface (vNic) from which DHCP messages are to +// be relayed to the external DHCP relay server(s) with an optional gateway interface address. +type EdgeDhcpRelayAgent struct { + // VnicIndex must specify vNic adapter index on the edge gateway + VnicIndex *int `xml:"vnicIndex"` + // GatewayInterfaceAddress holds a gateway interface address. Optional, defaults to the vNic + // primary address. + GatewayInterfaceAddress string `xml:"giAddress,omitempty"` +} + +// EdgeDhcpRelayAgents holds a slice of EdgeDhcpRelayAgent +type EdgeDhcpRelayAgents struct { + Agents []EdgeDhcpRelayAgent `xml:"relayAgent"` +} + +// EdgeDhcpLease holds a list of EdgeDhcpLeaseInfo +type EdgeDhcpLease struct { + XMLName xml.Name `xml:"dhcpLeaseInfo"` + DhcpLeaseInfos []*EdgeDhcpLeaseInfo `xml:"leaseInfo"` +} + +// EdgeDhcpLeaseInfo contains information about DHCP leases provided by NSX-V edge gateway +type EdgeDhcpLeaseInfo struct { + // Uid statement records the client identifier used by the client to acquire the lease. Clients + // are not required to send client identifiers, and this statement only appears if the client + // did in fact send one. + Uid string `xml:"uid"` + // MacAddress holds hardware (MAC) address of requester (e.g. "00:50:56:01:29:c8") + MacAddress string `xml:"macAddress"` + // IpAddress holds the IP address assigned to a particular MAC address (e.g. "10.10.10.100") + IpAddress string `xml:"ipAddress"` + // ClientHostname Most DHCP clients will send their hostname in the host-name option. If a + // client sends its hostname in this way, the hostname is recorded on the lease with a + // client-hostname statement. This is not required by the protocol, however, so many specialized + // DHCP clients do not send a host-name option. + ClientHostname string `xml:"clientHostname"` + // BindingState declares the lease’s binding state. When the DHCP server is not configured to + // use the failover protocol, a lease’s binding state may be active, free or abandoned. The + // failover protocol adds some additional transitional states, as well as the backup state, + // which indicates that the lease is available for allocation by the failover secondary + BindingState string `xml:"bindingState"` + // NextBindingState statement indicates what state the lease will move to when the current state + // expires. The time when the current state expires is specified in the ends statement. + NextBindingState string `xml:"nextBindingState"` + // Cltt holds value of clients last transaction time (format is "weekday year/month/day + // hour:minute:second", e.g. "2 2019/12/17 06:12:03") + Cltt string `xml:"cltt"` + // Starts holds the start time of a lease (format is "weekday year/month/day + // hour:minute:second", e.g. "2 2019/12/17 06:12:03") + Starts string `xml:"starts"` + // Ends holds the end time of a lease (format is "weekday year/month/day hour:minute:second", + // e.g. "3 2019/12/18 06:12:03") + Ends string `xml:"ends"` + // HardwareType holds type of hardware, usually "ethernet" + HardwareType string `xml:"hardwareType"` +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/openapi.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/openapi.go new file mode 100644 index 000000000..1b0402075 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/openapi.go @@ -0,0 +1,367 @@ +package types + +import ( + "encoding/json" + "fmt" +) + +// OpenApiPages unwraps pagination for "Get All" endpoints in OpenAPI. Values kept in json.RawMessage helps to decouple +// marshalling paging related information from exact type related information. Paging can be handled dynamically this +// way while values can be marshaled into exact types. +type OpenApiPages struct { + // ResultTotal reports total results available + ResultTotal int `json:"resultTotal,omitempty"` + // PageCount reports total result pages available + PageCount int `json:"pageCount,omitempty"` + // Page reports current page of result + Page int `json:"page,omitempty"` + // PageSize reports page size + PageSize int `json:"pageSize,omitempty"` + // Associations ... + Associations interface{} `json:"associations,omitempty"` + // Values holds types depending on the endpoint therefore `json.RawMessage` is used to dynamically unmarshal into + // specific type as required + Values json.RawMessage `json:"values,omitempty"` +} + +// OpenApiError helps to marshal and provider meaningful `Error` for +type OpenApiError struct { + MinorErrorCode string `json:"minorErrorCode"` + Message string `json:"message"` + StackTrace string `json:"stackTrace"` +} + +// Error method implements Go's default `error` interface for CloudAPI errors formats them for human readable output. +func (openApiError OpenApiError) Error() string { + return fmt.Sprintf("%s - %s", openApiError.MinorErrorCode, openApiError.Message) +} + +// ErrorWithStack is the same as `Error()`, but also includes stack trace returned by API which is usually lengthy. +func (openApiError OpenApiError) ErrorWithStack() string { + return fmt.Sprintf("%s - %s. Stack: %s", openApiError.MinorErrorCode, openApiError.Message, + openApiError.StackTrace) +} + +// Role defines access roles in VCD +type Role struct { + ID string `json:"id,omitempty"` + Name string `json:"name"` + Description string `json:"description"` + BundleKey string `json:"bundleKey"` + ReadOnly bool `json:"readOnly"` +} + +// NsxtTier0Router defines NSX-T Tier 0 router +type NsxtTier0Router struct { + ID string `json:"id,omitempty"` + Description string `json:"description"` + DisplayName string `json:"displayName"` +} + +// NsxtEdgeCluster is a struct to represent logical grouping of NSX-T Edge virtual machines. +type NsxtEdgeCluster struct { + // ID contains edge cluster ID (UUID format) + ID string `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + // NodeCount shows number of nodes in the edge cluster + NodeCount int `json:"nodeCount"` + // NodeType usually holds "EDGE_NODE" + NodeType string `json:"nodeType"` + // DeploymentType (e.g. "VIRTUAL_MACHINE") + DeploymentType string `json:"deploymentType"` +} + +// ExternalNetworkV2 defines a struct for OpenAPI endpoint which is capable of creating NSX-V or +// NSX-T external network based on provided NetworkBackings. +type ExternalNetworkV2 struct { + // ID is unique for the network. This field is read-only. + ID string `json:"id,omitempty"` + // Name of the network. + Name string `json:"name"` + // Description of the network + Description string `json:"description"` + // Subnets define one or more subnets and IP allocation pools in edge gateway + Subnets ExternalNetworkV2Subnets `json:"subnets"` + // NetworkBackings for this external network. Describes if this external network is backed by + // port groups, vCenter standard switch or an NSX-T Tier-0 router. + NetworkBackings ExternalNetworkV2Backings `json:"networkBackings"` +} + +// ExternalNetworkV2IPRange defines allocated IP pools for a subnet in external network +type ExternalNetworkV2IPRange struct { + // StartAddress holds starting IP address in the range + StartAddress string `json:"startAddress"` + // EndAddress holds ending IP address in the range + EndAddress string `json:"endAddress"` +} + +// ExternalNetworkV2IPRanges contains slice of ExternalNetworkV2IPRange +type ExternalNetworkV2IPRanges struct { + Values []ExternalNetworkV2IPRange `json:"values"` +} + +// ExternalNetworkV2Subnets contains slice of ExternalNetworkV2Subnet +type ExternalNetworkV2Subnets struct { + Values []ExternalNetworkV2Subnet `json:"values"` +} + +// ExternalNetworkV2Subnet defines one subnet for external network with assigned static IP ranges +type ExternalNetworkV2Subnet struct { + // Gateway for the subnet + Gateway string `json:"gateway"` + // PrefixLength holds prefix length of the subnet + PrefixLength int `json:"prefixLength"` + // DNSSuffix is the DNS suffix that VMs attached to this network will use (NSX-V only) + DNSSuffix string `json:"dnsSuffix"` + // DNSServer1 - first DNS server that VMs attached to this network will use (NSX-V only) + DNSServer1 string `json:"dnsServer1"` + // DNSServer2 - second DNS server that VMs attached to this network will use (NSX-V only) + DNSServer2 string `json:"dnsServer2"` + // Enabled indicates whether the external network subnet is currently enabled + Enabled bool `json:"enabled"` + // UsedIPCount shows number of IP addresses defined by the static IP ranges + UsedIPCount int `json:"usedIpCount,omitempty"` + // TotalIPCount shows number of IP address used from the static IP ranges + TotalIPCount int `json:"totalIpCount,omitempty"` + // IPRanges define allocated static IP pools allocated from a defined subnet + IPRanges ExternalNetworkV2IPRanges `json:"ipRanges"` +} + +type ExternalNetworkV2Backings struct { + Values []ExternalNetworkV2Backing `json:"values"` +} + +// ExternalNetworkV2Backing defines which networking subsystem is used for external network (NSX-T or NSX-V) +type ExternalNetworkV2Backing struct { + // BackingID must contain either Tier-0 router ID for NSX-T or PortGroup ID for NSX-V + BackingID string `json:"backingId"` + Name string `json:"name,omitempty"` + // BackingType can be either ExternalNetworkBackingTypeNsxtTier0Router in case of NSX-T or one + // of ExternalNetworkBackingTypeNetwork or ExternalNetworkBackingDvPortgroup in case of NSX-V + // Deprecated in favor of BackingTypeValue in API V35.0 + BackingType string `json:"backingType,omitempty"` + + // BackingTypeValue replaces BackingType in API V35.0 and adds support for additional network backing type + // ExternalNetworkBackingTypeNsxtSegment + BackingTypeValue string `json:"backingTypeValue,omitempty"` + // NetworkProvider defines backing network manager + NetworkProvider NetworkProvider `json:"networkProvider"` +} + +// NetworkProvider can be NSX-T manager or vCenter. ID is sufficient for creation purpose. +type NetworkProvider struct { + Name string `json:"name,omitempty"` + ID string `json:"id"` +} + +// VdcComputePolicy is represented as VM sizing policy in UI +type VdcComputePolicy struct { + ID string `json:"id,omitempty"` + Description string `json:"description,omitempty"` + Name string `json:"name"` + CPUSpeed *int `json:"cpuSpeed,omitempty"` + Memory *int `json:"memory,omitempty"` + CPUCount *int `json:"cpuCount,omitempty"` + CoresPerSocket *int `json:"coresPerSocket,omitempty"` + MemoryReservationGuarantee *float64 `json:"memoryReservationGuarantee,omitempty"` + CPUReservationGuarantee *float64 `json:"cpuReservationGuarantee,omitempty"` + CPULimit *int `json:"cpuLimit,omitempty"` + MemoryLimit *int `json:"memoryLimit,omitempty"` + CPUShares *int `json:"cpuShares,omitempty"` + MemoryShares *int `json:"memoryShares,omitempty"` + ExtraConfigs *struct { + AdditionalProp1 string `json:"additionalProp1,omitempty"` + AdditionalProp2 string `json:"additionalProp2,omitempty"` + AdditionalProp3 string `json:"additionalProp3,omitempty"` + } `json:"extraConfigs,omitempty"` + PvdcComputePolicyRef *struct { + Name string `json:"name,omitempty"` + ID string `json:"id,omitempty"` + } `json:"pvdcComputePolicyRef,omitempty"` + PvdcComputePolicy *struct { + Name string `json:"name,omitempty"` + ID string `json:"id,omitempty"` + } `json:"pvdcComputePolicy,omitempty"` + CompatibleVdcTypes []string `json:"compatibleVdcTypes,omitempty"` + IsSizingOnly bool `json:"isSizingOnly,omitempty"` + PvdcID string `json:"pvdcId,omitempty"` + NamedVMGroups [][]struct { + Name string `json:"name,omitempty"` + ID string `json:"id,omitempty"` + } `json:"namedVmGroups,omitempty"` + LogicalVMGroupReferences []struct { + Name string `json:"name,omitempty"` + ID string `json:"id,omitempty"` + } `json:"logicalVmGroupReferences,omitempty"` + IsAutoGenerated bool `json:"isAutoGenerated,omitempty"` +} + +// OpenApiReference is a generic reference type commonly used throughout OpenAPI endpoints +type OpenApiReference struct { + Name string `json:"name,omitempty"` + ID string `json:"id,omitempty"` +} + +type OpenApiReferences []OpenApiReference + +// VdcCapability can be used to determine VDC capabilities, including such: +// * Is it backed by NSX-T or NSX-V pVdc +// * Does it support BGP routing +type VdcCapability struct { + // Name of capability + Name string `json:"name"` + // Description of capability + Description string `json:"description"` + // Value can be any value. Sometimes it is a JSON bool (true, false), sometimes it is a JSON array (["custom", "default"]) + // and sometimes just a string ("NSX_V"). It is up for the consumer to handle values as per the Type field. + Value interface{} `json:"value"` + // Type of field (e.g. "Boolean", "String", "List") + Type string `json:"type"` + // Category of capability (e.g. "Security", "EdgeGateway", "OrgVdcNetwork") + Category string `json:"category"` +} + +// A Right is a component of a role, a global role, or a rights bundle. +// In this view, roles, global roles, and rights bundles are collections of rights. +// Note that the rights are not stored in the above collection structures, but retrieved separately +type Right struct { + Name string `json:"name"` + ID string `json:"id"` + Description string `json:"description,omitempty"` + BundleKey string `json:"bundleKey,omitempty"` // key used for internationalization + Category string `json:"category,omitempty"` // Category ID + ServiceNamespace string `json:"serviceNamespace,omitempty"` // Not used + RightType string `json:"rightType,omitempty"` // VIEW or MODIFY + ImpliedRights []OpenApiReference `json:"impliedRights,omitempty"` +} + +// RightsCategory defines the category to which the Right belongs +type RightsCategory struct { + Name string `json:"name"` + Id string `json:"id"` + BundleKey string `json:"bundleKey"` // key used for internationalization + Parent string `json:"parent"` + RightsCount struct { + View int `json:"view"` + Modify int `json:"modify"` + } `json:"rightsCount"` + SubCategories []string `json:"subCategories"` +} + +// RightsBundle is a collection of Rights to be assigned to a tenant(= organization). +// Changing a rights bundle and publishing it for a given tenant will limit +// the rights that the global roles implement in such tenant. +type RightsBundle struct { + Name string `json:"name"` + Id string `json:"id"` + Description string `json:"description,omitempty"` + BundleKey string `json:"bundleKey,omitempty"` // key used for internationalization + ReadOnly bool `json:"readOnly"` + PublishAll *bool `json:"publishAll"` +} + +// GlobalRole is a Role definition implemented in the provider that is passed on to tenants (=organizations) +// Modifying an existing global role has immediate effect on the corresponding roles in the tenants (no need +// to re-publish) while creating a new GlobalRole is only passed to the tenants if it is published. +type GlobalRole struct { + Name string `json:"name"` + Id string `json:"id"` + Description string `json:"description,omitempty"` + BundleKey string `json:"bundleKey,omitempty"` // key used for internationalization + ReadOnly bool `json:"readOnly"` + PublishAll *bool `json:"publishAll"` +} + +// OpenApiItems defines the input when multiple items need to be passed to a POST or PUT operation +// All the fields are optional, except Values +// This structure is the same as OpenApiPages, except for the type of Values, which is explicitly +// defined as a collection of name+ID structures +type OpenApiItems struct { + ResultTotal int `json:"resultTotal,omitempty"` + PageCount int `json:"pageCount,omitempty"` + Page int `json:"page,omitempty"` + PageSize int `json:"pageSize,omitempty"` + Associations interface{} `json:"associations,omitempty"` + Values []OpenApiReference `json:"values"` // a collection of items defined by an ID + a name +} + +// CertificateLibraryItem is a Certificate Library definition of stored Certificate details +type CertificateLibraryItem struct { + Alias string `json:"alias"` + Id string `json:"id,omitempty"` + Certificate string `json:"certificate"` // PEM encoded certificate + Description string `json:"description,omitempty"` + PrivateKey string `json:"privateKey,omitempty"` // PEM encoded private key. Required if providing a certificate chain + PrivateKeyPassphrase string `json:"privateKeyPassphrase,omitempty"` // passphrase for the private key. Required if the private key is encrypted +} + +// CurrentSessionInfo gives information about the current session +type CurrentSessionInfo struct { + ID string `json:"id"` // Session ID + User OpenApiReference `json:"user"` // Name of the user associated with this session + Org OpenApiReference `json:"org"` // Organization for this connection + Location string `json:"location"` // Location ID: unknown usage + Roles []string `json:"roles"` // Roles associated with the session user + RoleRefs OpenApiReferences `json:"roleRefs"` // Roles references for the session user + SessionIdleTimeoutMinutes int `json:"sessionIdleTimeoutMinutes"` // session idle timeout +} + +// VdcGroup is a VDC group definition +type VdcGroup struct { + Description string `json:"description,omitempty"` // The description of this group. + DfwEnabled bool `json:"dfwEnabled,omitempty"` // Whether Distributed Firewall is enabled for this vDC Group. Only applicable for NSX_T vDC Groups. + ErrorMessage string `json:"errorMessage,omitempty"` // If the group has an error status, a more detailed error message is set here. + Id string `json:"id,omitempty"` // The unique ID for the vDC Group (read-only). + LocalEgress bool `json:"localEgress,omitempty"` // Determines whether local egress is enabled for a universal router belonging to a universal vDC group. This value is used on create if universalNetworkingEnabled is set to true. This cannot be updated. This value is always false for local vDC groups. + Name string `json:"name"` // The name of this group. The name must be unique. + NetworkPoolId string `json:"networkPoolId,omitempty"` // ID of network pool to use if creating a local vDC group router. Must be set if creating a local group. Ignored if creating a universal group. + NetworkPoolUniversalId string `json:"networkPoolUniversalId,omitempty"` // The network provider’s universal id that is backing the universal network pool. This field is read-only and is derived from the list of participating vDCs if a universal vDC group is created. For universal vDC groups, each participating vDC should have a universal network pool that is backed by this same id. + NetworkProviderType string `json:"networkProviderType,omitempty"` // The values currently supported are NSX_V and NSX_T. Defines the networking provider backing the vDC Group. This is used on create. If not specified, NSX_V value will be used. NSX_V is used for existing vDC Groups and vDC Groups where Cross-VC NSX is used for the underlying technology. NSX_T is used when the networking provider type for the Organization vDCs in the group is NSX-T. NSX_T only supports groups of type LOCAL (single site). + OrgId string `json:"orgId"` // The organization that this group belongs to. + ParticipatingOrgVdcs []ParticipatingOrgVdcs `json:"participatingOrgVdcs"` // The list of organization vDCs that are participating in this group. + Status string `json:"status,omitempty"` // The status that the group can be in. Possible values are: SAVING, SAVED, CONFIGURING, REALIZED, REALIZATION_FAILED, DELETING, DELETE_FAILED, OBJECT_NOT_FOUND, UNCONFIGURED + Type string `json:"type,omitempty"` // Defines the group as LOCAL or UNIVERSAL. This cannot be changed. Local vDC Groups can have networks stretched across multiple vDCs in a single Cloud Director instance. Local vDC Groups share the same broadcast domain/transport zone and network provider scope. Universal vDC groups can have networks stretched across multiple vDCs in a single or multiple Cloud Director instance(s). Universal vDC groups are backed by a broadcast domain/transport zone that strectches across a single or multiple Cloud Director instance(s). Local vDC groups are supported for both NSX-V and NSX-T Network Provider Types. Universal vDC Groups are supported for only NSX_V Network Provider Type. Possible values are: LOCAL , UNIVERSAL + UniversalNetworkingEnabled bool `json:"universalNetworkingEnabled,omitempty"` // True means that a vDC group router has been created. If set to true for vdc group creation, a universal router will also be created. +} + +// ParticipatingOrgVdcs is a participating Org VDCs definition +type ParticipatingOrgVdcs struct { + FaultDomainTag string `json:"faultDomainTag,omitempty"` // Represents the fault domain of a given organization vDC. For NSX_V backed organization vDCs, this is the network provider scope. For NSX_T backed organization vDCs, this can vary (for example name of the provider vDC or compute provider scope). + NetworkProviderScope string `json:"networkProviderScope,omitempty"` // Read-only field that specifies the network provider scope of the vDC. + OrgRef OpenApiReference `json:"orgRef,omitempty"` // Read-only field that specifies what organization this vDC is in. + RemoteOrg bool `json:"remoteOrg,omitempty"` // Read-only field that specifies whether the vDC is local to this VCD site. + SiteRef OpenApiReference `json:"siteRef,omitempty"` // The site ID that this vDC belongs to. Required for universal vDC groups. + Status string `json:"status,omitempty"` // The status that the vDC can be in. An example is if the vDC has been deleted from the system but is still part of the group. Possible values are: SAVING, SAVED, CONFIGURING, REALIZED, REALIZATION_FAILED, DELETING, DELETE_FAILED, OBJECT_NOT_FOUND, UNCONFIGURED + VdcRef OpenApiReference `json:"vdcRef"` // The reference to the vDC that is part of this a vDC group. +} + +// CandidateVdc defines possible candidate VDCs for VDC group +type CandidateVdc struct { + FaultDomainTag string `json:"faultDomainTag"` + Id string `json:"id"` + Name string `json:"name"` + NetworkProviderScope string `json:"networkProviderScope"` + OrgRef OpenApiReference `json:"orgRef"` + SiteRef OpenApiReference `json:"siteRef"` +} + +// DfwPolicies defines Distributed firewall policies +type DfwPolicies struct { + Enabled bool `json:"enabled"` + DefaultPolicy *DefaultPolicy `json:"defaultPolicy,omitempty"` +} + +// DefaultPolicy defines Default policy for Distributed firewall +type DefaultPolicy struct { + Description string `json:"description,omitempty"` // Description for the security policy. + Enabled *bool `json:"enabled,omitempty"` // Whether this security policy is enabled. + Id string `json:"id,omitempty"` // The unique id of this security policy. On updates, the id is required for the policy, while for create a new id will be generated. This id is not a VCD URN. + Name string `json:"name"` // Name for the security policy. + Version *VersionField `json:"version,omitempty"` // This property describes the current version of the entity. To prevent clients from overwriting each other’s changes, update operations must include the version which can be obtained by issuing a GET operation. If the version number on an update call is missing, the operation will be rejected. This is only needed on update calls. +} + +// VersionField defines Version +type VersionField struct { + Version int `json:"version"` +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/saml.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/saml.go new file mode 100644 index 000000000..6fe5fc39b --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/saml.go @@ -0,0 +1,74 @@ +/* + * Copyright 2020 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package types + +import ( + "encoding/xml" + "fmt" +) + +// VcdSamlMetadata helps to marshal vCD SAML Metadata endpoint response +// https://1.1.1.1/cloud/org/my-org/saml/metadata/alias/vcd +// +// Note. This structure is not complete and has many more fields. +type VcdSamlMetadata struct { + XMLName xml.Name `xml:"EntityDescriptor"` + Text string `xml:",chardata"` + ID string `xml:"ID,attr"` + // EntityID is the configured vCD Entity ID which is used in ADFS authentication request + EntityID string `xml:"entityID,attr"` +} + +// AdfsAuthErrorEnvelope helps to parse ADFS authentication error with help of Error() method +// +// Note. This structure is not complete and has many more fields. +type AdfsAuthErrorEnvelope struct { + XMLName xml.Name `xml:"Envelope"` + Body struct { + Text string `xml:",chardata"` + Fault struct { + Text string `xml:",chardata"` + Code struct { + Text string `xml:",chardata"` + Value string `xml:"Value"` + Subcode struct { + Text string `xml:",chardata"` + Value struct { + Text string `xml:",chardata"` + A string `xml:"a,attr"` + } `xml:"Value"` + } `xml:"Subcode"` + } `xml:"Code"` + Reason struct { + Chardata string `xml:",chardata"` + Text struct { + Text string `xml:",chardata"` + Lang string `xml:"lang,attr"` + } `xml:"Text"` + } `xml:"Reason"` + } `xml:"Fault"` + } `xml:"Body"` +} + +// Error satisfies Go's default `error` interface for AdfsAuthErrorEnvelope and formats +// error for humand readable output +func (samlErr AdfsAuthErrorEnvelope) Error() string { + return fmt.Sprintf("SAML request got error: %s", samlErr.Body.Fault.Reason.Text) +} + +// AdfsAuthResponseEnvelope helps to marshal ADFS reponse to authentication request. +// +// Note. This structure is not complete and has many more fields. +type AdfsAuthResponseEnvelope struct { + XMLName xml.Name `xml:"Envelope"` + Body struct { + RequestSecurityTokenResponseCollection struct { + RequestSecurityTokenResponse struct { + // RequestedSecurityTokenTxt returns data which is accepted by vCD as a SIGN token + RequestedSecurityTokenTxt InnerXML `xml:"RequestedSecurityToken"` + } `xml:"RequestSecurityTokenResponse"` + } `xml:"RequestSecurityTokenResponseCollection"` + } `xml:"Body"` +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/types.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/types.go new file mode 100644 index 000000000..c19b61205 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/types.go @@ -0,0 +1,3004 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +// Package types/v56 provider all types which are used by govcd package in order to perform API +// requests and parse responses +package types + +import ( + "encoding/xml" + "fmt" + "sort" +) + +// Maps status Attribute Values for VAppTemplate, VApp, VM, and Media Objects +var VAppStatuses = map[int]string{ + -1: "FAILED_CREATION", + 0: "UNRESOLVED", + 1: "RESOLVED", + 2: "DEPLOYED", + 3: "SUSPENDED", + 4: "POWERED_ON", + 5: "WAITING_FOR_INPUT", + 6: "UNKNOWN", + 7: "UNRECOGNIZED", + 8: "POWERED_OFF", + 9: "INCONSISTENT_STATE", + 10: "MIXED", + 11: "DESCRIPTOR_PENDING", + 12: "COPYING_CONTENTS", + 13: "DISK_CONTENTS_PENDING", + 14: "QUARANTINED", + 15: "QUARANTINE_EXPIRED", + 16: "REJECTED", + 17: "TRANSFER_TIMEOUT", + 18: "VAPP_UNDEPLOYED", + 19: "VAPP_PARTIALLY_DEPLOYED", + 20: "PARTIALLY_POWERED_OFF", + 21: "PARTIALLY_SUSPENDED", +} + +// Maps status Attribute Values for VDC Objects +var VDCStatuses = map[int]string{ + -1: "FAILED_CREATION", + 0: "NOT_READY", + 1: "READY", + 2: "UNKNOWN", + 3: "UNRECOGNIZED", +} + +// VCD API + +// DefaultStorageProfileSection is the name of the storage profile that will be specified for this virtual machine. The named storage profile must exist in the organization vDC that contains the virtual machine. If not specified, the default storage profile for the vDC is used. +// Type: DefaultStorageProfileSection_Type +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Name of the storage profile that will be specified for this virtual machine. The named storage profile must exist in the organization vDC that contains the virtual machine. If not specified, the default storage profile for the vDC is used. +// Since: 5.1 +type DefaultStorageProfileSection struct { + StorageProfile string `xml:"StorageProfile,omitempty"` +} + +// CustomizationSection represents a vApp template customization settings. +// Type: CustomizationSectionType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a vApp template customization settings. +// Since: 1.0 +type CustomizationSection struct { + // FIXME: OVF Section needs to be laid down correctly + Info string `xml:"ovf:Info"` + // + GoldMaster bool `xml:"goldMaster,attr,omitempty"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + CustomizeOnInstantiate bool `xml:"CustomizeOnInstantiate"` + Link LinkList `xml:"Link,omitempty"` +} + +// LeaseSettingsSection represents vApp lease settings. +// Type: LeaseSettingsSectionType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents vApp lease settings. +// Since: 0.9 +type LeaseSettingsSection struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + DeploymentLeaseExpiration string `xml:"DeploymentLeaseExpiration,omitempty"` + DeploymentLeaseInSeconds int `xml:"DeploymentLeaseInSeconds,omitempty"` + Link *Link `xml:"Link,omitempty"` + StorageLeaseExpiration string `xml:"StorageLeaseExpiration,omitempty"` + StorageLeaseInSeconds int `xml:"StorageLeaseInSeconds,omitempty"` +} + +// UpdateLeaseSettingsSection is an extended version of LeaseSettingsSection +// with additional fields for update +type UpdateLeaseSettingsSection struct { + XMLName xml.Name `xml:"LeaseSettingsSection"` + XmlnsOvf string `xml:"xmlns:ovf,attr,omitempty"` + Xmlns string `xml:"xmlns,attr,omitempty"` + OVFInfo string `xml:"ovf:Info"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + DeploymentLeaseExpiration string `xml:"DeploymentLeaseExpiration,omitempty"` + DeploymentLeaseInSeconds *int `xml:"DeploymentLeaseInSeconds,omitempty"` + Link *Link `xml:"Link,omitempty"` + StorageLeaseExpiration string `xml:"StorageLeaseExpiration,omitempty"` + StorageLeaseInSeconds *int `xml:"StorageLeaseInSeconds,omitempty"` +} + +// IPRange represents a range of IP addresses, start and end inclusive. +// Type: IpRangeType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a range of IP addresses, start and end inclusive. +// Since: 0.9 +type IPRange struct { + StartAddress string `xml:"StartAddress"` // Start address of the IP range. + EndAddress string `xml:"EndAddress"` // End address of the IP range. +} + +// DhcpService represents a DHCP network service. +// Type: DhcpServiceType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a DHCP network service. +// Since: +type DhcpService struct { + IsEnabled bool `xml:"IsEnabled"` // Enable or disable the service using this flag + DefaultLeaseTime int `xml:"DefaultLeaseTime,omitempty"` // Default lease in seconds for DHCP addresses. + MaxLeaseTime int `xml:"MaxLeaseTime"` // Max lease in seconds for DHCP addresses. + IPRange *IPRange `xml:"IpRange"` // IP range for DHCP addresses. + RouterIP string `xml:"RouterIp,omitempty"` // Router IP. + SubMask string `xml:"SubMask,omitempty"` // The subnet mask. + PrimaryNameServer string `xml:"PrimaryNameServer,omitempty"` // The primary name server. + SecondaryNameServer string `xml:"SecondaryNameServer,omitempty"` // The secondary name server. + DomainName string `xml:"DomainName,omitempty"` // The domain name. +} + +// NetworkFeatures represents features of a network. +// Type: NetworkFeaturesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents features of a network. +// Since: +type NetworkFeatures struct { + DhcpService *DhcpService `xml:"DhcpService,omitempty"` // Substitute for NetworkService. DHCP service settings + FirewallService *FirewallService `xml:"FirewallService,omitempty"` // Substitute for NetworkService. Firewall service settings + NatService *NatService `xml:"NatService,omitempty"` // Substitute for NetworkService. NAT service settings + StaticRoutingService *StaticRoutingService `xml:"StaticRoutingService,omitempty"` // Substitute for NetworkService. Static Routing service settings + // TODO: Not Implemented + // IpsecVpnService IpsecVpnService `xml:"IpsecVpnService,omitempty"` // Substitute for NetworkService. Ipsec Vpn service settings +} + +// IPAddresses a list of IP addresses +// Type: IpAddressesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: A list of IP addresses. +// Since: 0.9 +type IPAddresses struct { + IPAddress []string `xml:"IpAddress,omitempty"` // A list of IP addresses. +} + +// IPRanges represents a list of IP ranges. +// Type: IpRangesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a list of IP ranges. +// Since: 0.9 +type IPRanges struct { + IPRange []*IPRange `xml:"IpRange,omitempty"` // IP range. +} + +// IPScope specifies network settings like gateway, network mask, DNS servers IP ranges etc +// Type: IpScopeType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Specify network settings like gateway, network mask, DNS servers, IP ranges, etc. +// Since: 0.9 +type IPScope struct { + IsInherited bool `xml:"IsInherited"` // True if the IP scope is inherit from parent network. + Gateway string `xml:"Gateway,omitempty"` // Gateway of the network. + Netmask string `xml:"Netmask,omitempty"` // Network mask. + DNS1 string `xml:"Dns1,omitempty"` // Primary DNS server. + DNS2 string `xml:"Dns2,omitempty"` // Secondary DNS server. + DNSSuffix string `xml:"DnsSuffix,omitempty"` // DNS suffix. + IsEnabled bool `xml:"IsEnabled,omitempty"` // Indicates if subnet is enabled or not. Default value is True. + IPRanges *IPRanges `xml:"IpRanges,omitempty"` // IP ranges used for static pool allocation in the network. + AllocatedIPAddresses *IPAddresses `xml:"AllocatedIpAddresses,omitempty"` // Read-only list of allocated IP addresses in the network. + SubAllocations *SubAllocations `xml:"SubAllocations,omitempty"` // Read-only list of IP addresses that are sub allocated to edge gateways. +} + +// SubAllocations a list of IP addresses that are sub allocated to edge gateways. +// Type: SubAllocationsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: A list of IP addresses that are sub allocated to edge gateways. +// Since: 5.1 +type SubAllocations struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + // Elements + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + SubAllocation *SubAllocation `xml:"SubAllocation,omitempty"` // IP Range sub allocated to a edge gateway. +} + +// SubAllocation IP range sub allocated to an edge gateway. +// Type: SubAllocationType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: IP range sub allocated to an edge gateway. +// Since: 5.1 +type SubAllocation struct { + EdgeGateway *Reference `xml:"EdgeGateway,omitempty"` // Edge gateway that uses this sub allocation. + IPRanges *IPRanges `xml:"IpRanges,omitempty"` // IP range sub allocated to the edge gateway. +} + +// IPScopes represents a list of IP scopes. +// Type: IpScopesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a list of IP scopes. +// Since: 5.1 +type IPScopes struct { + IPScope []*IPScope `xml:"IpScope"` // IP scope. +} + +// NetworkConfiguration is the configuration applied to a network. This is an abstract base type. +// The concrete types include those for vApp and Organization wide networks. +// Type: NetworkConfigurationType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: The configurations applied to a network. This is an abstract base type. The concrete types include those for vApp and Organization wide networks. +// Since: 0.9 +type NetworkConfiguration struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + BackwardCompatibilityMode bool `xml:"BackwardCompatibilityMode"` + IPScopes *IPScopes `xml:"IpScopes,omitempty"` + ParentNetwork *Reference `xml:"ParentNetwork,omitempty"` + FenceMode string `xml:"FenceMode"` + RetainNetInfoAcrossDeployments *bool `xml:"RetainNetInfoAcrossDeployments,omitempty"` + Features *NetworkFeatures `xml:"Features,omitempty"` + + // SubInterface and DistributedInterface are mutually exclusive + // When they are both nil, it means the "internal" interface (the default) will be used. + // When one of them is set, the corresponding interface will be used. + // They cannot be both set (we'll get an API error if we do). + SubInterface *bool `xml:"SubInterface,omitempty"` + DistributedInterface *bool `xml:"DistributedInterface,omitempty"` + GuestVlanAllowed *bool `xml:"GuestVlanAllowed,omitempty"` + // TODO: Not Implemented + // RouterInfo RouterInfo `xml:"RouterInfo,omitempty"` + // SyslogServerSettings SyslogServerSettings `xml:"SyslogServerSettings,omitempty"` +} + +// VAppNetworkConfiguration represents a vApp network configuration +// Used in vApp network configuration actions as part of vApp type, +// VApp.NetworkConfigSection.NetworkConfig or directly as NetworkConfigSection.NetworkConfig for various API calls. +// Type: VAppNetworkConfigurationType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a vApp network configuration. +// Since: 0.9 +type VAppNetworkConfiguration struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + NetworkName string `xml:"networkName,attr"` + + Link *Link `xml:"Link,omitempty"` + Description string `xml:"Description,omitempty"` + Configuration *NetworkConfiguration `xml:"Configuration"` + IsDeployed bool `xml:"IsDeployed"` +} + +// VAppNetwork represents a vApp network configuration +// Used as input PUT /network/{id} +// Type: VAppNetworkType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a vApp network configuration. +// Since: 0.9 +type VAppNetwork struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + Name string `xml:"name,attr"` + Deployed *bool `xml:"deployed,attr"` // True if the network is deployed. + + Link *Link `xml:"Link,omitempty"` + Description string `xml:"Description,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` + Configuration *NetworkConfiguration `xml:"Configuration"` +} + +// NetworkConfigSection is container for vApp networks. +// Type: NetworkConfigSectionType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Container for vApp networks. +// Since: 0.9 +type NetworkConfigSection struct { + // Extends OVF Section_Type + // FIXME: Fix the OVF section + XMLName xml.Name `xml:"NetworkConfigSection"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Ovf string `xml:"xmlns:ovf,attr,omitempty"` + + Info string `xml:"ovf:Info"` + // + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Link *Link `xml:"Link,omitempty"` + NetworkConfig []VAppNetworkConfiguration `xml:"NetworkConfig,omitempty"` +} + +// NetworkNames allows to extract network names +func (n NetworkConfigSection) NetworkNames() []string { + var list []string + for _, netConfig := range n.NetworkConfig { + list = append(list, netConfig.NetworkName) + } + return list +} + +// NetworkConnection represents a network connection in the virtual machine. +// Type: NetworkConnectionType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a network connection in the virtual machine. +// Since: 0.9 +type NetworkConnection struct { + Network string `xml:"network,attr"` // Name of the network to which this NIC is connected. + NeedsCustomization bool `xml:"needsCustomization,attr,omitempty"` // True if this NIC needs customization. + NetworkConnectionIndex int `xml:"NetworkConnectionIndex"` // Virtual slot number associated with this NIC. First slot number is 0. + IPAddress string `xml:"IpAddress,omitempty"` // IP address assigned to this NIC. + ExternalIPAddress string `xml:"ExternalIpAddress,omitempty"` // If the network to which this NIC connects provides NAT services, the external address assigned to this NIC appears here. + IsConnected bool `xml:"IsConnected"` // If the virtual machine is undeployed, this value specifies whether the NIC should be connected upon deployment. If the virtual machine is deployed, this value reports the current status of this NIC's connection, and can be updated to change that connection status. + MACAddress string `xml:"MACAddress,omitempty"` // MAC address associated with the NIC. + IPAddressAllocationMode string `xml:"IpAddressAllocationMode"` // IP address allocation mode for this connection. One of: POOL (A static IP address is allocated automatically from a pool of addresses.) DHCP (The IP address is obtained from a DHCP service.) MANUAL (The IP address is assigned manually in the IpAddress element.) NONE (No IP addressing mode specified.) + NetworkAdapterType string `xml:"NetworkAdapterType,omitempty"` +} + +// NetworkConnectionSection the container for the network connections of this virtual machine. +// Type: NetworkConnectionSectionType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Container for the network connections of this virtual machine. +// Since: 0.9 +type NetworkConnectionSection struct { + // Extends OVF Section_Type + // FIXME: Fix the OVF section + XMLName xml.Name `xml:"NetworkConnectionSection"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Ovf string `xml:"xmlns:ovf,attr,omitempty"` + + Info string `xml:"ovf:Info"` + // + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + PrimaryNetworkConnectionIndex int `xml:"PrimaryNetworkConnectionIndex"` + NetworkConnection []*NetworkConnection `xml:"NetworkConnection,omitempty"` + Link *Link `xml:"Link,omitempty"` +} + +// InstantiationParams is a container for ovf:Section_Type elements that specify vApp configuration on instantiate, compose, or recompose. +// Type: InstantiationParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Container for ovf:Section_Type elements that specify vApp configuration on instantiate, compose, or recompose. +// Since: 0.9 +type InstantiationParams struct { + CustomizationSection *CustomizationSection `xml:"CustomizationSection,omitempty"` + DefaultStorageProfileSection *DefaultStorageProfileSection `xml:"DefaultStorageProfileSection,omitempty"` + GuestCustomizationSection *GuestCustomizationSection `xml:"GuestCustomizationSection,omitempty"` + LeaseSettingsSection *LeaseSettingsSection `xml:"LeaseSettingsSection,omitempty"` + NetworkConfigSection *NetworkConfigSection `xml:"NetworkConfigSection,omitempty"` + NetworkConnectionSection *NetworkConnectionSection `xml:"NetworkConnectionSection,omitempty"` + ProductSection *ProductSection `xml:"ProductSection,omitempty"` + // TODO: Not Implemented + // SnapshotSection SnapshotSection `xml:"SnapshotSection,omitempty"` +} + +// OrgVDCNetwork represents an Org VDC network in the vCloud model. +// Type: OrgVdcNetworkType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents an Org VDC network in the vCloud model. +// Since: 5.1 +type OrgVDCNetwork struct { + XMLName xml.Name `xml:"OrgVdcNetwork"` + Xmlns string `xml:"xmlns,attr,omitempty"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Status string `xml:"status,attr,omitempty"` + Link []Link `xml:"Link,omitempty"` + Description string `xml:"Description,omitempty"` + Configuration *NetworkConfiguration `xml:"Configuration,omitempty"` + EdgeGateway *Reference `xml:"EdgeGateway,omitempty"` + ServiceConfig *GatewayFeatures `xml:"ServiceConfig,omitempty"` // Specifies the service configuration for an isolated Org VDC networks + IsShared bool `xml:"IsShared"` + VimPortGroupRef []*VimObjectRef `xml:"VimPortGroupRef,omitempty"` // Needed to set up DHCP inside ServiceConfig + Tasks *TasksInProgress `xml:"Tasks,omitempty"` +} + +// SupportedHardwareVersions contains a list of VMware virtual hardware versions supported in this vDC. +// Type: SupportedHardwareVersionsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Contains a list of VMware virtual hardware versions supported in this vDC. +// Since: 1.5 +type SupportedHardwareVersions struct { + SupportedHardwareVersion []string `xml:"SupportedHardwareVersion,omitempty"` // A virtual hardware version supported in this vDC. +} + +// Capabilities collection of supported hardware capabilities. +// Type: CapabilitiesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Collection of supported hardware capabilities. +// Since: 1.5 +type Capabilities struct { + SupportedHardwareVersions *SupportedHardwareVersions `xml:"SupportedHardwareVersions,omitempty"` // Read-only list of virtual hardware versions supported by this vDC. +} + +// Vdc represents the user view of an organization VDC. +// Type: VdcType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the user view of an organization VDC. +// Since: 0.9 +type Vdc struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Status int `xml:"status,attr,omitempty"` + + Link LinkList `xml:"Link,omitempty"` + Description string `xml:"Description,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` + AllocationModel string `xml:"AllocationModel"` + ComputeCapacity []*ComputeCapacity `xml:"ComputeCapacity"` + ResourceEntities []*ResourceEntities `xml:"ResourceEntities,omitempty"` + AvailableNetworks []*AvailableNetworks `xml:"AvailableNetworks,omitempty"` + Capabilities []*Capabilities `xml:"Capabilities,omitempty"` + NicQuota int `xml:"NicQuota"` + NetworkQuota int `xml:"NetworkQuota"` + UsedNetworkCount int `xml:"UsedNetworkCount,omitempty"` + VMQuota int `xml:"VmQuota"` + IsEnabled bool `xml:"IsEnabled"` + VdcStorageProfiles *VdcStorageProfiles `xml:"VdcStorageProfiles"` + DefaultComputePolicy *Reference `xml:"DefaultComputePolicy"` +} + +// AdminVdc represents the admin view of an organization VDC. +// Type: AdminVdcType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the admin view of an organization VDC. +// Since: 0.9 +type AdminVdc struct { + Xmlns string `xml:"xmlns,attr"` + Vdc + + VCpuInMhz2 *int64 `xml:"VCpuInMhz2,omitempty"` + ResourceGuaranteedMemory *float64 `xml:"ResourceGuaranteedMemory,omitempty"` + ResourceGuaranteedCpu *float64 `xml:"ResourceGuaranteedCpu,omitempty"` + VCpuInMhz *int64 `xml:"VCpuInMhz,omitempty"` + IsThinProvision *bool `xml:"IsThinProvision,omitempty"` + NetworkPoolReference *Reference `xml:"NetworkPoolReference,omitempty"` + ProviderVdcReference *Reference `xml:"ProviderVdcReference"` + ResourcePoolRefs *VimObjectRefs `xml:"vmext:ResourcePoolRefs,omitempty"` + UsesFastProvisioning *bool `xml:"UsesFastProvisioning,omitempty"` + OverCommitAllowed bool `xml:"OverCommitAllowed,omitempty"` + VmDiscoveryEnabled bool `xml:"VmDiscoveryEnabled,omitempty"` + IsElastic *bool `xml:"IsElastic,omitempty"` // Supported from 32.0 for the Flex model + IncludeMemoryOverhead *bool `xml:"IncludeMemoryOverhead,omitempty"` // Supported from 32.0 for the Flex model + UniversalNetworkPoolReference *Reference `xml:"UniversalNetworkPoolReference,omitempty"` // Reference to a universal network pool +} + +// VdcStorageProfileConfiguration represents the parameters to assign a storage profile in creation of organization vDC. +// Type: VdcStorageProfileParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the parameters to create a storage profile in an organization vDC. +// Since: 5.1 +// https://code.vmware.com/apis/220/vcloud#/doc/doc/types/VdcStorageProfileParamsType.html +type VdcStorageProfileConfiguration struct { + Enabled bool `xml:"Enabled,omitempty"` + Units string `xml:"Units"` + Limit int64 `xml:"Limit"` + Default bool `xml:"Default"` + ProviderVdcStorageProfile *Reference `xml:"ProviderVdcStorageProfile"` +} + +// VdcStorageProfile represents the parameters for fetched storage profile +// Type: VdcStorageProfileParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VdcStorageProfileType.html +// https://vdc-repo.vmware.com/vmwb-repository/dcr-public/71e12563-bc11-4d64-821d-92d30f8fcfa1/7424bf8e-aec2-44ad-be7d-b98feda7bae0/doc/doc/types/AdminVdcStorageProfileType.html +type VdcStorageProfile struct { + Xmlns string `xml:"xmlns,attr"` + Name string `xml:"name,attr"` + Enabled bool `xml:"Enabled,omitempty"` + Units string `xml:"Units"` + Limit int64 `xml:"Limit"` + Default bool `xml:"Default"` + IopsSettings *VdcStorageProfileIopsSettings `xml:"IopsSettingsint64"` + StorageUsedMB int64 `xml:"StorageUsedMB"` + IopsAllocated int64 `xml:"IopsAllocated"` + ProviderVdcStorageProfile *Reference `xml:"ProviderVdcStorageProfile"` +} + +// AdminVdcStorageProfile represents the parameters for fetched storage profile +// Type: AdminVdcStorageProfileType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// https://vdc-repo.vmware.com/vmwb-repository/dcr-public/71e12563-bc11-4d64-821d-92d30f8fcfa1/7424bf8e-aec2-44ad-be7d-b98feda7bae0/doc/doc/types/AdminVdcStorageProfileType.html +type AdminVdcStorageProfile struct { + Xmlns string `xml:"xmlns,attr"` + Name string `xml:"name,attr"` + Enabled *bool `xml:"Enabled,omitempty"` + Units string `xml:"Units"` + Limit int64 `xml:"Limit"` + Default bool `xml:"Default"` + IopsSettings *VdcStorageProfileIopsSettings `xml:"IopsSettingsint64"` + StorageUsedMB int64 `xml:"StorageUsedMB"` + IopsAllocated int64 `xml:"IopsAllocated"` + ProviderVdcStorageProfile *Reference `xml:"ProviderVdcStorageProfile"` +} + +// VdcStorageProfileIopsSettings represents the parameters for VDC storage profiles Iops settings. +// Type: VdcStorageProfileIopsSettings +// https://vdc-repo.vmware.com/vmwb-repository/dcr-public/71e12563-bc11-4d64-821d-92d30f8fcfa1/7424bf8e-aec2-44ad-be7d-b98feda7bae0/doc/doc/types/VdcStorageProfileIopsSettingsType.html +type VdcStorageProfileIopsSettings struct { + Xmlns string `xml:"xmlns,attr"` + Enabled bool `xml:"enabled"` + DiskIopsMax int64 `xml:"diskIopsMax,"` + DiskIopsDefault int64 `xml:"diskIopsDefault"` + StorageProfileIopsLimit int64 `xml:"storageProfileIopsLimit,omitempty"` + DiskIopsPerGbMax int64 `xml:"diskIopsPerGbMax"` +} + +// VdcConfiguration models the payload for creating a VDC. +// Type: CreateVdcParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Parameters for creating an organization VDC +// Since: 5.1 +// https://code.vmware.com/apis/220/vcloud#/doc/doc/types/CreateVdcParamsType.html +type VdcConfiguration struct { + XMLName xml.Name `xml:"CreateVdcParams"` + Xmlns string `xml:"xmlns,attr"` + Name string `xml:"name,attr"` + Description string `xml:"Description,omitempty"` + AllocationModel string `xml:"AllocationModel"` // Flex supported from 32.0 + ComputeCapacity []*ComputeCapacity `xml:"ComputeCapacity"` + NicQuota int `xml:"NicQuota,omitempty"` + NetworkQuota int `xml:"NetworkQuota,omitempty"` + VmQuota int `xml:"VmQuota,omitempty"` + IsEnabled bool `xml:"IsEnabled,omitempty"` + // Create uses VdcStorageProfileConfiguration and fetch AdminVdcStorageProfile or VdcStorageProfile + VdcStorageProfile []*VdcStorageProfileConfiguration `xml:"VdcStorageProfile"` + ResourceGuaranteedMemory *float64 `xml:"ResourceGuaranteedMemory,omitempty"` + ResourceGuaranteedCpu *float64 `xml:"ResourceGuaranteedCpu,omitempty"` + VCpuInMhz int64 `xml:"VCpuInMhz,omitempty"` + IsThinProvision bool `xml:"IsThinProvision,omitempty"` + NetworkPoolReference *Reference `xml:"NetworkPoolReference,omitempty"` + ProviderVdcReference *Reference `xml:"ProviderVdcReference"` + UsesFastProvisioning bool `xml:"UsesFastProvisioning,omitempty"` + OverCommitAllowed bool `xml:"OverCommitAllowed,omitempty"` + VmDiscoveryEnabled bool `xml:"VmDiscoveryEnabled,omitempty"` + IsElastic *bool `xml:"IsElastic,omitempty"` // Supported from 32.0 for the Flex model + IncludeMemoryOverhead *bool `xml:"IncludeMemoryOverhead,omitempty"` // Supported from 32.0 for the Flex model +} + +// Task represents an asynchronous operation in vCloud Director. +// Type: TaskType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents an asynchronous operation in vCloud Director. +// Since: 0.9 +// Comments added from https://code.vmware.com/apis/912/vmware-cloud-director/doc/doc/types/TaskType.html +type Task struct { + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + ID string `xml:"id,attr,omitempty"` // The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused. + OperationKey string `xml:"operationKey,attr,omitempty"` // Optional unique identifier to support idempotent semantics for create and delete operations. + Name string `xml:"name,attr"` // The name of the entity. + Status string `xml:"status,attr"` // The execution status of the task. One of queued, preRunning, running, success, error, aborted + Operation string `xml:"operation,attr,omitempty"` // A message describing the operation that is tracked by this task. + OperationName string `xml:"operationName,attr,omitempty"` // The short name of the operation that is tracked by this task. + ServiceNamespace string `xml:"serviceNamespace,attr,omitempty"` // Identifier of the service that created the task. It must not start with com.vmware.vcloud and the length must be between 1 and 128 symbols. + StartTime string `xml:"startTime,attr,omitempty"` // The date and time the system started executing the task. May not be present if the task has not been executed yet. + EndTime string `xml:"endTime,attr,omitempty"` // The date and time that processing of the task was completed. May not be present if the task is still being executed. + ExpiryTime string `xml:"expiryTime,attr,omitempty"` // The date and time at which the task resource will be destroyed and no longer available for retrieval. May not be present if the task has not been executed or is still being executed. + CancelRequested bool `xml:"cancelRequested,attr,omitempty"` // Whether user has requested this processing to be canceled. + Description string `xml:"Description,omitempty"` // Optional description. + Details string `xml:"Details,omitempty"` // Detailed message about the task. Also contained by the Owner entity when task status is preRunning. + Error *Error `xml:"Error,omitempty"` // Represents error information from a failed task. + Link *Link `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + Organization *Reference `xml:"Organization,omitempty"` // The organization to which the User belongs. + Owner *Reference `xml:"Owner,omitempty"` // Reference to the owner of the task. This is typically the object that the task is creating or updating. + Progress int `xml:"Progress,omitempty"` // Read-only indicator of task progress as an approximate percentage between 0 and 100. Not available for all tasks. + Tasks *TasksInProgress `xml:"Tasks,omitempty"` // A list of queued, running, or recently completed tasks associated with this entity. + User *Reference `xml:"User,omitempty"` // The user who started the task. + // + // TODO: add the following fields + // Params anyType The parameters with which this task was started. + // Result ResultType An optional element that can be used to hold the result of a task. + // VcTaskList VcTaskListType List of Virtual Center tasks related to this vCD task. +} + +// CapacityWithUsage represents a capacity and usage of a given resource. +// Type: CapacityWithUsageType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a capacity and usage of a given resource. +// Since: 0.9 +type CapacityWithUsage struct { + Units string `xml:"Units"` + Allocated int64 `xml:"Allocated"` + Limit int64 `xml:"Limit"` + Reserved int64 `xml:"Reserved,omitempty"` + Used int64 `xml:"Used,omitempty"` +} + +// ComputeCapacity represents VDC compute capacity. +// Type: ComputeCapacityType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents VDC compute capacity. +// Since: 0.9 +type ComputeCapacity struct { + CPU *CapacityWithUsage `xml:"Cpu"` + Memory *CapacityWithUsage `xml:"Memory"` +} + +// Reference is a reference to a resource. Contains an href attribute and optional name and type attributes. +// Type: ReferenceType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: A reference to a resource. Contains an href attribute and optional name and type attributes. +// Since: 0.9 +type Reference struct { + HREF string `xml:"href,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` +} + +// ResourceReference represents a reference to a resource. Contains an href attribute, a resource status attribute, and optional name and type attributes. +// Type: ResourceReferenceType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a reference to a resource. Contains an href attribute, a resource status attribute, and optional name and type attributes. +// Since: 0.9 +type ResourceReference struct { + HREF string `xml:"href,attr"` + ID string `xml:"id,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` + Status string `xml:"status,attr,omitempty"` +} + +// VdcStorageProfiles is a container for references to storage profiles associated with a vDC. +// Element: VdcStorageProfiles +// Type: VdcStorageProfilesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Container for references to storage profiles associated with a vDC. +// Since: 5.1 +type VdcStorageProfiles struct { + VdcStorageProfile []*Reference `xml:"VdcStorageProfile,omitempty"` +} + +// ResourceEntities is a container for references to ResourceEntity objects in this vDC. +// Type: ResourceEntitiesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Container for references to ResourceEntity objects in this vDC. +// Since: 0.9 +type ResourceEntities struct { + ResourceEntity []*ResourceReference `xml:"ResourceEntity,omitempty"` +} + +// AvailableNetworks is a container for references to available organization vDC networks. +// Type: AvailableNetworksType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Container for references to available organization vDC networks. +// Since: 0.9 +type AvailableNetworks struct { + Network []*Reference `xml:"Network,omitempty"` +} + +// Link extends reference type by adding relation attribute. Defines a hyper-link with a relationship, hyper-link reference, and an optional MIME type. +// Type: LinkType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Extends reference type by adding relation attribute. Defines a hyper-link with a relationship, hyper-link reference, and an optional MIME type. +// Since: 0.9 +type Link struct { + HREF string `xml:"href,attr"` + ID string `xml:"id,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` + Rel string `xml:"rel,attr"` +} + +// OrgList represents a lists of Organizations +// Type: OrgType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a list of vCloud Director organizations. +// Since: 0.9 +type OrgList struct { + Link LinkList `xml:"Link,omitempty"` + Org []*Org `xml:"Org,omitempty"` +} + +// Org represents the user view of a vCloud Director organization. +// Type: OrgType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the user view of a vCloud Director organization. +// Since: 0.9 +type Org struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Description string `xml:"Description,omitempty"` + FullName string `xml:"FullName"` + IsEnabled bool `xml:"IsEnabled,omitempty"` + Link LinkList `xml:"Link,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` +} + +// List of the users within the organization +type OrgUserList struct { + User []*Reference `xml:"UserReference,omitempty"` +} + +type OrgGroupList struct { + Group []*Reference `xml:"GroupReference,omitempty"` +} + +// List of available roles in the organization +type OrgRoleType struct { + RoleReference []*Reference `xml:"RoleReference,omitempty"` +} + +// List of available rights in the organization +type RightsType struct { + Links LinkList `xml:"Link,omitempty"` + RightReference []*Reference `xml:"RightReference,omitempty"` +} + +// AdminOrg represents the admin view of a vCloud Director organization. +// Type: AdminOrgType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the admin view of a vCloud Director organization. +// Since: 0.9 +type AdminOrg struct { + XMLName xml.Name `xml:"AdminOrg"` + Xmlns string `xml:"xmlns,attr"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Description string `xml:"Description,omitempty"` + FullName string `xml:"FullName"` + IsEnabled bool `xml:"IsEnabled,omitempty"` + Link LinkList `xml:"Link,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` + Users *OrgUserList `xml:"Users,omitempty"` + Groups *OrgGroupList `xml:"Groups,omitempty"` + Catalogs *CatalogsList `xml:"Catalogs,omitempty"` + OrgSettings *OrgSettings `xml:"Settings,omitempty"` + Vdcs *VDCList `xml:"Vdcs,omitempty"` + Networks *NetworksList `xml:"Networks,omitempty"` + RightReferences *OrgRoleType `xml:"RightReferences,omitempty"` + RoleReferences *OrgRoleType `xml:"RoleReferences,omitempty"` +} + +// OrgSettingsType represents the settings for a vCloud Director organization. +// Type: OrgSettingsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the settings of a vCloud Director organization. +// Since: 0.9 +type OrgSettings struct { + //attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + //elements + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + OrgGeneralSettings *OrgGeneralSettings `xml:"OrgGeneralSettings,omitempty"` // General Settings for the org, not-required + OrgVAppLeaseSettings *VAppLeaseSettings `xml:"VAppLeaseSettings,omitempty"` + OrgVAppTemplateSettings *VAppTemplateLeaseSettings `xml:"VAppTemplateLeaseSettings,omitempty"` // Vapp template lease settings, not required + OrgLdapSettings *OrgLdapSettingsType `xml:"OrgLdapSettings,omitempty"` //LDAP settings, not-requried, defaults to none + +} + +// OrgGeneralSettingsType represents the general settings for a vCloud Director organization. +// Type: OrgGeneralSettingsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the user view of a vCloud Director organization. +// Since: 0.9 +type OrgGeneralSettings struct { + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + + CanPublishCatalogs bool `xml:"CanPublishCatalogs,omitempty"` + DeployedVMQuota int `xml:"DeployedVMQuota,omitempty"` + StoredVMQuota int `xml:"StoredVmQuota,omitempty"` + UseServerBootSequence bool `xml:"UseServerBootSequence,omitempty"` + DelayAfterPowerOnSeconds int `xml:"DelayAfterPowerOnSeconds,omitempty"` +} + +// VAppTemplateLeaseSettings represents the vapp template lease settings for a vCloud Director organization. +// Type: VAppTemplateLeaseSettingsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the vapp template lease settings of a vCloud Director organization. +// Since: 0.9 +type VAppTemplateLeaseSettings struct { + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + + DeleteOnStorageLeaseExpiration *bool `xml:"DeleteOnStorageLeaseExpiration,omitempty"` + StorageLeaseSeconds *int `xml:"StorageLeaseSeconds,omitempty"` +} + +type VAppLeaseSettings struct { + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + + DeleteOnStorageLeaseExpiration *bool `xml:"DeleteOnStorageLeaseExpiration,omitempty"` + DeploymentLeaseSeconds *int `xml:"DeploymentLeaseSeconds,omitempty"` + StorageLeaseSeconds *int `xml:"StorageLeaseSeconds,omitempty"` + PowerOffOnRuntimeLeaseExpiration *bool `xml:"PowerOffOnRuntimeLeaseExpiration,omitempty"` +} + +type OrgFederationSettings struct { + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + + Enabled bool `xml:"Enabled,omitempty"` +} + +// OrgLdapSettingsType represents the ldap settings for a vCloud Director organization. +// Type: OrgLdapSettingsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the ldap settings of a vCloud Director organization. +// Since: 0.9 +type OrgLdapSettingsType struct { + XMLName xml.Name `xml:"OrgLdapSettings"` + Xmlns string `xml:"xmlns,attr,omitempty"` + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + + CustomUsersOu string `xml:"CustomUsersOu,omitempty"` // If OrgLdapMode is SYSTEM, specifies an LDAP attribute=value pair to use for OU (organizational unit). + OrgLdapMode string `xml:"OrgLdapMode,omitempty"` // LDAP mode you want + CustomOrgLdapSettings *CustomOrgLdapSettings `xml:"CustomOrgLdapSettings,omitempty"` // Needs to be set if user chooses custom mode +} + +// CustomOrgLdapSettings represents the custom ldap settings for a vCloud Director organization. +// Type: CustomOrgLdapSettingsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the custom ldap settings of a vCloud Director organization. +// Since: 0.9 +// Note. Order of these fields matter and API will error if it is changed +type CustomOrgLdapSettings struct { + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + + HostName string `xml:"HostName,omitempty"` + Port int `xml:"Port"` + IsSsl bool `xml:"IsSsl,omitempty"` + IsSslAcceptAll bool `xml:"IsSslAcceptAll,omitempty"` + SearchBase string `xml:"SearchBase,omitempty"` + Username string `xml:"UserName,omitempty"` + Password string `xml:"Password,omitempty"` + AuthenticationMechanism string `xml:"AuthenticationMechanism"` + IsGroupSearchBaseEnabled bool `xml:"IsGroupSearchBaseEnabled"` + GroupSearchBase string `xml:"GroupSearchBase,omitempty"` + ConnectorType string `xml:"ConnectorType"` // Defines LDAP service implementation type + UserAttributes *OrgLdapUserAttributes `xml:"UserAttributes"` // Defines how LDAP attributes are used when importing a user. + GroupAttributes *OrgLdapGroupAttributes `xml:"GroupAttributes"` // Defines how LDAP attributes are used when importing a group. + UseExternalKerberos bool `xml:"UseExternalKerberos"` + + Realm string `xml:"Realm,omitempty"` +} + +// OrgLdapGroupAttributes represents the ldap group attribute settings for a vCloud Director organization. +// Type: OrgLdapGroupAttributesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the ldap group attribute settings of a vCloud Director organization. +// Since: 0.9 +// Note. Order of these fields matter and API will error if it is changed +type OrgLdapGroupAttributes struct { + ObjectClass string `xml:"ObjectClass"` + ObjectIdentifier string `xml:"ObjectIdentifier"` + GroupName string `xml:"GroupName"` + Membership string `xml:"Membership"` + BackLinkIdentifier string `xml:"BackLinkIdentifier,omitempty"` + MembershipIdentifier string `xml:"MembershipIdentifier"` +} + +// OrgLdapUserAttributesType represents the ldap user attribute settings for a vCloud Director organization. +// Type: OrgLdapUserAttributesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the ldap user attribute settings of a vCloud Director organization. +// Since: 0.9 +// Note. Order of these fields matter and API will error if it is changed. +type OrgLdapUserAttributes struct { + ObjectClass string `xml:"ObjectClass"` + ObjectIdentifier string `xml:"ObjectIdentifier"` + Username string `xml:"UserName,omitempty"` + Email string `xml:"Email"` + FullName string `xml:"FullName"` + GivenName string `xml:"GivenName"` + Surname string `xml:"Surname"` + Telephone string `xml:"Telephone"` + GroupMembershipIdentifier string `xml:"GroupMembershipIdentifier"` + GroupBackLinkIdentifier string `xml:"GroupBackLinkIdentifier,omitempty"` +} + +// VDCList contains a list of references to Org VDCs +// Type: VdcListType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a list of organization vDCs. +// Since: 0.9 +type VDCList struct { + Vdcs []*Reference `xml:"Vdc,omitempty"` +} + +// NetworksListType contains a list of references to Org Networks +// Type: NetworksListType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a list of organization Networks. +// Since: 0.9 +type NetworksList struct { + Networks []*Reference `xml:"Network,omitempty"` +} + +// CatalogsList contains a list of references to Org Catalogs +// Type: CatalogsListType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a list of organization Catalogs. +// Since: 0.9 +type CatalogsList struct { + Catalog []*Reference `xml:"CatalogReference,omitempty"` +} + +// CatalogItem contains a reference to a VappTemplate or Media object and related metadata. +// Type: CatalogItemType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Contains a reference to a VappTemplate or Media object and related metadata. +// Since: 0.9 +type CatalogItem struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Size int64 `xml:"size,attr,omitempty"` + DateCreated string `xml:"DateCreated,omitempty"` + Description string `xml:"Description,omitempty"` + Entity *Entity `xml:"Entity"` + Link LinkList `xml:"Link,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` + VersionNumber int64 `xml:"VersionNumber,omitempty"` +} + +// Entity is a basic entity type in the vCloud object model. Includes a name, an optional description, and an optional list of links. +// Type: EntityType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Basic entity type in the vCloud object model. Includes a name, an optional description, and an optional list of links. +// Since: 0.9 +type Entity struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Description string `xml:"Description,omitempty"` + Link LinkList `xml:"Link,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` +} + +// CatalogItems is a container for references to catalog items. +// Type: CatalogItemsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Container for references to catalog items. +// Since: 0.9 +type CatalogItems struct { + CatalogItem []*Reference `xml:"CatalogItem"` +} + +// Catalog represents the user view of a Catalog object. +// Type: CatalogType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the user view of a Catalog object. +// https://code.vmware.com/apis/287/vcloud#/doc/doc/types/CatalogType.html +// Since: 0.9 +type Catalog struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + CatalogItems []*CatalogItems `xml:"CatalogItems,omitempty"` + DateCreated string `xml:"DateCreated,omitempty"` + Description string `xml:"Description,omitempty"` + IsPublished bool `xml:"IsPublished,omitempty"` + Link LinkList `xml:"Link,omitempty"` + Owner *Owner `xml:"Owner,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` + VersionNumber int64 `xml:"VersionNumber,omitempty"` +} + +// AdminCatalog represents the Admin view of a Catalog object. +// Type: AdminCatalogType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the Admin view of a Catalog object. +// https://code.vmware.com/apis/287/vcloud#/doc/doc/types/AdminCatalogType.html +// Since: 0.9 +type AdminCatalog struct { + Catalog + XMLName xml.Name `xml:"AdminCatalog"` + Xmlns string `xml:"xmlns,attr"` + PublishExternalCatalogParams *PublishExternalCatalogParams `xml:"PublishExternalCatalogParams,omitempty"` + CatalogStorageProfiles *CatalogStorageProfiles `xml:"CatalogStorageProfiles,omitempty"` + ExternalCatalogSubscription *ExternalCatalogSubscription `xml:"ExternalCatalogSubscriptionParams,omitempty"` + IsPublished bool `xml:"IsPublished,omitempty"` +} + +// PublishExternalCatalogParamsType represents the configuration parameters of a catalog published externally +// Type: PublishExternalCatalogParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the configuration parameters of a catalog published externally. +// Since: 5.5 +type PublishExternalCatalogParams struct { + IsCachedEnabled bool `xml:"IsCacheEnabled,omitempty"` + IsPublishedExternally bool `xml:"IsPublishedExternally,omitempty"` + Password string `xml:"Password,omitempty"` + PreserveIdentityInfoFlag bool `xml:"PreserveIdentityInfoFlag,omitempty"` + CatalogPublishedUrl string `xml:"catalogPublishedUrl,omitempty"` +} + +// ExternalCatalogSubscription represents the configuration parameters for a catalog that has an external subscription +// Type: ExternalCatalogSubscriptionParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the configuration parameters for a catalog that has an external subscription. +// Since: 5.5 +type ExternalCatalogSubscription struct { + ExpectedSslThumbprint bool `xml:"ExpectedSslThumbprint,omitempty"` + LocalCopy bool `xml:"LocalCopy,omitempty"` + Password string `xml:"Password,omitempty"` + SubscribeToExternalFeeds bool `xml:"SubscribeToExternalFeeds,omitempty"` + Location string `xml:"Location,omitempty"` +} + +// CatalogStorageProfiles represents a container for storage profiles used by this catalog +// Type: CatalogStorageProfiles +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a container for storage profiles used by this catalog +// Since: 5.5 +type CatalogStorageProfiles struct { + VdcStorageProfile []*Reference `xml:"VdcStorageProfile,omitempty"` +} + +// Owner represents the owner of this entity. +// Type: OwnerType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the owner of this entity. +// Since: 1.5 +type Owner struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Link LinkList `xml:"Link,omitempty"` + User *Reference `xml:"User"` +} + +// Error is the standard error message type used in the vCloud REST API. +// Type: ErrorType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: The standard error message type used in the vCloud REST API. +// Since: 0.9 +type Error struct { + Message string `xml:"message,attr"` + MajorErrorCode int `xml:"majorErrorCode,attr"` + MinorErrorCode string `xml:"minorErrorCode,attr"` + VendorSpecificErrorCode string `xml:"vendorSpecificErrorCode,attr,omitempty"` + StackTrace string `xml:"stackTrace,attr,omitempty"` +} + +func (err Error) Error() string { + return fmt.Sprintf("API Error: %d: %s", err.MajorErrorCode, err.Message) +} + +// NSXError is the standard error message type used in the NSX API which is proxied by vCD. +// It has attached method `Error() string` and implements Go's default `type error` interface. +type NSXError struct { + XMLName xml.Name `xml:"error"` + ErrorCode string `xml:"errorCode"` + Details string `xml:"details"` + ModuleName string `xml:"moduleName"` +} + +// Error method implements Go's default `error` interface for NSXError and formats NSX error +// output for human readable output. +func (nsxErr NSXError) Error() string { + return fmt.Sprintf("%s %s (API error: %s)", nsxErr.ModuleName, nsxErr.Details, nsxErr.ErrorCode) +} + +// File represents a file to be transferred (uploaded or downloaded). +// Type: FileType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a file to be transferred (uploaded or downloaded). +// Since: 0.9 +type File struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Size int64 `xml:"size,attr,omitempty"` + BytesTransferred int64 `xml:"bytesTransferred,attr,omitempty"` + Checksum string `xml:"checksum,attr,omitempty"` + Description string `xml:"Description,omitempty"` + Link LinkList `xml:"Link,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` +} + +// FilesList represents a list of files to be transferred (uploaded or downloaded). +// Type: FilesListType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a list of files to be transferred (uploaded or downloaded). +// Since: 0.9 +type FilesList struct { + File []*File `xml:"File"` +} + +// UndeployVAppParams parameters to an undeploy vApp request. +// Type: UndeployVAppParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Parameters to an undeploy vApp request. +// Since: 0.9 +type UndeployVAppParams struct { + Xmlns string `xml:"xmlns,attr"` + UndeployPowerAction string `xml:"UndeployPowerAction,omitempty"` +} + +// VmCapabilities allows you to specify certain capabilities of this virtual machine. +// Type: VmCapabilitiesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Allows you to specify certain capabilities of this virtual machine. +// Since: 5.1 +type VmCapabilities struct { + Xmlns string `xml:"xmlns,attr"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + MemoryHotAddEnabled bool `xml:"MemoryHotAddEnabled,omitempty"` + CPUHotAddEnabled bool `xml:"CpuHotAddEnabled,omitempty"` + Link LinkList `xml:"Link,omitempty"` +} + +// VMs represents a list of virtual machines. +// Type: VmsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a list of virtual machines. +// Since: 5.1 +type VMs struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Link LinkList `xml:"Link,omitempty"` + VMReference []*Reference `xml:"VmReference,omitempty"` +} + +/* + * Types that are completely valid (position, comment, coverage complete) + */ + +// ComposeVAppParams represents vApp composition parameters +// Type: ComposeVAppParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents vApp composition parameters. +// Since: 0.9 +type ComposeVAppParams struct { + XMLName xml.Name `xml:"ComposeVAppParams"` + Ovf string `xml:"xmlns:ovf,attr"` + Xsi string `xml:"xmlns:xsi,attr"` + Xmlns string `xml:"xmlns,attr"` + // Attributes + Name string `xml:"name,attr,omitempty"` // Typically used to name or identify the subject of the request. For example, the name of the object being created or modified. + Deploy bool `xml:"deploy,attr"` // True if the vApp should be deployed at instantiation. Defaults to true. + PowerOn bool `xml:"powerOn,attr"` // True if the vApp should be powered-on at instantiation. Defaults to true. + LinkedClone bool `xml:"linkedClone,attr,omitempty"` // Reserved. Unimplemented. + // Elements + Description string `xml:"Description,omitempty"` // Optional description. + VAppParent *Reference `xml:"VAppParent,omitempty"` // Reserved. Unimplemented. + InstantiationParams *InstantiationParams `xml:"InstantiationParams,omitempty"` // Instantiation parameters for the composed vApp. + SourcedItem *SourcedCompositionItemParam `xml:"SourcedItem,omitempty"` // Composition item. One of: vApp vAppTemplate VM. + AllEULAsAccepted bool `xml:"AllEULAsAccepted,omitempty"` // True confirms acceptance of all EULAs in a vApp template. Instantiation fails if this element is missing, empty, or set to false and one or more EulaSection elements are present. +} + +type ReComposeVAppParams struct { + XMLName xml.Name `xml:"RecomposeVAppParams"` + Ovf string `xml:"xmlns:ovf,attr"` + Xsi string `xml:"xmlns:xsi,attr"` + Xmlns string `xml:"xmlns,attr"` + // Attributes + Name string `xml:"name,attr,omitempty"` // Typically used to name or identify the subject of the request. For example, the name of the object being created or modified. + Deploy bool `xml:"deploy,attr"` // True if the vApp should be deployed at instantiation. Defaults to true. + PowerOn bool `xml:"powerOn,attr"` // True if the vApp should be powered-on at instantiation. Defaults to true. + LinkedClone bool `xml:"linkedClone,attr,omitempty"` // Reserved. Unimplemented. + // Elements + Description string `xml:"Description,omitempty"` // Optional description. + VAppParent *Reference `xml:"VAppParent,omitempty"` // Reserved. Unimplemented. + InstantiationParams *InstantiationParams `xml:"InstantiationParams,omitempty"` // Instantiation parameters for the composed vApp. + SourcedItem *SourcedCompositionItemParam `xml:"SourcedItem,omitempty"` // Composition item. One of: vApp vAppTemplate VM. + AllEULAsAccepted bool `xml:"AllEULAsAccepted,omitempty"` + DeleteItem *DeleteItem `xml:"DeleteItem,omitempty"` +} + +// SmallRecomposeVappParams is used to update name and description of a vApp +// Using the full definition (ReComposeVAppParams), the description can be changed but not removed +type SmallRecomposeVappParams struct { + XMLName xml.Name `xml:"RecomposeVAppParams"` + Ovf string `xml:"xmlns:ovf,attr"` + Xsi string `xml:"xmlns:xsi,attr"` + Xmlns string `xml:"xmlns,attr"` + Name string `xml:"name,attr"` + Deploy bool `xml:"deploy,attr"` + Description string `xml:"Description"` +} + +type DeleteItem struct { + HREF string `xml:"href,attr,omitempty"` +} + +// SourcedCompositionItemParam represents a vApp, vApp template or VM to include in a composed vApp. +// Type: SourcedCompositionItemParamType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a vApp, vApp template or VM to include in a composed vApp. +// Since: 0.9 +type SourcedCompositionItemParam struct { + // Attributes + SourceDelete bool `xml:"sourceDelete,attr,omitempty"` // True if the source item should be deleted after composition is complete. + // Elements + Source *Reference `xml:"Source"` // Reference to a vApp, vApp template or virtual machine to include in the composition. Changing the name of the newly created VM by specifying name attribute is deprecated. Include VmGeneralParams element instead. + VMGeneralParams *VMGeneralParams `xml:"VmGeneralParams,omitempty"` // Specify name, description, and other properties of a VM during instantiation. + VAppScopedLocalID string `xml:"VAppScopedLocalId,omitempty"` // If Source references a VM, this value provides a unique identifier for the VM in the scope of the composed vApp. + InstantiationParams *InstantiationParams `xml:"InstantiationParams,omitempty"` // If Source references a VM this can include any of the following OVF sections: VirtualHardwareSection OperatingSystemSection NetworkConnectionSection GuestCustomizationSection. + NetworkAssignment []*NetworkAssignment `xml:"NetworkAssignment,omitempty"` // If Source references a VM, this element maps a network name specified in the VM to the network name of a vApp network defined in the composed vApp. + StorageProfile *Reference `xml:"StorageProfile,omitempty"` // If Source references a VM, this element contains a reference to a storage profile to be used for the VM. The specified storage profile must exist in the organization vDC that contains the composed vApp. If not specified, the default storage profile for the vDC is used. + LocalityParams *LocalityParams `xml:"LocalityParams,omitempty"` // Represents locality parameters. Locality parameters provide a hint that may help the placement engine optimize placement of a VM and an independent a Disk so that the VM can make efficient use of the disk. + ComputePolicy *ComputePolicy `xml:"ComputePolicy,omitempty"` // accessible only from version API 33.0 +} + +// LocalityParams represents locality parameters. Locality parameters provide a hint that may help the placement engine optimize placement of a VM with respect to another VM or an independent disk. +// Type: LocalityParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents locality parameters. Locality parameters provide a hint that may help the placement engine optimize placement of a VM with respect to another VM or an independent disk. +// Since: 5.1 +type LocalityParams struct { + // Elements + ResourceEntity *Reference `xml:"ResourceEntity,omitempty"` // Reference to a Disk, or a VM. +} + +// NetworkAssignment maps a network name specified in a VM to the network name of a vApp network defined in the VApp that contains the VM +// Type: NetworkAssignmentType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Maps a network name specified in a VM to the network name of a vApp network defined in the VApp that contains the VM +// Since: 0.9 +type NetworkAssignment struct { + // Attributes + InnerNetwork string `xml:"innerNetwork,attr"` // Name of the network as specified in the VM. + ContainerNetwork string `xml:"containerNetwork,attr"` // Name of the vApp network to map to. +} + +// VMGeneralParams a set of overrides to source VM properties to apply to target VM during copying. +// Type: VmGeneralParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: A set of overrides to source VM properties to apply to target VM during copying. +// Since: 5.6 +type VMGeneralParams struct { + // Elements + Name string `xml:"Name,omitempty"` // Name of VM + Description string `xml:"Description,omitempty"` // VM description + NeedsCustomization bool `xml:"NeedsCustomization,omitempty"` // True if this VM needs guest customization + RegenerateBiosUuid bool `xml:"RegenerateBiosUuid,omitempty"` // True if BIOS UUID of the virtual machine should be regenerated so that it is unique, and not the same as the source virtual machine's BIOS UUID. +} + +// VApp represents a vApp +// Type: VAppType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a vApp. +// Since: 0.9 +type VApp struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + ID string `xml:"id,attr,omitempty"` // The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused. + OperationKey string `xml:"operationKey,attr,omitempty"` // Optional unique identifier to support idempotent semantics for create and delete operations. + Name string `xml:"name,attr"` // The name of the entity. + Status int `xml:"status,attr,omitempty"` // Creation status of the resource entity. + Deployed bool `xml:"deployed,attr,omitempty"` // True if the virtual machine is deployed. + OvfDescriptorUploaded bool `xml:"ovfDescriptorUploaded,attr,omitempty"` // Read-only indicator that the OVF descriptor for this vApp has been uploaded. + // Elements + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + LeaseSettingsSection *LeaseSettingsSection `xml:"LeaseSettingsSection,omitempty"` // A reference to the lease section of the vApp + NetworkConfigSection *NetworkConfigSection `xml:"NetworkConfigSection,omitempty"` // Represents vAPP network configuration + Description string `xml:"Description,omitempty"` // Optional description. + Tasks *TasksInProgress `xml:"Tasks,omitempty"` // A list of queued, running, or recently completed tasks associated with this entity. + Files *FilesList `xml:"Files,omitempty"` // Represents a list of files to be transferred (uploaded or downloaded). Each File in the list is part of the ResourceEntity. + VAppParent *Reference `xml:"VAppParent,omitempty"` // Reserved. Unimplemented. + // TODO: OVF Sections to be implemented + // Section OVF_Section `xml:"Section"` + DateCreated string `xml:"DateCreated,omitempty"` // Creation date/time of the vApp. + Owner *Owner `xml:"Owner,omitempty"` // vApp owner. + IsAutoNature bool `xml:"autoNature,omitempty"` // True if the vApp is auto generated with a standalone VM + InMaintenanceMode bool `xml:"InMaintenanceMode,omitempty"` // True if this vApp is in maintenance mode. Prevents users from changing vApp metadata. + Children *VAppChildren `xml:"Children,omitempty"` // Container for virtual machines included in this vApp. + ProductSection *ProductSection `xml:"ProductSection,omitempty"` +} + +type ProductSectionList struct { + XMLName xml.Name `xml:"ProductSectionList"` + Ovf string `xml:"xmlns:ovf,attr,omitempty"` + Xmlns string `xml:"xmlns,attr"` + ProductSection *ProductSection `xml:"http://schemas.dmtf.org/ovf/envelope/1 ProductSection,omitempty"` +} + +// SortByPropertyKeyName allows to sort ProductSectionList property slice by key name as the API is +// does not always return an ordered slice +func (p *ProductSectionList) SortByPropertyKeyName() { + sort.SliceStable(p.ProductSection.Property, func(i, j int) bool { + return p.ProductSection.Property[i].Key < p.ProductSection.Property[j].Key + }) +} + +type ProductSection struct { + Info string `xml:"Info,omitempty"` + Property []*Property `xml:"http://schemas.dmtf.org/ovf/envelope/1 Property,omitempty"` +} + +type Property struct { + Key string `xml:"http://schemas.dmtf.org/ovf/envelope/1 key,attr,omitempty"` + Label string `xml:"http://schemas.dmtf.org/ovf/envelope/1 Label,omitempty"` + Description string `xml:"http://schemas.dmtf.org/ovf/envelope/1 Description,omitempty"` + DefaultValue string `xml:"http://schemas.dmtf.org/ovf/envelope/1 value,attr"` + Value *Value `xml:"http://schemas.dmtf.org/ovf/envelope/1 Value,omitempty"` + Type string `xml:"http://schemas.dmtf.org/ovf/envelope/1 type,attr,omitempty"` + UserConfigurable bool `xml:"http://schemas.dmtf.org/ovf/envelope/1 userConfigurable,attr"` +} + +type Value struct { + Value string `xml:"http://schemas.dmtf.org/ovf/envelope/1 value,attr,omitempty"` +} + +type MetadataValue struct { + XMLName xml.Name `xml:"MetadataValue"` + Xsi string `xml:"xmlns:xsi,attr"` + Xmlns string `xml:"xmlns,attr"` + TypedValue *TypedValue `xml:"TypedValue"` +} + +type TypedValue struct { + XsiType string `xml:"xsi:type,attr"` + Value string `xml:"Value"` +} + +// Type: MetadataType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: User-defined metadata associated with with an object. +// Since: 1.5 +type Metadata struct { + XMLName xml.Name `xml:"Metadata"` + Xmlns string `xml:"xmlns,attr"` + HREF string `xml:"href,attr"` + Type string `xml:"type,attr,omitempty"` + Xsi string `xml:"xmlns:xsi,attr"` + Link []*Link `xml:"Link,omitempty"` + MetadataEntry []*MetadataEntry `xml:"MetadataEntry,omitempty"` +} + +// Type: MetadataEntryType +// Namespace: http://www.vmware.com/vcloud/v1.5 +type MetadataEntry struct { + Xmlns string `xml:"xmlns,attr"` + HREF string `xml:"href,attr"` + Type string `xml:"type,attr,omitempty"` + Xsi string `xml:"xmlns:xsi,attr"` + Domain string `xml:"Domain,omitempty"` // A value of SYSTEM places this MetadataEntry in the SYSTEM domain. Omit or leave empty to place this MetadataEntry in the GENERAL domain. + Key string `xml:"Key"` // An arbitrary key name. Length cannot exceed 256 UTF-8 characters. + Link []*Link `xml:"Link,omitempty"` //A reference to an entity or operation associated with this object. + TypedValue *TypedValue `xml:"TypedValue"` +} + +// VAppChildren is a container for virtual machines included in this vApp. +// Type: VAppChildrenType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Container for virtual machines included in this vApp. +// Since: 0.9 +type VAppChildren struct { + VM []*Vm `xml:"Vm,omitempty"` // Represents a virtual machine. +} + +// TasksInProgress is a list of queued, running, or recently completed tasks. +// Type: TasksInProgressType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: A list of queued, running, or recently completed tasks. +// Since: 0.9 +type TasksInProgress struct { + // Elements + Task []*Task `xml:"Task"` // A task. +} + +// VAppTemplateChildren is a container for virtual machines included in this vApp template. +// Type: VAppTemplateChildrenType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Container for virtual machines included in this vApp template. +// Since: 0.9 +type VAppTemplateChildren struct { + // Elements + VM []*VAppTemplate `xml:"Vm"` // Represents a virtual machine in this vApp template. +} + +// VAppTemplate represents a vApp template. +// Type: VAppTemplateType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a vApp template. +// Since: 0.9 +type VAppTemplate struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + ID string `xml:"id,attr,omitempty"` // The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused. + OperationKey string `xml:"operationKey,attr,omitempty"` // Optional unique identifier to support idempotent semantics for create and delete operations. + Name string `xml:"name,attr"` // The name of the entity. + Status int `xml:"status,attr,omitempty"` // Creation status of the resource entity. + OvfDescriptorUploaded string `xml:"ovfDescriptorUploaded,attr,omitempty"` // True if the OVF descriptor for this template has been uploaded. + GoldMaster bool `xml:"goldMaster,attr,omitempty"` // True if this template is a gold master. + // Elements + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + Description string `xml:"Description,omitempty"` // Optional description. + Tasks *TasksInProgress `xml:"Tasks,omitempty"` // A list of queued, running, or recently completed tasks associated with this entity. + Files *FilesList `xml:"Files,omitempty"` // Represents a list of files to be transferred (uploaded or downloaded). Each File in the list is part of the ResourceEntity. + Owner *Owner `xml:"Owner,omitempty"` // vAppTemplate owner. + Children *VAppTemplateChildren `xml:"Children,omitempty"` // Container for virtual machines included in this vApp template. + VAppScopedLocalID string `xml:"VAppScopedLocalId"` // A unique identifier for the VM in the scope of the vApp template. + DefaultStorageProfile string `xml:"DefaultStorageProfile,omitempty"` // The name of the storage profile to be used for this object. The named storage profile must exist in the organization vDC that contains the object. If not specified, the default storage profile for the vDC is used. + DateCreated string `xml:"DateCreated,omitempty"` // Creation date/time of the template. + // FIXME: Upstream bug? Missing NetworkConfigSection, LeaseSettingSection and + // CustomizationSection at least, NetworkConnectionSection is required when + // using ComposeVApp action in the context of a Children VM (still + // referenced by VAppTemplateType). + NetworkConfigSection *NetworkConfigSection `xml:"NetworkConfigSection,omitempty"` + NetworkConnectionSection *NetworkConnectionSection `xml:"NetworkConnectionSection,omitempty"` + LeaseSettingsSection *LeaseSettingsSection `xml:"LeaseSettingsSection,omitempty"` + CustomizationSection *CustomizationSection `xml:"CustomizationSection,omitempty"` + // OVF Section needs to be added + // Section Section `xml:"Section,omitempty"` +} + +// VMDiskChange represents a virtual machine only with Disk setting update part +type VMDiskChange struct { + XMLName xml.Name `xml:"Vm"` + Ovf string `xml:"xmlns:ovf,attr,omitempty"` + Xsi string `xml:"xmlns:xsi,attr,omitempty"` + Xmlns string `xml:"xmlns,attr,omitempty"` + + HREF string `xml:"href,attr,omitempty"` // The URI of the VM entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity - application/vnd.vmware.vcloud.vm+xml + Name string `xml:"name,attr"` // VM name + Description string `xml:"Description,omitempty"` // Optional description. + ID string `xml:"id,attr,omitempty"` // VM ID. The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused. + + VmSpecSection *VmSpecSection `xml:"VmSpecSection,omitempty"` // Container for the specification of this virtual machine. This is an alternative to using ovf:VirtualHardwareSection + ovf:OperatingSystemSection +} + +// DiskSection from Vm/VmSpecSection struct +type DiskSection struct { + DiskSettings []*DiskSettings `xml:"DiskSettings"` +} + +// DiskSettings from Vm/VmSpecSection/DiskSection struct +type DiskSettings struct { + DiskId string `xml:"DiskId,omitempty"` // Specifies a unique identifier for this disk in the scope of the corresponding VM. This element is optional when creating a VM, but if it is provided it should be unique. This element is mandatory when updating an existing disk. + SizeMb int64 `xml:"SizeMb"` // The size of the disk in MB. + UnitNumber int `xml:"UnitNumber"` // The device number on the SCSI or IDE controller of the disk. + BusNumber int `xml:"BusNumber"` // The number of the SCSI or IDE controller itself. + AdapterType string `xml:"AdapterType"` // The type of disk controller, e.g. IDE vs SCSI and if SCSI bus-logic vs LSI logic. + ThinProvisioned *bool `xml:"ThinProvisioned,omitempty"` // Specifies whether the disk storage is pre-allocated or allocated on demand. + Disk *Reference `xml:"Disk,omitempty"` // Specifies reference to a named disk. + StorageProfile *Reference `xml:"StorageProfile,omitempty"` // Specifies reference to a storage profile to be associated with the disk. + OverrideVmDefault bool `xml:"overrideVmDefault"` // Specifies that the disk storage profile overrides the VM's default storage profile. + Iops *int64 `xml:"iops,omitempty"` // Specifies the IOPS for the disk. + VirtualQuantity *int64 `xml:"VirtualQuantity,omitempty"` // The actual size of the disk. + VirtualQuantityUnit string `xml:"VirtualQuantityUnit,omitempty"` // The units in which VirtualQuantity is measured. +} + +// MediaSection from Vm/VmSpecSection struct +type MediaSection struct { + MediaSettings []*MediaSettings `xml:"MediaSettings"` +} + +// MediaSettings from Vm/VmSpecSection/MediaSection struct +type MediaSettings struct { + DeviceId string `xml:"DeviceId,omitempty"` // Describes the media device whose media mount is being specified here. This deviceId must match the RASD.InstanceID attribute in the VirtualHardwareSection of the vApp's OVF description. + MediaImage *Reference `xml:"MediaImage,omitempty"` // The media image that is mounted onto the device. This property can be 'null' which represents that no media is mounted on the device. + MediaType string `xml:"MediaType,omitempty"` // Specified the type of media that is mounted onto the device. + MediaState string `xml:"MediaState,omitempty"` // Specifies the state of the media device. + UnitNumber int `xml:"UnitNumber"` // Specified the type of media that is mounted onto the device. + BusNumber int `xml:"BusNumber"` // The bus number of the media device controller. + AdapterType string `xml:"AdapterType,omitempty"` // The type of controller, e.g. IDE vs SCSI and if SCSI bus-logic vs LSI logic +} + +// CpuResourceMhz from Vm/VmSpecSection struct +type CpuResourceMhz struct { + Configured int64 `xml:"Configured"` // The amount of resource configured on the virtual machine. + Reservation *int64 `xml:"Reservation,omitempty"` // The amount of reservation of this resource on the underlying virtualization infrastructure. + Limit *int64 `xml:"Limit,omitempty"` // The limit for how much of this resource can be consumed on the underlying virtualization infrastructure. This is only valid when the resource allocation is not unlimited. + SharesLevel string `xml:"SharesLevel,omitempty"` // Pre-determined relative priorities according to which the non-reserved portion of this resource is made available to the virtualized workload. + Shares *int `xml:"Shares,omitempty"` // Custom priority for the resource. This field is read-only, unless the shares level is CUSTOM. +} + +// MemoryResourceMb from Vm/VmSpecSection struct +type MemoryResourceMb struct { + Configured int64 `xml:"Configured"` // The amount of resource configured on the virtual machine. + Reservation *int64 `xml:"Reservation,omitempty"` // The amount of reservation of this resource on the underlying virtualization infrastructure. + Limit *int64 `xml:"Limit,omitempty"` // The limit for how much of this resource can be consumed on the underlying virtualization infrastructure. This is only valid when the resource allocation is not unlimited. + SharesLevel string `xml:"SharesLevel,omitempty"` // Pre-determined relative priorities according to which the non-reserved portion of this resource is made available to the virtualized workload. + Shares *int `xml:"Shares,omitempty"` // Custom priority for the resource. This is a read-only, unless the share level is CUSTOM. +} + +// HardwareVersion from Vm/VmSpecSection struct +type HardwareVersion struct { + HREF string `xml:"href,attr"` + Type string `xml:"type,attr,omitempty"` + Value string `xml:",chardata"` +} + +// ovf:VirtualHardwareSection from Vm struct +type VirtualHardwareSection struct { + // Extends OVF Section_Type + XMLName xml.Name `xml:"VirtualHardwareSection"` + Xmlns string `xml:"vcloud,attr,omitempty"` + + Info string `xml:"Info"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Item []*VirtualHardwareItem `xml:"Item,omitempty"` +} + +// Each ovf:Item parsed from the ovf:VirtualHardwareSection +type VirtualHardwareItem struct { + XMLName xml.Name `xml:"Item"` + ResourceType int `xml:"ResourceType,omitempty"` + ResourceSubType string `xml:"ResourceSubType,omitempty"` + ElementName string `xml:"ElementName,omitempty"` + Description string `xml:"Description,omitempty"` + InstanceID int `xml:"InstanceID,omitempty"` + AutomaticAllocation bool `xml:"AutomaticAllocation,omitempty"` + Address string `xml:"Address,omitempty"` + AddressOnParent int `xml:"AddressOnParent,omitempty"` + AllocationUnits string `xml:"AllocationUnits,omitempty"` + Reservation int `xml:"Reservation,omitempty"` + VirtualQuantity int64 `xml:"VirtualQuantity,omitempty"` + Weight int `xml:"Weight,omitempty"` + CoresPerSocket int `xml:"CoresPerSocket,omitempty"` + Connection []*VirtualHardwareConnection `xml:"Connection,omitempty"` + HostResource []*VirtualHardwareHostResource `xml:"HostResource,omitempty"` + Link []*Link `xml:"Link,omitempty"` + // Reference: https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/operations/GET-DisksRasdItemsList-vApp.html + Parent int `xml:"Parent,omitempty"` +} + +// Connection info from ResourceType=10 (Network Interface) +type VirtualHardwareConnection struct { + IPAddress string `xml:"ipAddress,attr,omitempty"` + PrimaryConnection bool `xml:"primaryNetworkConnection,attr,omitempty"` + IpAddressingMode string `xml:"ipAddressingMode,attr,omitempty"` + NetworkName string `xml:",chardata"` +} + +// HostResource info from ResourceType=17 (Hard Disk) +// Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0, Page 188 - 189 +// https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ +// def8435d-a54a-4923-b26a-e2d1915b09c3/vcloud_sp_api_guide_30_0.pdf +type VirtualHardwareHostResource struct { + BusType int `xml:"busType,attr,omitempty"` + BusSubType string `xml:"busSubType,attr,omitempty"` + Capacity int `xml:"capacity,attr,omitempty"` + StorageProfile string `xml:"storageProfileHref,attr,omitempty"` + OverrideVmDefault bool `xml:"storageProfileOverrideVmDefault,attr,omitempty"` + Disk string `xml:"disk,attr,omitempty"` + //Iops int `xml:"iops,attr,omitempty"` + //OsType string `xml:"osType,attr,omitempty"` +} + +// SnapshotSection from Vm struct +type SnapshotSection struct { + // Extends OVF Section_Type + XMLName xml.Name `xml:"SnapshotSection"` + Info string `xml:"Info"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Snapshot []*SnapshotItem `xml:"Snapshot,omitempty"` +} + +// Each snapshot listed in the SnapshotSection +type SnapshotItem struct { + Created string `xml:"created,attr,omitempty"` + PoweredOn bool `xml:"poweredOn,attr,omitempty"` + Size int `xml:"size,attr,omitempty"` +} + +// OVFItem is a horrible kludge to process OVF, needs to be fixed with proper types. +type OVFItem struct { + XMLName xml.Name `xml:"vcloud:Item"` + XmlnsRasd string `xml:"xmlns:rasd,attr"` + XmlnsVCloud string `xml:"xmlns:vcloud,attr"` + XmlnsXsi string `xml:"xmlns:xsi,attr"` + XmlnsVmw string `xml:"xmlns:vmw,attr,omitempty"` + VCloudHREF string `xml:"vcloud:href,attr"` + VCloudType string `xml:"vcloud:type,attr"` + AllocationUnits string `xml:"rasd:AllocationUnits"` + Description string `xml:"rasd:Description"` + ElementName string `xml:"rasd:ElementName"` + InstanceID int `xml:"rasd:InstanceID"` + Reservation int `xml:"rasd:Reservation"` + ResourceType int `xml:"rasd:ResourceType"` + VirtualQuantity int64 `xml:"rasd:VirtualQuantity"` + // Weight corresponds to Shares when used for CPU and/or memory settings + Weight int `xml:"rasd:Weight,omitempty"` + CoresPerSocket *int `xml:"vmw:CoresPerSocket,omitempty"` + Link *Link `xml:"vcloud:Link"` +} + +// DeployVAppParams are the parameters to a deploy vApp request +// Type: DeployVAppParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Parameters to a deploy vApp request. +// Since: 0.9 +type DeployVAppParams struct { + XMLName xml.Name `xml:"DeployVAppParams"` + Xmlns string `xml:"xmlns,attr"` + // Attributes + PowerOn bool `xml:"powerOn,attr"` // Used to specify whether to power on vapp on deployment, if not set default value is true. + DeploymentLeaseSeconds int `xml:"deploymentLeaseSeconds,attr,omitempty"` // Lease in seconds for deployment. A value of 0 is replaced by the organization default deploymentLeaseSeconds value. + ForceCustomization bool `xml:"forceCustomization,attr,omitempty"` // Used to specify whether to force customization on deployment, if not set default value is false +} + +// GuestCustomizationStatusSection holds information about guest customization status +// https://vdc-repo.vmware.com/vmwb-repository/dcr-public/76f491b4-679c-4e1e-8428-f813d668297a/a2555a1b-22f1-4cca-b481-2a98ab874022/doc/doc/operations/GET-GuestCustStatus.html +type GuestCustomizationStatusSection struct { + XMLName xml.Name `xml:"GuestCustomizationStatusSection"` + Xmlns string `xml:"xmlns,attr"` + + GuestCustStatus string `xml:"GuestCustStatus"` +} + +// GuestCustomizationSection represents guest customization settings +// Type: GuestCustomizationSectionType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a guest customization settings. +// Since: 1.0 +type GuestCustomizationSection struct { + // Extends OVF Section_Type + // Attributes + Ovf string `xml:"xmlns:ovf,attr,omitempty"` + Xsi string `xml:"xmlns:xsi,attr,omitempty"` + Xmlns string `xml:"xmlns,attr,omitempty"` + + HREF string `xml:"href,attr,omitempty"` // A reference to the section in URL format. + Type string `xml:"type,attr,omitempty"` // The MIME type of the section. + // FIXME: Fix the OVF section + Info string `xml:"ovf:Info"` + // Elements + Enabled *bool `xml:"Enabled,omitempty"` // True if guest customization is enabled. + ChangeSid *bool `xml:"ChangeSid,omitempty"` // True if customization can change the Windows SID of this virtual machine. + VirtualMachineID string `xml:"VirtualMachineId,omitempty"` // Virtual machine ID to apply. + JoinDomainEnabled *bool `xml:"JoinDomainEnabled,omitempty"` // True if this virtual machine can join a Windows Domain. + UseOrgSettings *bool `xml:"UseOrgSettings,omitempty"` // True if customization should use organization settings (OrgGuestPersonalizationSettings) when joining a Windows Domain. + DomainName string `xml:"DomainName,omitempty"` // The name of the Windows Domain to join. + DomainUserName string `xml:"DomainUserName,omitempty"` // User name to specify when joining a Windows Domain. + DomainUserPassword string `xml:"DomainUserPassword,omitempty"` // Password to use with DomainUserName. + MachineObjectOU string `xml:"MachineObjectOU,omitempty"` // The name of the Windows Domain Organizational Unit (OU) in which the computer account for this virtual machine will be created. + AdminPasswordEnabled *bool `xml:"AdminPasswordEnabled,omitempty"` // True if guest customization can modify administrator password settings for this virtual machine. + AdminPasswordAuto *bool `xml:"AdminPasswordAuto,omitempty"` // True if the administrator password for this virtual machine should be automatically generated. + AdminPassword string `xml:"AdminPassword,omitempty"` // True if the administrator password for this virtual machine should be set to this string. (AdminPasswordAuto must be false.) + AdminAutoLogonEnabled *bool `xml:"AdminAutoLogonEnabled,omitempty"` // True if guest administrator should automatically log into this virtual machine. + AdminAutoLogonCount int `xml:"AdminAutoLogonCount,omitempty"` // Number of times administrator can automatically log into this virtual machine. In case AdminAutoLogon is set to True, this value should be between 1 and 100. Otherwise, it should be 0. + ResetPasswordRequired *bool `xml:"ResetPasswordRequired,omitempty"` // True if the administrator password for this virtual machine must be reset after first use. + CustomizationScript string `xml:"CustomizationScript,omitempty"` // Script to run on guest customization. The entire script must appear in this element. Use the XML entity to represent a newline. Unicode characters can be represented in the form &#xxxx; where xxxx is the character number. + ComputerName string `xml:"ComputerName,omitempty"` // Computer name to assign to this virtual machine. + Link LinkList `xml:"Link,omitempty"` // A link to an operation on this section. +} + +// InstantiateVAppTemplateParams represents vApp template instantiation parameters. +// Type: InstantiateVAppTemplateParamsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents vApp template instantiation parameters. +// Since: 0.9 +type InstantiateVAppTemplateParams struct { + XMLName xml.Name `xml:"InstantiateVAppTemplateParams"` + Ovf string `xml:"xmlns:ovf,attr"` + Xsi string `xml:"xmlns:xsi,attr,omitempty"` + Xmlns string `xml:"xmlns,attr"` + // Attributes + Name string `xml:"name,attr,omitempty"` // Typically used to name or identify the subject of the request. For example, the name of the object being created or modified. + Deploy bool `xml:"deploy,attr"` // True if the vApp should be deployed at instantiation. Defaults to true. + PowerOn bool `xml:"powerOn,attr"` // True if the vApp should be powered-on at instantiation. Defaults to true. + LinkedClone bool `xml:"linkedClone,attr,omitempty"` // Reserved. Unimplemented. + // Elements + Description string `xml:"Description,omitempty"` // Optional description. + VAppParent *Reference `xml:"VAppParent,omitempty"` // Reserved. Unimplemented. + InstantiationParams *InstantiationParams `xml:"InstantiationParams,omitempty"` // Instantiation parameters for the composed vApp. + Source *Reference `xml:"Source"` // A reference to a source object such as a vApp or vApp template. + IsSourceDelete bool `xml:"IsSourceDelete,omitempty"` // Set to true to delete the source object after the operation completes. + SourcedItem *SourcedCompositionItemParam `xml:"SourcedItem,omitempty"` // Composition item. One of: vApp vAppTemplate VM. + AllEULAsAccepted bool `xml:"AllEULAsAccepted,omitempty"` // True confirms acceptance of all EULAs in a vApp template. Instantiation fails if this element is missing, empty, or set to false and one or more EulaSection elements are present. +} + +// EdgeGateway represents a gateway. +// Element: EdgeGateway +// Type: GatewayType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a gateway. +// Since: 5.1 +type EdgeGateway struct { + // Attributes + Xmlns string `xml:"xmlns,attr,omitempty"` + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + ID string `xml:"id,attr,omitempty"` // The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused + OperationKey string `xml:"operationKey,attr,omitempty"` // Optional unique identifier to support idempotent semantics for create and delete operations. + Name string `xml:"name,attr"` // The name of the entity. + Status int `xml:"status,attr,omitempty"` // Creation status of the gateway. One of: 0 (The gateway is still being created) 1 (The gateway is ready) -1 (There was an error while creating the gateway). + // Elements + Link LinkList `xml:"Link,omitempty"` // A link to an operation on this section. + Description string `xml:"Description,omitempty"` // Optional description. + Tasks *TasksInProgress `xml:"Tasks,omitempty"` // A list of queued, running, or recently completed tasks associated with this entity. + Configuration *GatewayConfiguration `xml:"Configuration"` // Gateway configuration. +} + +// GatewayConfiguration is the gateway configuration +// Type: GatewayConfigurationType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Gateway Configuration. +// Since: 5.1 +type GatewayConfiguration struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + // BackwardCompatibilityMode. Default is false. If set to true, will allow users to write firewall + // rules in the old 1.5 format. The new format does not require to use direction in firewall + // rules. Also, for firewall rules to allow NAT traffic the filter is applied on the original IP + // addresses. Once set to true cannot be reverted back to false. + BackwardCompatibilityMode bool `xml:"BackwardCompatibilityMode,omitempty"` + // GatewayBackingConfig defines configuration of the vShield edge VM for this gateway. One of: + // compact, full. + GatewayBackingConfig string `xml:"GatewayBackingConfig"` + // GatewayInterfaces holds configuration for edge gateway interfaces, ip allocations, traffic + // rate limits and ip sub-allocations + GatewayInterfaces *GatewayInterfaces `xml:"GatewayInterfaces"` + // EdgeGatewayServiceConfiguration represents Gateway Features. + EdgeGatewayServiceConfiguration *GatewayFeatures `xml:"EdgeGatewayServiceConfiguration,omitempty"` + // True if this gateway is highly available. (Requires two vShield edge VMs.) + HaEnabled *bool `xml:"HaEnabled,omitempty"` + // UseDefaultRouteForDNSRelay defines if the default gateway on the external network selected + // for default route should be used as the DNS relay. + UseDefaultRouteForDNSRelay *bool `xml:"UseDefaultRouteForDnsRelay,omitempty"` + // AdvancedNetworkingEnabled allows to use NSX capabilities such dynamic routing (BGP, OSPF), + // zero trust networking (DLR), enchanced VPN support (IPsec VPN, SSL VPN-Plus). + AdvancedNetworkingEnabled *bool `xml:"AdvancedNetworkingEnabled,omitempty"` + // DistributedRoutingEnabled enables distributed routing on the gateway to allow creation of + // many more organization VDC networks. Traffic in those networks is optimized for VM-to-VM + // communication. + DistributedRoutingEnabled *bool `xml:"DistributedRoutingEnabled,omitempty"` + // FipsModeEnabled allows any secure communication to or from the NSX Edge uses cryptographic + // algorithms or protocols that are allowed by United States Federal Information Processing + // Standards (FIPS). FIPS mode turns on the cipher suites that comply with FIPS. + FipsModeEnabled *bool `xml:"FipsModeEnabled,omitempty"` +} + +// GatewayInterfaces is a list of Gateway Interfaces. +// Type: GatewayInterfacesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: A list of Gateway Interfaces. +// Since: 5.1 +type GatewayInterfaces struct { + GatewayInterface []*GatewayInterface `xml:"GatewayInterface"` // Gateway Interface. +} + +// GatewayInterface is a gateway interface configuration. +// Type: GatewayInterfaceType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Gateway Interface configuration. +// Since: 5.1 +type GatewayInterface struct { + Name string `xml:"Name,omitempty"` // Internally generated name for the Gateway Interface. + DisplayName string `xml:"DisplayName,omitempty"` // Gateway Interface display name. + Network *Reference `xml:"Network"` // A reference to the network connected to the gateway interface. + InterfaceType string `xml:"InterfaceType"` // The type of interface: One of: Uplink, Internal + SubnetParticipation []*SubnetParticipation `xml:"SubnetParticipation,omitempty"` // Slice of subnets for IP allocations. + ApplyRateLimit bool `xml:"ApplyRateLimit,omitempty"` // True if rate limiting is applied on this interface. + InRateLimit float64 `xml:"InRateLimit,omitempty"` // Incoming rate limit expressed as Gbps. + OutRateLimit float64 `xml:"OutRateLimit,omitempty"` // Outgoing rate limit expressed as Gbps. + UseForDefaultRoute bool `xml:"UseForDefaultRoute,omitempty"` // True if this network is default route for the gateway. +} + +// SortBySubnetParticipationGateway allows to sort SubnetParticipation property slice by gateway +// address +func (g *GatewayInterface) SortBySubnetParticipationGateway() { + sort.SliceStable(g.SubnetParticipation, func(i, j int) bool { + return g.SubnetParticipation[i].Gateway < g.SubnetParticipation[j].Gateway + }) +} + +// SubnetParticipation allows to chose which subnets a gateway can be a part of +// Type: SubnetParticipationType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Allows to chose which subnets a gateway can be part of +// Since: 5.1 +// +// Note. Field order is important and should not be changed as API returns errors if IPRanges come +// before Gateway and Netmask +type SubnetParticipation struct { + Gateway string `xml:"Gateway"` // Gateway for subnet + Netmask string `xml:"Netmask"` // Netmask for the subnet. + IPAddress string `xml:"IpAddress,omitempty"` // Ip Address to be assigned. Keep empty or omit element for auto assignment + IPRanges *IPRanges `xml:"IpRanges,omitempty"` // Range of IP addresses available for external interfaces. + UseForDefaultRoute bool `xml:"UseForDefaultRoute,omitempty"` // True if this network is default route for the gateway. +} + +type EdgeGatewayServiceConfiguration struct { + XMLName xml.Name `xml:"EdgeGatewayServiceConfiguration"` + Xmlns string `xml:"xmlns,attr,omitempty"` + GatewayDhcpService *GatewayDhcpService `xml:"GatewayDhcpService,omitempty"` + FirewallService *FirewallService `xml:"FirewallService,omitempty"` + NatService *NatService `xml:"NatService,omitempty"` + GatewayIpsecVpnService *GatewayIpsecVpnService `xml:"GatewayIpsecVpnService,omitempty"` // Substitute for NetworkService. Gateway Ipsec VPN service settings +} + +// GatewayFeatures represents edge gateway services. +// Element: EdgeGatewayServiceConfiguration +// Type: GatewayFeaturesType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents edge gateway services. +// Since: 5.1 +type GatewayFeatures struct { + XMLName xml.Name + Xmlns string `xml:"xmlns,attr,omitempty"` + FirewallService *FirewallService `xml:"FirewallService,omitempty"` // Substitute for NetworkService. Firewall service settings + NatService *NatService `xml:"NatService,omitempty"` // Substitute for NetworkService. NAT service settings + GatewayDhcpService *GatewayDhcpService `xml:"GatewayDhcpService,omitempty"` // Substitute for NetworkService. Gateway DHCP service settings + GatewayIpsecVpnService *GatewayIpsecVpnService `xml:"GatewayIpsecVpnService,omitempty"` // Substitute for NetworkService. Gateway Ipsec VPN service settings + StaticRoutingService *StaticRoutingService `xml:"StaticRoutingService,omitempty"` // Substitute for NetworkService. Static Routing service settings +} + +// StaticRoutingService represents Static Routing network service. +// Type: StaticRoutingServiceType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents Static Routing network service. +// Since: 1.5 +type StaticRoutingService struct { + IsEnabled bool `xml:"IsEnabled"` // Enable or disable the service using this flag + StaticRoute []*StaticRoute `xml:"StaticRoute,omitempty"` // Details of each Static Route. +} + +// StaticRoute represents a static route entry +// Type: StaticRouteType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: +// Since: +type StaticRoute struct { + Name string `xml:"Name"` // Name for the static route. + Network string `xml:"Network"` // Network specification in CIDR. + NextHopIP string `xml:"NextHopIp"` // IP Address of Next Hop router/gateway. + Interface string `xml:"Interface,omitempty"` // Interface to use for static routing. Internal and External are the supported values. + GatewayInterface *Reference `xml:"GatewayInterface,omitempty"` // Gateway interface to which static route is bound. +} + +// VendorTemplate is information about a vendor service template. This is optional. +// Type: VendorTemplateType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Information about a vendor service template. This is optional. +// Since: 5.1 +type VendorTemplate struct { + Name string `xml:"Name"` // Name of the vendor template. This is required. + ID string `xml:"Id"` // ID of the vendor template. This is required. +} + +// GatewayIpsecVpnService represents gateway IPsec VPN service. +// Type: GatewayIpsecVpnServiceType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents gateway IPsec VPN service. +// Since: 5.1 +type GatewayIpsecVpnService struct { + IsEnabled bool `xml:"IsEnabled"` // Enable or disable the service using this flag + Endpoint *GatewayIpsecVpnEndpoint `xml:"Endpoint,omitempty"` // List of IPsec VPN Service Endpoints. + Tunnel []*GatewayIpsecVpnTunnel `xml:"Tunnel"` // List of IPsec VPN tunnels. +} + +// GatewayIpsecVpnEndpoint represents an IPsec VPN endpoint. +// Type: GatewayIpsecVpnEndpointType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents an IPsec VPN endpoint. +// Since: 5.1 +type GatewayIpsecVpnEndpoint struct { + Network *Reference `xml:"Network"` // External network reference. + PublicIP string `xml:"PublicIp,omitempty"` // Public IP for IPsec endpoint. +} + +// GatewayIpsecVpnTunnel represents an IPsec VPN tunnel. +// Type: GatewayIpsecVpnTunnelType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents an IPsec VPN tunnel. +// Since: 5.1 +type GatewayIpsecVpnTunnel struct { + Name string `xml:"Name"` // The name of the tunnel. + Description string `xml:"Description,omitempty"` // A description of the tunnel. + // TODO: Fix this in a better way + IpsecVpnThirdPartyPeer *IpsecVpnThirdPartyPeer `xml:"IpsecVpnThirdPartyPeer,omitempty"` // Details about the peer network. + IpsecVpnLocalPeer *IpsecVpnLocalPeer `xml:"IpsecVpnLocalPeer"` // Details about the local peer network. + PeerIPAddress string `xml:"PeerIpAddress"` // IP address of the peer endpoint. + PeerID string `xml:"PeerId"` // Id for the peer end point + LocalIPAddress string `xml:"LocalIpAddress"` // Address of the local network. + LocalID string `xml:"LocalId"` // Id for local end point + LocalSubnet []*IpsecVpnSubnet `xml:"LocalSubnet"` // List of local subnets in the tunnel. + PeerSubnet []*IpsecVpnSubnet `xml:"PeerSubnet"` // List of peer subnets in the tunnel. + SharedSecret string `xml:"SharedSecret"` // Shared secret used for authentication. + SharedSecretEncrypted bool `xml:"SharedSecretEncrypted,omitempty"` // True if shared secret is encrypted. + EncryptionProtocol string `xml:"EncryptionProtocol"` // Encryption protocol to be used. One of: AES, AES256, TRIPLEDES + Mtu int `xml:"Mtu"` // MTU for the tunnel. + IsEnabled bool `xml:"IsEnabled,omitempty"` // True if the tunnel is enabled. + IsOperational bool `xml:"IsOperational,omitempty"` // True if the tunnel is operational. + ErrorDetails string `xml:"ErrorDetails,omitempty"` // Error details of the tunnel. +} + +// IpsecVpnThirdPartyPeer represents details about a peer network +type IpsecVpnThirdPartyPeer struct { + PeerID string `xml:"PeerId,omitempty"` // Id for the peer end point +} + +// IpsecVpnThirdPartyPeer represents details about a peer network +type IpsecVpnLocalPeer struct { + ID string `xml:"Id"` // Id for the peer end point + Name string `xml:"Name"` // Name for the peer +} + +// IpsecVpnSubnet represents subnet details. +// Type: IpsecVpnSubnetType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents subnet details. +// Since: 5.1 +type IpsecVpnSubnet struct { + Name string `xml:"Name"` // Gateway Name. + Gateway string `xml:"Gateway"` // Subnet Gateway. + Netmask string `xml:"Netmask"` // Subnet Netmask. +} + +// GatewayDhcpService represents Gateway DHCP service. +// Type: GatewayDhcpServiceType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents Gateway DHCP service. +// Since: 5.1 +type GatewayDhcpService struct { + IsEnabled bool `xml:"IsEnabled,omitempty"` // Enable or disable the service using this flag + Pool []*DhcpPoolService `xml:"Pool,omitempty"` // A DHCP pool. +} + +// DhcpPoolService represents DHCP pool service. +// Type: DhcpPoolServiceType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents DHCP pool service. +// Since: 5.1 +type DhcpPoolService struct { + IsEnabled bool `xml:"IsEnabled,omitempty"` // True if this DHCP Pool is enabled. + Network *Reference `xml:"Network"` // Org vDC network to which the DHCP range is applicable. + DefaultLeaseTime int `xml:"DefaultLeaseTime,omitempty"` // Default lease period for DHCP range. + MaxLeaseTime int `xml:"MaxLeaseTime"` // Maximum lease period for DHCP range. + LowIPAddress string `xml:"LowIpAddress"` // Low IP address in DHCP range. + HighIPAddress string `xml:"HighIpAddress"` // High IP address in DHCP range. +} + +// VMSelection represents details of an vm+nic+iptype selection. +// Type: VmSelectionType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents details of an vm+nic+iptype selection. +// Since: 5.1 +type VMSelection struct { + VAppScopedVMID string `xml:"VAppScopedVmId"` // VAppScopedVmId of VM to which this rule applies. + VMNicID int `xml:"VmNicId"` // VM NIC ID to which this rule applies. + IPType string `xml:"IpType"` // The value can be one of:- assigned: assigned internal IP be automatically choosen. NAT: NATed external IP will be automatically choosen. +} + +// FirewallRuleProtocols flags for a network protocol in a firewall rule +// Type: FirewallRuleType/Protocols +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: +// Since: +type FirewallRuleProtocols struct { + ICMP bool `xml:"Icmp,omitempty"` // True if the rule applies to the ICMP protocol. + Any bool `xml:"Any,omitempty"` // True if the rule applies to any protocol. + TCP bool `xml:"Tcp,omitempty"` // True if the rule applies to the TCP protocol. + UDP bool `xml:"Udp,omitempty"` // True if the rule applies to the UDP protocol. + // FIXME: this is supposed to extend protocol support to all the VSM supported protocols + // Other string `xml:"Other,omitempty"` // Any other protocol supported by vShield Manager +} + +// FirewallRule represents a firewall rule +// Type: FirewallRuleType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a firewall rule. +// Since: 0.9 +type FirewallRule struct { + ID string `xml:"Id,omitempty"` // Firewall rule identifier. + IsEnabled bool `xml:"IsEnabled"` // Used to enable or disable the firewall rule. Default value is true. + MatchOnTranslate bool `xml:"MatchOnTranslate"` // For DNATed traffic, match the firewall rules only after the destination IP is translated. + Description string `xml:"Description,omitempty"` // A description of the rule. + Policy string `xml:"Policy,omitempty"` // One of: drop (drop packets that match the rule), allow (allow packets that match the rule to pass through the firewall) + Protocols *FirewallRuleProtocols `xml:"Protocols,omitempty"` // Specify the protocols to which the rule should be applied. + IcmpSubType string `xml:"IcmpSubType,omitempty"` // ICMP subtype. One of: address-mask-request, address-mask-reply, destination-unreachable, echo-request, echo-reply, parameter-problem, redirect, router-advertisement, router-solicitation, source-quench, time-exceeded, timestamp-request, timestamp-reply, any. + Port int `xml:"Port,omitempty"` // The port to which this rule applies. A value of -1 matches any port. + DestinationPortRange string `xml:"DestinationPortRange,omitempty"` // Destination port range to which this rule applies. + DestinationIP string `xml:"DestinationIp,omitempty"` // Destination IP address to which the rule applies. A value of Any matches any IP address. + DestinationVM *VMSelection `xml:"DestinationVm,omitempty"` // Details of the destination VM + SourcePort int `xml:"SourcePort,omitempty"` // Destination port to which this rule applies. A value of -1 matches any port. + SourcePortRange string `xml:"SourcePortRange,omitempty"` // Source port range to which this rule applies. + SourceIP string `xml:"SourceIp,omitempty"` // Source IP address to which the rule applies. A value of Any matches any IP address. + SourceVM *VMSelection `xml:"SourceVm,omitempty"` // Details of the source VM + Direction string `xml:"Direction,omitempty"` // Direction of traffic to which rule applies. One of: in (rule applies to incoming traffic. This is the default value), out (rule applies to outgoing traffic). + EnableLogging bool `xml:"EnableLogging"` // Used to enable or disable firewall rule logging. Default value is false. +} + +// FirewallService represent a network firewall service. +// Type: FirewallServiceType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a network firewall service. +// Since: +type FirewallService struct { + IsEnabled bool `xml:"IsEnabled"` // Enable or disable the service using this flag + DefaultAction string `xml:"DefaultAction,omitempty"` // Default action of the firewall. One of: drop (Default. Drop packets that match the rule.), allow (Allow packets that match the rule to pass through the firewall) + LogDefaultAction bool `xml:"LogDefaultAction"` // Flag to enable logging for default action. Default value is false. + FirewallRule []*FirewallRule `xml:"FirewallRule,omitempty"` // A firewall rule. +} + +// NatService represents a NAT network service. +// Type: NatServiceType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a NAT network service. +// Since: +type NatService struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + // Elements + + IsEnabled bool `xml:"IsEnabled"` // Enable or disable the service using this flag + NatType string `xml:"NatType,omitempty"` // One of: ipTranslation (use IP translation), portForwarding (use port forwarding) + Policy string `xml:"Policy,omitempty"` // One of: allowTraffic (Allow all traffic), allowTrafficIn (Allow inbound traffic only) + NatRule []*NatRule `xml:"NatRule,omitempty"` // A NAT rule. + ExternalIP string `xml:"ExternalIp,omitempty"` // External IP address for rule. +} + +// NatRule represents a NAT rule. +// Type: NatRuleType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a NAT rule. +// Since: 0.9 +type NatRule struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + // Elements + Description string `xml:"Description,omitempty"` // A description of the rule. + RuleType string `xml:"RuleType,omitempty"` // Type of NAT rule. One of: SNAT (source NAT), DNAT (destination NAT) + IsEnabled *bool `xml:"IsEnabled"` // Used to enable or disable the firewall rule. + ID string `xml:"Id,omitempty"` // Firewall rule identifier. + GatewayNatRule *GatewayNatRule `xml:"GatewayNatRule,omitempty"` // Defines SNAT and DNAT types. + OneToOneBasicRule *NatOneToOneBasicRule `xml:"OneToOneBasicRule,omitempty"` // Maps one internal IP address to one external IP address. + OneToOneVMRule *NatOneToOneVMRule `xml:"OneToOneVmRule,omitempty"` // Maps one VM NIC to one external IP addresses. + PortForwardingRule *NatPortForwardingRule `xml:"PortForwardingRule,omitempty"` // Port forwarding internal to external IP addresses. + VMRule *NatVMRule `xml:"VmRule,omitempty"` // Port forwarding VM NIC to external IP addresses. +} + +// GatewayNatRule represents the SNAT and DNAT rules. +// Type: GatewayNatRuleType represents the SNAT and DNAT rules. +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the SNAT and DNAT rules. +// Since: 5.1 +type GatewayNatRule struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + // Elements + Interface *Reference `xml:"Interface,omitempty"` // Interface to which rule is applied. + OriginalIP string `xml:"OriginalIp"` // Original IP for rule. + OriginalPort string `xml:"OriginalPort,omitempty"` // Original port for rule. + TranslatedIP string `xml:"TranslatedIp"` // Translated IP for rule. + TranslatedPort string `xml:"TranslatedPort,omitempty"` // Translated port for rule. + Protocol string `xml:"Protocol,omitempty"` // Protocol for rule. + IcmpSubType string `xml:"IcmpSubType,omitempty"` // ICMP subtype. One of: address-mask-request, address-mask-reply, destination-unreachable, echo-request, echo-reply, parameter-problem, redirect, router-advertisement, router-solicitation, source-quench, time-exceeded, timestamp-request, timestamp-reply, any. +} + +// NatOneToOneBasicRule represents the NAT basic rule for one to one mapping of internal and external IP addresses from a network. +// Type: NatOneToOneBasicRuleType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the NAT basic rule for one to one mapping of internal and external IP addresses from a network. +// Since: 0.9 +type NatOneToOneBasicRule struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + // Elements + MappingMode string `xml:"MappingMode"` // One of: automatic (map IP addresses automatically), manual (map IP addresses manually using ExternalIpAddress and InternalIpAddress) + ExternalIPAddress string `xml:"ExternalIpAddress"` // External IP address to map. + InternalIPAddress string `xml:"InternalIpAddress"` // Internal IP address to map. +} + +// NatOneToOneVMRule represents the NAT rule for one to one mapping of VM NIC and external IP addresses from a network. +// Type: NatOneToOneVmRuleType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the NAT rule for one to one mapping of VM NIC and external IP addresses from a network. +// Since: 0.9 +type NatOneToOneVMRule struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + // Elements + MappingMode string `xml:"MappingMode"` // Mapping mode. + ExternalIPAddress *string `xml:"ExternalIpAddress"` // External IP address to map. + VAppScopedVMID string `xml:"VAppScopedVmId"` // VAppScopedVmId of VM to which this rule applies. + VMNicID int `xml:"VmNicId"` // VM NIC ID to which this rule applies. +} + +// NatPortForwardingRule represents the NAT rule for port forwarding between internal IP/port and external IP/port. +// Type: NatPortForwardingRuleType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the NAT rule for port forwarding between internal IP/port and external IP/port. +// Since: 0.9 +type NatPortForwardingRule struct { + ExternalIPAddress string `xml:"ExternalIpAddress"` // External IP address to map. + ExternalPort int `xml:"ExternalPort"` // External port to forward to. + InternalIPAddress string `xml:"InternalIpAddress"` // Internal IP address to map. + InternalPort int `xml:"InternalPort"` // Internal port to forward to. + Protocol string `xml:"Protocol,omitempty"` // Protocol to forward. One of: TCP (forward TCP packets), UDP (forward UDP packets), TCP_UDP (forward TCP and UDP packets). +} + +// NatVMRule represents the NAT rule for port forwarding between VM NIC/port and external IP/port. +// Type: NatVmRuleType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents the NAT rule for port forwarding between VM NIC/port and external IP/port. +// Since: 0.9 +type NatVMRule struct { + ExternalIPAddress string `xml:"ExternalIpAddress,omitempty"` // External IP address to map. + ExternalPort int `xml:"ExternalPort"` // External port to forward to. + VAppScopedVMID string `xml:"VAppScopedVmId"` // VAppScopedVmId of VM to which this rule applies. + VMNicID int `xml:"VmNicId"` // VM NIC ID to which this rule applies. + InternalPort int `xml:"InternalPort"` // Internal port to forward to. + Protocol string `xml:"Protocol,omitempty"` // Protocol to forward. One of: TCP (forward TCP packets), UDP (forward UDP packets), TCP_UDP (forward TCP and UDP packets). +} + +// QueryResultEdgeGatewayRecordsType is a container for query results in records format. +// Type: QueryResultRecordsType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Container for query results in records format. +// Since: 1.5 +type QueryResultEdgeGatewayRecordsType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Name string `xml:"name,attr,omitempty"` // The name of the entity. + Page int `xml:"page,attr,omitempty"` // Page of the result set that this container holds. The first page is page number 1. + PageSize int `xml:"pageSize,attr,omitempty"` // Page size, as a number of records or references. + Total float64 `xml:"total,attr,omitempty"` // Total number of records or references in the container. + // Elements + Link []*Link `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + EdgeGatewayRecord []*QueryResultEdgeGatewayRecordType `xml:"EdgeGatewayRecord"` // A record representing a EdgeGateway result. +} + +type QueryResultRecordsType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Name string `xml:"name,attr,omitempty"` // The name of the entity. + Page int `xml:"page,attr,omitempty"` // Page of the result set that this container holds. The first page is page number 1. + PageSize int `xml:"pageSize,attr,omitempty"` // Page size, as a number of records or references. + Total float64 `xml:"total,attr,omitempty"` // Total number of records or references in the container. + // Elements + Link []*Link `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + EdgeGatewayRecord []*QueryResultEdgeGatewayRecordType `xml:"EdgeGatewayRecord"` // A record representing a EdgeGateway result. + VMRecord []*QueryResultVMRecordType `xml:"VMRecord"` // A record representing a VM result. + AdminVMRecord []*QueryResultVMRecordType `xml:"AdminVMRecord"` // A record representing a Admin VM result. + VAppRecord []*QueryResultVAppRecordType `xml:"VAppRecord"` // A record representing a VApp result. + AdminVAppRecord []*QueryResultVAppRecordType `xml:"AdminVAppRecord"` // A record representing a VApp result as admin. + OrgVdcStorageProfileRecord []*QueryResultOrgVdcStorageProfileRecordType `xml:"OrgVdcStorageProfileRecord"` // A record representing storage profiles + MediaRecord []*MediaRecordType `xml:"MediaRecord"` // A record representing media + AdminMediaRecord []*MediaRecordType `xml:"AdminMediaRecord"` // A record representing Admin media + VMWProviderVdcRecord []*QueryResultVMWProviderVdcRecordType `xml:"VMWProviderVdcRecord"` // A record representing a Provider VDC result. + ProviderVdcStorageProfileRecord []*QueryResultProviderVdcStorageProfileRecordType `xml:"ProviderVdcStorageProfileRecord"` // A record representing a Provider VDC storage profile result + NetworkPoolRecord []*QueryResultNetworkPoolRecordType `xml:"NetworkPoolRecord"` // A record representing a network pool + DiskRecord []*DiskRecordType `xml:"DiskRecord"` // A record representing a independent Disk. + AdminDiskRecord []*DiskRecordType `xml:"AdminDiskRecord"` // A record representing a independent Disk. + VirtualCenterRecord []*QueryResultVirtualCenterRecordType `xml:"VirtualCenterRecord"` // A record representing a vSphere server + PortGroupRecord []*PortGroupRecordType `xml:"PortgroupRecord"` // A record representing a port group + OrgVdcNetworkRecord []*QueryResultOrgVdcNetworkRecordType `xml:"OrgVdcNetworkRecord"` // A record representing a org VDC network + CatalogRecord []*CatalogRecord `xml:"CatalogRecord"` // A record representing a catalog + AdminCatalogRecord []*CatalogRecord `xml:"AdminCatalogRecord"` // A record representing an admin catalog + CatalogItemRecord []*QueryResultCatalogItemType `xml:"CatalogItemRecord"` // A record representing a catalog item + AdminCatalogItemRecord []*QueryResultCatalogItemType `xml:"AdminCatalogItemRecord"` // A record representing an admin catalog item + VappTemplateRecord []*QueryResultVappTemplateType `xml:"VAppTemplateRecord"` // A record representing a vApp template + AdminVappTemplateRecord []*QueryResultVappTemplateType `xml:"AdminVAppTemplateRecord"` // A record representing an admin vApp template + NsxtManagerRecord []*QueryResultNsxtManagerRecordType `xml:"NsxTManagerRecord"` // A record representing NSX-T manager + OrgVdcRecord []*QueryResultOrgVdcRecordType `xml:"OrgVdcRecord"` // A record representing Org VDC + OrgVdcAdminRecord []*QueryResultOrgVdcRecordType `xml:"AdminVdcRecord"` // A record representing Org VDC +} + +// QueryResultOrgVdcRecordType represents an Org VDC record +type QueryResultOrgVdcRecordType struct { + HREF string `xml:"href,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` + ComputeProviderScope string `xml:"computeProviderScope,attr,omitempty"` + NetworkProviderScope string `xml:"networkProviderScope,attr,omitempty"` + IsEnabled string `xml:"isEnabled,attr,omitempty"` + CpuAllocationMhz *int `xml:"cpuAllocationMhz,attr,omitempty"` + CpuLimitMhz *int `xml:"cpuLimitMhz,attr,omitempty"` + CpuUsedMhz *int `xml:"cpuUsedMhz,attr,omitempty"` + MemoryAllocationMB *int `xml:"memoryAllocationMB,attr,omitempty"` + MemoryLimitMB *int `xml:"memoryLimitMB,attr,omitempty"` + MemoryUsedMB *int `xml:"memoryUsedMB,attr,omitempty"` + StorageLimitMB *int `xml:"storageLimitMB,attr,omitempty"` + StorageUsedMB *int `xml:"storageUsedMB,attr,omitempty"` + StorageOverheadMB *int `xml:"storageOverheadMB,attr,omitempty"` + MemoryOverheadMB *int `xml:"memoryOverheadMB,attr,omitempty"` + NumberOfVApps *int `xml:"numberOfVApps,attr,omitempty"` + NumberOfUnmanagedVApps *int `xml:"numberOfUnmanagedVApps,attr,omitempty"` + NumberOfMedia *int `xml:"numberOfMedia,attr,omitempty"` + NumberOfDisks *int `xml:"numberOfDisks,attr,omitempty"` + NumberOfVAppTemplates *int `xml:"numberOfVAppTemplates,attr,omitempty"` + NumberOfStorageProfiles *int `xml:"numberOfStorageProfiles,attr,omitempty"` + NumberOfVMs *int `xml:"numberOfVMs,attr,omitempty"` + NumberOfRunningVMs *int `xml:"numberOfRunningVMs,attr,omitempty"` + NumberOfDeployedVApps *int `xml:"numberOfDeployedVApps,attr,omitempty"` + NumberOfDeployedUnmanagedVApps *int `xml:"numberOfDeployedUnmanagedVApps,attr,omitempty"` + CpuOverheadMhz *int `xml:"cpuOverheadMhz,attr,omitempty"` + OrgName string `xml:"orgName,attr,omitempty"` + AllocationModel string `xml:"allocationModel,attr,omitempty"` + VcName string `xml:"vcName,attr,omitempty"` + IsBusy string `xml:"isBusy,attr,omitempty"` + Status string `xml:"status,attr,omitempty"` + TaskStatusName string `xml:"taskStatusName,attr,omitempty"` + Task string `xml:"task,attr,omitempty"` + TaskStatus string `xml:"taskStatus,attr,omitempty"` + TaskDetails string `xml:"taskDetails,attr,omitempty"` + Metadata *Metadata `xml:"Metadata,omitempty"` + + // Admin Org VDC fields + ProviderVdcName string `xml:"providerVdcName,attr,omitempty"` + ProviderVdc string `xml:"providerVdc,attr,omitempty"` + Org string `xml:"org,attr,omitempty"` + NetworkPool string `xml:"networkPool,attr,omitempty"` + NumberOfResourcePools *int `xml:"numberOfResourcePools,attr,omitempty"` + UsedNetworksInVdc string `xml:"usedNetworksInVdc,attr,omitempty"` + IsThinProvisioned string `xml:"isThinProvisioned,attr,omitempty"` + IsFastProvisioned string `xml:"isFastProvisioned,attr,omitempty"` + NetworkProviderType string `xml:"networkProviderType,attr,omitempty"` + IsVCEnabled string `xml:"isVCEnabled,attr,omitempty"` + MemoryReservedMB *int `xml:"memoryReservedMB,attr,omitempty"` + CpuReservedMhz *int `xml:"cpuReservedMhz,attr,omitempty"` + Vc string `xml:"vc,attr,omitempty"` +} + +// QueryResultCatalogItemType represents a catalog item as query result +type QueryResultCatalogItemType struct { + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + ID string `xml:"id,attr,omitempty"` // Catalog Item ID. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Entity string `xml:"entity,attr,omitempty"` // Entity reference or ID + EntityName string `xml:"entityName,attr,omitempty"` // Entity name + EntityType string `xml:"entityType,attr,omitempty"` // Entity name + Catalog string `xml:"catalog,attr,omitempty"` // Catalog reference or ID + CatalogName string `xml:"catalogName,attr,omitempty"` // Catalog name + OwnerName string `xml:"ownerName,attr,omitempty"` // Owner name + Owner string `xml:"owner,attr,omitempty"` // Owner reference or ID + IsPublished bool `xml:"isPublished,attr,omitempty"` // True if this entity is in a published catalog + Vdc string `xml:"vdc,attr,omitempty"` // VDC reference or ID + VdcName string `xml:"vdcName,attr,omitempty"` // VDC name + IsVdcEnabled bool `xml:"isVdcEnabled,attr,omitempty"` // True if the containing VDC is enabled + CreationDate string `xml:"creationDate,attr,omitempty"` // Creation date + IsExpired bool `xml:"isExpired,attr,omitempty"` // True if this entity is expired + Status string `xml:"status,attr,omitempty"` // Status + Name string `xml:"name,attr,omitempty"` // Catalog Item name. + Link *Link `xml:"Link,omitempty"` + Metadata *Metadata `xml:"Metadata,omitempty"` +} + +// QueryResultVappTemplateType represents a vApp template as query result +type QueryResultVappTemplateType struct { + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + ID string `xml:"id,attr,omitempty"` // vApp template ID. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + OwnerName string `xml:"ownerName,attr,omitempty"` // Owner name + CatalogName string `xml:"catalogName,attr,omitempty"` // Catalog name + IsPublished bool `xml:"isPublished,attr,omitempty"` // True if this entity is in a published catalog + Name string `xml:"name,attr,omitempty"` // vApp template name. + Description string `xml:"description,attr,omitempty"` // vApp template description. + Vdc string `xml:"vdc,attr,omitempty"` // VDC reference or ID + VdcName string `xml:"vdcName,attr,omitempty"` // VDC name + Org string `xml:"org,attr,omitempty"` // Organization reference or ID + CreationDate string `xml:"creationDate,attr,omitempty"` // Creation date + IsBusy bool `xml:"isBusy,attr,omitempty"` // True if the vApp template is busy + IsGoldMaster bool `xml:"isGoldMaster,attr,omitempty"` // True if the vApp template is a gold master + IsEnabled bool `xml:"isEnabled,attr,omitempty"` // True if the vApp template is enabled + Status string `xml:"status,attr,omitempty"` // Status + IsDeployed bool `xml:"isDeployed,attr,omitempty"` // True if this entity is deployed + IsExpired bool `xml:"isExpired,attr,omitempty"` // True if this entity is expired + StorageProfileName string `xml:"storageProfileName,attr,omitempty"` // Storage profile name + Version string `xml:"version,attr,omitempty"` // Storage profile name + LastSuccessfulSync string `xml:"lastSuccessfulSync,attr,omitempty"` // Date of last successful sync + Link *Link `xml:"Link,omitempty"` + Metadata *Metadata `xml:"Metadata,omitempty"` +} + +// QueryResultEdgeGatewayRecordType represents an edge gateway record as query result. +type QueryResultEdgeGatewayRecordType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + Name string `xml:"name,attr,omitempty"` // EdgeGateway name. + Vdc string `xml:"vdc,attr,omitempty"` // VDC Reference or ID + OrgVdcName string `xml:"orgVdcName,attr,omitempty"` // VDC name + NumberOfExtNetworks int `xml:"numberOfExtNetworks,attr,omitempty"` // Number of external networks connected to the edgeGateway. Yes Yes + NumberOfOrgNetworks int `xml:"numberOfOrgNetworks,attr,omitempty"` // Number of org VDC networks connected to the edgeGateway Yes Yes + IsBusy bool `xml:"isBusy,attr"` // True if this Edge Gateway is busy. Yes Yes + GatewayStatus string `xml:"gatewayStatus,attr,omitempty"` // + HaStatus string `xml:"haStatus,attr,omitempty"` // High Availability Status of the edgeGateway Yes Yes +} + +// QueryResultVMRecordType represents a VM record as query result. +type QueryResultVMRecordType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + ID string `xml:"id,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` // VM name. + Type string `xml:"type,attr,omitempty"` // Contains the type of the resource. + ContainerName string `xml:"containerName,attr,omitempty"` // The name of the vApp or vApp template that contains this VM. + ContainerID string `xml:"container,attr,omitempty"` // The ID of the vApp or vApp template that contains this VM. + OwnerName string `xml:"ownerName,attr,omitempty"` + Owner string `xml:"owner,attr,omitempty"` + VdcHREF string `xml:"vdc,attr,omitempty"` + VAppTemplate bool `xml:"isVAppTemplate,attr,omitempty"` + Deleted bool `xml:"isDeleted,attr,omitempty"` + GuestOS string `xml:"guestOs,attr,omitempty"` + Cpus int `xml:"numberOfCpus,attr,omitempty"` + MemoryMB int `xml:"memoryMB,attr,omitempty"` + Status string `xml:"status,attr,omitempty"` + NetworkName string `xml:"networkName,attr,omitempty"` + NetworkHref string `xml:"network,attr,omitempty"` + IpAddress string `xml:"ipAddress,attr,omitempty"` // If configured, the IP Address of the VM on the primary network, otherwise empty. + Busy bool `xml:"isBusy,attr,omitempty"` + Deployed bool `xml:"isDeployed,attr,omitempty"` // True if the virtual machine is deployed. + Published bool `xml:"isPublished,attr,omitempty"` + CatalogName string `xml:"catalogName,attr,omitempty"` + HardwareVersion int `xml:"hardwareVersion,attr,omitempty"` + VmToolsStatus string `xml:"vmToolsStatus,attr,omitempty"` + MaintenanceMode bool `xml:"isInMaintenanceMode,attr,omitempty"` + AutoNature bool `xml:"isAutoNature,attr,omitempty"` // True if the parent vApp is a managed vApp + StorageProfileName string `xml:"storageProfileName,attr,omitempty"` + GcStatus string `xml:"gcStatus,attr,omitempty"` // GC status of this VM. + AutoUndeployDate string `xml:"autoUndeployDate,attr,omitempty"` + AutoDeleteDate string `xml:"autoDeleteDate,attr,omitempty"` + AutoUndeployNotified bool `xml:"isAutoUndeployNotified,attr,omitempty"` + AutoDeleteNotified bool `xml:"isAutoDeleteNotified,attr,omitempty"` + IsComputePolicyCompliant bool `xml:"isComputePolicyCompliant,attr,omitempty"` + VmSizingPolicyId string `xml:"vmSizingPolicyId,attr,omitempty"` + VmPlacementPolicyId string `xml:"vmPlacementPolicyId,attr,omitempty"` + Encrypted bool `xml:"encrypted,attr,omitempty"` + DateCreated string `xml:"dateCreated,attr,omitempty"` + TotalStorageAllocatedMb string `xml:"totalStorageAllocatedMb,attr,omitempty"` + IsExpired bool `xml:"isExpired,attr,omitempty"` + Link []*Link `xml:"Link,omitempty"` + MetaData *Metadata `xml:"Metadata,omitempty"` +} + +// QueryResultVAppRecordType represents a VM record as query result. +type QueryResultVAppRecordType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Name string `xml:"name,attr"` // The name of the entity. + CreationDate string `xml:"creationDate,attr,omitempty"` // Creation date/time of the vApp. + Busy bool `xml:"isBusy,attr,omitempty"` + Deployed bool `xml:"isDeployed,attr,omitempty"` // True if the vApp is deployed. + Enabled bool `xml:"isEnabled,attr,omitempty"` + Expired bool `xml:"isExpired,attr,omitempty"` + MaintenanceMode bool `xml:"isInMaintenanceMode,attr,omitempty"` + Public bool `xml:"isPublic,attr,omitempty"` + OwnerName string `xml:"ownerName,attr,omitempty"` + Status string `xml:"status,attr,omitempty"` + VdcHREF string `xml:"vdc,attr,omitempty"` + VdcName string `xml:"vdcName,attr,omitempty"` + NumberOfVMs int `xml:"numberOfVMs,attr,omitempty"` + NumberOfCPUs int `xml:"numberOfCpus,attr,omitempty"` + CpuAllocationMhz int `xml:"cpuAllocationMhz,attr,omitempty"` + CpuAllocationInMhz int `xml:"cpuAllocationInMhz,attr,omitempty"` + StorageKB int `xml:"storageKB,attr,omitempty"` + MemoryAllocationMB int `xml:"memoryAllocationMB,attr,omitempty"` + AutoDeleteNotified bool `xml:"isAutoDeleteNotified,attr,omitempty"` + AutoUndeployNotified bool `xml:"isAutoUndeployNotified,attr,omitempty"` + VdcEnabled bool `xml:"isVdcEnabled,attr,omitempty"` + HonorBootOrder bool `xml:"honorBookOrder,attr,omitempty"` + HighestSupportedVersion int `xml:"pvdcHighestSupportedHardwareVersion,attr,omitempty"` + LowestHardwareVersion int `xml:"lowestHardwareVersionInVApp,attr,omitempty"` + TaskHREF string `xml:"task,attr,omitempty"` + TaskStatusName string `xml:"taskStatusName,attr,omitempty"` + TaskStatus string `xml:"TaskStatus,attr,omitempty"` + TaskDetails string `xml:"taskDetails,attr,omitempty"` + MetaData *Metadata `xml:"Metadata,omitempty"` +} + +// QueryResultOrgVdcStorageProfileRecordType represents a storage +// profile as query result. +type QueryResultOrgVdcStorageProfileRecordType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Name string `xml:"name,attr,omitempty"` // Storage Profile name. + VdcHREF string `xml:"vdc,attr,omitempty"` + VdcName string `xml:"vdcName,attr,omitempty"` + IsDefaultStorageProfile bool `xml:"isDefaultStorageProfile,attr,omitempty"` + IsEnabled bool `xml:"isEnabled,attr,omitempty"` + IsVdcBusy bool `xml:"isVdcBusy,attr,omitempty"` + NumberOfConditions int `xml:"numberOfConditions,attr,omitempty"` + StorageUsedMB int `xml:"storageUsedMB,attr,omitempty"` + StorageLimitMB int `xml:"storageLimitMB,attr,omitempty"` +} + +// QueryResultVMWProviderVdcRecordType represents a Provider VDC as query result. +type QueryResultVMWProviderVdcRecordType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Name string `xml:"name,attr,omitempty"` // Provider VDC name. + Status string `xml:"status,attr,omitempty"` + IsBusy bool `xml:"isBusy,attr,omitempty"` + IsDeleted bool `xml:"isDeleted,attr,omitempty"` + IsEnabled bool `xml:"isEnabled,attr,omitempty"` + CpuAllocationMhz int `xml:"cpuAllocationMhz,attr,omitempty"` + CpuLimitMhz int `xml:"cpuLimitMhz,attr,omitempty"` + CpuUsedMhz int `xml:"cpuUsedMhz,attr,omitempty"` + NumberOfDatastores int `xml:"numberOfDatastores,attr,omitempty"` + NumberOfStorageProfiles int `xml:"numberOfStorageProfiles,attr,omitempty"` + NumberOfVdcs int `xml:"numberOfVdcs,attr,omitempty"` + MemoryAllocationMB int64 `xml:"memoryAllocationMB,attr,omitempty"` + MemoryLimitMB int64 `xml:"memoryLimitMB,attr,omitempty"` + MemoryUsedMB int64 `xml:"memoryUsedMB,attr,omitempty"` + StorageAllocationMB int64 `xml:"storageAllocationMB,attr,omitempty"` + StorageLimitMB int64 `xml:"storageLimitMB,attr,omitempty"` + StorageUsedMB int64 `xml:"storageUsedMB,attr,omitempty"` + CpuOverheadMhz int64 `xml:"cpuOverheadMhz,attr,omitempty"` + StorageOverheadMB int64 `xml:"storageOverheadMB,attr,omitempty"` + MemoryOverheadMB int64 `xml:"memoryOverheadMB,attr,omitempty"` +} + +// QueryResultProviderVdcStorageProfileRecordType represents a Provider VDC storage profile as query result. +type QueryResultProviderVdcStorageProfileRecordType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Name string `xml:"name,attr,omitempty"` // Provider VDC Storage Profile name. + ProviderVdcHREF string `xml:"providerVdc,attr,omitempty"` + VcHREF string `xml:"vc,attr,omitempty"` + StorageProfileMoref string `xml:"storageProfileMoref,attr,omitempty"` + IsEnabled bool `xml:"isEnabled,attr,omitempty"` + StorageProvisionedMB int64 `xml:"storageProvisionedMB,attr,omitempty"` + StorageRequestedMB int64 `xml:"storageRequestedMB,attr,omitempty"` + StorageTotalMB int64 `xml:"storageTotalMB,attr,omitempty"` + StorageUsedMB int64 `xml:"storageUsedMB,attr,omitempty"` + NumberOfConditions int `xml:"numberOfConditions,attr,omitempty"` +} + +// QueryResultNetworkPoolRecordType represents a network pool as query result. +type QueryResultNetworkPoolRecordType struct { + // Attributes + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Name string `xml:"name,attr,omitempty"` // Network pool name. + IsBusy bool `xml:"isBusy,attr,omitempty"` + NetworkPoolType int `xml:"networkPoolType,attr,omitempty"` +} + +// Type: QueryResultVirtualCenterRecordType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/QueryResultVirtualCenterRecordType.html +// Description: Type for a single virtualCenter query result in records format. +// Since: 1.5 +type QueryResultVirtualCenterRecordType struct { + HREF string `xml:"href,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` + IsBusy bool `xml:"isBusy,attr,omitempty"` + IsEnabled bool `xml:"isEnabled,attr,omitempty"` + IsSupported bool `xml:"isSupported,attr,omitempty"` + ListenerState string `xml:"listenerState,attr,omitempty"` + Status string `xml:"status,attr,omitempty"` + Url string `xml:"url,attr,omitempty"` + UserName string `xml:"userName,attr,omitempty"` + VcVersion string `xml:"vcVersion,attr,omitempty"` + UUID string `xml:"uuid,attr,omitempty"` + VsmIP string `xml:"vsmIP,attr,omitempty"` +} + +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Retrieve a list of extension objects and operations. +// Since: 1.0 +type Extension struct { + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. +} + +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Retrieve a list of tasks +type TasksList struct { + XMLName xml.Name `xml:"TasksList"` + Task []*Task `xml:"Task,omitempty"` +} + +type ExternalNetworkReferences struct { + ExternalNetworkReference []*ExternalNetworkReference `xml:"ExternalNetworkReference,omitempty"` // A reference to an entity or operation associated with this object. +} + +type ExternalNetworkReference struct { + HREF string `xml:"href,attr"` + Type string `xml:"type,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` +} + +// Type: VimObjectRefType +// Namespace: http://www.vmware.com/vcloud/extension/v1.5 +// https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VimObjectRefsType.html +// Description: Represents the Managed Object Reference (MoRef) and the type of a vSphere object. +// Since: 0.9 +type VimObjectRef struct { + VimServerRef *Reference `xml:"VimServerRef"` + MoRef string `xml:"MoRef"` + VimObjectType string `xml:"VimObjectType"` +} + +// Type: VimObjectRefsType +// Namespace: http://www.vmware.com/vcloud/extension/v1.5 +// https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VimObjectRefsType.html +// Description: List of VimObjectRef elements. +// Since: 0.9 +type VimObjectRefs struct { + VimObjectRef []*VimObjectRef `xml:"VimObjectRef"` +} + +// Type: VMWExternalNetworkType +// Namespace: http://www.vmware.com/vcloud/extension/v1.5 +// https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VMWExternalNetworkType.html +// Description: External network type. +// Since: 1.0 +type ExternalNetwork struct { + XMLName xml.Name `xml:"VMWExternalNetwork"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Link []*Link `xml:"Link,omitempty"` + Description string `xml:"Description,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` + Configuration *NetworkConfiguration `xml:"Configuration,omitempty"` + VimPortGroupRef *VimObjectRef `xml:"VimPortGroupRef,omitempty"` + VimPortGroupRefs *VimObjectRefs `xml:"VimPortGroupRefs,omitempty"` + VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"` +} + +// Type: MediaType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// https://vdc-repo.vmware.com/vmwb-repository/dcr-public/ca48e1bb-282b-4fdc-b827-649b819249ed/55142cf1-5bb8-4ab1-8d09-b84f717af5ec/doc/doc/types/MediaType.html +// Description: Represents Media image +// Since: 0.9 +type Media struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Status int64 `xml:"status,attr,omitempty"` + ImageType string `xml:"imageType,attr,omitempty"` + Size int64 `xml:"size,attr,omitempty"` + Description string `xml:"Description,omitempty"` + Files *FilesList `xml:"Files,omitempty"` + Link LinkList `xml:"Link,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` + Owner *Reference `xml:"Owner,omitempty"` + Entity *Entity `xml:"Entity"` +} + +// Type: MediaRecord +// Namespace: http://www.vmware.com/vcloud/v1.5 +// https://code.vmware.com/apis/287/vcloud#/doc/doc/operations/GET-MediasFromQuery.html +// Issue that description partly matches with what is returned +// Description: Represents Media record +// Since: 1.5 +type MediaRecordType struct { + HREF string `xml:"href,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + OwnerName string `xml:"ownerName,attr,omitempty"` + CatalogName string `xml:"catalogName,attr,omitempty"` + IsPublished bool `xml:"isPublished,attr,omitempty"` + Name string `xml:"name,attr"` + Vdc string `xml:"vdc,attr,omitempty"` + VdcName string `xml:"vdcName,attr,omitempty"` + Org string `xml:"org,attr,omitempty"` + CreationDate string `xml:"creationDate,attr,omitempty"` + IsBusy bool `xml:"isBusy,attr,omitempty"` + StorageB int64 `xml:"storageB,attr,omitempty"` + Owner string `xml:"owner,attr,omitempty"` + Catalog string `xml:"catalog,attr,omitempty"` + CatalogItem string `xml:"catalogItem,attr,omitempty"` + Status string `xml:"status,attr,omitempty"` + StorageProfileName string `xml:"storageProfileName,attr,omitempty"` + Version int64 `xml:"version,attr,omitempty"` + LastSuccessfulSync string `xml:"lastSuccessfulSync,attr,omitempty"` + TaskStatusName string `xml:"taskStatusName,attr,omitempty"` + IsInCatalog bool `xml:"isInCatalog,attr,omitempty"` + Task string `xml:"task,attr,omitempty"` + IsIso bool `xml:"isIso,attr,omitempty"` + IsVdcEnabled bool `xml:"isVdcEnabled,attr,omitempty"` + TaskStatus string `xml:"taskStatus,attr,omitempty"` + TaskDetails string `xml:"taskDetails,attr,omitempty"` + Link *Link `xml:"Link,omitempty"` + Metadata *Metadata `xml:"Metadata,omitempty"` +} + +// DiskCreateParams element for create independent disk +// Reference: vCloud API 30.0 - DiskCreateParamsType +// https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/types/DiskCreateParamsType.html +type DiskCreateParams struct { + XMLName xml.Name `xml:"DiskCreateParams"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Disk *Disk `xml:"Disk"` + Locality *Reference `xml:"Locality,omitempty"` + VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"` +} + +// Represents an independent disk +// Reference: vCloud API 30.0 - DiskType +// https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/types/DiskType.html +type Disk struct { + XMLName xml.Name `xml:"Disk"` + Xmlns string `xml:"xmlns,attr,omitempty"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Id string `xml:"id,attr,omitempty"` + OperationKey string `xml:"operationKey,attr,omitempty"` + Name string `xml:"name,attr"` + Status int `xml:"status,attr,omitempty"` + // Size of the disk in bytes. No longer supported in API V33.0+. + // Size int64 `xml:"size,attr"` + // SizeMb is the size of disk in MB. It has replaced Size (in bytes) field as of API V33.0 + SizeMb int64 `xml:"sizeMb,attr,omitempty"` + Iops *int `xml:"iops,attr,omitempty"` + BusType string `xml:"busType,attr,omitempty"` + BusSubType string `xml:"busSubType,attr,omitempty"` + Description string `xml:"Description,omitempty"` + Files *FilesList `xml:"Files,omitempty"` + Link []*Link `xml:"Link,omitempty"` + Owner *Owner `xml:"Owner,omitempty"` + StorageProfile *Reference `xml:"StorageProfile,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` + VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"` +} + +// General purpose extension element +// Not related to extension services +// Reference: vCloud API 30.0 - DiskAttachOrDetachParamsType +// https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/types/VCloudExtensionType.html +type VCloudExtension struct { + Required bool `xml:"required,attr,omitempty"` +} + +// Parameters for attaching or detaching an independent disk +// Reference: vCloud API 30.0 - DiskAttachOrDetachParamsType +// https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/types/DiskAttachOrDetachParamsType.html +type DiskAttachOrDetachParams struct { + XMLName xml.Name `xml:"DiskAttachOrDetachParams"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Disk *Reference `xml:"Disk"` + BusNumber *int `xml:"BusNumber,omitempty"` + UnitNumber *int `xml:"UnitNumber,omitempty"` + VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"` +} + +// Represents a list of virtual machines +// Reference: vCloud API 30.0 - VmsType +// https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/types/FilesListType.html +type Vms struct { + XMLName xml.Name `xml:"Vms"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Type string `xml:"type,attr"` + HREF string `xml:"href,attr"` + VmReference *Reference `xml:"VmReference,omitempty"` +} + +// Parameters for inserting and ejecting virtual media for VM as CD/DVD +// Reference: vCloud API 30.0 - MediaInsertOrEjectParamsType +// https://code.vmware.com/apis/287/vcloud#/doc/doc/types/MediaInsertOrEjectParamsType.html +type MediaInsertOrEjectParams struct { + XMLName xml.Name `xml:"MediaInsertOrEjectParams"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Media *Reference `xml:"Media"` + VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"` +} + +// Parameters for VM pending questions +// Reference: vCloud API 27.0 - VmPendingQuestionType +// https://code.vmware.com/apis/287/vcloud#/doc/doc/types/VmPendingQuestionType.html +type VmPendingQuestion struct { + XMLName xml.Name `xml:"VmPendingQuestion"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Type string `xml:"type,attr"` + HREF string `xml:"href,attr"` + Link LinkList `xml:"Link,omitempty"` + Question string `xml:"Question"` + QuestionId string `xml:"QuestionId"` + Choices []*VmQuestionAnswerChoiceType `xml:"Choices"` +} + +// Parameters for VM question answer choice +// Reference: vCloud API 27.0 - VmQuestionAnswerChoiceType +// https://code.vmware.com/apis/287/vcloud#/doc/doc/types/VmQuestionAnswerChoiceType.html +type VmQuestionAnswerChoiceType struct { + Id int `xml:"Id"` + Text string `xml:"Text,omitempty"` +} + +// Parameters for VM question answer +// Reference: vCloud API 27.0 - VmQuestionAnswerType +// https://code.vmware.com/apis/287/vcloud#/doc/doc/types/VmQuestionAnswerType.html +type VmQuestionAnswer struct { + XMLName xml.Name `xml:"VmQuestionAnswer"` + Xmlns string `xml:"xmlns,attr,omitempty"` + ChoiceId int `xml:"ChoiceId"` + QuestionId string `xml:"QuestionId"` +} + +// Represents an independent disk record +// Reference: vCloud API 27.0 - DiskType +// https://code.vmware.com/apis/287/vcloud#/doc/doc/types/QueryResultDiskRecordType.html +type DiskRecordType struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + HREF string `xml:"href,attr,omitempty"` + Id string `xml:"id,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` + Vdc string `xml:"vdc,attr,omitempty"` + // SizeB is not available in API V33.0. It is replaced by SizeMb + //SizeB int64 `xml:"sizeB,attr,omitempty"` + SizeMb int64 `xml:"sizeMb,attr,omitempty"` + DataStore string `xml:"dataStore,attr,omitempty"` + DataStoreName string `xml:"datastoreName,attr,omitempty"` + OwnerName string `xml:"ownerName,attr,omitempty"` + VdcName string `xml:"vdcName,attr,omitempty"` + Task string `xml:"task,attr,omitempty"` + StorageProfile string `xml:"storageProfile,attr,omitempty"` + StorageProfileName string `xml:"storageProfileName,attr,omitempty"` + Status string `xml:"status,attr,omitempty"` + BusType string `xml:"busType,attr,omitempty"` + BusSubType string `xml:"busSubType,attr,omitempty"` + BusTypeDesc string `xml:"busTypeDesc,attr,omitempty"` + IsAttached bool `xml:"isAttached,attr,omitempty"` + Description string `xml:"description,attr,omitempty"` + Link []*Link `xml:"Link,omitempty"` +} + +// Represents port group +// Reference: vCloud API 27.0 - Port group type +// https://code.vmware.com/apis/72/doc/doc/types/QueryResultPortgroupRecordType.html +type PortGroupRecordType struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + HREF string `xml:"href,attr,omitempty"` + Id string `xml:"id,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + MoRef string `xml:"moref,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` + PortgroupType string `xml:"portgroupType,attr,omitempty"` + Vc string `xml:"vc,attr,omitempty"` + VcName string `xml:"vcName,attr,omitempty"` + IsVCEnabled bool `xml:"isVCEnabled,attr,omitempty"` + Network string `xml:"network,attr,omitempty"` + NetworkName string `xml:"networkName,attr,omitempty"` + ScopeType int `xml:"scopeType,attr,omitempty"` // Scope of network using the portgroup(1=Global, 2=Organization, 3=vApp) + Link []*Link `xml:"Link,omitempty"` +} + +// Represents org VDC Network +// Reference: vCloud API 27.0 - Org VDC Network +// https://code.vmware.com/apis/72/doc/doc/types/QueryResultOrgVdcNetworkRecordType.html +type QueryResultOrgVdcNetworkRecordType struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + HREF string `xml:"href,attr,omitempty"` + Id string `xml:"id,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` + DefaultGateway string `xml:"defaultGateway,attr,omitempty"` + Netmask string `xml:"netmask,attr,omitempty"` + Dns1 string `xml:"dns1,attr,omitempty"` + Dns2 string `xml:"dns2,attr,omitempty"` + DnsSuffix string `xml:"dnsSuffix,attr,omitempty"` + LinkType int `xml:"linkType,attr,omitempty"` // 0 = direct, 1 = routed, 2 = isolated + ConnectedTo string `xml:"connectedTo,attr,omitempty"` + Vdc string `xml:"vdc,attr,omitempty"` + IsBusy bool `xml:"isBusy,attr,omitempty"` + IsShared bool `xml:"isShared,attr,omitempty"` + VdcName string `xml:"vdcName,attr,omitempty"` + IsIpScopeInherited bool `xml:"isIpScopeInherited,attr,omitempty"` + Link []*Link `xml:"Link,omitempty"` + Metadata *Metadata `xml:"Metadata,omitempty"` +} + +type QueryResultNsxtManagerRecordType struct { + Xmlns string `xml:"xmlns,attr,omitempty"` + Name string `xml:"name,attr"` + URL string `xml:"url,attr"` + HREF string `xml:"href,attr"` + Site string `xml:"site,attr"` + LocationId string `xml:"locationId,attr"` + SiteName string `xml:"siteName,attr"` + Link []*Link `xml:"Link,omitempty"` +} + +// Represents org VDC Network +// Reference: vCloud API 27.0 - Network Pool +// https://code.vmware.com/apis/72/vcloud-director#/doc/doc/types/VMWNetworkPoolType.html +type VMWNetworkPool struct { + HREF string `xml:"href,attr,omitempty"` + Id string `xml:"id,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Name string `xml:"name,attr"` + Status int `xml:"status,attr,omitempty"` + Description string `xml:"netmask,omitempty"` + Tasks *TasksInProgress `xml:"Tasks,omitempty"` +} + +type GroupReference struct { + GroupReference []*Reference `xml:"GroupReference,omitempty"` +} + +// Represents an org user +// Reference: vCloud API 27.0 - UserType +// https://code.vmware.com/apis/442/vcloud-director#/doc/doc/types/UserType.html +// Note that the order of fields is important. If this structure needs to change, +// the field order must be preserved. +type User struct { + XMLName xml.Name `xml:"User"` + Xmlns string `xml:"xmlns,attr"` + Href string `xml:"href,attr"` + Type string `xml:"type,attr"` + ID string `xml:"id,attr"` + OperationKey string `xml:"operationKey,attr"` + Name string `xml:"name,attr"` + Links LinkList `xml:"Link,omitempty"` + Description string `xml:"Description,omitempty"` + FullName string `xml:"FullName,omitempty"` + EmailAddress string `xml:"EmailAddress,omitempty"` + Telephone string `xml:"Telephone,omitempty"` + IsEnabled bool `xml:"IsEnabled,omitempty"` + IsLocked bool `xml:"IsLocked,omitempty"` + IM string `xml:"IM,omitempty"` + NameInSource string `xml:"NameInSource,omitempty"` + IsExternal bool `xml:"IsExternal,omitempty"` + ProviderType string `xml:"ProviderType,omitempty"` + IsGroupRole bool `xml:"IsGroupRole,omitempty"` + StoredVmQuota int `xml:"StoredVmQuota,omitempty"` + DeployedVmQuota int `xml:"DeployedVmQuota,omitempty"` + Role *Reference `xml:"Role,omitempty"` + GroupReferences *GroupReference `xml:"GroupReferences,omitempty"` + Password string `xml:"Password,omitempty"` + Tasks *TasksInProgress `xml:"Tasks"` +} + +// Group represents Org group definition +type Group struct { + XMLName xml.Name `xml:"Group"` + Xmlns string `xml:"xmlns,attr"` + // Id holds ID in format urn:vcloud:group:252fe08e-ae1b-409c-9dda-a531bb1ed69a + ID string `xml:"id,attr,omitempty"` + // Href holds reference to group object + Href string `xml:"href,attr,omitempty"` + // Type holds mime type for group + Type string `xml:"type,attr"` + // Description sets description for group + Description string `xml:"Description"` + // Name of the group. Cannot be updated. + Name string `xml:"name,attr"` + // ProviderType - 'SAML', 'INTEGRATED' + ProviderType string `xml:"ProviderType"` + // Role - reference to existing role + Role *Reference `xml:"Role,omitempty"` +} + +// Type: AdminCatalogRecord +// Namespace: http://www.vmware.com/vcloud/v1.5 +// https://code.vmware.com/apis/287/vcloud#/doc/doc/types/QueryResultCatalogRecordType.html +// Issue that description partly matches with what is returned +// Description: Represents Catalog record +// Since: 1.5 +type CatalogRecord struct { + HREF string `xml:"href,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` + Description string `xml:"description,attr,omitempty"` + IsPublished bool `xml:"isPublished,attr,omitempty"` + IsShared bool `xml:"isShared,attr,omitempty"` + CreationDate string `xml:"creationDate,attr,omitempty"` + OrgName string `xml:"orgName,attr,omitempty"` + OwnerName string `xml:"ownerName,attr,omitempty"` + NumberOfVAppTemplates int64 `xml:"numberOfVAppTemplates,attr,omitempty"` + NumberOfMedia int64 `xml:"numberOfMedia,attr,omitempty"` + Owner string `xml:"owner,attr,omitempty"` + PublishSubscriptionType string `xml:"publishSubscriptionType,attr,omitempty"` + Version int64 `xml:"version,attr,omitempty"` + Status string `xml:"status,attr,omitempty"` + Link *Link `xml:"Link,omitempty"` + Metadata *Metadata `xml:"Metadata,omitempty"` +} + +type AdminCatalogRecord CatalogRecord + +// VmAffinityRule defines an affinity (or anti-affinity) rule for a group of VmReferences` +// https://code.vmware.com/apis/722/doc/doc/types/VmAffinityRuleType.html +type VmAffinityRule struct { + XMLName xml.Name `xml:"VmAffinityRule"` + Xmlns string `xml:"xmlns,attr"` + HREF string `xml:"href,attr,omitempty"` + ID string `xml:"id,attr,omitempty"` + Name string `xml:"Name"` + OperationKey string `xml:"OperationKey,attr,omitempty"` // Optional unique identifier to support idempotent semantics for create and delete operations + IsEnabled *bool `xml:"IsEnabled"` // True if the affinity rule is enabled + IsMandatory *bool `xml:"IsMandatory"` // True if this affinity rule is mandatory. When a rule is mandatory, a host failover will not power on the VM if doing so would violate the rule + Polarity string `xml:"Polarity"` // The polarity of this rule. One of: Affinity, Anti-Affinity + VmReferences []*VMs `xml:"VmReferences"` // A list of VmReferences under a specific VM affinity rule. + Link []*Link `xml:"Link,omitempty"` // + VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"` // An optional extension element that can contain an arbitrary number of elements and attributes +} + +// VmAffinityRules defines a list of VmAffinityRule +type VmAffinityRules struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Link *Link `xml:"Link,omitempty"` // + VmAffinityRule []*VmAffinityRule `xml:"VmAffinityRule,omitempty"` +} + +// ControlAccessParams specifies access controls for a resource. +type ControlAccessParams struct { + XMLName xml.Name `xml:"ControlAccessParams"` + Xmlns string `xml:"xmlns,attr"` + IsSharedToEveryone bool `xml:"IsSharedToEveryone"` // If true, the resource is shared with everyone in the organization. Defaults to false. + EveryoneAccessLevel *string `xml:"EveryoneAccessLevel,omitempty"` // If IsSharedToEveryone is true, this element must be present to specify the access level. for all members of the organization. One of: FullControl Change ReadOnly + AccessSettings *AccessSettingList `xml:"AccessSettings,omitempty"` // The access settings to be applied if IsSharedToEveryone is false. Required on create and modify if IsSharedToEveryone is false. +} + +// AccessSettingList is a tagged list of AccessSetting +type AccessSettingList struct { + AccessSetting []*AccessSetting `xml:"AccessSetting"` +} + +// LocalSubject is the user, group, or organization to which control access settings apply. +type LocalSubject struct { + HREF string `xml:"href,attr"` // Required - The URL with the full identification of the subject + Name string `xml:"name,attr"` // The name of the subject. Not needed in input, but it is returned on reading + Type string `xml:"type,attr"` // Required - The MIME type of the subject. So far, we are using users, groups, and organizations +} + +// AccessSetting controls access to the resource. +type AccessSetting struct { + XMLName xml.Name `xml:"AccessSetting"` + Subject *LocalSubject `xml:"Subject,omitempty"` // The user or group to which these settings apply. + ExternalSubject *ExternalSubject `xml:"ExternalSubject,omitempty"` // Subject existing external of VCD, to which these settings apply. + AccessLevel string `xml:"AccessLevel"` // The access level for the subject. One of: FullControl Change ReadOnly Deny (only for a VDC resource) +} + +// ExternalSubjectType is a reference to a user or group managed by an identity provider configured for use in this organization. +type ExternalSubject struct { + IdpType string `xml:"IdpType"` // The type of identity provider for example: OAUTH, SAML, LDAP etc for this SubjectID. + IsUser bool `xml:"IsUser"` // If true, SubjectID is a reference to a user defined by this organization's identity provider. If false or empty, SubjectID is a reference to a group defined by this organization's identity provider. + SubjectId string `xml:"SubjectId"` // The primary key that your identity provider uses to uniquely identify the user or group referenced in SubjectId. +} + +type VdcComputePolicyReferences struct { + Xmlns string `xml:"xmlns,attr"` + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Link *Link `xml:"Link,omitempty"` + VdcComputePolicyReference []*Reference `xml:"VdcComputePolicyReference,omitempty"` +} + +// Structure returned by /api/admin call +type VCloud struct { + XMLName xml.Name `xml:"VCloud"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Name string `xml:"name,attr"` + HREF string `xml:"href,attr"` + Type string `xml:"type,attr,omitempty"` + Description string `xml:"Description"` // Contains VCD version, build number and build timestamp + Link *Link `xml:"Link,omitempty"` + // TODO: Add other fields if needed + // OrganizationReferences + // ProviderVdcReferences + // RightReferences + // RoleReferences + // Networks +} + +// UpdateVdcStorageProfiles is used to add a storage profile to an Org VDC or to remove one +type UpdateVdcStorageProfiles struct { + XMLName xml.Name `xml:"UpdateVdcStorageProfiles"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Name string `xml:"name,attr"` + Description string `xml:"Description,omitempty"` + AddStorageProfile *VdcStorageProfileConfiguration `xml:"AddStorageProfile,omitempty"` + RemoveStorageProfile *Reference `xml:"RemoveStorageProfile,omitempty"` +} + +// ApiTokenRefresh contains the access token resulting from a refresh_token operation +type ApiTokenRefresh struct { + AccessToken string `json:"access_token"` + TokenType string `json:"token_type"` + ExpiresIn int `json:"expires_in"` + RefreshToken interface{} `json:"refresh_token"` +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/vm_types.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/vm_types.go new file mode 100644 index 000000000..e19af9b19 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/types/v56/vm_types.go @@ -0,0 +1,150 @@ +/* + * Copyright 2021 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ +package types + +import "encoding/xml" + +// Vm represents a virtual machine +// Type: VmType +// Namespace: http://www.vmware.com/vcloud/v1.5 +// Description: Represents a virtual machine. +// Since: 0.9 +// This structure used to be called `VM`, and needed an XMLName to adjust the XML entity name upon marshalling. +// We have renamed it to `Vm` to remove the ambiguity and avoid XMLName conflicts when embedding this type +// into another structure. +// Now, there is no need for XMLName, as the name of the structure is the same as the XML entity +type Vm struct { + // Attributes + Ovf string `xml:"xmlns:ovf,attr,omitempty"` + Xsi string `xml:"xmlns:xsi,attr,omitempty"` + Xmlns string `xml:"xmlns,attr,omitempty"` + + HREF string `xml:"href,attr,omitempty"` // The URI of the entity. + Type string `xml:"type,attr,omitempty"` // The MIME type of the entity. + ID string `xml:"id,attr,omitempty"` // The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused + OperationKey string `xml:"operationKey,attr,omitempty"` // Optional unique identifier to support idempotent semantics for create and delete operations. + Name string `xml:"name,attr"` // The name of the entity. + Status int `xml:"status,attr,omitempty"` // Creation status of the resource entity. + Deployed bool `xml:"deployed,attr,omitempty"` // True if the virtual machine is deployed. + NeedsCustomization bool `xml:"needsCustomization,attr,omitempty"` // True if this virtual machine needs customization. + NestedHypervisorEnabled bool `xml:"nestedHypervisorEnabled,attr,omitempty"` // True if hardware-assisted CPU virtualization capabilities in the host should be exposed to the guest operating system. + // Elements + Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + Description string `xml:"Description,omitempty"` // Optional description. + Tasks *TasksInProgress `xml:"Tasks,omitempty"` // A list of queued, running, or recently completed tasks associated with this entity. + Files *FilesList `xml:"FilesList,omitempty"` // Represents a list of files to be transferred (uploaded or downloaded). Each File in the list is part of the ResourceEntity. + VAppParent *Reference `xml:"VAppParent,omitempty"` // Reserved. Unimplemented. + // TODO: OVF Sections to be implemented + // Section OVF_Section `xml:"Section,omitempty" + DateCreated string `xml:"DateCreated,omitempty"` // Creation date/time of the vApp. + + // Section ovf:VirtualHardwareSection + VirtualHardwareSection *VirtualHardwareSection `xml:"VirtualHardwareSection,omitempty"` + + // FIXME: Upstream bug? Missing NetworkConnectionSection + NetworkConnectionSection *NetworkConnectionSection `xml:"NetworkConnectionSection,omitempty"` + + VAppScopedLocalID string `xml:"VAppScopedLocalId,omitempty"` // A unique identifier for the virtual machine in the scope of the vApp. + + Snapshots *SnapshotSection `xml:"SnapshotSection,omitempty"` + + // TODO: OVF Sections to be implemented + // Environment OVF_Environment `xml:"Environment,omitempty" + + VmSpecSection *VmSpecSection `xml:"VmSpecSection,omitempty"` + + // GuestCustomizationSection contains settings for VM customization like admin password, SID + // changes, domain join configuration, etc + GuestCustomizationSection *GuestCustomizationSection `xml:"GuestCustomizationSection,omitempty"` + + VMCapabilities *VmCapabilities `xml:"VmCapabilities,omitempty"` // Allows you to specify certain capabilities of this virtual machine. + StorageProfile *Reference `xml:"StorageProfile,omitempty"` // A reference to a storage profile to be used for this object. The specified storage profile must exist in the organization vDC that contains the object. If not specified, the default storage profile for the vDC is used. + ProductSection *ProductSection `xml:"ProductSection,omitempty"` + ComputePolicy *ComputePolicy `xml:"ComputePolicy,omitempty"` // accessible only from version API 33.0 + Media *Reference `xml:"Media,omitempty"` // Reference to the media object to insert in a new VM. +} + +// VmSpecSection from Vm struct +type VmSpecSection struct { + Modified *bool `xml:"Modified,attr,omitempty"` + Info string `xml:"ovf:Info"` + OsType string `xml:"OsType,omitempty"` // The type of the OS. This parameter may be omitted when using the VmSpec to update the contents of an existing VM. + NumCpus *int `xml:"NumCpus,omitempty"` // Number of CPUs. This parameter may be omitted when using the VmSpec to update the contents of an existing VM. + NumCoresPerSocket *int `xml:"NumCoresPerSocket,omitempty"` // Number of cores among which to distribute CPUs in this virtual machine. This parameter may be omitted when using the VmSpec to update the contents of an existing VM. + CpuResourceMhz *CpuResourceMhz `xml:"CpuResourceMhz,omitempty"` // CPU compute resources. This parameter may be omitted when using the VmSpec to update the contents of an existing VM. + MemoryResourceMb *MemoryResourceMb `xml:"MemoryResourceMb"` // Memory compute resources. This parameter may be omitted when using the VmSpec to update the contents of an existing VM. + MediaSection *MediaSection `xml:"MediaSection,omitempty"` // The media devices of this VM. + DiskSection *DiskSection `xml:"DiskSection,omitempty"` // virtual disks of this VM. + HardwareVersion *HardwareVersion `xml:"HardwareVersion"` // vSphere name of Virtual Hardware Version of this VM. Example: vmx-13 - This parameter may be omitted when using the VmSpec to update the contents of an existing VM. + VmToolsVersion string `xml:"VmToolsVersion,omitempty"` // VMware tools version of this VM. + VirtualCpuType string `xml:"VirtualCpuType,omitempty"` // The capabilities settings for this VM. This parameter may be omitted when using the VmSpec to update the contents of an existing VM. + TimeSyncWithHost *bool `xml:"TimeSyncWithHost,omitempty"` // Synchronize the VM's time with the host. +} + +// RecomposeVAppParamsForEmptyVm represents a vApp structure which allows to create VM. +type RecomposeVAppParamsForEmptyVm struct { + XMLName xml.Name `xml:"RecomposeVAppParams"` + XmlnsVcloud string `xml:"xmlns,attr"` + XmlnsOvf string `xml:"xmlns:ovf,attr"` + CreateItem *CreateItem `xml:"CreateItem,omitempty"` + AllEULAsAccepted bool `xml:"AllEULAsAccepted,omitempty"` +} + +// CreateItem represents structure to create VM, part of RecomposeVAppParams structure. +type CreateItem struct { + Name string `xml:"name,attr,omitempty"` + Description string `xml:"Description,omitempty"` + GuestCustomizationSection *GuestCustomizationSection `xml:"GuestCustomizationSection,omitempty"` + NetworkConnectionSection *NetworkConnectionSection `xml:"NetworkConnectionSection,omitempty"` + VmSpecSection *VmSpecSection `xml:"VmSpecSection,omitempty"` + StorageProfile *Reference `xml:"StorageProfile,omitempty"` + ComputePolicy *ComputePolicy `xml:"ComputePolicy,omitempty"` // accessible only from version API 33.0 + BootImage *Media `xml:"Media,omitempty"` // boot image as vApp template. Href, Id and name needed. +} + +// ComputePolicy represents structure to manage VM compute polices, part of RecomposeVAppParams structure. +type ComputePolicy struct { + HREF string `xml:"href,attr,omitempty"` + Type string `xml:"type,attr,omitempty"` + Link *Link `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object. + VmPlacementPolicy *Reference `xml:"VmPlacementPolicy,omitempty"` // VdcComputePolicy that defines VM's placement on a host through various affinity constraints. + VmPlacementPolicyFinal *bool `xml:"VmPlacementPolicyFinal,omitempty"` // True indicates that the placement policy cannot be removed from a VM that is instantiated with it. This value defaults to false. + VmSizingPolicy *Reference `xml:"VmSizingPolicy,omitempty"` // VdcComputePolicy that defines VM's sizing and resource allocation. + VmSizingPolicyFinal *bool `xml:"VmSizingPolicyFinal,omitempty"` // True indicates that the sizing policy cannot be removed from a VM that is instantiated with it. This value defaults to false. +} + +// CreateVmParams is used to create a standalone VM without a template +type CreateVmParams struct { + XMLName xml.Name `xml:"CreateVmParams"` + XmlnsOvf string `xml:"xmlns:ovf,attr"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` // Typically used to name or identify the subject of the request. For example, the name of the object being created or modified. + PowerOn bool `xml:"powerOn,attr,omitempty"` // True if the VM should be powered-on after creation. Defaults to false. + Description string `xml:"Description,omitempty"` // Optional description + CreateVm *Vm `xml:"CreateVm"` // Read-only information about the VM to create. This information appears in the Task returned by a createVm request. + Media *Reference `xml:"Media,omitempty"` // Reference to the media object to insert in the new VM. +} + +// InstantiateVmTemplateParams is used to create a standalone VM with a template +type InstantiateVmTemplateParams struct { + XMLName xml.Name `xml:"InstantiateVmTemplateParams"` + XmlnsOvf string `xml:"xmlns:ovf,attr"` + Xmlns string `xml:"xmlns,attr,omitempty"` + Name string `xml:"name,attr,omitempty"` // Typically used to name or identify the subject of the request. For example, the name of the object being created or modified. + PowerOn bool `xml:"powerOn,attr,omitempty"` // True if the VM should be powered-on after creation. Defaults to false. + Description string `xml:"Description,omitempty"` // Optional description + SourcedVmTemplateItem *SourcedVmTemplateParams `xml:"SourcedVmTemplateItem,omitempty"` // Represents virtual machine instantiation parameters. + AllEULAsAccepted bool `xml:"AllEULAsAccepted,omitempty"` // True confirms acceptance of all EULAs in a vApp template. Instantiation fails if this element is missing, empty, or set to false and one or more EulaSection elements are present. + ComputePolicy *ComputePolicy `xml:"ComputePolicy,omitempty"` // A reference to a vdc compute policy. This contains VM's actual vdc compute policy reference and also optionally an add-on policy which always defines VM's sizing. +} + +// SourcedVmTemplateParams represents the standalone VM instantiation parameters +type SourcedVmTemplateParams struct { + LocalityParams *LocalityParams `xml:"LocalityParams,omitempty"` // Locality parameters provide a hint that may help optimize placement of a VM and an independent a Disk so that the VM can make efficient use of the disk. + Source *Reference `xml:"Source"` // A reference to an existing VM template + VmCapabilities *VmCapabilities `xml:"VmCapabilities,omitempty"` // Describes the capabilities (hot swap, etc.) the instantiated VM should have. + VmGeneralParams *VMGeneralParams `xml:"VmGeneralParams,omitempty"` // Specify name, description, and other properties of a VM during instantiation. + VmTemplateInstantiationParams *InstantiationParams `xml:"VmTemplateInstantiationParams,omitempty"` // Same as InstantiationParams used for VMs within a vApp + StorageProfile *Reference `xml:"StorageProfile,omitempty"` // A reference to a storage profile to be used for the VM. The specified storage profile must exist in the organization vDC that contains the composed vApp. If not specified, the default storage profile for the vDC is used. +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/LOGGING.md b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/LOGGING.md new file mode 100644 index 000000000..0dc017c1f --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/LOGGING.md @@ -0,0 +1,93 @@ +# LOGGING + + +## Defaults for logging + +Use of the standard Go `log` package is deprecated and should be avoided. +The recommended way of logging is through the logger `util.Logger`, which supports [all the functions normally available to `log`](https://golang.org/pkg/log/#Logger). + + +By default, **logging is disabled**. Any `Logger.Printf` statement will simply be discarded. + +To enable logging, you should use + +```go +util.EnableLogging = true +util.SetLog() +``` + +When enabled, the default output for logging is a file named `go-vcloud-director.log`. +The file name can be changed using + +```go +util.ApiLogFileName = "my_file_name.log" +``` + + +If you want logging on the screen, use + +```go +util.Logger.SetOutput(os.Stdout) +``` + +or + +``` +util.Logger.SetOutput(os.Stderr) +``` + +## Automatic logging of HTTP requests and responses. + +The HTTP requests and responses are automatically logged. +Since all the HTTP operations go through `NewRequest` and `decodeBody`, the logging captures the input and output of the request with calls to `util.ProcessRequestOutput` and `util.ProcessResponseOutput`. + +These two functions will show the request or response, and the function from which they were called, giving devs an useful tracking tool. + +The output of these functions can be quite large. If you want to mute the HTTP processing, you can use: + +```go +util.LogHttpRequest = false +util.LogHttpResponse = false +``` + +During the request and response processing, any password or authentication token found through pattern matching will be automatically hidden. To show passwords in your logs, use + +```go +util.LogPasswords = true +``` + +It is also possible to skip the output of the some tags (such as the result of `/versions` request,) which are quite large using + +```go +util.SetSkipTags("SupportedVersions,ovf:License") +``` + +For an even more dedicated log, you can define from which function names you want the logs, using + +```go +util.SetApiLogFunctions("FindVAppByName,GetAdminOrgByName") +``` + +## Custom logger + +If the configuration options are not enough for your needs, you can supply your own logger. + +```go +util.SetCustomLogger(mylogger) +``` + +## Environment variables + +The logging behavior can be changed without coding. There are a few environment variables that are checked when the library is used: + +Variable | Corresponding environment var +--------------------------- | :------------------------------- +`EnableLogging` | `GOVCD_LOG` +`ApiLogFileName` | `GOVCD_LOG_FILE` +`LogPasswords` | `GOVCD_LOG_PASSWORDS` +`LogOnScreen` | `GOVCD_LOG_ON_SCREEN` +`LogHttpRequest` | `GOVCD_LOG_SKIP_HTTP_REQ` +`LogHttpResponse` | `GOVCD_LOG_SKIP_HTTP_RESP` +`SetSkipTags` | `GOVCD_LOG_SKIP_TAGS` +`SetApiLogFunctions` | `GOVCD_LOG_INCLUDE_FUNCTIONS` +`OverwriteLog` | `GOVCD_LOG_OVERWRITE` diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/logging.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/logging.go new file mode 100644 index 000000000..326485ee1 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/logging.go @@ -0,0 +1,471 @@ +/* + * Copyright 2019 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +// Package util provides ancillary functionality to go-vcloud-director library +// logging.go regulates logging for the whole library. +// See LOGGING.md for detailed usage +package util + +import ( + "fmt" + "io/ioutil" + "log" + "net/http" + "os" + "path" + "regexp" + "runtime" + "strings" +) + +const ( + // Name of the environment variable that enables logging + envUseLog = "GOVCD_LOG" + + // envOverwriteLog allows to overwrite file on every initialization + envOverwriteLog = "GOVCD_LOG_OVERWRITE" + + // Name of the environment variable with the log file name + envLogFileName = "GOVCD_LOG_FILE" + + // Name of the environment variable with the screen output + envLogOnScreen = "GOVCD_LOG_ON_SCREEN" + + // Name of the environment variable that enables logging of passwords + envLogPasswords = "GOVCD_LOG_PASSWORDS" + + // Name of the environment variable that enables logging of HTTP requests + envLogSkipHttpReq = "GOVCD_LOG_SKIP_HTTP_REQ" + + // Name of the environment variable that enables logging of HTTP responses + envLogSkipHttpResp = "GOVCD_LOG_SKIP_HTTP_RESP" + + // Name of the environment variable with a custom list of of responses to skip from logging + envLogSkipTagList = "GOVCD_LOG_SKIP_TAGS" + + // Name of the environment variable with a custom list of of functions to include in the logging + envApiLogFunctions = "GOVCD_LOG_FUNCTIONS" +) + +var ( + // All go-vcloud director logging goes through this logger + Logger *log.Logger + + // It's true if we're using an user provided logger + customLogging bool = false + + // Name of the log file + // activated by GOVCD_LOG_FILE + ApiLogFileName string = "go-vcloud-director.log" + + // Globally enabling logs + // activated by GOVCD_LOG + EnableLogging bool = false + + // OverwriteLog specifies if log file should be overwritten on every run + OverwriteLog bool = false + + // Enable logging of passwords + // activated by GOVCD_LOG_PASSWORDS + LogPasswords bool = false + + // Enable logging of Http requests + // disabled by GOVCD_LOG_SKIP_HTTP_REQ + LogHttpRequest bool = true + + // Enable logging of Http responses + // disabled by GOVCD_LOG_SKIP_HTTP_RESP + LogHttpResponse bool = true + + // List of tags to be excluded from logging + skipTags = []string{"ovf:License"} + + // List of functions included in logging + // If this variable is filled, only operations from matching function names will be logged + apiLogFunctions []string + + // Sends log to screen. If value is either "stderr" or "err" + // logging will go to os.Stderr. For any other value it will + // go to os.Stdout + LogOnScreen string = "" + + // Flag indicating that a log file is open + // logOpen bool = false + + // PanicEmptyUserAgent will panic if Request header does not have HTTP User-Agent set This + // is generally useful in tests and is off by default. + PanicEmptyUserAgent bool = false + + // Text lines used for logging of http requests and responses + lineLength int = 80 + dashLine string = strings.Repeat("-", lineLength) + hashLine string = strings.Repeat("#", lineLength) +) + +// TogglePanicEmptyUserAgent allows to enable Panic in test if HTTP User-Agent is missing. This +// generally is useful in tests and is off by default. +func TogglePanicEmptyUserAgent(willPanic bool) { + PanicEmptyUserAgent = willPanic +} + +func newLogger(logpath string) *log.Logger { + var err error + var file *os.File + if OverwriteLog { + file, err = os.OpenFile(logpath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0640) + } else { + file, err = os.OpenFile(logpath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0640) + } + + if err != nil { + fmt.Printf("error opening log file %s : %v", logpath, err) + os.Exit(1) + } + return log.New(file, "", log.Ldate|log.Ltime) +} + +func SetCustomLogger(customLogger *log.Logger) { + Logger = customLogger + EnableLogging = true + customLogging = true +} + +// initializes logging with known parameters +func SetLog() { + if customLogging { + return + } + if !EnableLogging { + Logger = log.New(ioutil.Discard, "", log.Ldate|log.Ltime) + return + } + + // If no file name was set, logging goes to the screen + if ApiLogFileName == "" { + if LogOnScreen == "stderr" || LogOnScreen == "err" { + log.SetOutput(os.Stderr) + Logger = log.New(os.Stderr, "", log.Ldate|log.Ltime) + } else { + Logger = log.New(os.Stdout, "", log.Ldate|log.Ltime) + } + } else { + Logger = newLogger(ApiLogFileName) + } + if len(skipTags) > 0 { + Logger.Printf("### WILL SKIP THE FOLLOWING TAGS: %+v", skipTags) + } + if len(apiLogFunctions) > 0 { + Logger.Printf("### WILL ONLY INCLUDE API LOGS FROM THE FOLLOWING FUNCTIONS: %+v", apiLogFunctions) + } +} + +// hideSensitive hides passwords, tokens, and certificate details +func hideSensitive(in string, onScreen bool) string { + if !onScreen && LogPasswords { + return in + } + var out string + + // Filters out the below: + // Regular passwords + re1 := regexp.MustCompile(`("[^\"]*[Pp]assword"\s*:\s*)"[^\"]+"`) + out = re1.ReplaceAllString(in, `${1}"********"`) + + // Replace password in ADFS SAML request + re2 := regexp.MustCompile(`(\s*)(.*)()`) + out = re2.ReplaceAllString(out, `${1}******${3}`) + + // Token data between + re3 := regexp.MustCompile(`(.*)(.*)(.*)`) + out = re3.ReplaceAllString(out, `${1}******${3}`) + // Token data between + re4 := regexp.MustCompile(`(.*)(.*)(.*)`) + out = re4.ReplaceAllString(out, `${1}******${3}`) + + // Data inside certificates and private keys + re5 := regexp.MustCompile(`(-----BEGIN CERTIFICATE-----)(.*)(-----END CERTIFICATE-----)`) + out = re5.ReplaceAllString(out, `${1}******${3}`) + re6 := regexp.MustCompile(`(-----BEGIN ENCRYPTED PRIVATE KEY-----)(.*)(-----END ENCRYPTED PRIVATE KEY-----)`) + out = re6.ReplaceAllString(out, `${1}******${3}`) + + // Token inside request body + re7 := regexp.MustCompile(`(refresh_token)=(\S+)`) + out = re7.ReplaceAllString(out, `${1}=*******`) + + return out +} + +// Determines whether a string is likely to contain binary data +func isBinary(data string, req *http.Request) bool { + reContentRange := regexp.MustCompile(`(?i)content-range`) + reMultipart := regexp.MustCompile(`(?i)multipart/form`) + reMediaXml := regexp.MustCompile(`(?i)media+xml;`) + for key, value := range req.Header { + if reContentRange.MatchString(key) { + return true + } + if reMultipart.MatchString(key) { + return true + } + for _, v := range value { + if reMediaXml.MatchString(v) { + return true + } + } + } + return false +} + +// SanitizedHeader returns a http.Header with sensitive fields masked +func SanitizedHeader(inputHeader http.Header) http.Header { + if LogPasswords { + return inputHeader + } + var sensitiveKeys = []string{ + "Config-Secret", + "Authorization", + "X-Vcloud-Authorization", + "X-Vmware-Vcloud-Access-Token", + } + var sanitizedHeader = make(http.Header) + for key, value := range inputHeader { + // Explicitly mask only token in SIGN token so that other details are not obfuscated + // Header format: SIGN token="`+base64GzippedSignToken+`",org="`+org+`" + if (key == "authorization" || key == "Authorization") && len(value) == 1 && + strings.HasPrefix(value[0], "SIGN") && !LogPasswords { + + re := regexp.MustCompile(`(SIGN token=")([^"]*)(.*)`) + out := re.ReplaceAllString(value[0], `${1}********${3}"`) + + Logger.Printf("\t%s: %s\n", key, out) + // Do not perform any post processing on this header + continue + } + + for _, sk := range sensitiveKeys { + if strings.EqualFold(sk, key) { + value = []string{"********"} + break + } + } + sanitizedHeader[key] = value + } + return sanitizedHeader +} + +// logSanitizedHeader logs the contents of the header after sanitizing +func logSanitizedHeader(inputHeader http.Header) { + for key, value := range SanitizedHeader(inputHeader) { + Logger.Printf("\t%s: %s\n", key, value) + } +} + +// Returns true if the caller function matches any of the functions in the include function list +func includeFunction(caller string) bool { + if len(apiLogFunctions) > 0 { + for _, f := range apiLogFunctions { + reFunc := regexp.MustCompile(f) + if reFunc.MatchString(caller) { + return true + } + } + } else { + // If there is no include list, we include everything + return true + } + // If we reach this point, none of the functions in the list matches the caller name + return false +} + +// Logs the essentials of a HTTP request +func ProcessRequestOutput(caller, operation, url, payload string, req *http.Request) { + // Special behavior for testing that all requests get HTTP User-Agent set + if PanicEmptyUserAgent && req.Header.Get("User-Agent") == "" { + panic(fmt.Sprintf("empty User-Agent detected in API call to '%s'", url)) + } + + if !LogHttpRequest { + return + } + if !includeFunction(caller) { + return + } + + Logger.Printf("%s\n", dashLine) + Logger.Printf("Request caller: %s\n", caller) + Logger.Printf("%s %s\n", operation, url) + Logger.Printf("%s\n", dashLine) + dataSize := len(payload) + if isBinary(payload, req) { + payload = "[binary data]" + } + // Request header should be shown before Request data + Logger.Printf("Req header:\n") + logSanitizedHeader(req.Header) + + if dataSize > 0 { + Logger.Printf("Request data: [%d]\n%s\n", dataSize, hideSensitive(payload, false)) + } +} + +// Logs the essentials of a HTTP response +func ProcessResponseOutput(caller string, resp *http.Response, result string) { + if !LogHttpResponse { + return + } + + if !includeFunction(caller) { + return + } + + outText := result + if len(skipTags) > 0 { + for _, longTag := range skipTags { + initialTag := `<` + longTag + `.*>` + finalTag := `` + reInitialSearchTag := regexp.MustCompile(initialTag) + + // The `(?s)` flag treats the regular expression as a single line. + // In this context, the dot matches every character until the next operator + // The `.*?` is a non-greedy match of every character until the next operator, but + // only matching the shortest possible portion. + reSearchBothTags := regexp.MustCompile(`(?s)` + initialTag + `.*?` + finalTag) + outRepl := fmt.Sprintf("[SKIPPING '%s' TAG AT USER'S REQUEST]", longTag) + // We search for the initial long tag + if reInitialSearchTag.MatchString(outText) { + // If the first tag was found, we search the text to skip the whole output between the tags + // Notice that if the second tag is not found, there won't be any replacement + outText = reSearchBothTags.ReplaceAllString(outText, outRepl) + break + } + } + } + Logger.Printf("%s\n", hashLine) + Logger.Printf("Response caller %s\n", caller) + Logger.Printf("Response status %s\n", resp.Status) + Logger.Printf("%s\n", hashLine) + Logger.Printf("Response header:\n") + logSanitizedHeader(resp.Header) + dataSize := len(result) + outTextSize := len(outText) + if outTextSize != dataSize { + Logger.Printf("Response text: [%d -> %d]\n%s\n", dataSize, outTextSize, hideSensitive(outText, false)) + } else { + Logger.Printf("Response text: [%d]\n%s\n", dataSize, hideSensitive(outText, false)) + } +} + +// Sets the list of tags to skip +func SetSkipTags(tags string) { + if tags != "" { + skipTags = strings.Split(tags, ",") + } +} + +// Sets the list of functions to include +func SetApiLogFunctions(functions string) { + if functions != "" { + apiLogFunctions = strings.Split(functions, ",") + } +} + +// Initializes default logging values +func InitLogging() { + if os.Getenv(envLogSkipHttpReq) != "" { + LogHttpRequest = false + } + + if os.Getenv(envLogSkipHttpResp) != "" { + LogHttpResponse = false + } + + if os.Getenv(envApiLogFunctions) != "" { + SetApiLogFunctions(os.Getenv(envApiLogFunctions)) + } + + if os.Getenv(envLogSkipTagList) != "" { + SetSkipTags(os.Getenv(envLogSkipTagList)) + } + + if os.Getenv(envLogPasswords) != "" { + EnableLogging = true + LogPasswords = true + } + + if os.Getenv(envLogFileName) != "" { + EnableLogging = true + ApiLogFileName = os.Getenv(envLogFileName) + } + + LogOnScreen = os.Getenv(envLogOnScreen) + if LogOnScreen != "" { + ApiLogFileName = "" + EnableLogging = true + } + + if EnableLogging || os.Getenv(envUseLog) != "" { + EnableLogging = true + } + + if os.Getenv(envOverwriteLog) != "" { + OverwriteLog = true + } + + SetLog() +} + +func init() { + InitLogging() +} + +// Returns the name of the function that called the +// current function. +// Used by functions that call processResponseOutput and +// processRequestOutput +func CallFuncName() string { + fpcs := make([]uintptr, 1) + n := runtime.Callers(3, fpcs) + if n > 0 { + fun := runtime.FuncForPC(fpcs[0] - 1) + if fun != nil { + return fun.Name() + } + } + return "" +} + +// Returns the name of the current function +func CurrentFuncName() string { + fpcs := make([]uintptr, 1) + runtime.Callers(2, fpcs) + fun := runtime.FuncForPC(fpcs[0]) + return fun.Name() +} + +// Returns a string containing up to 10 function names +// from the call stack +func FuncNameCallStack() string { + // Gets the list of function names from the call stack + fpcs := make([]uintptr, 10) + runtime.Callers(0, fpcs) + // Removes the function names from the reflect stack itself and the ones from the API management + removeReflect := regexp.MustCompile(`^ runtime.call|reflect.Value|\bNewRequest\b|NewRequestWitNotEncodedParamsWithApiVersion|NewRequestWitNotEncodedParams|ExecuteRequest|ExecuteRequestWithoutResponse|ExecuteTaskRequest`) + var stackStr []string + // Gets up to 10 functions from the stack + for N := 0; N < len(fpcs) && N < 10; N++ { + fun := runtime.FuncForPC(fpcs[N]) + funcName := path.Base(fun.Name()) + if !removeReflect.MatchString(funcName) { + stackStr = append(stackStr, funcName) + } + } + // Reverses the function names stack, to make it easier to read + var inverseStackStr []string + for N := len(stackStr) - 1; N > 1; N-- { + if stackStr[N] != "" && stackStr[N] != "." { + inverseStackStr = append(inverseStackStr, stackStr[N]) + } + } + return strings.Join(inverseStackStr, "-->") +} diff --git a/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/tar.go b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/tar.go new file mode 100644 index 000000000..88460b9b4 --- /dev/null +++ b/scripts/token-log-collector/vendor/github.com/vmware/go-vcloud-director/v2/util/tar.go @@ -0,0 +1,160 @@ +/* + * Copyright 2018 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. + */ + +package util + +import ( + "archive/tar" + "errors" + "io" + "io/ioutil" + "net/http" + "os" + "path/filepath" + "strings" +) + +const TmpDirPrefix = "govcd" + +// Extract files to system tmp dir with name govcd+random number. Created folder with files isn't deleted. +// Returns extracted files paths in array and path where folder with files created. +func Unpack(tarFile string) ([]string, string, error) { + + var filePaths []string + var dst string + + reader, err := os.Open(tarFile) + if err != nil { + return filePaths, dst, err + } + defer reader.Close() + + tarReader := tar.NewReader(reader) + + dst, err = ioutil.TempDir("", TmpDirPrefix) + if err != nil { + return filePaths, dst, err + } + + var expectedFileSize int64 = -1 + + for { + header, err := tarReader.Next() + + switch { + + // if no more files are found return + case err == io.EOF: + return filePaths, dst, nil + + // return any other error + case err != nil: + return filePaths, dst, err + + // if the header is nil, just skip it (not sure how this happens) + case header == nil: + continue + + case header != nil: + expectedFileSize = header.Size + } + + // the target location where the dir/newFile should be created + target := filepath.Join(dst, sanitizedName(header.Name)) + Logger.Printf("[TRACE] extracting newFile: %s \n", target) + + // check the newFile type + switch header.Typeflag { + + // if its a dir and it doesn't exist create it + case tar.TypeDir: + if _, err := os.Stat(target); err != nil { + if err := os.MkdirAll(target, 0755); err != nil { + return filePaths, dst, err + } + } + + case tar.TypeSymlink: + if header.Linkname != "" { + err := os.Symlink(header.Linkname, target) + if err != nil { + return filePaths, dst, err + } + } else { + return filePaths, dst, errors.New("file %s is a symlink, but no link information was provided") + } + + // if it's a newFile create it + case tar.TypeReg: + newFile, err := os.OpenFile(target, os.O_CREATE|os.O_RDWR, os.FileMode(header.Mode)) + if err != nil { + return filePaths, dst, err + } + + // copy over contents + if _, err := io.Copy(newFile, tarReader); err != nil { + return filePaths, dst, err + } + + filePaths = append(filePaths, newFile.Name()) + + if err := isExtractedFileValid(newFile, expectedFileSize); err != nil { + errClose := newFile.Close() + if errClose != nil { + Logger.Printf("[DEBUG - Unpack] error closing newFile: %s", errClose) + } + return filePaths, dst, err + } + + // manually close here after each newFile operation; deferring would cause each newFile close + // to wait until all operations have completed. + errClose := newFile.Close() + if errClose != nil { + Logger.Printf("[DEBUG - Unpack] error closing newFile: %s", errClose) + } + } + } +} + +func isExtractedFileValid(file *os.File, expectedFileSize int64) error { + if fInfo, err := file.Stat(); err == nil { + Logger.Printf("[TRACE] isExtractedFileValid: created file size %#v, size from header %#v.\n", fInfo.Size(), expectedFileSize) + if fInfo.Size() != expectedFileSize && expectedFileSize != -1 { + return errors.New("extracted file didn't match defined file size") + } + } + return nil +} + +func sanitizedName(filename string) string { + if len(filename) > 1 && filename[1] == ':' { + filename = filename[2:] + } + filename = strings.TrimLeft(filename, "\\/.") + filename = strings.TrimLeft(filename, "./") + filename = strings.Replace(filename, "../../", "../", -1) + return strings.Replace(filename, "..\\", "", -1) +} + +// GetFileContentType returns the real file type +func GetFileContentType(file string) (string, error) { // Open File + f, err := os.Open(file) + if err != nil { + return "", err + } + defer f.Close() + // Only the first 512 bytes are used to sniff the content type. + buffer := make([]byte, 512) + + _, err = f.Read(buffer) + if err != nil { + return "", err + } + + // Use the net/http package's handy DectectContentType function. Always returns a valid + // content-type by returning "application/octet-stream" if no others seemed to match. + contentType := http.DetectContentType(buffer) + + return contentType, nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/.codecov.yml b/scripts/token-log-collector/vendor/go.uber.org/atomic/.codecov.yml new file mode 100644 index 000000000..571116cc3 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/.codecov.yml @@ -0,0 +1,19 @@ +coverage: + range: 80..100 + round: down + precision: 2 + + status: + project: # measuring the overall project coverage + default: # context, you can create multiple ones with custom titles + enabled: yes # must be yes|true to enable this status + target: 100 # specify the target coverage for each commit status + # option: "auto" (must increase from parent commit or pull request base) + # option: "X%" a static target percentage to hit + if_not_found: success # if parent is not found report status as success, error, or failure + if_ci_failed: error # if ci fails report status as success, error, or failure + +# Also update COVER_IGNORE_PKGS in the Makefile. +ignore: + - /internal/gen-atomicint/ + - /internal/gen-valuewrapper/ diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/.gitignore b/scripts/token-log-collector/vendor/go.uber.org/atomic/.gitignore new file mode 100644 index 000000000..c3fa25389 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/.gitignore @@ -0,0 +1,12 @@ +/bin +.DS_Store +/vendor +cover.html +cover.out +lint.log + +# Binaries +*.test + +# Profiling output +*.prof diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/.travis.yml b/scripts/token-log-collector/vendor/go.uber.org/atomic/.travis.yml new file mode 100644 index 000000000..13d0a4f25 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/.travis.yml @@ -0,0 +1,27 @@ +sudo: false +language: go +go_import_path: go.uber.org/atomic + +env: + global: + - GO111MODULE=on + +matrix: + include: + - go: oldstable + - go: stable + env: LINT=1 + +cache: + directories: + - vendor + +before_install: + - go version + +script: + - test -z "$LINT" || make lint + - make cover + +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/CHANGELOG.md b/scripts/token-log-collector/vendor/go.uber.org/atomic/CHANGELOG.md new file mode 100644 index 000000000..24c0274dc --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/CHANGELOG.md @@ -0,0 +1,76 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.7.0] - 2020-09-14 +### Added +- Support JSON serialization and deserialization of primitive atomic types. +- Support Text marshalling and unmarshalling for string atomics. + +### Changed +- Disallow incorrect comparison of atomic values in a non-atomic way. + +### Removed +- Remove dependency on `golang.org/x/{lint, tools}`. + +## [1.6.0] - 2020-02-24 +### Changed +- Drop library dependency on `golang.org/x/{lint, tools}`. + +## [1.5.1] - 2019-11-19 +- Fix bug where `Bool.CAS` and `Bool.Toggle` do work correctly together + causing `CAS` to fail even though the old value matches. + +## [1.5.0] - 2019-10-29 +### Changed +- With Go modules, only the `go.uber.org/atomic` import path is supported now. + If you need to use the old import path, please add a `replace` directive to + your `go.mod`. + +## [1.4.0] - 2019-05-01 +### Added + - Add `atomic.Error` type for atomic operations on `error` values. + +## [1.3.2] - 2018-05-02 +### Added +- Add `atomic.Duration` type for atomic operations on `time.Duration` values. + +## [1.3.1] - 2017-11-14 +### Fixed +- Revert optimization for `atomic.String.Store("")` which caused data races. + +## [1.3.0] - 2017-11-13 +### Added +- Add `atomic.Bool.CAS` for compare-and-swap semantics on bools. + +### Changed +- Optimize `atomic.String.Store("")` by avoiding an allocation. + +## [1.2.0] - 2017-04-12 +### Added +- Shadow `atomic.Value` from `sync/atomic`. + +## [1.1.0] - 2017-03-10 +### Added +- Add atomic `Float64` type. + +### Changed +- Support new `go.uber.org/atomic` import path. + +## [1.0.0] - 2016-07-18 + +- Initial release. + +[1.7.0]: https://github.com/uber-go/atomic/compare/v1.6.0...v1.7.0 +[1.6.0]: https://github.com/uber-go/atomic/compare/v1.5.1...v1.6.0 +[1.5.1]: https://github.com/uber-go/atomic/compare/v1.5.0...v1.5.1 +[1.5.0]: https://github.com/uber-go/atomic/compare/v1.4.0...v1.5.0 +[1.4.0]: https://github.com/uber-go/atomic/compare/v1.3.2...v1.4.0 +[1.3.2]: https://github.com/uber-go/atomic/compare/v1.3.1...v1.3.2 +[1.3.1]: https://github.com/uber-go/atomic/compare/v1.3.0...v1.3.1 +[1.3.0]: https://github.com/uber-go/atomic/compare/v1.2.0...v1.3.0 +[1.2.0]: https://github.com/uber-go/atomic/compare/v1.1.0...v1.2.0 +[1.1.0]: https://github.com/uber-go/atomic/compare/v1.0.0...v1.1.0 +[1.0.0]: https://github.com/uber-go/atomic/releases/tag/v1.0.0 diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/LICENSE.txt b/scripts/token-log-collector/vendor/go.uber.org/atomic/LICENSE.txt new file mode 100644 index 000000000..8765c9fbc --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (c) 2016 Uber Technologies, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/Makefile b/scripts/token-log-collector/vendor/go.uber.org/atomic/Makefile new file mode 100644 index 000000000..1b1376d42 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/Makefile @@ -0,0 +1,78 @@ +# Directory to place `go install`ed binaries into. +export GOBIN ?= $(shell pwd)/bin + +GOLINT = $(GOBIN)/golint +GEN_ATOMICINT = $(GOBIN)/gen-atomicint +GEN_ATOMICWRAPPER = $(GOBIN)/gen-atomicwrapper +STATICCHECK = $(GOBIN)/staticcheck + +GO_FILES ?= $(shell find . '(' -path .git -o -path vendor ')' -prune -o -name '*.go' -print) + +# Also update ignore section in .codecov.yml. +COVER_IGNORE_PKGS = \ + go.uber.org/atomic/internal/gen-atomicint \ + go.uber.org/atomic/internal/gen-atomicwrapper + +.PHONY: build +build: + go build ./... + +.PHONY: test +test: + go test -race ./... + +.PHONY: gofmt +gofmt: + $(eval FMT_LOG := $(shell mktemp -t gofmt.XXXXX)) + gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true + @[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" && cat $(FMT_LOG) && false) + +$(GOLINT): + cd tools && go install golang.org/x/lint/golint + +$(STATICCHECK): + cd tools && go install honnef.co/go/tools/cmd/staticcheck + +$(GEN_ATOMICWRAPPER): $(wildcard ./internal/gen-atomicwrapper/*) + go build -o $@ ./internal/gen-atomicwrapper + +$(GEN_ATOMICINT): $(wildcard ./internal/gen-atomicint/*) + go build -o $@ ./internal/gen-atomicint + +.PHONY: golint +golint: $(GOLINT) + $(GOLINT) ./... + +.PHONY: staticcheck +staticcheck: $(STATICCHECK) + $(STATICCHECK) ./... + +.PHONY: lint +lint: gofmt golint staticcheck generatenodirty + +# comma separated list of packages to consider for code coverage. +COVER_PKG = $(shell \ + go list -find ./... | \ + grep -v $(foreach pkg,$(COVER_IGNORE_PKGS),-e "^$(pkg)$$") | \ + paste -sd, -) + +.PHONY: cover +cover: + go test -coverprofile=cover.out -coverpkg $(COVER_PKG) -v ./... + go tool cover -html=cover.out -o cover.html + +.PHONY: generate +generate: $(GEN_ATOMICINT) $(GEN_ATOMICWRAPPER) + go generate ./... + +.PHONY: generatenodirty +generatenodirty: + @[ -z "$$(git status --porcelain)" ] || ( \ + echo "Working tree is dirty. Commit your changes first."; \ + exit 1 ) + @make generate + @status=$$(git status --porcelain); \ + [ -z "$$status" ] || ( \ + echo "Working tree is dirty after `make generate`:"; \ + echo "$$status"; \ + echo "Please ensure that the generated code is up-to-date." ) diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/README.md b/scripts/token-log-collector/vendor/go.uber.org/atomic/README.md new file mode 100644 index 000000000..ade0c20f1 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/README.md @@ -0,0 +1,63 @@ +# atomic [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] [![Go Report Card][reportcard-img]][reportcard] + +Simple wrappers for primitive types to enforce atomic access. + +## Installation + +```shell +$ go get -u go.uber.org/atomic@v1 +``` + +### Legacy Import Path + +As of v1.5.0, the import path `go.uber.org/atomic` is the only supported way +of using this package. If you are using Go modules, this package will fail to +compile with the legacy import path path `github.com/uber-go/atomic`. + +We recommend migrating your code to the new import path but if you're unable +to do so, or if your dependencies are still using the old import path, you +will have to add a `replace` directive to your `go.mod` file downgrading the +legacy import path to an older version. + +``` +replace github.com/uber-go/atomic => github.com/uber-go/atomic v1.4.0 +``` + +You can do so automatically by running the following command. + +```shell +$ go mod edit -replace github.com/uber-go/atomic=github.com/uber-go/atomic@v1.4.0 +``` + +## Usage + +The standard library's `sync/atomic` is powerful, but it's easy to forget which +variables must be accessed atomically. `go.uber.org/atomic` preserves all the +functionality of the standard library, but wraps the primitive types to +provide a safer, more convenient API. + +```go +var atom atomic.Uint32 +atom.Store(42) +atom.Sub(2) +atom.CAS(40, 11) +``` + +See the [documentation][doc] for a complete API specification. + +## Development Status + +Stable. + +--- + +Released under the [MIT License](LICENSE.txt). + +[doc-img]: https://godoc.org/github.com/uber-go/atomic?status.svg +[doc]: https://godoc.org/go.uber.org/atomic +[ci-img]: https://travis-ci.com/uber-go/atomic.svg?branch=master +[ci]: https://travis-ci.com/uber-go/atomic +[cov-img]: https://codecov.io/gh/uber-go/atomic/branch/master/graph/badge.svg +[cov]: https://codecov.io/gh/uber-go/atomic +[reportcard-img]: https://goreportcard.com/badge/go.uber.org/atomic +[reportcard]: https://goreportcard.com/report/go.uber.org/atomic diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/bool.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/bool.go new file mode 100644 index 000000000..9cf1914b1 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/bool.go @@ -0,0 +1,81 @@ +// @generated Code generated by gen-atomicwrapper. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" +) + +// Bool is an atomic type-safe wrapper for bool values. +type Bool struct { + _ nocmp // disallow non-atomic comparison + + v Uint32 +} + +var _zeroBool bool + +// NewBool creates a new Bool. +func NewBool(v bool) *Bool { + x := &Bool{} + if v != _zeroBool { + x.Store(v) + } + return x +} + +// Load atomically loads the wrapped bool. +func (x *Bool) Load() bool { + return truthy(x.v.Load()) +} + +// Store atomically stores the passed bool. +func (x *Bool) Store(v bool) { + x.v.Store(boolToInt(v)) +} + +// CAS is an atomic compare-and-swap for bool values. +func (x *Bool) CAS(o, n bool) bool { + return x.v.CAS(boolToInt(o), boolToInt(n)) +} + +// Swap atomically stores the given bool and returns the old +// value. +func (x *Bool) Swap(o bool) bool { + return truthy(x.v.Swap(boolToInt(o))) +} + +// MarshalJSON encodes the wrapped bool into JSON. +func (x *Bool) MarshalJSON() ([]byte, error) { + return json.Marshal(x.Load()) +} + +// UnmarshalJSON decodes a bool from JSON. +func (x *Bool) UnmarshalJSON(b []byte) error { + var v bool + if err := json.Unmarshal(b, &v); err != nil { + return err + } + x.Store(v) + return nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/bool_ext.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/bool_ext.go new file mode 100644 index 000000000..c7bf7a827 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/bool_ext.go @@ -0,0 +1,53 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "strconv" +) + +//go:generate bin/gen-atomicwrapper -name=Bool -type=bool -wrapped=Uint32 -pack=boolToInt -unpack=truthy -cas -swap -json -file=bool.go + +func truthy(n uint32) bool { + return n == 1 +} + +func boolToInt(b bool) uint32 { + if b { + return 1 + } + return 0 +} + +// Toggle atomically negates the Boolean and returns the previous value. +func (b *Bool) Toggle() bool { + for { + old := b.Load() + if b.CAS(old, !old) { + return old + } + } +} + +// String encodes the wrapped value as a string. +func (b *Bool) String() string { + return strconv.FormatBool(b.Load()) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/doc.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/doc.go new file mode 100644 index 000000000..ae7390ee6 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/doc.go @@ -0,0 +1,23 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Package atomic provides simple wrappers around numerics to enforce atomic +// access. +package atomic diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/duration.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/duration.go new file mode 100644 index 000000000..027cfcb20 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/duration.go @@ -0,0 +1,82 @@ +// @generated Code generated by gen-atomicwrapper. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "time" +) + +// Duration is an atomic type-safe wrapper for time.Duration values. +type Duration struct { + _ nocmp // disallow non-atomic comparison + + v Int64 +} + +var _zeroDuration time.Duration + +// NewDuration creates a new Duration. +func NewDuration(v time.Duration) *Duration { + x := &Duration{} + if v != _zeroDuration { + x.Store(v) + } + return x +} + +// Load atomically loads the wrapped time.Duration. +func (x *Duration) Load() time.Duration { + return time.Duration(x.v.Load()) +} + +// Store atomically stores the passed time.Duration. +func (x *Duration) Store(v time.Duration) { + x.v.Store(int64(v)) +} + +// CAS is an atomic compare-and-swap for time.Duration values. +func (x *Duration) CAS(o, n time.Duration) bool { + return x.v.CAS(int64(o), int64(n)) +} + +// Swap atomically stores the given time.Duration and returns the old +// value. +func (x *Duration) Swap(o time.Duration) time.Duration { + return time.Duration(x.v.Swap(int64(o))) +} + +// MarshalJSON encodes the wrapped time.Duration into JSON. +func (x *Duration) MarshalJSON() ([]byte, error) { + return json.Marshal(x.Load()) +} + +// UnmarshalJSON decodes a time.Duration from JSON. +func (x *Duration) UnmarshalJSON(b []byte) error { + var v time.Duration + if err := json.Unmarshal(b, &v); err != nil { + return err + } + x.Store(v) + return nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/duration_ext.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/duration_ext.go new file mode 100644 index 000000000..6273b66bd --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/duration_ext.go @@ -0,0 +1,40 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import "time" + +//go:generate bin/gen-atomicwrapper -name=Duration -type=time.Duration -wrapped=Int64 -pack=int64 -unpack=time.Duration -cas -swap -json -imports time -file=duration.go + +// Add atomically adds to the wrapped time.Duration and returns the new value. +func (d *Duration) Add(n time.Duration) time.Duration { + return time.Duration(d.v.Add(int64(n))) +} + +// Sub atomically subtracts from the wrapped time.Duration and returns the new value. +func (d *Duration) Sub(n time.Duration) time.Duration { + return time.Duration(d.v.Sub(int64(n))) +} + +// String encodes the wrapped value as a string. +func (d *Duration) String() string { + return d.Load().String() +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/error.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/error.go new file mode 100644 index 000000000..a6166fbea --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/error.go @@ -0,0 +1,51 @@ +// @generated Code generated by gen-atomicwrapper. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +// Error is an atomic type-safe wrapper for error values. +type Error struct { + _ nocmp // disallow non-atomic comparison + + v Value +} + +var _zeroError error + +// NewError creates a new Error. +func NewError(v error) *Error { + x := &Error{} + if v != _zeroError { + x.Store(v) + } + return x +} + +// Load atomically loads the wrapped error. +func (x *Error) Load() error { + return unpackError(x.v.Load()) +} + +// Store atomically stores the passed error. +func (x *Error) Store(v error) { + x.v.Store(packError(v)) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/error_ext.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/error_ext.go new file mode 100644 index 000000000..ffe0be21c --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/error_ext.go @@ -0,0 +1,39 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +// atomic.Value panics on nil inputs, or if the underlying type changes. +// Stabilize by always storing a custom struct that we control. + +//go:generate bin/gen-atomicwrapper -name=Error -type=error -wrapped=Value -pack=packError -unpack=unpackError -file=error.go + +type packedError struct{ Value error } + +func packError(v error) interface{} { + return packedError{v} +} + +func unpackError(v interface{}) error { + if err, ok := v.(packedError); ok { + return err.Value + } + return nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/float64.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/float64.go new file mode 100644 index 000000000..071906020 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/float64.go @@ -0,0 +1,76 @@ +// @generated Code generated by gen-atomicwrapper. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "math" +) + +// Float64 is an atomic type-safe wrapper for float64 values. +type Float64 struct { + _ nocmp // disallow non-atomic comparison + + v Uint64 +} + +var _zeroFloat64 float64 + +// NewFloat64 creates a new Float64. +func NewFloat64(v float64) *Float64 { + x := &Float64{} + if v != _zeroFloat64 { + x.Store(v) + } + return x +} + +// Load atomically loads the wrapped float64. +func (x *Float64) Load() float64 { + return math.Float64frombits(x.v.Load()) +} + +// Store atomically stores the passed float64. +func (x *Float64) Store(v float64) { + x.v.Store(math.Float64bits(v)) +} + +// CAS is an atomic compare-and-swap for float64 values. +func (x *Float64) CAS(o, n float64) bool { + return x.v.CAS(math.Float64bits(o), math.Float64bits(n)) +} + +// MarshalJSON encodes the wrapped float64 into JSON. +func (x *Float64) MarshalJSON() ([]byte, error) { + return json.Marshal(x.Load()) +} + +// UnmarshalJSON decodes a float64 from JSON. +func (x *Float64) UnmarshalJSON(b []byte) error { + var v float64 + if err := json.Unmarshal(b, &v); err != nil { + return err + } + x.Store(v) + return nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/float64_ext.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/float64_ext.go new file mode 100644 index 000000000..927b1add7 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/float64_ext.go @@ -0,0 +1,47 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import "strconv" + +//go:generate bin/gen-atomicwrapper -name=Float64 -type=float64 -wrapped=Uint64 -pack=math.Float64bits -unpack=math.Float64frombits -cas -json -imports math -file=float64.go + +// Add atomically adds to the wrapped float64 and returns the new value. +func (f *Float64) Add(s float64) float64 { + for { + old := f.Load() + new := old + s + if f.CAS(old, new) { + return new + } + } +} + +// Sub atomically subtracts from the wrapped float64 and returns the new value. +func (f *Float64) Sub(s float64) float64 { + return f.Add(-s) +} + +// String encodes the wrapped value as a string. +func (f *Float64) String() string { + // 'g' is the behavior for floats with %v. + return strconv.FormatFloat(f.Load(), 'g', -1, 64) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/gen.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/gen.go new file mode 100644 index 000000000..50d6b2485 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/gen.go @@ -0,0 +1,26 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +//go:generate bin/gen-atomicint -name=Int32 -wrapped=int32 -file=int32.go +//go:generate bin/gen-atomicint -name=Int64 -wrapped=int64 -file=int64.go +//go:generate bin/gen-atomicint -name=Uint32 -wrapped=uint32 -unsigned -file=uint32.go +//go:generate bin/gen-atomicint -name=Uint64 -wrapped=uint64 -unsigned -file=uint64.go diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/int32.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/int32.go new file mode 100644 index 000000000..18ae56493 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/int32.go @@ -0,0 +1,102 @@ +// @generated Code generated by gen-atomicint. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "strconv" + "sync/atomic" +) + +// Int32 is an atomic wrapper around int32. +type Int32 struct { + _ nocmp // disallow non-atomic comparison + + v int32 +} + +// NewInt32 creates a new Int32. +func NewInt32(i int32) *Int32 { + return &Int32{v: i} +} + +// Load atomically loads the wrapped value. +func (i *Int32) Load() int32 { + return atomic.LoadInt32(&i.v) +} + +// Add atomically adds to the wrapped int32 and returns the new value. +func (i *Int32) Add(n int32) int32 { + return atomic.AddInt32(&i.v, n) +} + +// Sub atomically subtracts from the wrapped int32 and returns the new value. +func (i *Int32) Sub(n int32) int32 { + return atomic.AddInt32(&i.v, -n) +} + +// Inc atomically increments the wrapped int32 and returns the new value. +func (i *Int32) Inc() int32 { + return i.Add(1) +} + +// Dec atomically decrements the wrapped int32 and returns the new value. +func (i *Int32) Dec() int32 { + return i.Sub(1) +} + +// CAS is an atomic compare-and-swap. +func (i *Int32) CAS(old, new int32) bool { + return atomic.CompareAndSwapInt32(&i.v, old, new) +} + +// Store atomically stores the passed value. +func (i *Int32) Store(n int32) { + atomic.StoreInt32(&i.v, n) +} + +// Swap atomically swaps the wrapped int32 and returns the old value. +func (i *Int32) Swap(n int32) int32 { + return atomic.SwapInt32(&i.v, n) +} + +// MarshalJSON encodes the wrapped int32 into JSON. +func (i *Int32) MarshalJSON() ([]byte, error) { + return json.Marshal(i.Load()) +} + +// UnmarshalJSON decodes JSON into the wrapped int32. +func (i *Int32) UnmarshalJSON(b []byte) error { + var v int32 + if err := json.Unmarshal(b, &v); err != nil { + return err + } + i.Store(v) + return nil +} + +// String encodes the wrapped value as a string. +func (i *Int32) String() string { + v := i.Load() + return strconv.FormatInt(int64(v), 10) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/int64.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/int64.go new file mode 100644 index 000000000..2bcbbfaa9 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/int64.go @@ -0,0 +1,102 @@ +// @generated Code generated by gen-atomicint. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "strconv" + "sync/atomic" +) + +// Int64 is an atomic wrapper around int64. +type Int64 struct { + _ nocmp // disallow non-atomic comparison + + v int64 +} + +// NewInt64 creates a new Int64. +func NewInt64(i int64) *Int64 { + return &Int64{v: i} +} + +// Load atomically loads the wrapped value. +func (i *Int64) Load() int64 { + return atomic.LoadInt64(&i.v) +} + +// Add atomically adds to the wrapped int64 and returns the new value. +func (i *Int64) Add(n int64) int64 { + return atomic.AddInt64(&i.v, n) +} + +// Sub atomically subtracts from the wrapped int64 and returns the new value. +func (i *Int64) Sub(n int64) int64 { + return atomic.AddInt64(&i.v, -n) +} + +// Inc atomically increments the wrapped int64 and returns the new value. +func (i *Int64) Inc() int64 { + return i.Add(1) +} + +// Dec atomically decrements the wrapped int64 and returns the new value. +func (i *Int64) Dec() int64 { + return i.Sub(1) +} + +// CAS is an atomic compare-and-swap. +func (i *Int64) CAS(old, new int64) bool { + return atomic.CompareAndSwapInt64(&i.v, old, new) +} + +// Store atomically stores the passed value. +func (i *Int64) Store(n int64) { + atomic.StoreInt64(&i.v, n) +} + +// Swap atomically swaps the wrapped int64 and returns the old value. +func (i *Int64) Swap(n int64) int64 { + return atomic.SwapInt64(&i.v, n) +} + +// MarshalJSON encodes the wrapped int64 into JSON. +func (i *Int64) MarshalJSON() ([]byte, error) { + return json.Marshal(i.Load()) +} + +// UnmarshalJSON decodes JSON into the wrapped int64. +func (i *Int64) UnmarshalJSON(b []byte) error { + var v int64 + if err := json.Unmarshal(b, &v); err != nil { + return err + } + i.Store(v) + return nil +} + +// String encodes the wrapped value as a string. +func (i *Int64) String() string { + v := i.Load() + return strconv.FormatInt(int64(v), 10) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/nocmp.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/nocmp.go new file mode 100644 index 000000000..a8201cb4a --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/nocmp.go @@ -0,0 +1,35 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +// nocmp is an uncomparable struct. Embed this inside another struct to make +// it uncomparable. +// +// type Foo struct { +// nocmp +// // ... +// } +// +// This DOES NOT: +// +// - Disallow shallow copies of structs +// - Disallow comparison of pointers to uncomparable structs +type nocmp [0]func() diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/string.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/string.go new file mode 100644 index 000000000..225b7a2be --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/string.go @@ -0,0 +1,54 @@ +// @generated Code generated by gen-atomicwrapper. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +// String is an atomic type-safe wrapper for string values. +type String struct { + _ nocmp // disallow non-atomic comparison + + v Value +} + +var _zeroString string + +// NewString creates a new String. +func NewString(v string) *String { + x := &String{} + if v != _zeroString { + x.Store(v) + } + return x +} + +// Load atomically loads the wrapped string. +func (x *String) Load() string { + if v := x.v.Load(); v != nil { + return v.(string) + } + return _zeroString +} + +// Store atomically stores the passed string. +func (x *String) Store(v string) { + x.v.Store(v) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/string_ext.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/string_ext.go new file mode 100644 index 000000000..3a9558213 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/string_ext.go @@ -0,0 +1,43 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +//go:generate bin/gen-atomicwrapper -name=String -type=string -wrapped=Value -file=string.go + +// String returns the wrapped value. +func (s *String) String() string { + return s.Load() +} + +// MarshalText encodes the wrapped string into a textual form. +// +// This makes it encodable as JSON, YAML, XML, and more. +func (s *String) MarshalText() ([]byte, error) { + return []byte(s.Load()), nil +} + +// UnmarshalText decodes text and replaces the wrapped string with it. +// +// This makes it decodable from JSON, YAML, XML, and more. +func (s *String) UnmarshalText(b []byte) error { + s.Store(string(b)) + return nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/uint32.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/uint32.go new file mode 100644 index 000000000..a973aba1a --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/uint32.go @@ -0,0 +1,102 @@ +// @generated Code generated by gen-atomicint. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "strconv" + "sync/atomic" +) + +// Uint32 is an atomic wrapper around uint32. +type Uint32 struct { + _ nocmp // disallow non-atomic comparison + + v uint32 +} + +// NewUint32 creates a new Uint32. +func NewUint32(i uint32) *Uint32 { + return &Uint32{v: i} +} + +// Load atomically loads the wrapped value. +func (i *Uint32) Load() uint32 { + return atomic.LoadUint32(&i.v) +} + +// Add atomically adds to the wrapped uint32 and returns the new value. +func (i *Uint32) Add(n uint32) uint32 { + return atomic.AddUint32(&i.v, n) +} + +// Sub atomically subtracts from the wrapped uint32 and returns the new value. +func (i *Uint32) Sub(n uint32) uint32 { + return atomic.AddUint32(&i.v, ^(n - 1)) +} + +// Inc atomically increments the wrapped uint32 and returns the new value. +func (i *Uint32) Inc() uint32 { + return i.Add(1) +} + +// Dec atomically decrements the wrapped uint32 and returns the new value. +func (i *Uint32) Dec() uint32 { + return i.Sub(1) +} + +// CAS is an atomic compare-and-swap. +func (i *Uint32) CAS(old, new uint32) bool { + return atomic.CompareAndSwapUint32(&i.v, old, new) +} + +// Store atomically stores the passed value. +func (i *Uint32) Store(n uint32) { + atomic.StoreUint32(&i.v, n) +} + +// Swap atomically swaps the wrapped uint32 and returns the old value. +func (i *Uint32) Swap(n uint32) uint32 { + return atomic.SwapUint32(&i.v, n) +} + +// MarshalJSON encodes the wrapped uint32 into JSON. +func (i *Uint32) MarshalJSON() ([]byte, error) { + return json.Marshal(i.Load()) +} + +// UnmarshalJSON decodes JSON into the wrapped uint32. +func (i *Uint32) UnmarshalJSON(b []byte) error { + var v uint32 + if err := json.Unmarshal(b, &v); err != nil { + return err + } + i.Store(v) + return nil +} + +// String encodes the wrapped value as a string. +func (i *Uint32) String() string { + v := i.Load() + return strconv.FormatUint(uint64(v), 10) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/uint64.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/uint64.go new file mode 100644 index 000000000..3b6c71fd5 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/uint64.go @@ -0,0 +1,102 @@ +// @generated Code generated by gen-atomicint. + +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import ( + "encoding/json" + "strconv" + "sync/atomic" +) + +// Uint64 is an atomic wrapper around uint64. +type Uint64 struct { + _ nocmp // disallow non-atomic comparison + + v uint64 +} + +// NewUint64 creates a new Uint64. +func NewUint64(i uint64) *Uint64 { + return &Uint64{v: i} +} + +// Load atomically loads the wrapped value. +func (i *Uint64) Load() uint64 { + return atomic.LoadUint64(&i.v) +} + +// Add atomically adds to the wrapped uint64 and returns the new value. +func (i *Uint64) Add(n uint64) uint64 { + return atomic.AddUint64(&i.v, n) +} + +// Sub atomically subtracts from the wrapped uint64 and returns the new value. +func (i *Uint64) Sub(n uint64) uint64 { + return atomic.AddUint64(&i.v, ^(n - 1)) +} + +// Inc atomically increments the wrapped uint64 and returns the new value. +func (i *Uint64) Inc() uint64 { + return i.Add(1) +} + +// Dec atomically decrements the wrapped uint64 and returns the new value. +func (i *Uint64) Dec() uint64 { + return i.Sub(1) +} + +// CAS is an atomic compare-and-swap. +func (i *Uint64) CAS(old, new uint64) bool { + return atomic.CompareAndSwapUint64(&i.v, old, new) +} + +// Store atomically stores the passed value. +func (i *Uint64) Store(n uint64) { + atomic.StoreUint64(&i.v, n) +} + +// Swap atomically swaps the wrapped uint64 and returns the old value. +func (i *Uint64) Swap(n uint64) uint64 { + return atomic.SwapUint64(&i.v, n) +} + +// MarshalJSON encodes the wrapped uint64 into JSON. +func (i *Uint64) MarshalJSON() ([]byte, error) { + return json.Marshal(i.Load()) +} + +// UnmarshalJSON decodes JSON into the wrapped uint64. +func (i *Uint64) UnmarshalJSON(b []byte) error { + var v uint64 + if err := json.Unmarshal(b, &v); err != nil { + return err + } + i.Store(v) + return nil +} + +// String encodes the wrapped value as a string. +func (i *Uint64) String() string { + v := i.Load() + return strconv.FormatUint(uint64(v), 10) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/atomic/value.go b/scripts/token-log-collector/vendor/go.uber.org/atomic/value.go new file mode 100644 index 000000000..671f3a382 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/atomic/value.go @@ -0,0 +1,31 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package atomic + +import "sync/atomic" + +// Value shadows the type of the same name from sync/atomic +// https://godoc.org/sync/atomic#Value +type Value struct { + atomic.Value + + _ nocmp // disallow non-atomic comparison +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/multierr/.codecov.yml b/scripts/token-log-collector/vendor/go.uber.org/multierr/.codecov.yml new file mode 100644 index 000000000..6d4d1be7b --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/multierr/.codecov.yml @@ -0,0 +1,15 @@ +coverage: + range: 80..100 + round: down + precision: 2 + + status: + project: # measuring the overall project coverage + default: # context, you can create multiple ones with custom titles + enabled: yes # must be yes|true to enable this status + target: 100 # specify the target coverage for each commit status + # option: "auto" (must increase from parent commit or pull request base) + # option: "X%" a static target percentage to hit + if_not_found: success # if parent is not found report status as success, error, or failure + if_ci_failed: error # if ci fails report status as success, error, or failure + diff --git a/scripts/token-log-collector/vendor/go.uber.org/multierr/.gitignore b/scripts/token-log-collector/vendor/go.uber.org/multierr/.gitignore new file mode 100644 index 000000000..b9a05e3da --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/multierr/.gitignore @@ -0,0 +1,4 @@ +/vendor +cover.html +cover.out +/bin diff --git a/scripts/token-log-collector/vendor/go.uber.org/multierr/.travis.yml b/scripts/token-log-collector/vendor/go.uber.org/multierr/.travis.yml new file mode 100644 index 000000000..8636ab42a --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/multierr/.travis.yml @@ -0,0 +1,23 @@ +sudo: false +language: go +go_import_path: go.uber.org/multierr + +env: + global: + - GO111MODULE=on + +go: + - oldstable + - stable + +before_install: +- go version + +script: +- | + set -e + make lint + make cover + +after_success: +- bash <(curl -s https://codecov.io/bash) diff --git a/scripts/token-log-collector/vendor/go.uber.org/multierr/CHANGELOG.md b/scripts/token-log-collector/vendor/go.uber.org/multierr/CHANGELOG.md new file mode 100644 index 000000000..6f1db9ef4 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/multierr/CHANGELOG.md @@ -0,0 +1,60 @@ +Releases +======== + +v1.6.0 (2020-09-14) +=================== + +- Actually drop library dependency on development-time tooling. + + +v1.5.0 (2020-02-24) +=================== + +- Drop library dependency on development-time tooling. + + +v1.4.0 (2019-11-04) +=================== + +- Add `AppendInto` function to more ergonomically build errors inside a + loop. + + +v1.3.0 (2019-10-29) +=================== + +- Switch to Go modules. + + +v1.2.0 (2019-09-26) +=================== + +- Support extracting and matching against wrapped errors with `errors.As` + and `errors.Is`. + + +v1.1.0 (2017-06-30) +=================== + +- Added an `Errors(error) []error` function to extract the underlying list of + errors for a multierr error. + + +v1.0.0 (2017-05-31) +=================== + +No changes since v0.2.0. This release is committing to making no breaking +changes to the current API in the 1.X series. + + +v0.2.0 (2017-04-11) +=================== + +- Repeatedly appending to the same error is now faster due to fewer + allocations. + + +v0.1.0 (2017-31-03) +=================== + +- Initial release diff --git a/scripts/token-log-collector/vendor/go.uber.org/multierr/LICENSE.txt b/scripts/token-log-collector/vendor/go.uber.org/multierr/LICENSE.txt new file mode 100644 index 000000000..858e02475 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/multierr/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (c) 2017 Uber Technologies, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/scripts/token-log-collector/vendor/go.uber.org/multierr/Makefile b/scripts/token-log-collector/vendor/go.uber.org/multierr/Makefile new file mode 100644 index 000000000..316004400 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/multierr/Makefile @@ -0,0 +1,42 @@ +# Directory to put `go install`ed binaries in. +export GOBIN ?= $(shell pwd)/bin + +GO_FILES := $(shell \ + find . '(' -path '*/.*' -o -path './vendor' ')' -prune \ + -o -name '*.go' -print | cut -b3-) + +.PHONY: build +build: + go build ./... + +.PHONY: test +test: + go test -race ./... + +.PHONY: gofmt +gofmt: + $(eval FMT_LOG := $(shell mktemp -t gofmt.XXXXX)) + @gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true + @[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" | cat - $(FMT_LOG) && false) + +.PHONY: golint +golint: + @cd tools && go install golang.org/x/lint/golint + @$(GOBIN)/golint ./... + +.PHONY: staticcheck +staticcheck: + @cd tools && go install honnef.co/go/tools/cmd/staticcheck + @$(GOBIN)/staticcheck ./... + +.PHONY: lint +lint: gofmt golint staticcheck + +.PHONY: cover +cover: + go test -coverprofile=cover.out -coverpkg=./... -v ./... + go tool cover -html=cover.out -o cover.html + +update-license: + @cd tools && go install go.uber.org/tools/update-license + @$(GOBIN)/update-license $(GO_FILES) diff --git a/scripts/token-log-collector/vendor/go.uber.org/multierr/README.md b/scripts/token-log-collector/vendor/go.uber.org/multierr/README.md new file mode 100644 index 000000000..751bd65e5 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/multierr/README.md @@ -0,0 +1,23 @@ +# multierr [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] + +`multierr` allows combining one or more Go `error`s together. + +## Installation + + go get -u go.uber.org/multierr + +## Status + +Stable: No breaking changes will be made before 2.0. + +------------------------------------------------------------------------------- + +Released under the [MIT License]. + +[MIT License]: LICENSE.txt +[doc-img]: https://godoc.org/go.uber.org/multierr?status.svg +[doc]: https://godoc.org/go.uber.org/multierr +[ci-img]: https://travis-ci.com/uber-go/multierr.svg?branch=master +[cov-img]: https://codecov.io/gh/uber-go/multierr/branch/master/graph/badge.svg +[ci]: https://travis-ci.com/uber-go/multierr +[cov]: https://codecov.io/gh/uber-go/multierr diff --git a/scripts/token-log-collector/vendor/go.uber.org/multierr/error.go b/scripts/token-log-collector/vendor/go.uber.org/multierr/error.go new file mode 100644 index 000000000..5c9b67d53 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/multierr/error.go @@ -0,0 +1,449 @@ +// Copyright (c) 2019 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Package multierr allows combining one or more errors together. +// +// Overview +// +// Errors can be combined with the use of the Combine function. +// +// multierr.Combine( +// reader.Close(), +// writer.Close(), +// conn.Close(), +// ) +// +// If only two errors are being combined, the Append function may be used +// instead. +// +// err = multierr.Append(reader.Close(), writer.Close()) +// +// This makes it possible to record resource cleanup failures from deferred +// blocks with the help of named return values. +// +// func sendRequest(req Request) (err error) { +// conn, err := openConnection() +// if err != nil { +// return err +// } +// defer func() { +// err = multierr.Append(err, conn.Close()) +// }() +// // ... +// } +// +// The underlying list of errors for a returned error object may be retrieved +// with the Errors function. +// +// errors := multierr.Errors(err) +// if len(errors) > 0 { +// fmt.Println("The following errors occurred:", errors) +// } +// +// Advanced Usage +// +// Errors returned by Combine and Append MAY implement the following +// interface. +// +// type errorGroup interface { +// // Returns a slice containing the underlying list of errors. +// // +// // This slice MUST NOT be modified by the caller. +// Errors() []error +// } +// +// Note that if you need access to list of errors behind a multierr error, you +// should prefer using the Errors function. That said, if you need cheap +// read-only access to the underlying errors slice, you can attempt to cast +// the error to this interface. You MUST handle the failure case gracefully +// because errors returned by Combine and Append are not guaranteed to +// implement this interface. +// +// var errors []error +// group, ok := err.(errorGroup) +// if ok { +// errors = group.Errors() +// } else { +// errors = []error{err} +// } +package multierr // import "go.uber.org/multierr" + +import ( + "bytes" + "fmt" + "io" + "strings" + "sync" + + "go.uber.org/atomic" +) + +var ( + // Separator for single-line error messages. + _singlelineSeparator = []byte("; ") + + // Prefix for multi-line messages + _multilinePrefix = []byte("the following errors occurred:") + + // Prefix for the first and following lines of an item in a list of + // multi-line error messages. + // + // For example, if a single item is: + // + // foo + // bar + // + // It will become, + // + // - foo + // bar + _multilineSeparator = []byte("\n - ") + _multilineIndent = []byte(" ") +) + +// _bufferPool is a pool of bytes.Buffers. +var _bufferPool = sync.Pool{ + New: func() interface{} { + return &bytes.Buffer{} + }, +} + +type errorGroup interface { + Errors() []error +} + +// Errors returns a slice containing zero or more errors that the supplied +// error is composed of. If the error is nil, a nil slice is returned. +// +// err := multierr.Append(r.Close(), w.Close()) +// errors := multierr.Errors(err) +// +// If the error is not composed of other errors, the returned slice contains +// just the error that was passed in. +// +// Callers of this function are free to modify the returned slice. +func Errors(err error) []error { + if err == nil { + return nil + } + + // Note that we're casting to multiError, not errorGroup. Our contract is + // that returned errors MAY implement errorGroup. Errors, however, only + // has special behavior for multierr-specific error objects. + // + // This behavior can be expanded in the future but I think it's prudent to + // start with as little as possible in terms of contract and possibility + // of misuse. + eg, ok := err.(*multiError) + if !ok { + return []error{err} + } + + errors := eg.Errors() + result := make([]error, len(errors)) + copy(result, errors) + return result +} + +// multiError is an error that holds one or more errors. +// +// An instance of this is guaranteed to be non-empty and flattened. That is, +// none of the errors inside multiError are other multiErrors. +// +// multiError formats to a semi-colon delimited list of error messages with +// %v and with a more readable multi-line format with %+v. +type multiError struct { + copyNeeded atomic.Bool + errors []error +} + +var _ errorGroup = (*multiError)(nil) + +// Errors returns the list of underlying errors. +// +// This slice MUST NOT be modified. +func (merr *multiError) Errors() []error { + if merr == nil { + return nil + } + return merr.errors +} + +func (merr *multiError) Error() string { + if merr == nil { + return "" + } + + buff := _bufferPool.Get().(*bytes.Buffer) + buff.Reset() + + merr.writeSingleline(buff) + + result := buff.String() + _bufferPool.Put(buff) + return result +} + +func (merr *multiError) Format(f fmt.State, c rune) { + if c == 'v' && f.Flag('+') { + merr.writeMultiline(f) + } else { + merr.writeSingleline(f) + } +} + +func (merr *multiError) writeSingleline(w io.Writer) { + first := true + for _, item := range merr.errors { + if first { + first = false + } else { + w.Write(_singlelineSeparator) + } + io.WriteString(w, item.Error()) + } +} + +func (merr *multiError) writeMultiline(w io.Writer) { + w.Write(_multilinePrefix) + for _, item := range merr.errors { + w.Write(_multilineSeparator) + writePrefixLine(w, _multilineIndent, fmt.Sprintf("%+v", item)) + } +} + +// Writes s to the writer with the given prefix added before each line after +// the first. +func writePrefixLine(w io.Writer, prefix []byte, s string) { + first := true + for len(s) > 0 { + if first { + first = false + } else { + w.Write(prefix) + } + + idx := strings.IndexByte(s, '\n') + if idx < 0 { + idx = len(s) - 1 + } + + io.WriteString(w, s[:idx+1]) + s = s[idx+1:] + } +} + +type inspectResult struct { + // Number of top-level non-nil errors + Count int + + // Total number of errors including multiErrors + Capacity int + + // Index of the first non-nil error in the list. Value is meaningless if + // Count is zero. + FirstErrorIdx int + + // Whether the list contains at least one multiError + ContainsMultiError bool +} + +// Inspects the given slice of errors so that we can efficiently allocate +// space for it. +func inspect(errors []error) (res inspectResult) { + first := true + for i, err := range errors { + if err == nil { + continue + } + + res.Count++ + if first { + first = false + res.FirstErrorIdx = i + } + + if merr, ok := err.(*multiError); ok { + res.Capacity += len(merr.errors) + res.ContainsMultiError = true + } else { + res.Capacity++ + } + } + return +} + +// fromSlice converts the given list of errors into a single error. +func fromSlice(errors []error) error { + res := inspect(errors) + switch res.Count { + case 0: + return nil + case 1: + // only one non-nil entry + return errors[res.FirstErrorIdx] + case len(errors): + if !res.ContainsMultiError { + // already flat + return &multiError{errors: errors} + } + } + + nonNilErrs := make([]error, 0, res.Capacity) + for _, err := range errors[res.FirstErrorIdx:] { + if err == nil { + continue + } + + if nested, ok := err.(*multiError); ok { + nonNilErrs = append(nonNilErrs, nested.errors...) + } else { + nonNilErrs = append(nonNilErrs, err) + } + } + + return &multiError{errors: nonNilErrs} +} + +// Combine combines the passed errors into a single error. +// +// If zero arguments were passed or if all items are nil, a nil error is +// returned. +// +// Combine(nil, nil) // == nil +// +// If only a single error was passed, it is returned as-is. +// +// Combine(err) // == err +// +// Combine skips over nil arguments so this function may be used to combine +// together errors from operations that fail independently of each other. +// +// multierr.Combine( +// reader.Close(), +// writer.Close(), +// pipe.Close(), +// ) +// +// If any of the passed errors is a multierr error, it will be flattened along +// with the other errors. +// +// multierr.Combine(multierr.Combine(err1, err2), err3) +// // is the same as +// multierr.Combine(err1, err2, err3) +// +// The returned error formats into a readable multi-line error message if +// formatted with %+v. +// +// fmt.Sprintf("%+v", multierr.Combine(err1, err2)) +func Combine(errors ...error) error { + return fromSlice(errors) +} + +// Append appends the given errors together. Either value may be nil. +// +// This function is a specialization of Combine for the common case where +// there are only two errors. +// +// err = multierr.Append(reader.Close(), writer.Close()) +// +// The following pattern may also be used to record failure of deferred +// operations without losing information about the original error. +// +// func doSomething(..) (err error) { +// f := acquireResource() +// defer func() { +// err = multierr.Append(err, f.Close()) +// }() +func Append(left error, right error) error { + switch { + case left == nil: + return right + case right == nil: + return left + } + + if _, ok := right.(*multiError); !ok { + if l, ok := left.(*multiError); ok && !l.copyNeeded.Swap(true) { + // Common case where the error on the left is constantly being + // appended to. + errs := append(l.errors, right) + return &multiError{errors: errs} + } else if !ok { + // Both errors are single errors. + return &multiError{errors: []error{left, right}} + } + } + + // Either right or both, left and right, are multiErrors. Rely on usual + // expensive logic. + errors := [2]error{left, right} + return fromSlice(errors[0:]) +} + +// AppendInto appends an error into the destination of an error pointer and +// returns whether the error being appended was non-nil. +// +// var err error +// multierr.AppendInto(&err, r.Close()) +// multierr.AppendInto(&err, w.Close()) +// +// The above is equivalent to, +// +// err := multierr.Append(r.Close(), w.Close()) +// +// As AppendInto reports whether the provided error was non-nil, it may be +// used to build a multierr error in a loop more ergonomically. For example: +// +// var err error +// for line := range lines { +// var item Item +// if multierr.AppendInto(&err, parse(line, &item)) { +// continue +// } +// items = append(items, item) +// } +// +// Compare this with a verison that relies solely on Append: +// +// var err error +// for line := range lines { +// var item Item +// if parseErr := parse(line, &item); parseErr != nil { +// err = multierr.Append(err, parseErr) +// continue +// } +// items = append(items, item) +// } +func AppendInto(into *error, err error) (errored bool) { + if into == nil { + // We panic if 'into' is nil. This is not documented above + // because suggesting that the pointer must be non-nil may + // confuse users into thinking that the error that it points + // to must be non-nil. + panic("misuse of multierr.AppendInto: into pointer must not be nil") + } + + if err == nil { + return false + } + *into = Append(*into, err) + return true +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/multierr/glide.yaml b/scripts/token-log-collector/vendor/go.uber.org/multierr/glide.yaml new file mode 100644 index 000000000..6ef084ec2 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/multierr/glide.yaml @@ -0,0 +1,8 @@ +package: go.uber.org/multierr +import: +- package: go.uber.org/atomic + version: ^1 +testImport: +- package: github.com/stretchr/testify + subpackages: + - assert diff --git a/scripts/token-log-collector/vendor/go.uber.org/multierr/go113.go b/scripts/token-log-collector/vendor/go.uber.org/multierr/go113.go new file mode 100644 index 000000000..264b0eac0 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/multierr/go113.go @@ -0,0 +1,52 @@ +// Copyright (c) 2019 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// +build go1.13 + +package multierr + +import "errors" + +// As attempts to find the first error in the error list that matches the type +// of the value that target points to. +// +// This function allows errors.As to traverse the values stored on the +// multierr error. +func (merr *multiError) As(target interface{}) bool { + for _, err := range merr.Errors() { + if errors.As(err, target) { + return true + } + } + return false +} + +// Is attempts to match the provided error against errors in the error list. +// +// This function allows errors.Is to traverse the values stored on the +// multierr error. +func (merr *multiError) Is(target error) bool { + for _, err := range merr.Errors() { + if errors.Is(err, target) { + return true + } + } + return false +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/.codecov.yml b/scripts/token-log-collector/vendor/go.uber.org/zap/.codecov.yml new file mode 100644 index 000000000..8e5ca7d3e --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/.codecov.yml @@ -0,0 +1,17 @@ +coverage: + range: 80..100 + round: down + precision: 2 + + status: + project: # measuring the overall project coverage + default: # context, you can create multiple ones with custom titles + enabled: yes # must be yes|true to enable this status + target: 95% # specify the target coverage for each commit status + # option: "auto" (must increase from parent commit or pull request base) + # option: "X%" a static target percentage to hit + if_not_found: success # if parent is not found report status as success, error, or failure + if_ci_failed: error # if ci fails report status as success, error, or failure +ignore: + - internal/readme/readme.go + diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/.gitignore b/scripts/token-log-collector/vendor/go.uber.org/zap/.gitignore new file mode 100644 index 000000000..da9d9d00b --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/.gitignore @@ -0,0 +1,32 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test +vendor + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test +*.prof +*.pprof +*.out +*.log + +/bin +cover.out +cover.html diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/.readme.tmpl b/scripts/token-log-collector/vendor/go.uber.org/zap/.readme.tmpl new file mode 100644 index 000000000..92aa65d66 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/.readme.tmpl @@ -0,0 +1,109 @@ +# :zap: zap [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] + +Blazing fast, structured, leveled logging in Go. + +## Installation + +`go get -u go.uber.org/zap` + +Note that zap only supports the two most recent minor versions of Go. + +## Quick Start + +In contexts where performance is nice, but not critical, use the +`SugaredLogger`. It's 4-10x faster than other structured logging +packages and includes both structured and `printf`-style APIs. + +```go +logger, _ := zap.NewProduction() +defer logger.Sync() // flushes buffer, if any +sugar := logger.Sugar() +sugar.Infow("failed to fetch URL", + // Structured context as loosely typed key-value pairs. + "url", url, + "attempt", 3, + "backoff", time.Second, +) +sugar.Infof("Failed to fetch URL: %s", url) +``` + +When performance and type safety are critical, use the `Logger`. It's even +faster than the `SugaredLogger` and allocates far less, but it only supports +structured logging. + +```go +logger, _ := zap.NewProduction() +defer logger.Sync() +logger.Info("failed to fetch URL", + // Structured context as strongly typed Field values. + zap.String("url", url), + zap.Int("attempt", 3), + zap.Duration("backoff", time.Second), +) +``` + +See the [documentation][doc] and [FAQ](FAQ.md) for more details. + +## Performance + +For applications that log in the hot path, reflection-based serialization and +string formatting are prohibitively expensive — they're CPU-intensive +and make many small allocations. Put differently, using `encoding/json` and +`fmt.Fprintf` to log tons of `interface{}`s makes your application slow. + +Zap takes a different approach. It includes a reflection-free, zero-allocation +JSON encoder, and the base `Logger` strives to avoid serialization overhead +and allocations wherever possible. By building the high-level `SugaredLogger` +on that foundation, zap lets users *choose* when they need to count every +allocation and when they'd prefer a more familiar, loosely typed API. + +As measured by its own [benchmarking suite][], not only is zap more performant +than comparable structured logging packages — it's also faster than the +standard library. Like all benchmarks, take these with a grain of salt.[1](#footnote-versions) + +Log a message and 10 fields: + +{{.BenchmarkAddingFields}} + +Log a message with a logger that already has 10 fields of context: + +{{.BenchmarkAccumulatedContext}} + +Log a static string, without any context or `printf`-style templating: + +{{.BenchmarkWithoutFields}} + +## Development Status: Stable + +All APIs are finalized, and no breaking changes will be made in the 1.x series +of releases. Users of semver-aware dependency management systems should pin +zap to `^1`. + +## Contributing + +We encourage and support an active, healthy community of contributors — +including you! Details are in the [contribution guide](CONTRIBUTING.md) and +the [code of conduct](CODE_OF_CONDUCT.md). The zap maintainers keep an eye on +issues and pull requests, but you can also report any negative conduct to +oss-conduct@uber.com. That email list is a private, safe space; even the zap +maintainers don't have access, so don't hesitate to hold us to a high +standard. + +


    + +Released under the [MIT License](LICENSE.txt). + +1 In particular, keep in mind that we may be +benchmarking against slightly older versions of other packages. Versions are +pinned in the [benchmarks/go.mod][] file. [↩](#anchor-versions) + +[doc-img]: https://pkg.go.dev/badge/go.uber.org/zap +[doc]: https://pkg.go.dev/go.uber.org/zap +[ci-img]: https://github.com/uber-go/zap/actions/workflows/go.yml/badge.svg +[ci]: https://github.com/uber-go/zap/actions/workflows/go.yml +[cov-img]: https://codecov.io/gh/uber-go/zap/branch/master/graph/badge.svg +[cov]: https://codecov.io/gh/uber-go/zap +[benchmarking suite]: https://github.com/uber-go/zap/tree/master/benchmarks +[benchmarks/go.mod]: https://github.com/uber-go/zap/blob/master/benchmarks/go.mod + diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/CHANGELOG.md b/scripts/token-log-collector/vendor/go.uber.org/zap/CHANGELOG.md new file mode 100644 index 000000000..1793b08c8 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/CHANGELOG.md @@ -0,0 +1,564 @@ +# Changelog +All notable changes to this project will be documented in this file. + +This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +## 1.21.0 (7 Feb 2022) + +Enhancements: +* [#1047][]: Add `zapcore.ParseLevel` to parse a `Level` from a string. +* [#1048][]: Add `zap.ParseAtomicLevel` to parse an `AtomicLevel` from a + string. + +Bugfixes: +* [#1058][]: Fix panic in JSON encoder when `EncodeLevel` is unset. + +Other changes: +* [#1052][]: Improve encoding performance when the `AddCaller` and + `AddStacktrace` options are used together. + +[#1047]: https://github.com/uber-go/zap/pull/1047 +[#1048]: https://github.com/uber-go/zap/pull/1048 +[#1052]: https://github.com/uber-go/zap/pull/1052 +[#1058]: https://github.com/uber-go/zap/pull/1058 + +Thanks to @aerosol and @Techassi for their contributions to this release. + +## 1.20.0 (4 Jan 2022) + +Enhancements: +* [#989][]: Add `EncoderConfig.SkipLineEnding` flag to disable adding newline + characters between log statements. +* [#1039][]: Add `EncoderConfig.NewReflectedEncoder` field to customize JSON + encoding of reflected log fields. + +Bugfixes: +* [#1011][]: Fix inaccurate precision when encoding complex64 as JSON. +* [#554][], [#1017][]: Close JSON namespaces opened in `MarshalLogObject` + methods when the methods return. +* [#1033][]: Avoid panicking in Sampler core if `thereafter` is zero. + +Other changes: +* [#1028][]: Drop support for Go < 1.15. + +[#554]: https://github.com/uber-go/zap/pull/554 +[#989]: https://github.com/uber-go/zap/pull/989 +[#1011]: https://github.com/uber-go/zap/pull/1011 +[#1017]: https://github.com/uber-go/zap/pull/1017 +[#1028]: https://github.com/uber-go/zap/pull/1028 +[#1033]: https://github.com/uber-go/zap/pull/1033 +[#1039]: https://github.com/uber-go/zap/pull/1039 + +Thanks to @psrajat, @lruggieri, @sammyrnycreal for their contributions to this release. + +## 1.19.1 (8 Sep 2021) + +Bugfixes: +* [#1001][]: JSON: Fix complex number encoding with negative imaginary part. Thanks to @hemantjadon. +* [#1003][]: JSON: Fix inaccurate precision when encoding float32. + +[#1001]: https://github.com/uber-go/zap/pull/1001 +[#1003]: https://github.com/uber-go/zap/pull/1003 + +## 1.19.0 (9 Aug 2021) + +Enhancements: +* [#975][]: Avoid panicking in Sampler core if the level is out of bounds. +* [#984][]: Reduce the size of BufferedWriteSyncer by aligning the fields + better. + +[#975]: https://github.com/uber-go/zap/pull/975 +[#984]: https://github.com/uber-go/zap/pull/984 + +Thanks to @lancoLiu and @thockin for their contributions to this release. + +## 1.18.1 (28 Jun 2021) + +Bugfixes: +* [#974][]: Fix nil dereference in logger constructed by `zap.NewNop`. + +[#974]: https://github.com/uber-go/zap/pull/974 + +## 1.18.0 (28 Jun 2021) + +Enhancements: +* [#961][]: Add `zapcore.BufferedWriteSyncer`, a new `WriteSyncer` that buffers + messages in-memory and flushes them periodically. +* [#971][]: Add `zapio.Writer` to use a Zap logger as an `io.Writer`. +* [#897][]: Add `zap.WithClock` option to control the source of time via the + new `zapcore.Clock` interface. +* [#949][]: Avoid panicking in `zap.SugaredLogger` when arguments of `*w` + methods don't match expectations. +* [#943][]: Add support for filtering by level or arbitrary matcher function to + `zaptest/observer`. +* [#691][]: Comply with `io.StringWriter` and `io.ByteWriter` in Zap's + `buffer.Buffer`. + +Thanks to @atrn0, @ernado, @heyanfu, @hnlq715, @zchee +for their contributions to this release. + +[#691]: https://github.com/uber-go/zap/pull/691 +[#897]: https://github.com/uber-go/zap/pull/897 +[#943]: https://github.com/uber-go/zap/pull/943 +[#949]: https://github.com/uber-go/zap/pull/949 +[#961]: https://github.com/uber-go/zap/pull/961 +[#971]: https://github.com/uber-go/zap/pull/971 + +## 1.17.0 (25 May 2021) + +Bugfixes: +* [#867][]: Encode `` for nil `error` instead of a panic. +* [#931][], [#936][]: Update minimum version constraints to address + vulnerabilities in dependencies. + +Enhancements: +* [#865][]: Improve alignment of fields of the Logger struct, reducing its + size from 96 to 80 bytes. +* [#881][]: Support `grpclog.LoggerV2` in zapgrpc. +* [#903][]: Support URL-encoded POST requests to the AtomicLevel HTTP handler + with the `application/x-www-form-urlencoded` content type. +* [#912][]: Support multi-field encoding with `zap.Inline`. +* [#913][]: Speed up SugaredLogger for calls with a single string. +* [#928][]: Add support for filtering by field name to `zaptest/observer`. + +Thanks to @ash2k, @FMLS, @jimmystewpot, @Oncilla, @tsoslow, @tylitianrui, @withshubh, and @wziww for their contributions to this release. + +## 1.16.0 (1 Sep 2020) + +Bugfixes: +* [#828][]: Fix missing newline in IncreaseLevel error messages. +* [#835][]: Fix panic in JSON encoder when encoding times or durations + without specifying a time or duration encoder. +* [#843][]: Honor CallerSkip when taking stack traces. +* [#862][]: Fix the default file permissions to use `0666` and rely on the umask instead. +* [#854][]: Encode `` for nil `Stringer` instead of a panic error log. + +Enhancements: +* [#629][]: Added `zapcore.TimeEncoderOfLayout` to easily create time encoders + for custom layouts. +* [#697][]: Added support for a configurable delimiter in the console encoder. +* [#852][]: Optimize console encoder by pooling the underlying JSON encoder. +* [#844][]: Add ability to include the calling function as part of logs. +* [#843][]: Add `StackSkip` for including truncated stacks as a field. +* [#861][]: Add options to customize Fatal behaviour for better testability. + +Thanks to @SteelPhase, @tmshn, @lixingwang, @wyxloading, @moul, @segevfiner, @andy-retailnext and @jcorbin for their contributions to this release. + +## 1.15.0 (23 Apr 2020) + +Bugfixes: +* [#804][]: Fix handling of `Time` values out of `UnixNano` range. +* [#812][]: Fix `IncreaseLevel` being reset after a call to `With`. + +Enhancements: +* [#806][]: Add `WithCaller` option to supersede the `AddCaller` option. This + allows disabling annotation of log entries with caller information if + previously enabled with `AddCaller`. +* [#813][]: Deprecate `NewSampler` constructor in favor of + `NewSamplerWithOptions` which supports a `SamplerHook` option. This option + adds support for monitoring sampling decisions through a hook. + +Thanks to @danielbprice for their contributions to this release. + +## 1.14.1 (14 Mar 2020) + +Bugfixes: +* [#791][]: Fix panic on attempting to build a logger with an invalid Config. +* [#795][]: Vendoring Zap with `go mod vendor` no longer includes Zap's + development-time dependencies. +* [#799][]: Fix issue introduced in 1.14.0 that caused invalid JSON output to + be generated for arrays of `time.Time` objects when using string-based time + formats. + +Thanks to @YashishDua for their contributions to this release. + +## 1.14.0 (20 Feb 2020) + +Enhancements: +* [#771][]: Optimize calls for disabled log levels. +* [#773][]: Add millisecond duration encoder. +* [#775][]: Add option to increase the level of a logger. +* [#786][]: Optimize time formatters using `Time.AppendFormat` where possible. + +Thanks to @caibirdme for their contributions to this release. + +## 1.13.0 (13 Nov 2019) + +Enhancements: +* [#758][]: Add `Intp`, `Stringp`, and other similar `*p` field constructors + to log pointers to primitives with support for `nil` values. + +Thanks to @jbizzle for their contributions to this release. + +## 1.12.0 (29 Oct 2019) + +Enhancements: +* [#751][]: Migrate to Go modules. + +## 1.11.0 (21 Oct 2019) + +Enhancements: +* [#725][]: Add `zapcore.OmitKey` to omit keys in an `EncoderConfig`. +* [#736][]: Add `RFC3339` and `RFC3339Nano` time encoders. + +Thanks to @juicemia, @uhthomas for their contributions to this release. + +## 1.10.0 (29 Apr 2019) + +Bugfixes: +* [#657][]: Fix `MapObjectEncoder.AppendByteString` not adding value as a + string. +* [#706][]: Fix incorrect call depth to determine caller in Go 1.12. + +Enhancements: +* [#610][]: Add `zaptest.WrapOptions` to wrap `zap.Option` for creating test + loggers. +* [#675][]: Don't panic when encoding a String field. +* [#704][]: Disable HTML escaping for JSON objects encoded using the + reflect-based encoder. + +Thanks to @iaroslav-ciupin, @lelenanam, @joa, @NWilson for their contributions +to this release. + +## v1.9.1 (06 Aug 2018) + +Bugfixes: + +* [#614][]: MapObjectEncoder should not ignore empty slices. + +## v1.9.0 (19 Jul 2018) + +Enhancements: +* [#602][]: Reduce number of allocations when logging with reflection. +* [#572][], [#606][]: Expose a registry for third-party logging sinks. + +Thanks to @nfarah86, @AlekSi, @JeanMertz, @philippgille, @etsangsplk, and +@dimroc for their contributions to this release. + +## v1.8.0 (13 Apr 2018) + +Enhancements: +* [#508][]: Make log level configurable when redirecting the standard + library's logger. +* [#518][]: Add a logger that writes to a `*testing.TB`. +* [#577][]: Add a top-level alias for `zapcore.Field` to clean up GoDoc. + +Bugfixes: +* [#574][]: Add a missing import comment to `go.uber.org/zap/buffer`. + +Thanks to @DiSiqueira and @djui for their contributions to this release. + +## v1.7.1 (25 Sep 2017) + +Bugfixes: +* [#504][]: Store strings when using AddByteString with the map encoder. + +## v1.7.0 (21 Sep 2017) + +Enhancements: + +* [#487][]: Add `NewStdLogAt`, which extends `NewStdLog` by allowing the user + to specify the level of the logged messages. + +## v1.6.0 (30 Aug 2017) + +Enhancements: + +* [#491][]: Omit zap stack frames from stacktraces. +* [#490][]: Add a `ContextMap` method to observer logs for simpler + field validation in tests. + +## v1.5.0 (22 Jul 2017) + +Enhancements: + +* [#460][] and [#470][]: Support errors produced by `go.uber.org/multierr`. +* [#465][]: Support user-supplied encoders for logger names. + +Bugfixes: + +* [#477][]: Fix a bug that incorrectly truncated deep stacktraces. + +Thanks to @richard-tunein and @pavius for their contributions to this release. + +## v1.4.1 (08 Jun 2017) + +This release fixes two bugs. + +Bugfixes: + +* [#435][]: Support a variety of case conventions when unmarshaling levels. +* [#444][]: Fix a panic in the observer. + +## v1.4.0 (12 May 2017) + +This release adds a few small features and is fully backward-compatible. + +Enhancements: + +* [#424][]: Add a `LineEnding` field to `EncoderConfig`, allowing users to + override the Unix-style default. +* [#425][]: Preserve time zones when logging times. +* [#431][]: Make `zap.AtomicLevel` implement `fmt.Stringer`, which makes a + variety of operations a bit simpler. + +## v1.3.0 (25 Apr 2017) + +This release adds an enhancement to zap's testing helpers as well as the +ability to marshal an AtomicLevel. It is fully backward-compatible. + +Enhancements: + +* [#415][]: Add a substring-filtering helper to zap's observer. This is + particularly useful when testing the `SugaredLogger`. +* [#416][]: Make `AtomicLevel` implement `encoding.TextMarshaler`. + +## v1.2.0 (13 Apr 2017) + +This release adds a gRPC compatibility wrapper. It is fully backward-compatible. + +Enhancements: + +* [#402][]: Add a `zapgrpc` package that wraps zap's Logger and implements + `grpclog.Logger`. + +## v1.1.0 (31 Mar 2017) + +This release fixes two bugs and adds some enhancements to zap's testing helpers. +It is fully backward-compatible. + +Bugfixes: + +* [#385][]: Fix caller path trimming on Windows. +* [#396][]: Fix a panic when attempting to use non-existent directories with + zap's configuration struct. + +Enhancements: + +* [#386][]: Add filtering helpers to zaptest's observing logger. + +Thanks to @moitias for contributing to this release. + +## v1.0.0 (14 Mar 2017) + +This is zap's first stable release. All exported APIs are now final, and no +further breaking changes will be made in the 1.x release series. Anyone using a +semver-aware dependency manager should now pin to `^1`. + +Breaking changes: + +* [#366][]: Add byte-oriented APIs to encoders to log UTF-8 encoded text without + casting from `[]byte` to `string`. +* [#364][]: To support buffering outputs, add `Sync` methods to `zapcore.Core`, + `zap.Logger`, and `zap.SugaredLogger`. +* [#371][]: Rename the `testutils` package to `zaptest`, which is less likely to + clash with other testing helpers. + +Bugfixes: + +* [#362][]: Make the ISO8601 time formatters fixed-width, which is friendlier + for tab-separated console output. +* [#369][]: Remove the automatic locks in `zapcore.NewCore`, which allows zap to + work with concurrency-safe `WriteSyncer` implementations. +* [#347][]: Stop reporting errors when trying to `fsync` standard out on Linux + systems. +* [#373][]: Report the correct caller from zap's standard library + interoperability wrappers. + +Enhancements: + +* [#348][]: Add a registry allowing third-party encodings to work with zap's + built-in `Config`. +* [#327][]: Make the representation of logger callers configurable (like times, + levels, and durations). +* [#376][]: Allow third-party encoders to use their own buffer pools, which + removes the last performance advantage that zap's encoders have over plugins. +* [#346][]: Add `CombineWriteSyncers`, a convenience function to tee multiple + `WriteSyncer`s and lock the result. +* [#365][]: Make zap's stacktraces compatible with mid-stack inlining (coming in + Go 1.9). +* [#372][]: Export zap's observing logger as `zaptest/observer`. This makes it + easier for particularly punctilious users to unit test their application's + logging. + +Thanks to @suyash, @htrendev, @flisky, @Ulexus, and @skipor for their +contributions to this release. + +## v1.0.0-rc.3 (7 Mar 2017) + +This is the third release candidate for zap's stable release. There are no +breaking changes. + +Bugfixes: + +* [#339][]: Byte slices passed to `zap.Any` are now correctly treated as binary blobs + rather than `[]uint8`. + +Enhancements: + +* [#307][]: Users can opt into colored output for log levels. +* [#353][]: In addition to hijacking the output of the standard library's + package-global logging functions, users can now construct a zap-backed + `log.Logger` instance. +* [#311][]: Frames from common runtime functions and some of zap's internal + machinery are now omitted from stacktraces. + +Thanks to @ansel1 and @suyash for their contributions to this release. + +## v1.0.0-rc.2 (21 Feb 2017) + +This is the second release candidate for zap's stable release. It includes two +breaking changes. + +Breaking changes: + +* [#316][]: Zap's global loggers are now fully concurrency-safe + (previously, users had to ensure that `ReplaceGlobals` was called before the + loggers were in use). However, they must now be accessed via the `L()` and + `S()` functions. Users can update their projects with + + ``` + gofmt -r "zap.L -> zap.L()" -w . + gofmt -r "zap.S -> zap.S()" -w . + ``` +* [#309][] and [#317][]: RC1 was mistakenly shipped with invalid + JSON and YAML struct tags on all config structs. This release fixes the tags + and adds static analysis to prevent similar bugs in the future. + +Bugfixes: + +* [#321][]: Redirecting the standard library's `log` output now + correctly reports the logger's caller. + +Enhancements: + +* [#325][] and [#333][]: Zap now transparently supports non-standard, rich + errors like those produced by `github.com/pkg/errors`. +* [#326][]: Though `New(nil)` continues to return a no-op logger, `NewNop()` is + now preferred. Users can update their projects with `gofmt -r 'zap.New(nil) -> + zap.NewNop()' -w .`. +* [#300][]: Incorrectly importing zap as `github.com/uber-go/zap` now returns a + more informative error. + +Thanks to @skipor and @chapsuk for their contributions to this release. + +## v1.0.0-rc.1 (14 Feb 2017) + +This is the first release candidate for zap's stable release. There are multiple +breaking changes and improvements from the pre-release version. Most notably: + +* **Zap's import path is now "go.uber.org/zap"** — all users will + need to update their code. +* User-facing types and functions remain in the `zap` package. Code relevant + largely to extension authors is now in the `zapcore` package. +* The `zapcore.Core` type makes it easy for third-party packages to use zap's + internals but provide a different user-facing API. +* `Logger` is now a concrete type instead of an interface. +* A less verbose (though slower) logging API is included by default. +* Package-global loggers `L` and `S` are included. +* A human-friendly console encoder is included. +* A declarative config struct allows common logger configurations to be managed + as configuration instead of code. +* Sampling is more accurate, and doesn't depend on the standard library's shared + timer heap. + +## v0.1.0-beta.1 (6 Feb 2017) + +This is a minor version, tagged to allow users to pin to the pre-1.0 APIs and +upgrade at their leisure. Since this is the first tagged release, there are no +backward compatibility concerns and all functionality is new. + +Early zap adopters should pin to the 0.1.x minor version until they're ready to +upgrade to the upcoming stable release. + +[#316]: https://github.com/uber-go/zap/pull/316 +[#309]: https://github.com/uber-go/zap/pull/309 +[#317]: https://github.com/uber-go/zap/pull/317 +[#321]: https://github.com/uber-go/zap/pull/321 +[#325]: https://github.com/uber-go/zap/pull/325 +[#333]: https://github.com/uber-go/zap/pull/333 +[#326]: https://github.com/uber-go/zap/pull/326 +[#300]: https://github.com/uber-go/zap/pull/300 +[#339]: https://github.com/uber-go/zap/pull/339 +[#307]: https://github.com/uber-go/zap/pull/307 +[#353]: https://github.com/uber-go/zap/pull/353 +[#311]: https://github.com/uber-go/zap/pull/311 +[#366]: https://github.com/uber-go/zap/pull/366 +[#364]: https://github.com/uber-go/zap/pull/364 +[#371]: https://github.com/uber-go/zap/pull/371 +[#362]: https://github.com/uber-go/zap/pull/362 +[#369]: https://github.com/uber-go/zap/pull/369 +[#347]: https://github.com/uber-go/zap/pull/347 +[#373]: https://github.com/uber-go/zap/pull/373 +[#348]: https://github.com/uber-go/zap/pull/348 +[#327]: https://github.com/uber-go/zap/pull/327 +[#376]: https://github.com/uber-go/zap/pull/376 +[#346]: https://github.com/uber-go/zap/pull/346 +[#365]: https://github.com/uber-go/zap/pull/365 +[#372]: https://github.com/uber-go/zap/pull/372 +[#385]: https://github.com/uber-go/zap/pull/385 +[#396]: https://github.com/uber-go/zap/pull/396 +[#386]: https://github.com/uber-go/zap/pull/386 +[#402]: https://github.com/uber-go/zap/pull/402 +[#415]: https://github.com/uber-go/zap/pull/415 +[#416]: https://github.com/uber-go/zap/pull/416 +[#424]: https://github.com/uber-go/zap/pull/424 +[#425]: https://github.com/uber-go/zap/pull/425 +[#431]: https://github.com/uber-go/zap/pull/431 +[#435]: https://github.com/uber-go/zap/pull/435 +[#444]: https://github.com/uber-go/zap/pull/444 +[#477]: https://github.com/uber-go/zap/pull/477 +[#465]: https://github.com/uber-go/zap/pull/465 +[#460]: https://github.com/uber-go/zap/pull/460 +[#470]: https://github.com/uber-go/zap/pull/470 +[#487]: https://github.com/uber-go/zap/pull/487 +[#490]: https://github.com/uber-go/zap/pull/490 +[#491]: https://github.com/uber-go/zap/pull/491 +[#504]: https://github.com/uber-go/zap/pull/504 +[#508]: https://github.com/uber-go/zap/pull/508 +[#518]: https://github.com/uber-go/zap/pull/518 +[#577]: https://github.com/uber-go/zap/pull/577 +[#574]: https://github.com/uber-go/zap/pull/574 +[#602]: https://github.com/uber-go/zap/pull/602 +[#572]: https://github.com/uber-go/zap/pull/572 +[#606]: https://github.com/uber-go/zap/pull/606 +[#614]: https://github.com/uber-go/zap/pull/614 +[#657]: https://github.com/uber-go/zap/pull/657 +[#706]: https://github.com/uber-go/zap/pull/706 +[#610]: https://github.com/uber-go/zap/pull/610 +[#675]: https://github.com/uber-go/zap/pull/675 +[#704]: https://github.com/uber-go/zap/pull/704 +[#725]: https://github.com/uber-go/zap/pull/725 +[#736]: https://github.com/uber-go/zap/pull/736 +[#751]: https://github.com/uber-go/zap/pull/751 +[#758]: https://github.com/uber-go/zap/pull/758 +[#771]: https://github.com/uber-go/zap/pull/771 +[#773]: https://github.com/uber-go/zap/pull/773 +[#775]: https://github.com/uber-go/zap/pull/775 +[#786]: https://github.com/uber-go/zap/pull/786 +[#791]: https://github.com/uber-go/zap/pull/791 +[#795]: https://github.com/uber-go/zap/pull/795 +[#799]: https://github.com/uber-go/zap/pull/799 +[#804]: https://github.com/uber-go/zap/pull/804 +[#812]: https://github.com/uber-go/zap/pull/812 +[#806]: https://github.com/uber-go/zap/pull/806 +[#813]: https://github.com/uber-go/zap/pull/813 +[#629]: https://github.com/uber-go/zap/pull/629 +[#697]: https://github.com/uber-go/zap/pull/697 +[#828]: https://github.com/uber-go/zap/pull/828 +[#835]: https://github.com/uber-go/zap/pull/835 +[#843]: https://github.com/uber-go/zap/pull/843 +[#844]: https://github.com/uber-go/zap/pull/844 +[#852]: https://github.com/uber-go/zap/pull/852 +[#854]: https://github.com/uber-go/zap/pull/854 +[#861]: https://github.com/uber-go/zap/pull/861 +[#862]: https://github.com/uber-go/zap/pull/862 +[#865]: https://github.com/uber-go/zap/pull/865 +[#867]: https://github.com/uber-go/zap/pull/867 +[#881]: https://github.com/uber-go/zap/pull/881 +[#903]: https://github.com/uber-go/zap/pull/903 +[#912]: https://github.com/uber-go/zap/pull/912 +[#913]: https://github.com/uber-go/zap/pull/913 +[#928]: https://github.com/uber-go/zap/pull/928 +[#931]: https://github.com/uber-go/zap/pull/931 +[#936]: https://github.com/uber-go/zap/pull/936 diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md b/scripts/token-log-collector/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..e327d9aa5 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md @@ -0,0 +1,75 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, +body size, disability, ethnicity, gender identity and expression, level of +experience, nationality, personal appearance, race, religion, or sexual +identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an +appointed representative at an online or offline event. Representation of a +project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at oss-conduct@uber.com. The project +team will review and investigate all complaints, and will respond in a way +that it deems appropriate to the circumstances. The project team is obligated +to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.4, available at +[http://contributor-covenant.org/version/1/4][version]. + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/CONTRIBUTING.md b/scripts/token-log-collector/vendor/go.uber.org/zap/CONTRIBUTING.md new file mode 100644 index 000000000..5cd965687 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/CONTRIBUTING.md @@ -0,0 +1,75 @@ +# Contributing + +We'd love your help making zap the very best structured logging library in Go! + +If you'd like to add new exported APIs, please [open an issue][open-issue] +describing your proposal — discussing API changes ahead of time makes +pull request review much smoother. In your issue, pull request, and any other +communications, please remember to treat your fellow contributors with +respect! We take our [code of conduct](CODE_OF_CONDUCT.md) seriously. + +Note that you'll need to sign [Uber's Contributor License Agreement][cla] +before we can accept any of your contributions. If necessary, a bot will remind +you to accept the CLA when you open your pull request. + +## Setup + +[Fork][fork], then clone the repository: + +``` +mkdir -p $GOPATH/src/go.uber.org +cd $GOPATH/src/go.uber.org +git clone git@github.com:your_github_username/zap.git +cd zap +git remote add upstream https://github.com/uber-go/zap.git +git fetch upstream +``` + +Make sure that the tests and the linters pass: + +``` +make test +make lint +``` + +If you're not using the minor version of Go specified in the Makefile's +`LINTABLE_MINOR_VERSIONS` variable, `make lint` doesn't do anything. This is +fine, but it means that you'll only discover lint failures after you open your +pull request. + +## Making Changes + +Start by creating a new branch for your changes: + +``` +cd $GOPATH/src/go.uber.org/zap +git checkout master +git fetch upstream +git rebase upstream/master +git checkout -b cool_new_feature +``` + +Make your changes, then ensure that `make lint` and `make test` still pass. If +you're satisfied with your changes, push them to your fork. + +``` +git push origin cool_new_feature +``` + +Then use the GitHub UI to open a pull request. + +At this point, you're waiting on us to review your changes. We *try* to respond +to issues and pull requests within a few business days, and we may suggest some +improvements or alternatives. Once your changes are approved, one of the +project maintainers will merge them. + +We're much more likely to approve your changes if you: + +* Add tests for new functionality. +* Write a [good commit message][commit-message]. +* Maintain backward compatibility. + +[fork]: https://github.com/uber-go/zap/fork +[open-issue]: https://github.com/uber-go/zap/issues/new +[cla]: https://cla-assistant.io/uber-go/zap +[commit-message]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/FAQ.md b/scripts/token-log-collector/vendor/go.uber.org/zap/FAQ.md new file mode 100644 index 000000000..b183b20bc --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/FAQ.md @@ -0,0 +1,164 @@ +# Frequently Asked Questions + +## Design + +### Why spend so much effort on logger performance? + +Of course, most applications won't notice the impact of a slow logger: they +already take tens or hundreds of milliseconds for each operation, so an extra +millisecond doesn't matter. + +On the other hand, why *not* make structured logging fast? The `SugaredLogger` +isn't any harder to use than other logging packages, and the `Logger` makes +structured logging possible in performance-sensitive contexts. Across a fleet +of Go microservices, making each application even slightly more efficient adds +up quickly. + +### Why aren't `Logger` and `SugaredLogger` interfaces? + +Unlike the familiar `io.Writer` and `http.Handler`, `Logger` and +`SugaredLogger` interfaces would include *many* methods. As [Rob Pike points +out][go-proverbs], "The bigger the interface, the weaker the abstraction." +Interfaces are also rigid — *any* change requires releasing a new major +version, since it breaks all third-party implementations. + +Making the `Logger` and `SugaredLogger` concrete types doesn't sacrifice much +abstraction, and it lets us add methods without introducing breaking changes. +Your applications should define and depend upon an interface that includes +just the methods you use. + +### Why are some of my logs missing? + +Logs are dropped intentionally by zap when sampling is enabled. The production +configuration (as returned by `NewProductionConfig()` enables sampling which will +cause repeated logs within a second to be sampled. See more details on why sampling +is enabled in [Why sample application logs](https://github.com/uber-go/zap/blob/master/FAQ.md#why-sample-application-logs). + +### Why sample application logs? + +Applications often experience runs of errors, either because of a bug or +because of a misbehaving user. Logging errors is usually a good idea, but it +can easily make this bad situation worse: not only is your application coping +with a flood of errors, it's also spending extra CPU cycles and I/O logging +those errors. Since writes are typically serialized, logging limits throughput +when you need it most. + +Sampling fixes this problem by dropping repetitive log entries. Under normal +conditions, your application writes out every entry. When similar entries are +logged hundreds or thousands of times each second, though, zap begins dropping +duplicates to preserve throughput. + +### Why do the structured logging APIs take a message in addition to fields? + +Subjectively, we find it helpful to accompany structured context with a brief +description. This isn't critical during development, but it makes debugging +and operating unfamiliar systems much easier. + +More concretely, zap's sampling algorithm uses the message to identify +duplicate entries. In our experience, this is a practical middle ground +between random sampling (which often drops the exact entry that you need while +debugging) and hashing the complete entry (which is prohibitively expensive). + +### Why include package-global loggers? + +Since so many other logging packages include a global logger, many +applications aren't designed to accept loggers as explicit parameters. +Changing function signatures is often a breaking change, so zap includes +global loggers to simplify migration. + +Avoid them where possible. + +### Why include dedicated Panic and Fatal log levels? + +In general, application code should handle errors gracefully instead of using +`panic` or `os.Exit`. However, every rule has exceptions, and it's common to +crash when an error is truly unrecoverable. To avoid losing any information +— especially the reason for the crash — the logger must flush any +buffered entries before the process exits. + +Zap makes this easy by offering `Panic` and `Fatal` logging methods that +automatically flush before exiting. Of course, this doesn't guarantee that +logs will never be lost, but it eliminates a common error. + +See the discussion in uber-go/zap#207 for more details. + +### What's `DPanic`? + +`DPanic` stands for "panic in development." In development, it logs at +`PanicLevel`; otherwise, it logs at `ErrorLevel`. `DPanic` makes it easier to +catch errors that are theoretically possible, but shouldn't actually happen, +*without* crashing in production. + +If you've ever written code like this, you need `DPanic`: + +```go +if err != nil { + panic(fmt.Sprintf("shouldn't ever get here: %v", err)) +} +``` + +## Installation + +### What does the error `expects import "go.uber.org/zap"` mean? + +Either zap was installed incorrectly or you're referencing the wrong package +name in your code. + +Zap's source code happens to be hosted on GitHub, but the [import +path][import-path] is `go.uber.org/zap`. This gives us, the project +maintainers, the freedom to move the source code if necessary. However, it +means that you need to take a little care when installing and using the +package. + +If you follow two simple rules, everything should work: install zap with `go +get -u go.uber.org/zap`, and always import it in your code with `import +"go.uber.org/zap"`. Your code shouldn't contain *any* references to +`github.com/uber-go/zap`. + +## Usage + +### Does zap support log rotation? + +Zap doesn't natively support rotating log files, since we prefer to leave this +to an external program like `logrotate`. + +However, it's easy to integrate a log rotation package like +[`gopkg.in/natefinch/lumberjack.v2`][lumberjack] as a `zapcore.WriteSyncer`. + +```go +// lumberjack.Logger is already safe for concurrent use, so we don't need to +// lock it. +w := zapcore.AddSync(&lumberjack.Logger{ + Filename: "/var/log/myapp/foo.log", + MaxSize: 500, // megabytes + MaxBackups: 3, + MaxAge: 28, // days +}) +core := zapcore.NewCore( + zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()), + w, + zap.InfoLevel, +) +logger := zap.New(core) +``` + +## Extensions + +We'd love to support every logging need within zap itself, but we're only +familiar with a handful of log ingestion systems, flag-parsing packages, and +the like. Rather than merging code that we can't effectively debug and +support, we'd rather grow an ecosystem of zap extensions. + +We're aware of the following extensions, but haven't used them ourselves: + +| Package | Integration | +| --- | --- | +| `github.com/tchap/zapext` | Sentry, syslog | +| `github.com/fgrosse/zaptest` | Ginkgo | +| `github.com/blendle/zapdriver` | Stackdriver | +| `github.com/moul/zapgorm` | Gorm | +| `github.com/moul/zapfilter` | Advanced filtering rules | + +[go-proverbs]: https://go-proverbs.github.io/ +[import-path]: https://golang.org/cmd/go/#hdr-Remote_import_paths +[lumberjack]: https://godoc.org/gopkg.in/natefinch/lumberjack.v2 diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/LICENSE.txt b/scripts/token-log-collector/vendor/go.uber.org/zap/LICENSE.txt new file mode 100644 index 000000000..6652bed45 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (c) 2016-2017 Uber Technologies, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/Makefile b/scripts/token-log-collector/vendor/go.uber.org/zap/Makefile new file mode 100644 index 000000000..9b1bc3b0e --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/Makefile @@ -0,0 +1,73 @@ +export GOBIN ?= $(shell pwd)/bin + +GOLINT = $(GOBIN)/golint +STATICCHECK = $(GOBIN)/staticcheck +BENCH_FLAGS ?= -cpuprofile=cpu.pprof -memprofile=mem.pprof -benchmem + +# Directories containing independent Go modules. +# +# We track coverage only for the main module. +MODULE_DIRS = . ./benchmarks ./zapgrpc/internal/test + +# Many Go tools take file globs or directories as arguments instead of packages. +GO_FILES := $(shell \ + find . '(' -path '*/.*' -o -path './vendor' ')' -prune \ + -o -name '*.go' -print | cut -b3-) + +.PHONY: all +all: lint test + +.PHONY: lint +lint: $(GOLINT) $(STATICCHECK) + @rm -rf lint.log + @echo "Checking formatting..." + @gofmt -d -s $(GO_FILES) 2>&1 | tee lint.log + @echo "Checking vet..." + @$(foreach dir,$(MODULE_DIRS),(cd $(dir) && go vet ./... 2>&1) &&) true | tee -a lint.log + @echo "Checking lint..." + @$(foreach dir,$(MODULE_DIRS),(cd $(dir) && $(GOLINT) ./... 2>&1) &&) true | tee -a lint.log + @echo "Checking staticcheck..." + @$(foreach dir,$(MODULE_DIRS),(cd $(dir) && $(STATICCHECK) ./... 2>&1) &&) true | tee -a lint.log + @echo "Checking for unresolved FIXMEs..." + @git grep -i fixme | grep -v -e Makefile | tee -a lint.log + @echo "Checking for license headers..." + @./checklicense.sh | tee -a lint.log + @[ ! -s lint.log ] + @echo "Checking 'go mod tidy'..." + @make tidy + @if ! git diff --quiet; then \ + echo "'go mod tidy' resulted in changes or working tree is dirty:"; \ + git --no-pager diff; \ + fi + +$(GOLINT): + cd tools && go install golang.org/x/lint/golint + +$(STATICCHECK): + cd tools && go install honnef.co/go/tools/cmd/staticcheck + +.PHONY: test +test: + @$(foreach dir,$(MODULE_DIRS),(cd $(dir) && go test -race ./...) &&) true + +.PHONY: cover +cover: + go test -race -coverprofile=cover.out -coverpkg=./... ./... + go tool cover -html=cover.out -o cover.html + +.PHONY: bench +BENCH ?= . +bench: + @$(foreach dir,$(MODULE_DIRS), ( \ + cd $(dir) && \ + go list ./... | xargs -n1 go test -bench=$(BENCH) -run="^$$" $(BENCH_FLAGS) \ + ) &&) true + +.PHONY: updatereadme +updatereadme: + rm -f README.md + cat .readme.tmpl | go run internal/readme/readme.go > README.md + +.PHONY: tidy +tidy: + @$(foreach dir,$(MODULE_DIRS),(cd $(dir) && go mod tidy) &&) true diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/README.md b/scripts/token-log-collector/vendor/go.uber.org/zap/README.md new file mode 100644 index 000000000..9c9dfe1ed --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/README.md @@ -0,0 +1,134 @@ +# :zap: zap [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] + +Blazing fast, structured, leveled logging in Go. + +## Installation + +`go get -u go.uber.org/zap` + +Note that zap only supports the two most recent minor versions of Go. + +## Quick Start + +In contexts where performance is nice, but not critical, use the +`SugaredLogger`. It's 4-10x faster than other structured logging +packages and includes both structured and `printf`-style APIs. + +```go +logger, _ := zap.NewProduction() +defer logger.Sync() // flushes buffer, if any +sugar := logger.Sugar() +sugar.Infow("failed to fetch URL", + // Structured context as loosely typed key-value pairs. + "url", url, + "attempt", 3, + "backoff", time.Second, +) +sugar.Infof("Failed to fetch URL: %s", url) +``` + +When performance and type safety are critical, use the `Logger`. It's even +faster than the `SugaredLogger` and allocates far less, but it only supports +structured logging. + +```go +logger, _ := zap.NewProduction() +defer logger.Sync() +logger.Info("failed to fetch URL", + // Structured context as strongly typed Field values. + zap.String("url", url), + zap.Int("attempt", 3), + zap.Duration("backoff", time.Second), +) +``` + +See the [documentation][doc] and [FAQ](FAQ.md) for more details. + +## Performance + +For applications that log in the hot path, reflection-based serialization and +string formatting are prohibitively expensive — they're CPU-intensive +and make many small allocations. Put differently, using `encoding/json` and +`fmt.Fprintf` to log tons of `interface{}`s makes your application slow. + +Zap takes a different approach. It includes a reflection-free, zero-allocation +JSON encoder, and the base `Logger` strives to avoid serialization overhead +and allocations wherever possible. By building the high-level `SugaredLogger` +on that foundation, zap lets users *choose* when they need to count every +allocation and when they'd prefer a more familiar, loosely typed API. + +As measured by its own [benchmarking suite][], not only is zap more performant +than comparable structured logging packages — it's also faster than the +standard library. Like all benchmarks, take these with a grain of salt.[1](#footnote-versions) + +Log a message and 10 fields: + +| Package | Time | Time % to zap | Objects Allocated | +| :------ | :--: | :-----------: | :---------------: | +| :zap: zap | 2900 ns/op | +0% | 5 allocs/op +| :zap: zap (sugared) | 3475 ns/op | +20% | 10 allocs/op +| zerolog | 10639 ns/op | +267% | 32 allocs/op +| go-kit | 14434 ns/op | +398% | 59 allocs/op +| logrus | 17104 ns/op | +490% | 81 allocs/op +| apex/log | 32424 ns/op | +1018% | 66 allocs/op +| log15 | 33579 ns/op | +1058% | 76 allocs/op + +Log a message with a logger that already has 10 fields of context: + +| Package | Time | Time % to zap | Objects Allocated | +| :------ | :--: | :-----------: | :---------------: | +| :zap: zap | 373 ns/op | +0% | 0 allocs/op +| :zap: zap (sugared) | 452 ns/op | +21% | 1 allocs/op +| zerolog | 288 ns/op | -23% | 0 allocs/op +| go-kit | 11785 ns/op | +3060% | 58 allocs/op +| logrus | 19629 ns/op | +5162% | 70 allocs/op +| log15 | 21866 ns/op | +5762% | 72 allocs/op +| apex/log | 30890 ns/op | +8182% | 55 allocs/op + +Log a static string, without any context or `printf`-style templating: + +| Package | Time | Time % to zap | Objects Allocated | +| :------ | :--: | :-----------: | :---------------: | +| :zap: zap | 381 ns/op | +0% | 0 allocs/op +| :zap: zap (sugared) | 410 ns/op | +8% | 1 allocs/op +| zerolog | 369 ns/op | -3% | 0 allocs/op +| standard library | 385 ns/op | +1% | 2 allocs/op +| go-kit | 606 ns/op | +59% | 11 allocs/op +| logrus | 1730 ns/op | +354% | 25 allocs/op +| apex/log | 1998 ns/op | +424% | 7 allocs/op +| log15 | 4546 ns/op | +1093% | 22 allocs/op + +## Development Status: Stable + +All APIs are finalized, and no breaking changes will be made in the 1.x series +of releases. Users of semver-aware dependency management systems should pin +zap to `^1`. + +## Contributing + +We encourage and support an active, healthy community of contributors — +including you! Details are in the [contribution guide](CONTRIBUTING.md) and +the [code of conduct](CODE_OF_CONDUCT.md). The zap maintainers keep an eye on +issues and pull requests, but you can also report any negative conduct to +oss-conduct@uber.com. That email list is a private, safe space; even the zap +maintainers don't have access, so don't hesitate to hold us to a high +standard. + +
    + +Released under the [MIT License](LICENSE.txt). + +1 In particular, keep in mind that we may be +benchmarking against slightly older versions of other packages. Versions are +pinned in the [benchmarks/go.mod][] file. [↩](#anchor-versions) + +[doc-img]: https://pkg.go.dev/badge/go.uber.org/zap +[doc]: https://pkg.go.dev/go.uber.org/zap +[ci-img]: https://github.com/uber-go/zap/actions/workflows/go.yml/badge.svg +[ci]: https://github.com/uber-go/zap/actions/workflows/go.yml +[cov-img]: https://codecov.io/gh/uber-go/zap/branch/master/graph/badge.svg +[cov]: https://codecov.io/gh/uber-go/zap +[benchmarking suite]: https://github.com/uber-go/zap/tree/master/benchmarks +[benchmarks/go.mod]: https://github.com/uber-go/zap/blob/master/benchmarks/go.mod + diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/array.go b/scripts/token-log-collector/vendor/go.uber.org/zap/array.go new file mode 100644 index 000000000..5be3704a3 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/array.go @@ -0,0 +1,320 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "time" + + "go.uber.org/zap/zapcore" +) + +// Array constructs a field with the given key and ArrayMarshaler. It provides +// a flexible, but still type-safe and efficient, way to add array-like types +// to the logging context. The struct's MarshalLogArray method is called lazily. +func Array(key string, val zapcore.ArrayMarshaler) Field { + return Field{Key: key, Type: zapcore.ArrayMarshalerType, Interface: val} +} + +// Bools constructs a field that carries a slice of bools. +func Bools(key string, bs []bool) Field { + return Array(key, bools(bs)) +} + +// ByteStrings constructs a field that carries a slice of []byte, each of which +// must be UTF-8 encoded text. +func ByteStrings(key string, bss [][]byte) Field { + return Array(key, byteStringsArray(bss)) +} + +// Complex128s constructs a field that carries a slice of complex numbers. +func Complex128s(key string, nums []complex128) Field { + return Array(key, complex128s(nums)) +} + +// Complex64s constructs a field that carries a slice of complex numbers. +func Complex64s(key string, nums []complex64) Field { + return Array(key, complex64s(nums)) +} + +// Durations constructs a field that carries a slice of time.Durations. +func Durations(key string, ds []time.Duration) Field { + return Array(key, durations(ds)) +} + +// Float64s constructs a field that carries a slice of floats. +func Float64s(key string, nums []float64) Field { + return Array(key, float64s(nums)) +} + +// Float32s constructs a field that carries a slice of floats. +func Float32s(key string, nums []float32) Field { + return Array(key, float32s(nums)) +} + +// Ints constructs a field that carries a slice of integers. +func Ints(key string, nums []int) Field { + return Array(key, ints(nums)) +} + +// Int64s constructs a field that carries a slice of integers. +func Int64s(key string, nums []int64) Field { + return Array(key, int64s(nums)) +} + +// Int32s constructs a field that carries a slice of integers. +func Int32s(key string, nums []int32) Field { + return Array(key, int32s(nums)) +} + +// Int16s constructs a field that carries a slice of integers. +func Int16s(key string, nums []int16) Field { + return Array(key, int16s(nums)) +} + +// Int8s constructs a field that carries a slice of integers. +func Int8s(key string, nums []int8) Field { + return Array(key, int8s(nums)) +} + +// Strings constructs a field that carries a slice of strings. +func Strings(key string, ss []string) Field { + return Array(key, stringArray(ss)) +} + +// Times constructs a field that carries a slice of time.Times. +func Times(key string, ts []time.Time) Field { + return Array(key, times(ts)) +} + +// Uints constructs a field that carries a slice of unsigned integers. +func Uints(key string, nums []uint) Field { + return Array(key, uints(nums)) +} + +// Uint64s constructs a field that carries a slice of unsigned integers. +func Uint64s(key string, nums []uint64) Field { + return Array(key, uint64s(nums)) +} + +// Uint32s constructs a field that carries a slice of unsigned integers. +func Uint32s(key string, nums []uint32) Field { + return Array(key, uint32s(nums)) +} + +// Uint16s constructs a field that carries a slice of unsigned integers. +func Uint16s(key string, nums []uint16) Field { + return Array(key, uint16s(nums)) +} + +// Uint8s constructs a field that carries a slice of unsigned integers. +func Uint8s(key string, nums []uint8) Field { + return Array(key, uint8s(nums)) +} + +// Uintptrs constructs a field that carries a slice of pointer addresses. +func Uintptrs(key string, us []uintptr) Field { + return Array(key, uintptrs(us)) +} + +// Errors constructs a field that carries a slice of errors. +func Errors(key string, errs []error) Field { + return Array(key, errArray(errs)) +} + +type bools []bool + +func (bs bools) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range bs { + arr.AppendBool(bs[i]) + } + return nil +} + +type byteStringsArray [][]byte + +func (bss byteStringsArray) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range bss { + arr.AppendByteString(bss[i]) + } + return nil +} + +type complex128s []complex128 + +func (nums complex128s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendComplex128(nums[i]) + } + return nil +} + +type complex64s []complex64 + +func (nums complex64s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendComplex64(nums[i]) + } + return nil +} + +type durations []time.Duration + +func (ds durations) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range ds { + arr.AppendDuration(ds[i]) + } + return nil +} + +type float64s []float64 + +func (nums float64s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendFloat64(nums[i]) + } + return nil +} + +type float32s []float32 + +func (nums float32s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendFloat32(nums[i]) + } + return nil +} + +type ints []int + +func (nums ints) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendInt(nums[i]) + } + return nil +} + +type int64s []int64 + +func (nums int64s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendInt64(nums[i]) + } + return nil +} + +type int32s []int32 + +func (nums int32s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendInt32(nums[i]) + } + return nil +} + +type int16s []int16 + +func (nums int16s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendInt16(nums[i]) + } + return nil +} + +type int8s []int8 + +func (nums int8s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendInt8(nums[i]) + } + return nil +} + +type stringArray []string + +func (ss stringArray) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range ss { + arr.AppendString(ss[i]) + } + return nil +} + +type times []time.Time + +func (ts times) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range ts { + arr.AppendTime(ts[i]) + } + return nil +} + +type uints []uint + +func (nums uints) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendUint(nums[i]) + } + return nil +} + +type uint64s []uint64 + +func (nums uint64s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendUint64(nums[i]) + } + return nil +} + +type uint32s []uint32 + +func (nums uint32s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendUint32(nums[i]) + } + return nil +} + +type uint16s []uint16 + +func (nums uint16s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendUint16(nums[i]) + } + return nil +} + +type uint8s []uint8 + +func (nums uint8s) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendUint8(nums[i]) + } + return nil +} + +type uintptrs []uintptr + +func (nums uintptrs) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range nums { + arr.AppendUintptr(nums[i]) + } + return nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/buffer/buffer.go b/scripts/token-log-collector/vendor/go.uber.org/zap/buffer/buffer.go new file mode 100644 index 000000000..9e929cd98 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/buffer/buffer.go @@ -0,0 +1,141 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Package buffer provides a thin wrapper around a byte slice. Unlike the +// standard library's bytes.Buffer, it supports a portion of the strconv +// package's zero-allocation formatters. +package buffer // import "go.uber.org/zap/buffer" + +import ( + "strconv" + "time" +) + +const _size = 1024 // by default, create 1 KiB buffers + +// Buffer is a thin wrapper around a byte slice. It's intended to be pooled, so +// the only way to construct one is via a Pool. +type Buffer struct { + bs []byte + pool Pool +} + +// AppendByte writes a single byte to the Buffer. +func (b *Buffer) AppendByte(v byte) { + b.bs = append(b.bs, v) +} + +// AppendString writes a string to the Buffer. +func (b *Buffer) AppendString(s string) { + b.bs = append(b.bs, s...) +} + +// AppendInt appends an integer to the underlying buffer (assuming base 10). +func (b *Buffer) AppendInt(i int64) { + b.bs = strconv.AppendInt(b.bs, i, 10) +} + +// AppendTime appends the time formatted using the specified layout. +func (b *Buffer) AppendTime(t time.Time, layout string) { + b.bs = t.AppendFormat(b.bs, layout) +} + +// AppendUint appends an unsigned integer to the underlying buffer (assuming +// base 10). +func (b *Buffer) AppendUint(i uint64) { + b.bs = strconv.AppendUint(b.bs, i, 10) +} + +// AppendBool appends a bool to the underlying buffer. +func (b *Buffer) AppendBool(v bool) { + b.bs = strconv.AppendBool(b.bs, v) +} + +// AppendFloat appends a float to the underlying buffer. It doesn't quote NaN +// or +/- Inf. +func (b *Buffer) AppendFloat(f float64, bitSize int) { + b.bs = strconv.AppendFloat(b.bs, f, 'f', -1, bitSize) +} + +// Len returns the length of the underlying byte slice. +func (b *Buffer) Len() int { + return len(b.bs) +} + +// Cap returns the capacity of the underlying byte slice. +func (b *Buffer) Cap() int { + return cap(b.bs) +} + +// Bytes returns a mutable reference to the underlying byte slice. +func (b *Buffer) Bytes() []byte { + return b.bs +} + +// String returns a string copy of the underlying byte slice. +func (b *Buffer) String() string { + return string(b.bs) +} + +// Reset resets the underlying byte slice. Subsequent writes re-use the slice's +// backing array. +func (b *Buffer) Reset() { + b.bs = b.bs[:0] +} + +// Write implements io.Writer. +func (b *Buffer) Write(bs []byte) (int, error) { + b.bs = append(b.bs, bs...) + return len(bs), nil +} + +// WriteByte writes a single byte to the Buffer. +// +// Error returned is always nil, function signature is compatible +// with bytes.Buffer and bufio.Writer +func (b *Buffer) WriteByte(v byte) error { + b.AppendByte(v) + return nil +} + +// WriteString writes a string to the Buffer. +// +// Error returned is always nil, function signature is compatible +// with bytes.Buffer and bufio.Writer +func (b *Buffer) WriteString(s string) (int, error) { + b.AppendString(s) + return len(s), nil +} + +// TrimNewline trims any final "\n" byte from the end of the buffer. +func (b *Buffer) TrimNewline() { + if i := len(b.bs) - 1; i >= 0 { + if b.bs[i] == '\n' { + b.bs = b.bs[:i] + } + } +} + +// Free returns the Buffer to its Pool. +// +// Callers must not retain references to the Buffer after calling Free. +func (b *Buffer) Free() { + b.pool.put(b) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/buffer/pool.go b/scripts/token-log-collector/vendor/go.uber.org/zap/buffer/pool.go new file mode 100644 index 000000000..8fb3e202c --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/buffer/pool.go @@ -0,0 +1,49 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package buffer + +import "sync" + +// A Pool is a type-safe wrapper around a sync.Pool. +type Pool struct { + p *sync.Pool +} + +// NewPool constructs a new Pool. +func NewPool() Pool { + return Pool{p: &sync.Pool{ + New: func() interface{} { + return &Buffer{bs: make([]byte, 0, _size)} + }, + }} +} + +// Get retrieves a Buffer from the pool, creating one if necessary. +func (p Pool) Get() *Buffer { + buf := p.p.Get().(*Buffer) + buf.Reset() + buf.pool = p + return buf +} + +func (p Pool) put(buf *Buffer) { + p.p.Put(buf) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/checklicense.sh b/scripts/token-log-collector/vendor/go.uber.org/zap/checklicense.sh new file mode 100644 index 000000000..345ac8b89 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/checklicense.sh @@ -0,0 +1,17 @@ +#!/bin/bash -e + +ERROR_COUNT=0 +while read -r file +do + case "$(head -1 "${file}")" in + *"Copyright (c) "*" Uber Technologies, Inc.") + # everything's cool + ;; + *) + echo "$file is missing license header." + (( ERROR_COUNT++ )) + ;; + esac +done < <(git ls-files "*\.go") + +exit $ERROR_COUNT diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/config.go b/scripts/token-log-collector/vendor/go.uber.org/zap/config.go new file mode 100644 index 000000000..55637fb0b --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/config.go @@ -0,0 +1,264 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "fmt" + "sort" + "time" + + "go.uber.org/zap/zapcore" +) + +// SamplingConfig sets a sampling strategy for the logger. Sampling caps the +// global CPU and I/O load that logging puts on your process while attempting +// to preserve a representative subset of your logs. +// +// If specified, the Sampler will invoke the Hook after each decision. +// +// Values configured here are per-second. See zapcore.NewSamplerWithOptions for +// details. +type SamplingConfig struct { + Initial int `json:"initial" yaml:"initial"` + Thereafter int `json:"thereafter" yaml:"thereafter"` + Hook func(zapcore.Entry, zapcore.SamplingDecision) `json:"-" yaml:"-"` +} + +// Config offers a declarative way to construct a logger. It doesn't do +// anything that can't be done with New, Options, and the various +// zapcore.WriteSyncer and zapcore.Core wrappers, but it's a simpler way to +// toggle common options. +// +// Note that Config intentionally supports only the most common options. More +// unusual logging setups (logging to network connections or message queues, +// splitting output between multiple files, etc.) are possible, but require +// direct use of the zapcore package. For sample code, see the package-level +// BasicConfiguration and AdvancedConfiguration examples. +// +// For an example showing runtime log level changes, see the documentation for +// AtomicLevel. +type Config struct { + // Level is the minimum enabled logging level. Note that this is a dynamic + // level, so calling Config.Level.SetLevel will atomically change the log + // level of all loggers descended from this config. + Level AtomicLevel `json:"level" yaml:"level"` + // Development puts the logger in development mode, which changes the + // behavior of DPanicLevel and takes stacktraces more liberally. + Development bool `json:"development" yaml:"development"` + // DisableCaller stops annotating logs with the calling function's file + // name and line number. By default, all logs are annotated. + DisableCaller bool `json:"disableCaller" yaml:"disableCaller"` + // DisableStacktrace completely disables automatic stacktrace capturing. By + // default, stacktraces are captured for WarnLevel and above logs in + // development and ErrorLevel and above in production. + DisableStacktrace bool `json:"disableStacktrace" yaml:"disableStacktrace"` + // Sampling sets a sampling policy. A nil SamplingConfig disables sampling. + Sampling *SamplingConfig `json:"sampling" yaml:"sampling"` + // Encoding sets the logger's encoding. Valid values are "json" and + // "console", as well as any third-party encodings registered via + // RegisterEncoder. + Encoding string `json:"encoding" yaml:"encoding"` + // EncoderConfig sets options for the chosen encoder. See + // zapcore.EncoderConfig for details. + EncoderConfig zapcore.EncoderConfig `json:"encoderConfig" yaml:"encoderConfig"` + // OutputPaths is a list of URLs or file paths to write logging output to. + // See Open for details. + OutputPaths []string `json:"outputPaths" yaml:"outputPaths"` + // ErrorOutputPaths is a list of URLs to write internal logger errors to. + // The default is standard error. + // + // Note that this setting only affects internal errors; for sample code that + // sends error-level logs to a different location from info- and debug-level + // logs, see the package-level AdvancedConfiguration example. + ErrorOutputPaths []string `json:"errorOutputPaths" yaml:"errorOutputPaths"` + // InitialFields is a collection of fields to add to the root logger. + InitialFields map[string]interface{} `json:"initialFields" yaml:"initialFields"` +} + +// NewProductionEncoderConfig returns an opinionated EncoderConfig for +// production environments. +func NewProductionEncoderConfig() zapcore.EncoderConfig { + return zapcore.EncoderConfig{ + TimeKey: "ts", + LevelKey: "level", + NameKey: "logger", + CallerKey: "caller", + FunctionKey: zapcore.OmitKey, + MessageKey: "msg", + StacktraceKey: "stacktrace", + LineEnding: zapcore.DefaultLineEnding, + EncodeLevel: zapcore.LowercaseLevelEncoder, + EncodeTime: zapcore.EpochTimeEncoder, + EncodeDuration: zapcore.SecondsDurationEncoder, + EncodeCaller: zapcore.ShortCallerEncoder, + } +} + +// NewProductionConfig is a reasonable production logging configuration. +// Logging is enabled at InfoLevel and above. +// +// It uses a JSON encoder, writes to standard error, and enables sampling. +// Stacktraces are automatically included on logs of ErrorLevel and above. +func NewProductionConfig() Config { + return Config{ + Level: NewAtomicLevelAt(InfoLevel), + Development: false, + Sampling: &SamplingConfig{ + Initial: 100, + Thereafter: 100, + }, + Encoding: "json", + EncoderConfig: NewProductionEncoderConfig(), + OutputPaths: []string{"stderr"}, + ErrorOutputPaths: []string{"stderr"}, + } +} + +// NewDevelopmentEncoderConfig returns an opinionated EncoderConfig for +// development environments. +func NewDevelopmentEncoderConfig() zapcore.EncoderConfig { + return zapcore.EncoderConfig{ + // Keys can be anything except the empty string. + TimeKey: "T", + LevelKey: "L", + NameKey: "N", + CallerKey: "C", + FunctionKey: zapcore.OmitKey, + MessageKey: "M", + StacktraceKey: "S", + LineEnding: zapcore.DefaultLineEnding, + EncodeLevel: zapcore.CapitalLevelEncoder, + EncodeTime: zapcore.ISO8601TimeEncoder, + EncodeDuration: zapcore.StringDurationEncoder, + EncodeCaller: zapcore.ShortCallerEncoder, + } +} + +// NewDevelopmentConfig is a reasonable development logging configuration. +// Logging is enabled at DebugLevel and above. +// +// It enables development mode (which makes DPanicLevel logs panic), uses a +// console encoder, writes to standard error, and disables sampling. +// Stacktraces are automatically included on logs of WarnLevel and above. +func NewDevelopmentConfig() Config { + return Config{ + Level: NewAtomicLevelAt(DebugLevel), + Development: true, + Encoding: "console", + EncoderConfig: NewDevelopmentEncoderConfig(), + OutputPaths: []string{"stderr"}, + ErrorOutputPaths: []string{"stderr"}, + } +} + +// Build constructs a logger from the Config and Options. +func (cfg Config) Build(opts ...Option) (*Logger, error) { + enc, err := cfg.buildEncoder() + if err != nil { + return nil, err + } + + sink, errSink, err := cfg.openSinks() + if err != nil { + return nil, err + } + + if cfg.Level == (AtomicLevel{}) { + return nil, fmt.Errorf("missing Level") + } + + log := New( + zapcore.NewCore(enc, sink, cfg.Level), + cfg.buildOptions(errSink)..., + ) + if len(opts) > 0 { + log = log.WithOptions(opts...) + } + return log, nil +} + +func (cfg Config) buildOptions(errSink zapcore.WriteSyncer) []Option { + opts := []Option{ErrorOutput(errSink)} + + if cfg.Development { + opts = append(opts, Development()) + } + + if !cfg.DisableCaller { + opts = append(opts, AddCaller()) + } + + stackLevel := ErrorLevel + if cfg.Development { + stackLevel = WarnLevel + } + if !cfg.DisableStacktrace { + opts = append(opts, AddStacktrace(stackLevel)) + } + + if scfg := cfg.Sampling; scfg != nil { + opts = append(opts, WrapCore(func(core zapcore.Core) zapcore.Core { + var samplerOpts []zapcore.SamplerOption + if scfg.Hook != nil { + samplerOpts = append(samplerOpts, zapcore.SamplerHook(scfg.Hook)) + } + return zapcore.NewSamplerWithOptions( + core, + time.Second, + cfg.Sampling.Initial, + cfg.Sampling.Thereafter, + samplerOpts..., + ) + })) + } + + if len(cfg.InitialFields) > 0 { + fs := make([]Field, 0, len(cfg.InitialFields)) + keys := make([]string, 0, len(cfg.InitialFields)) + for k := range cfg.InitialFields { + keys = append(keys, k) + } + sort.Strings(keys) + for _, k := range keys { + fs = append(fs, Any(k, cfg.InitialFields[k])) + } + opts = append(opts, Fields(fs...)) + } + + return opts +} + +func (cfg Config) openSinks() (zapcore.WriteSyncer, zapcore.WriteSyncer, error) { + sink, closeOut, err := Open(cfg.OutputPaths...) + if err != nil { + return nil, nil, err + } + errSink, _, err := Open(cfg.ErrorOutputPaths...) + if err != nil { + closeOut() + return nil, nil, err + } + return sink, errSink, nil +} + +func (cfg Config) buildEncoder() (zapcore.Encoder, error) { + return newEncoder(cfg.Encoding, cfg.EncoderConfig) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/doc.go b/scripts/token-log-collector/vendor/go.uber.org/zap/doc.go new file mode 100644 index 000000000..8638dd1b9 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/doc.go @@ -0,0 +1,113 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Package zap provides fast, structured, leveled logging. +// +// For applications that log in the hot path, reflection-based serialization +// and string formatting are prohibitively expensive - they're CPU-intensive +// and make many small allocations. Put differently, using json.Marshal and +// fmt.Fprintf to log tons of interface{} makes your application slow. +// +// Zap takes a different approach. It includes a reflection-free, +// zero-allocation JSON encoder, and the base Logger strives to avoid +// serialization overhead and allocations wherever possible. By building the +// high-level SugaredLogger on that foundation, zap lets users choose when +// they need to count every allocation and when they'd prefer a more familiar, +// loosely typed API. +// +// Choosing a Logger +// +// In contexts where performance is nice, but not critical, use the +// SugaredLogger. It's 4-10x faster than other structured logging packages and +// supports both structured and printf-style logging. Like log15 and go-kit, +// the SugaredLogger's structured logging APIs are loosely typed and accept a +// variadic number of key-value pairs. (For more advanced use cases, they also +// accept strongly typed fields - see the SugaredLogger.With documentation for +// details.) +// sugar := zap.NewExample().Sugar() +// defer sugar.Sync() +// sugar.Infow("failed to fetch URL", +// "url", "http://example.com", +// "attempt", 3, +// "backoff", time.Second, +// ) +// sugar.Infof("failed to fetch URL: %s", "http://example.com") +// +// By default, loggers are unbuffered. However, since zap's low-level APIs +// allow buffering, calling Sync before letting your process exit is a good +// habit. +// +// In the rare contexts where every microsecond and every allocation matter, +// use the Logger. It's even faster than the SugaredLogger and allocates far +// less, but it only supports strongly-typed, structured logging. +// logger := zap.NewExample() +// defer logger.Sync() +// logger.Info("failed to fetch URL", +// zap.String("url", "http://example.com"), +// zap.Int("attempt", 3), +// zap.Duration("backoff", time.Second), +// ) +// +// Choosing between the Logger and SugaredLogger doesn't need to be an +// application-wide decision: converting between the two is simple and +// inexpensive. +// logger := zap.NewExample() +// defer logger.Sync() +// sugar := logger.Sugar() +// plain := sugar.Desugar() +// +// Configuring Zap +// +// The simplest way to build a Logger is to use zap's opinionated presets: +// NewExample, NewProduction, and NewDevelopment. These presets build a logger +// with a single function call: +// logger, err := zap.NewProduction() +// if err != nil { +// log.Fatalf("can't initialize zap logger: %v", err) +// } +// defer logger.Sync() +// +// Presets are fine for small projects, but larger projects and organizations +// naturally require a bit more customization. For most users, zap's Config +// struct strikes the right balance between flexibility and convenience. See +// the package-level BasicConfiguration example for sample code. +// +// More unusual configurations (splitting output between files, sending logs +// to a message queue, etc.) are possible, but require direct use of +// go.uber.org/zap/zapcore. See the package-level AdvancedConfiguration +// example for sample code. +// +// Extending Zap +// +// The zap package itself is a relatively thin wrapper around the interfaces +// in go.uber.org/zap/zapcore. Extending zap to support a new encoding (e.g., +// BSON), a new log sink (e.g., Kafka), or something more exotic (perhaps an +// exception aggregation service, like Sentry or Rollbar) typically requires +// implementing the zapcore.Encoder, zapcore.WriteSyncer, or zapcore.Core +// interfaces. See the zapcore documentation for details. +// +// Similarly, package authors can use the high-performance Encoder and Core +// implementations in the zapcore package to build their own loggers. +// +// Frequently Asked Questions +// +// An FAQ covering everything from installation errors to design decisions is +// available at https://github.com/uber-go/zap/blob/master/FAQ.md. +package zap // import "go.uber.org/zap" diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/encoder.go b/scripts/token-log-collector/vendor/go.uber.org/zap/encoder.go new file mode 100644 index 000000000..08ed83354 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/encoder.go @@ -0,0 +1,79 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "errors" + "fmt" + "sync" + + "go.uber.org/zap/zapcore" +) + +var ( + errNoEncoderNameSpecified = errors.New("no encoder name specified") + + _encoderNameToConstructor = map[string]func(zapcore.EncoderConfig) (zapcore.Encoder, error){ + "console": func(encoderConfig zapcore.EncoderConfig) (zapcore.Encoder, error) { + return zapcore.NewConsoleEncoder(encoderConfig), nil + }, + "json": func(encoderConfig zapcore.EncoderConfig) (zapcore.Encoder, error) { + return zapcore.NewJSONEncoder(encoderConfig), nil + }, + } + _encoderMutex sync.RWMutex +) + +// RegisterEncoder registers an encoder constructor, which the Config struct +// can then reference. By default, the "json" and "console" encoders are +// registered. +// +// Attempting to register an encoder whose name is already taken returns an +// error. +func RegisterEncoder(name string, constructor func(zapcore.EncoderConfig) (zapcore.Encoder, error)) error { + _encoderMutex.Lock() + defer _encoderMutex.Unlock() + if name == "" { + return errNoEncoderNameSpecified + } + if _, ok := _encoderNameToConstructor[name]; ok { + return fmt.Errorf("encoder already registered for name %q", name) + } + _encoderNameToConstructor[name] = constructor + return nil +} + +func newEncoder(name string, encoderConfig zapcore.EncoderConfig) (zapcore.Encoder, error) { + if encoderConfig.TimeKey != "" && encoderConfig.EncodeTime == nil { + return nil, fmt.Errorf("missing EncodeTime in EncoderConfig") + } + + _encoderMutex.RLock() + defer _encoderMutex.RUnlock() + if name == "" { + return nil, errNoEncoderNameSpecified + } + constructor, ok := _encoderNameToConstructor[name] + if !ok { + return nil, fmt.Errorf("no encoder registered for name %q", name) + } + return constructor(encoderConfig) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/error.go b/scripts/token-log-collector/vendor/go.uber.org/zap/error.go new file mode 100644 index 000000000..65982a51e --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/error.go @@ -0,0 +1,80 @@ +// Copyright (c) 2017 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "sync" + + "go.uber.org/zap/zapcore" +) + +var _errArrayElemPool = sync.Pool{New: func() interface{} { + return &errArrayElem{} +}} + +// Error is shorthand for the common idiom NamedError("error", err). +func Error(err error) Field { + return NamedError("error", err) +} + +// NamedError constructs a field that lazily stores err.Error() under the +// provided key. Errors which also implement fmt.Formatter (like those produced +// by github.com/pkg/errors) will also have their verbose representation stored +// under key+"Verbose". If passed a nil error, the field is a no-op. +// +// For the common case in which the key is simply "error", the Error function +// is shorter and less repetitive. +func NamedError(key string, err error) Field { + if err == nil { + return Skip() + } + return Field{Key: key, Type: zapcore.ErrorType, Interface: err} +} + +type errArray []error + +func (errs errArray) MarshalLogArray(arr zapcore.ArrayEncoder) error { + for i := range errs { + if errs[i] == nil { + continue + } + // To represent each error as an object with an "error" attribute and + // potentially an "errorVerbose" attribute, we need to wrap it in a + // type that implements LogObjectMarshaler. To prevent this from + // allocating, pool the wrapper type. + elem := _errArrayElemPool.Get().(*errArrayElem) + elem.error = errs[i] + arr.AppendObject(elem) + elem.error = nil + _errArrayElemPool.Put(elem) + } + return nil +} + +type errArrayElem struct { + error +} + +func (e *errArrayElem) MarshalLogObject(enc zapcore.ObjectEncoder) error { + // Re-use the error field's logic, which supports non-standard error types. + Error(e.error).AddTo(enc) + return nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/field.go b/scripts/token-log-collector/vendor/go.uber.org/zap/field.go new file mode 100644 index 000000000..bbb745db5 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/field.go @@ -0,0 +1,549 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "fmt" + "math" + "time" + + "go.uber.org/zap/zapcore" +) + +// Field is an alias for Field. Aliasing this type dramatically +// improves the navigability of this package's API documentation. +type Field = zapcore.Field + +var ( + _minTimeInt64 = time.Unix(0, math.MinInt64) + _maxTimeInt64 = time.Unix(0, math.MaxInt64) +) + +// Skip constructs a no-op field, which is often useful when handling invalid +// inputs in other Field constructors. +func Skip() Field { + return Field{Type: zapcore.SkipType} +} + +// nilField returns a field which will marshal explicitly as nil. See motivation +// in https://github.com/uber-go/zap/issues/753 . If we ever make breaking +// changes and add zapcore.NilType and zapcore.ObjectEncoder.AddNil, the +// implementation here should be changed to reflect that. +func nilField(key string) Field { return Reflect(key, nil) } + +// Binary constructs a field that carries an opaque binary blob. +// +// Binary data is serialized in an encoding-appropriate format. For example, +// zap's JSON encoder base64-encodes binary blobs. To log UTF-8 encoded text, +// use ByteString. +func Binary(key string, val []byte) Field { + return Field{Key: key, Type: zapcore.BinaryType, Interface: val} +} + +// Bool constructs a field that carries a bool. +func Bool(key string, val bool) Field { + var ival int64 + if val { + ival = 1 + } + return Field{Key: key, Type: zapcore.BoolType, Integer: ival} +} + +// Boolp constructs a field that carries a *bool. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Boolp(key string, val *bool) Field { + if val == nil { + return nilField(key) + } + return Bool(key, *val) +} + +// ByteString constructs a field that carries UTF-8 encoded text as a []byte. +// To log opaque binary blobs (which aren't necessarily valid UTF-8), use +// Binary. +func ByteString(key string, val []byte) Field { + return Field{Key: key, Type: zapcore.ByteStringType, Interface: val} +} + +// Complex128 constructs a field that carries a complex number. Unlike most +// numeric fields, this costs an allocation (to convert the complex128 to +// interface{}). +func Complex128(key string, val complex128) Field { + return Field{Key: key, Type: zapcore.Complex128Type, Interface: val} +} + +// Complex128p constructs a field that carries a *complex128. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Complex128p(key string, val *complex128) Field { + if val == nil { + return nilField(key) + } + return Complex128(key, *val) +} + +// Complex64 constructs a field that carries a complex number. Unlike most +// numeric fields, this costs an allocation (to convert the complex64 to +// interface{}). +func Complex64(key string, val complex64) Field { + return Field{Key: key, Type: zapcore.Complex64Type, Interface: val} +} + +// Complex64p constructs a field that carries a *complex64. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Complex64p(key string, val *complex64) Field { + if val == nil { + return nilField(key) + } + return Complex64(key, *val) +} + +// Float64 constructs a field that carries a float64. The way the +// floating-point value is represented is encoder-dependent, so marshaling is +// necessarily lazy. +func Float64(key string, val float64) Field { + return Field{Key: key, Type: zapcore.Float64Type, Integer: int64(math.Float64bits(val))} +} + +// Float64p constructs a field that carries a *float64. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Float64p(key string, val *float64) Field { + if val == nil { + return nilField(key) + } + return Float64(key, *val) +} + +// Float32 constructs a field that carries a float32. The way the +// floating-point value is represented is encoder-dependent, so marshaling is +// necessarily lazy. +func Float32(key string, val float32) Field { + return Field{Key: key, Type: zapcore.Float32Type, Integer: int64(math.Float32bits(val))} +} + +// Float32p constructs a field that carries a *float32. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Float32p(key string, val *float32) Field { + if val == nil { + return nilField(key) + } + return Float32(key, *val) +} + +// Int constructs a field with the given key and value. +func Int(key string, val int) Field { + return Int64(key, int64(val)) +} + +// Intp constructs a field that carries a *int. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Intp(key string, val *int) Field { + if val == nil { + return nilField(key) + } + return Int(key, *val) +} + +// Int64 constructs a field with the given key and value. +func Int64(key string, val int64) Field { + return Field{Key: key, Type: zapcore.Int64Type, Integer: val} +} + +// Int64p constructs a field that carries a *int64. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Int64p(key string, val *int64) Field { + if val == nil { + return nilField(key) + } + return Int64(key, *val) +} + +// Int32 constructs a field with the given key and value. +func Int32(key string, val int32) Field { + return Field{Key: key, Type: zapcore.Int32Type, Integer: int64(val)} +} + +// Int32p constructs a field that carries a *int32. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Int32p(key string, val *int32) Field { + if val == nil { + return nilField(key) + } + return Int32(key, *val) +} + +// Int16 constructs a field with the given key and value. +func Int16(key string, val int16) Field { + return Field{Key: key, Type: zapcore.Int16Type, Integer: int64(val)} +} + +// Int16p constructs a field that carries a *int16. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Int16p(key string, val *int16) Field { + if val == nil { + return nilField(key) + } + return Int16(key, *val) +} + +// Int8 constructs a field with the given key and value. +func Int8(key string, val int8) Field { + return Field{Key: key, Type: zapcore.Int8Type, Integer: int64(val)} +} + +// Int8p constructs a field that carries a *int8. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Int8p(key string, val *int8) Field { + if val == nil { + return nilField(key) + } + return Int8(key, *val) +} + +// String constructs a field with the given key and value. +func String(key string, val string) Field { + return Field{Key: key, Type: zapcore.StringType, String: val} +} + +// Stringp constructs a field that carries a *string. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Stringp(key string, val *string) Field { + if val == nil { + return nilField(key) + } + return String(key, *val) +} + +// Uint constructs a field with the given key and value. +func Uint(key string, val uint) Field { + return Uint64(key, uint64(val)) +} + +// Uintp constructs a field that carries a *uint. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Uintp(key string, val *uint) Field { + if val == nil { + return nilField(key) + } + return Uint(key, *val) +} + +// Uint64 constructs a field with the given key and value. +func Uint64(key string, val uint64) Field { + return Field{Key: key, Type: zapcore.Uint64Type, Integer: int64(val)} +} + +// Uint64p constructs a field that carries a *uint64. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Uint64p(key string, val *uint64) Field { + if val == nil { + return nilField(key) + } + return Uint64(key, *val) +} + +// Uint32 constructs a field with the given key and value. +func Uint32(key string, val uint32) Field { + return Field{Key: key, Type: zapcore.Uint32Type, Integer: int64(val)} +} + +// Uint32p constructs a field that carries a *uint32. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Uint32p(key string, val *uint32) Field { + if val == nil { + return nilField(key) + } + return Uint32(key, *val) +} + +// Uint16 constructs a field with the given key and value. +func Uint16(key string, val uint16) Field { + return Field{Key: key, Type: zapcore.Uint16Type, Integer: int64(val)} +} + +// Uint16p constructs a field that carries a *uint16. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Uint16p(key string, val *uint16) Field { + if val == nil { + return nilField(key) + } + return Uint16(key, *val) +} + +// Uint8 constructs a field with the given key and value. +func Uint8(key string, val uint8) Field { + return Field{Key: key, Type: zapcore.Uint8Type, Integer: int64(val)} +} + +// Uint8p constructs a field that carries a *uint8. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Uint8p(key string, val *uint8) Field { + if val == nil { + return nilField(key) + } + return Uint8(key, *val) +} + +// Uintptr constructs a field with the given key and value. +func Uintptr(key string, val uintptr) Field { + return Field{Key: key, Type: zapcore.UintptrType, Integer: int64(val)} +} + +// Uintptrp constructs a field that carries a *uintptr. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Uintptrp(key string, val *uintptr) Field { + if val == nil { + return nilField(key) + } + return Uintptr(key, *val) +} + +// Reflect constructs a field with the given key and an arbitrary object. It uses +// an encoding-appropriate, reflection-based function to lazily serialize nearly +// any object into the logging context, but it's relatively slow and +// allocation-heavy. Outside tests, Any is always a better choice. +// +// If encoding fails (e.g., trying to serialize a map[int]string to JSON), Reflect +// includes the error message in the final log output. +func Reflect(key string, val interface{}) Field { + return Field{Key: key, Type: zapcore.ReflectType, Interface: val} +} + +// Namespace creates a named, isolated scope within the logger's context. All +// subsequent fields will be added to the new namespace. +// +// This helps prevent key collisions when injecting loggers into sub-components +// or third-party libraries. +func Namespace(key string) Field { + return Field{Key: key, Type: zapcore.NamespaceType} +} + +// Stringer constructs a field with the given key and the output of the value's +// String method. The Stringer's String method is called lazily. +func Stringer(key string, val fmt.Stringer) Field { + return Field{Key: key, Type: zapcore.StringerType, Interface: val} +} + +// Time constructs a Field with the given key and value. The encoder +// controls how the time is serialized. +func Time(key string, val time.Time) Field { + if val.Before(_minTimeInt64) || val.After(_maxTimeInt64) { + return Field{Key: key, Type: zapcore.TimeFullType, Interface: val} + } + return Field{Key: key, Type: zapcore.TimeType, Integer: val.UnixNano(), Interface: val.Location()} +} + +// Timep constructs a field that carries a *time.Time. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Timep(key string, val *time.Time) Field { + if val == nil { + return nilField(key) + } + return Time(key, *val) +} + +// Stack constructs a field that stores a stacktrace of the current goroutine +// under provided key. Keep in mind that taking a stacktrace is eager and +// expensive (relatively speaking); this function both makes an allocation and +// takes about two microseconds. +func Stack(key string) Field { + return StackSkip(key, 1) // skip Stack +} + +// StackSkip constructs a field similarly to Stack, but also skips the given +// number of frames from the top of the stacktrace. +func StackSkip(key string, skip int) Field { + // Returning the stacktrace as a string costs an allocation, but saves us + // from expanding the zapcore.Field union struct to include a byte slice. Since + // taking a stacktrace is already so expensive (~10us), the extra allocation + // is okay. + return String(key, takeStacktrace(skip+1)) // skip StackSkip +} + +// Duration constructs a field with the given key and value. The encoder +// controls how the duration is serialized. +func Duration(key string, val time.Duration) Field { + return Field{Key: key, Type: zapcore.DurationType, Integer: int64(val)} +} + +// Durationp constructs a field that carries a *time.Duration. The returned Field will safely +// and explicitly represent `nil` when appropriate. +func Durationp(key string, val *time.Duration) Field { + if val == nil { + return nilField(key) + } + return Duration(key, *val) +} + +// Object constructs a field with the given key and ObjectMarshaler. It +// provides a flexible, but still type-safe and efficient, way to add map- or +// struct-like user-defined types to the logging context. The struct's +// MarshalLogObject method is called lazily. +func Object(key string, val zapcore.ObjectMarshaler) Field { + return Field{Key: key, Type: zapcore.ObjectMarshalerType, Interface: val} +} + +// Inline constructs a Field that is similar to Object, but it +// will add the elements of the provided ObjectMarshaler to the +// current namespace. +func Inline(val zapcore.ObjectMarshaler) Field { + return zapcore.Field{ + Type: zapcore.InlineMarshalerType, + Interface: val, + } +} + +// Any takes a key and an arbitrary value and chooses the best way to represent +// them as a field, falling back to a reflection-based approach only if +// necessary. +// +// Since byte/uint8 and rune/int32 are aliases, Any can't differentiate between +// them. To minimize surprises, []byte values are treated as binary blobs, byte +// values are treated as uint8, and runes are always treated as integers. +func Any(key string, value interface{}) Field { + switch val := value.(type) { + case zapcore.ObjectMarshaler: + return Object(key, val) + case zapcore.ArrayMarshaler: + return Array(key, val) + case bool: + return Bool(key, val) + case *bool: + return Boolp(key, val) + case []bool: + return Bools(key, val) + case complex128: + return Complex128(key, val) + case *complex128: + return Complex128p(key, val) + case []complex128: + return Complex128s(key, val) + case complex64: + return Complex64(key, val) + case *complex64: + return Complex64p(key, val) + case []complex64: + return Complex64s(key, val) + case float64: + return Float64(key, val) + case *float64: + return Float64p(key, val) + case []float64: + return Float64s(key, val) + case float32: + return Float32(key, val) + case *float32: + return Float32p(key, val) + case []float32: + return Float32s(key, val) + case int: + return Int(key, val) + case *int: + return Intp(key, val) + case []int: + return Ints(key, val) + case int64: + return Int64(key, val) + case *int64: + return Int64p(key, val) + case []int64: + return Int64s(key, val) + case int32: + return Int32(key, val) + case *int32: + return Int32p(key, val) + case []int32: + return Int32s(key, val) + case int16: + return Int16(key, val) + case *int16: + return Int16p(key, val) + case []int16: + return Int16s(key, val) + case int8: + return Int8(key, val) + case *int8: + return Int8p(key, val) + case []int8: + return Int8s(key, val) + case string: + return String(key, val) + case *string: + return Stringp(key, val) + case []string: + return Strings(key, val) + case uint: + return Uint(key, val) + case *uint: + return Uintp(key, val) + case []uint: + return Uints(key, val) + case uint64: + return Uint64(key, val) + case *uint64: + return Uint64p(key, val) + case []uint64: + return Uint64s(key, val) + case uint32: + return Uint32(key, val) + case *uint32: + return Uint32p(key, val) + case []uint32: + return Uint32s(key, val) + case uint16: + return Uint16(key, val) + case *uint16: + return Uint16p(key, val) + case []uint16: + return Uint16s(key, val) + case uint8: + return Uint8(key, val) + case *uint8: + return Uint8p(key, val) + case []byte: + return Binary(key, val) + case uintptr: + return Uintptr(key, val) + case *uintptr: + return Uintptrp(key, val) + case []uintptr: + return Uintptrs(key, val) + case time.Time: + return Time(key, val) + case *time.Time: + return Timep(key, val) + case []time.Time: + return Times(key, val) + case time.Duration: + return Duration(key, val) + case *time.Duration: + return Durationp(key, val) + case []time.Duration: + return Durations(key, val) + case error: + return NamedError(key, val) + case []error: + return Errors(key, val) + case fmt.Stringer: + return Stringer(key, val) + default: + return Reflect(key, val) + } +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/flag.go b/scripts/token-log-collector/vendor/go.uber.org/zap/flag.go new file mode 100644 index 000000000..131287507 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/flag.go @@ -0,0 +1,39 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "flag" + + "go.uber.org/zap/zapcore" +) + +// LevelFlag uses the standard library's flag.Var to declare a global flag +// with the specified name, default, and usage guidance. The returned value is +// a pointer to the value of the flag. +// +// If you don't want to use the flag package's global state, you can use any +// non-nil *Level as a flag.Value with your own *flag.FlagSet. +func LevelFlag(name string, defaultLevel zapcore.Level, usage string) *zapcore.Level { + lvl := defaultLevel + flag.Var(&lvl, name, usage) + return &lvl +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/glide.yaml b/scripts/token-log-collector/vendor/go.uber.org/zap/glide.yaml new file mode 100644 index 000000000..8e1d05e9a --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/glide.yaml @@ -0,0 +1,34 @@ +package: go.uber.org/zap +license: MIT +import: +- package: go.uber.org/atomic + version: ^1 +- package: go.uber.org/multierr + version: ^1 +testImport: +- package: github.com/satori/go.uuid +- package: github.com/sirupsen/logrus +- package: github.com/apex/log + subpackages: + - handlers/json +- package: github.com/go-kit/kit + subpackages: + - log +- package: github.com/stretchr/testify + subpackages: + - assert + - require +- package: gopkg.in/inconshreveable/log15.v2 +- package: github.com/mattn/goveralls +- package: github.com/pborman/uuid +- package: github.com/pkg/errors +- package: github.com/rs/zerolog +- package: golang.org/x/tools + subpackages: + - cover +- package: golang.org/x/lint + subpackages: + - golint +- package: github.com/axw/gocov + subpackages: + - gocov diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/global.go b/scripts/token-log-collector/vendor/go.uber.org/zap/global.go new file mode 100644 index 000000000..3cb46c9e0 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/global.go @@ -0,0 +1,169 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "bytes" + "fmt" + "log" + "os" + "sync" + + "go.uber.org/zap/zapcore" +) + +const ( + _stdLogDefaultDepth = 1 + _loggerWriterDepth = 2 + _programmerErrorTemplate = "You've found a bug in zap! Please file a bug at " + + "https://github.com/uber-go/zap/issues/new and reference this error: %v" +) + +var ( + _globalMu sync.RWMutex + _globalL = NewNop() + _globalS = _globalL.Sugar() +) + +// L returns the global Logger, which can be reconfigured with ReplaceGlobals. +// It's safe for concurrent use. +func L() *Logger { + _globalMu.RLock() + l := _globalL + _globalMu.RUnlock() + return l +} + +// S returns the global SugaredLogger, which can be reconfigured with +// ReplaceGlobals. It's safe for concurrent use. +func S() *SugaredLogger { + _globalMu.RLock() + s := _globalS + _globalMu.RUnlock() + return s +} + +// ReplaceGlobals replaces the global Logger and SugaredLogger, and returns a +// function to restore the original values. It's safe for concurrent use. +func ReplaceGlobals(logger *Logger) func() { + _globalMu.Lock() + prev := _globalL + _globalL = logger + _globalS = logger.Sugar() + _globalMu.Unlock() + return func() { ReplaceGlobals(prev) } +} + +// NewStdLog returns a *log.Logger which writes to the supplied zap Logger at +// InfoLevel. To redirect the standard library's package-global logging +// functions, use RedirectStdLog instead. +func NewStdLog(l *Logger) *log.Logger { + logger := l.WithOptions(AddCallerSkip(_stdLogDefaultDepth + _loggerWriterDepth)) + f := logger.Info + return log.New(&loggerWriter{f}, "" /* prefix */, 0 /* flags */) +} + +// NewStdLogAt returns *log.Logger which writes to supplied zap logger at +// required level. +func NewStdLogAt(l *Logger, level zapcore.Level) (*log.Logger, error) { + logger := l.WithOptions(AddCallerSkip(_stdLogDefaultDepth + _loggerWriterDepth)) + logFunc, err := levelToFunc(logger, level) + if err != nil { + return nil, err + } + return log.New(&loggerWriter{logFunc}, "" /* prefix */, 0 /* flags */), nil +} + +// RedirectStdLog redirects output from the standard library's package-global +// logger to the supplied logger at InfoLevel. Since zap already handles caller +// annotations, timestamps, etc., it automatically disables the standard +// library's annotations and prefixing. +// +// It returns a function to restore the original prefix and flags and reset the +// standard library's output to os.Stderr. +func RedirectStdLog(l *Logger) func() { + f, err := redirectStdLogAt(l, InfoLevel) + if err != nil { + // Can't get here, since passing InfoLevel to redirectStdLogAt always + // works. + panic(fmt.Sprintf(_programmerErrorTemplate, err)) + } + return f +} + +// RedirectStdLogAt redirects output from the standard library's package-global +// logger to the supplied logger at the specified level. Since zap already +// handles caller annotations, timestamps, etc., it automatically disables the +// standard library's annotations and prefixing. +// +// It returns a function to restore the original prefix and flags and reset the +// standard library's output to os.Stderr. +func RedirectStdLogAt(l *Logger, level zapcore.Level) (func(), error) { + return redirectStdLogAt(l, level) +} + +func redirectStdLogAt(l *Logger, level zapcore.Level) (func(), error) { + flags := log.Flags() + prefix := log.Prefix() + log.SetFlags(0) + log.SetPrefix("") + logger := l.WithOptions(AddCallerSkip(_stdLogDefaultDepth + _loggerWriterDepth)) + logFunc, err := levelToFunc(logger, level) + if err != nil { + return nil, err + } + log.SetOutput(&loggerWriter{logFunc}) + return func() { + log.SetFlags(flags) + log.SetPrefix(prefix) + log.SetOutput(os.Stderr) + }, nil +} + +func levelToFunc(logger *Logger, lvl zapcore.Level) (func(string, ...Field), error) { + switch lvl { + case DebugLevel: + return logger.Debug, nil + case InfoLevel: + return logger.Info, nil + case WarnLevel: + return logger.Warn, nil + case ErrorLevel: + return logger.Error, nil + case DPanicLevel: + return logger.DPanic, nil + case PanicLevel: + return logger.Panic, nil + case FatalLevel: + return logger.Fatal, nil + } + return nil, fmt.Errorf("unrecognized level: %q", lvl) +} + +type loggerWriter struct { + logFunc func(msg string, fields ...Field) +} + +func (l *loggerWriter) Write(p []byte) (int, error) { + p = bytes.TrimSpace(p) + l.logFunc(string(p)) + return len(p), nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/http_handler.go b/scripts/token-log-collector/vendor/go.uber.org/zap/http_handler.go new file mode 100644 index 000000000..1297c33b3 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/http_handler.go @@ -0,0 +1,132 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "encoding/json" + "fmt" + "io" + "net/http" + + "go.uber.org/zap/zapcore" +) + +// ServeHTTP is a simple JSON endpoint that can report on or change the current +// logging level. +// +// GET +// +// The GET request returns a JSON description of the current logging level like: +// {"level":"info"} +// +// PUT +// +// The PUT request changes the logging level. It is perfectly safe to change the +// logging level while a program is running. Two content types are supported: +// +// Content-Type: application/x-www-form-urlencoded +// +// With this content type, the level can be provided through the request body or +// a query parameter. The log level is URL encoded like: +// +// level=debug +// +// The request body takes precedence over the query parameter, if both are +// specified. +// +// This content type is the default for a curl PUT request. Following are two +// example curl requests that both set the logging level to debug. +// +// curl -X PUT localhost:8080/log/level?level=debug +// curl -X PUT localhost:8080/log/level -d level=debug +// +// For any other content type, the payload is expected to be JSON encoded and +// look like: +// +// {"level":"info"} +// +// An example curl request could look like this: +// +// curl -X PUT localhost:8080/log/level -H "Content-Type: application/json" -d '{"level":"debug"}' +// +func (lvl AtomicLevel) ServeHTTP(w http.ResponseWriter, r *http.Request) { + type errorResponse struct { + Error string `json:"error"` + } + type payload struct { + Level zapcore.Level `json:"level"` + } + + enc := json.NewEncoder(w) + + switch r.Method { + case http.MethodGet: + enc.Encode(payload{Level: lvl.Level()}) + case http.MethodPut: + requestedLvl, err := decodePutRequest(r.Header.Get("Content-Type"), r) + if err != nil { + w.WriteHeader(http.StatusBadRequest) + enc.Encode(errorResponse{Error: err.Error()}) + return + } + lvl.SetLevel(requestedLvl) + enc.Encode(payload{Level: lvl.Level()}) + default: + w.WriteHeader(http.StatusMethodNotAllowed) + enc.Encode(errorResponse{ + Error: "Only GET and PUT are supported.", + }) + } +} + +// Decodes incoming PUT requests and returns the requested logging level. +func decodePutRequest(contentType string, r *http.Request) (zapcore.Level, error) { + if contentType == "application/x-www-form-urlencoded" { + return decodePutURL(r) + } + return decodePutJSON(r.Body) +} + +func decodePutURL(r *http.Request) (zapcore.Level, error) { + lvl := r.FormValue("level") + if lvl == "" { + return 0, fmt.Errorf("must specify logging level") + } + var l zapcore.Level + if err := l.UnmarshalText([]byte(lvl)); err != nil { + return 0, err + } + return l, nil +} + +func decodePutJSON(body io.Reader) (zapcore.Level, error) { + var pld struct { + Level *zapcore.Level `json:"level"` + } + if err := json.NewDecoder(body).Decode(&pld); err != nil { + return 0, fmt.Errorf("malformed request body: %v", err) + } + if pld.Level == nil { + return 0, fmt.Errorf("must specify logging level") + } + return *pld.Level, nil + +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go b/scripts/token-log-collector/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go new file mode 100644 index 000000000..dad583aaa --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go @@ -0,0 +1,31 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Package bufferpool houses zap's shared internal buffer pool. Third-party +// packages can recreate the same functionality with buffers.NewPool. +package bufferpool + +import "go.uber.org/zap/buffer" + +var ( + _pool = buffer.NewPool() + // Get retrieves a buffer from the pool, creating one if necessary. + Get = _pool.Get +) diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/internal/color/color.go b/scripts/token-log-collector/vendor/go.uber.org/zap/internal/color/color.go new file mode 100644 index 000000000..c4d5d02ab --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/internal/color/color.go @@ -0,0 +1,44 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Package color adds coloring functionality for TTY output. +package color + +import "fmt" + +// Foreground colors. +const ( + Black Color = iota + 30 + Red + Green + Yellow + Blue + Magenta + Cyan + White +) + +// Color represents a text color. +type Color uint8 + +// Add adds the coloring to the given string. +func (c Color) Add(s string) string { + return fmt.Sprintf("\x1b[%dm%s\x1b[0m", uint8(c), s) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/internal/exit/exit.go b/scripts/token-log-collector/vendor/go.uber.org/zap/internal/exit/exit.go new file mode 100644 index 000000000..dfc5b05fe --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/internal/exit/exit.go @@ -0,0 +1,64 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Package exit provides stubs so that unit tests can exercise code that calls +// os.Exit(1). +package exit + +import "os" + +var real = func() { os.Exit(1) } + +// Exit normally terminates the process by calling os.Exit(1). If the package +// is stubbed, it instead records a call in the testing spy. +func Exit() { + real() +} + +// A StubbedExit is a testing fake for os.Exit. +type StubbedExit struct { + Exited bool + prev func() +} + +// Stub substitutes a fake for the call to os.Exit(1). +func Stub() *StubbedExit { + s := &StubbedExit{prev: real} + real = s.exit + return s +} + +// WithStub runs the supplied function with Exit stubbed. It returns the stub +// used, so that users can test whether the process would have crashed. +func WithStub(f func()) *StubbedExit { + s := Stub() + defer s.Unstub() + f() + return s +} + +// Unstub restores the previous exit function. +func (se *StubbedExit) Unstub() { + real = se.prev +} + +func (se *StubbedExit) exit() { + se.Exited = true +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/level.go b/scripts/token-log-collector/vendor/go.uber.org/zap/level.go new file mode 100644 index 000000000..8f86c430f --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/level.go @@ -0,0 +1,149 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "go.uber.org/atomic" + "go.uber.org/zap/zapcore" +) + +const ( + // DebugLevel logs are typically voluminous, and are usually disabled in + // production. + DebugLevel = zapcore.DebugLevel + // InfoLevel is the default logging priority. + InfoLevel = zapcore.InfoLevel + // WarnLevel logs are more important than Info, but don't need individual + // human review. + WarnLevel = zapcore.WarnLevel + // ErrorLevel logs are high-priority. If an application is running smoothly, + // it shouldn't generate any error-level logs. + ErrorLevel = zapcore.ErrorLevel + // DPanicLevel logs are particularly important errors. In development the + // logger panics after writing the message. + DPanicLevel = zapcore.DPanicLevel + // PanicLevel logs a message, then panics. + PanicLevel = zapcore.PanicLevel + // FatalLevel logs a message, then calls os.Exit(1). + FatalLevel = zapcore.FatalLevel +) + +// LevelEnablerFunc is a convenient way to implement zapcore.LevelEnabler with +// an anonymous function. +// +// It's particularly useful when splitting log output between different +// outputs (e.g., standard error and standard out). For sample code, see the +// package-level AdvancedConfiguration example. +type LevelEnablerFunc func(zapcore.Level) bool + +// Enabled calls the wrapped function. +func (f LevelEnablerFunc) Enabled(lvl zapcore.Level) bool { return f(lvl) } + +// An AtomicLevel is an atomically changeable, dynamic logging level. It lets +// you safely change the log level of a tree of loggers (the root logger and +// any children created by adding context) at runtime. +// +// The AtomicLevel itself is an http.Handler that serves a JSON endpoint to +// alter its level. +// +// AtomicLevels must be created with the NewAtomicLevel constructor to allocate +// their internal atomic pointer. +type AtomicLevel struct { + l *atomic.Int32 +} + +// NewAtomicLevel creates an AtomicLevel with InfoLevel and above logging +// enabled. +func NewAtomicLevel() AtomicLevel { + return AtomicLevel{ + l: atomic.NewInt32(int32(InfoLevel)), + } +} + +// NewAtomicLevelAt is a convenience function that creates an AtomicLevel +// and then calls SetLevel with the given level. +func NewAtomicLevelAt(l zapcore.Level) AtomicLevel { + a := NewAtomicLevel() + a.SetLevel(l) + return a +} + +// ParseAtomicLevel parses an AtomicLevel based on a lowercase or all-caps ASCII +// representation of the log level. If the provided ASCII representation is +// invalid an error is returned. +// +// This is particularly useful when dealing with text input to configure log +// levels. +func ParseAtomicLevel(text string) (AtomicLevel, error) { + a := NewAtomicLevel() + l, err := zapcore.ParseLevel(text) + if err != nil { + return a, err + } + + a.SetLevel(l) + return a, nil +} + +// Enabled implements the zapcore.LevelEnabler interface, which allows the +// AtomicLevel to be used in place of traditional static levels. +func (lvl AtomicLevel) Enabled(l zapcore.Level) bool { + return lvl.Level().Enabled(l) +} + +// Level returns the minimum enabled log level. +func (lvl AtomicLevel) Level() zapcore.Level { + return zapcore.Level(int8(lvl.l.Load())) +} + +// SetLevel alters the logging level. +func (lvl AtomicLevel) SetLevel(l zapcore.Level) { + lvl.l.Store(int32(l)) +} + +// String returns the string representation of the underlying Level. +func (lvl AtomicLevel) String() string { + return lvl.Level().String() +} + +// UnmarshalText unmarshals the text to an AtomicLevel. It uses the same text +// representations as the static zapcore.Levels ("debug", "info", "warn", +// "error", "dpanic", "panic", and "fatal"). +func (lvl *AtomicLevel) UnmarshalText(text []byte) error { + if lvl.l == nil { + lvl.l = &atomic.Int32{} + } + + var l zapcore.Level + if err := l.UnmarshalText(text); err != nil { + return err + } + + lvl.SetLevel(l) + return nil +} + +// MarshalText marshals the AtomicLevel to a byte slice. It uses the same +// text representation as the static zapcore.Levels ("debug", "info", "warn", +// "error", "dpanic", "panic", and "fatal"). +func (lvl AtomicLevel) MarshalText() (text []byte, err error) { + return lvl.Level().MarshalText() +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/logger.go b/scripts/token-log-collector/vendor/go.uber.org/zap/logger.go new file mode 100644 index 000000000..087c74222 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/logger.go @@ -0,0 +1,363 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "fmt" + "io/ioutil" + "os" + "strings" + + "go.uber.org/zap/internal/bufferpool" + "go.uber.org/zap/zapcore" +) + +// A Logger provides fast, leveled, structured logging. All methods are safe +// for concurrent use. +// +// The Logger is designed for contexts in which every microsecond and every +// allocation matters, so its API intentionally favors performance and type +// safety over brevity. For most applications, the SugaredLogger strikes a +// better balance between performance and ergonomics. +type Logger struct { + core zapcore.Core + + development bool + addCaller bool + onFatal zapcore.CheckWriteAction // default is WriteThenFatal + + name string + errorOutput zapcore.WriteSyncer + + addStack zapcore.LevelEnabler + + callerSkip int + + clock zapcore.Clock +} + +// New constructs a new Logger from the provided zapcore.Core and Options. If +// the passed zapcore.Core is nil, it falls back to using a no-op +// implementation. +// +// This is the most flexible way to construct a Logger, but also the most +// verbose. For typical use cases, the highly-opinionated presets +// (NewProduction, NewDevelopment, and NewExample) or the Config struct are +// more convenient. +// +// For sample code, see the package-level AdvancedConfiguration example. +func New(core zapcore.Core, options ...Option) *Logger { + if core == nil { + return NewNop() + } + log := &Logger{ + core: core, + errorOutput: zapcore.Lock(os.Stderr), + addStack: zapcore.FatalLevel + 1, + clock: zapcore.DefaultClock, + } + return log.WithOptions(options...) +} + +// NewNop returns a no-op Logger. It never writes out logs or internal errors, +// and it never runs user-defined hooks. +// +// Using WithOptions to replace the Core or error output of a no-op Logger can +// re-enable logging. +func NewNop() *Logger { + return &Logger{ + core: zapcore.NewNopCore(), + errorOutput: zapcore.AddSync(ioutil.Discard), + addStack: zapcore.FatalLevel + 1, + clock: zapcore.DefaultClock, + } +} + +// NewProduction builds a sensible production Logger that writes InfoLevel and +// above logs to standard error as JSON. +// +// It's a shortcut for NewProductionConfig().Build(...Option). +func NewProduction(options ...Option) (*Logger, error) { + return NewProductionConfig().Build(options...) +} + +// NewDevelopment builds a development Logger that writes DebugLevel and above +// logs to standard error in a human-friendly format. +// +// It's a shortcut for NewDevelopmentConfig().Build(...Option). +func NewDevelopment(options ...Option) (*Logger, error) { + return NewDevelopmentConfig().Build(options...) +} + +// NewExample builds a Logger that's designed for use in zap's testable +// examples. It writes DebugLevel and above logs to standard out as JSON, but +// omits the timestamp and calling function to keep example output +// short and deterministic. +func NewExample(options ...Option) *Logger { + encoderCfg := zapcore.EncoderConfig{ + MessageKey: "msg", + LevelKey: "level", + NameKey: "logger", + EncodeLevel: zapcore.LowercaseLevelEncoder, + EncodeTime: zapcore.ISO8601TimeEncoder, + EncodeDuration: zapcore.StringDurationEncoder, + } + core := zapcore.NewCore(zapcore.NewJSONEncoder(encoderCfg), os.Stdout, DebugLevel) + return New(core).WithOptions(options...) +} + +// Sugar wraps the Logger to provide a more ergonomic, but slightly slower, +// API. Sugaring a Logger is quite inexpensive, so it's reasonable for a +// single application to use both Loggers and SugaredLoggers, converting +// between them on the boundaries of performance-sensitive code. +func (log *Logger) Sugar() *SugaredLogger { + core := log.clone() + core.callerSkip += 2 + return &SugaredLogger{core} +} + +// Named adds a new path segment to the logger's name. Segments are joined by +// periods. By default, Loggers are unnamed. +func (log *Logger) Named(s string) *Logger { + if s == "" { + return log + } + l := log.clone() + if log.name == "" { + l.name = s + } else { + l.name = strings.Join([]string{l.name, s}, ".") + } + return l +} + +// WithOptions clones the current Logger, applies the supplied Options, and +// returns the resulting Logger. It's safe to use concurrently. +func (log *Logger) WithOptions(opts ...Option) *Logger { + c := log.clone() + for _, opt := range opts { + opt.apply(c) + } + return c +} + +// With creates a child logger and adds structured context to it. Fields added +// to the child don't affect the parent, and vice versa. +func (log *Logger) With(fields ...Field) *Logger { + if len(fields) == 0 { + return log + } + l := log.clone() + l.core = l.core.With(fields) + return l +} + +// Check returns a CheckedEntry if logging a message at the specified level +// is enabled. It's a completely optional optimization; in high-performance +// applications, Check can help avoid allocating a slice to hold fields. +func (log *Logger) Check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry { + return log.check(lvl, msg) +} + +// Debug logs a message at DebugLevel. The message includes any fields passed +// at the log site, as well as any fields accumulated on the logger. +func (log *Logger) Debug(msg string, fields ...Field) { + if ce := log.check(DebugLevel, msg); ce != nil { + ce.Write(fields...) + } +} + +// Info logs a message at InfoLevel. The message includes any fields passed +// at the log site, as well as any fields accumulated on the logger. +func (log *Logger) Info(msg string, fields ...Field) { + if ce := log.check(InfoLevel, msg); ce != nil { + ce.Write(fields...) + } +} + +// Warn logs a message at WarnLevel. The message includes any fields passed +// at the log site, as well as any fields accumulated on the logger. +func (log *Logger) Warn(msg string, fields ...Field) { + if ce := log.check(WarnLevel, msg); ce != nil { + ce.Write(fields...) + } +} + +// Error logs a message at ErrorLevel. The message includes any fields passed +// at the log site, as well as any fields accumulated on the logger. +func (log *Logger) Error(msg string, fields ...Field) { + if ce := log.check(ErrorLevel, msg); ce != nil { + ce.Write(fields...) + } +} + +// DPanic logs a message at DPanicLevel. The message includes any fields +// passed at the log site, as well as any fields accumulated on the logger. +// +// If the logger is in development mode, it then panics (DPanic means +// "development panic"). This is useful for catching errors that are +// recoverable, but shouldn't ever happen. +func (log *Logger) DPanic(msg string, fields ...Field) { + if ce := log.check(DPanicLevel, msg); ce != nil { + ce.Write(fields...) + } +} + +// Panic logs a message at PanicLevel. The message includes any fields passed +// at the log site, as well as any fields accumulated on the logger. +// +// The logger then panics, even if logging at PanicLevel is disabled. +func (log *Logger) Panic(msg string, fields ...Field) { + if ce := log.check(PanicLevel, msg); ce != nil { + ce.Write(fields...) + } +} + +// Fatal logs a message at FatalLevel. The message includes any fields passed +// at the log site, as well as any fields accumulated on the logger. +// +// The logger then calls os.Exit(1), even if logging at FatalLevel is +// disabled. +func (log *Logger) Fatal(msg string, fields ...Field) { + if ce := log.check(FatalLevel, msg); ce != nil { + ce.Write(fields...) + } +} + +// Sync calls the underlying Core's Sync method, flushing any buffered log +// entries. Applications should take care to call Sync before exiting. +func (log *Logger) Sync() error { + return log.core.Sync() +} + +// Core returns the Logger's underlying zapcore.Core. +func (log *Logger) Core() zapcore.Core { + return log.core +} + +func (log *Logger) clone() *Logger { + copy := *log + return © +} + +func (log *Logger) check(lvl zapcore.Level, msg string) *zapcore.CheckedEntry { + // Logger.check must always be called directly by a method in the + // Logger interface (e.g., Check, Info, Fatal). + // This skips Logger.check and the Info/Fatal/Check/etc. method that + // called it. + const callerSkipOffset = 2 + + // Check the level first to reduce the cost of disabled log calls. + // Since Panic and higher may exit, we skip the optimization for those levels. + if lvl < zapcore.DPanicLevel && !log.core.Enabled(lvl) { + return nil + } + + // Create basic checked entry thru the core; this will be non-nil if the + // log message will actually be written somewhere. + ent := zapcore.Entry{ + LoggerName: log.name, + Time: log.clock.Now(), + Level: lvl, + Message: msg, + } + ce := log.core.Check(ent, nil) + willWrite := ce != nil + + // Set up any required terminal behavior. + switch ent.Level { + case zapcore.PanicLevel: + ce = ce.Should(ent, zapcore.WriteThenPanic) + case zapcore.FatalLevel: + onFatal := log.onFatal + // Noop is the default value for CheckWriteAction, and it leads to + // continued execution after a Fatal which is unexpected. + if onFatal == zapcore.WriteThenNoop { + onFatal = zapcore.WriteThenFatal + } + ce = ce.Should(ent, onFatal) + case zapcore.DPanicLevel: + if log.development { + ce = ce.Should(ent, zapcore.WriteThenPanic) + } + } + + // Only do further annotation if we're going to write this message; checked + // entries that exist only for terminal behavior don't benefit from + // annotation. + if !willWrite { + return ce + } + + // Thread the error output through to the CheckedEntry. + ce.ErrorOutput = log.errorOutput + + addStack := log.addStack.Enabled(ce.Level) + if !log.addCaller && !addStack { + return ce + } + + // Adding the caller or stack trace requires capturing the callers of + // this function. We'll share information between these two. + stackDepth := stacktraceFirst + if addStack { + stackDepth = stacktraceFull + } + stack := captureStacktrace(log.callerSkip+callerSkipOffset, stackDepth) + defer stack.Free() + + if stack.Count() == 0 { + if log.addCaller { + fmt.Fprintf(log.errorOutput, "%v Logger.check error: failed to get caller\n", ent.Time.UTC()) + log.errorOutput.Sync() + } + return ce + } + + frame, more := stack.Next() + + if log.addCaller { + ce.Caller = zapcore.EntryCaller{ + Defined: frame.PC != 0, + PC: frame.PC, + File: frame.File, + Line: frame.Line, + Function: frame.Function, + } + } + + if addStack { + buffer := bufferpool.Get() + defer buffer.Free() + + stackfmt := newStackFormatter(buffer) + + // We've already extracted the first frame, so format that + // separately and defer to stackfmt for the rest. + stackfmt.FormatFrame(frame) + if more { + stackfmt.FormatStack(stack) + } + ce.Stack = buffer.String() + } + + return ce +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/options.go b/scripts/token-log-collector/vendor/go.uber.org/zap/options.go new file mode 100644 index 000000000..e9e66161f --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/options.go @@ -0,0 +1,148 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "fmt" + + "go.uber.org/zap/zapcore" +) + +// An Option configures a Logger. +type Option interface { + apply(*Logger) +} + +// optionFunc wraps a func so it satisfies the Option interface. +type optionFunc func(*Logger) + +func (f optionFunc) apply(log *Logger) { + f(log) +} + +// WrapCore wraps or replaces the Logger's underlying zapcore.Core. +func WrapCore(f func(zapcore.Core) zapcore.Core) Option { + return optionFunc(func(log *Logger) { + log.core = f(log.core) + }) +} + +// Hooks registers functions which will be called each time the Logger writes +// out an Entry. Repeated use of Hooks is additive. +// +// Hooks are useful for simple side effects, like capturing metrics for the +// number of emitted logs. More complex side effects, including anything that +// requires access to the Entry's structured fields, should be implemented as +// a zapcore.Core instead. See zapcore.RegisterHooks for details. +func Hooks(hooks ...func(zapcore.Entry) error) Option { + return optionFunc(func(log *Logger) { + log.core = zapcore.RegisterHooks(log.core, hooks...) + }) +} + +// Fields adds fields to the Logger. +func Fields(fs ...Field) Option { + return optionFunc(func(log *Logger) { + log.core = log.core.With(fs) + }) +} + +// ErrorOutput sets the destination for errors generated by the Logger. Note +// that this option only affects internal errors; for sample code that sends +// error-level logs to a different location from info- and debug-level logs, +// see the package-level AdvancedConfiguration example. +// +// The supplied WriteSyncer must be safe for concurrent use. The Open and +// zapcore.Lock functions are the simplest ways to protect files with a mutex. +func ErrorOutput(w zapcore.WriteSyncer) Option { + return optionFunc(func(log *Logger) { + log.errorOutput = w + }) +} + +// Development puts the logger in development mode, which makes DPanic-level +// logs panic instead of simply logging an error. +func Development() Option { + return optionFunc(func(log *Logger) { + log.development = true + }) +} + +// AddCaller configures the Logger to annotate each message with the filename, +// line number, and function name of zap's caller. See also WithCaller. +func AddCaller() Option { + return WithCaller(true) +} + +// WithCaller configures the Logger to annotate each message with the filename, +// line number, and function name of zap's caller, or not, depending on the +// value of enabled. This is a generalized form of AddCaller. +func WithCaller(enabled bool) Option { + return optionFunc(func(log *Logger) { + log.addCaller = enabled + }) +} + +// AddCallerSkip increases the number of callers skipped by caller annotation +// (as enabled by the AddCaller option). When building wrappers around the +// Logger and SugaredLogger, supplying this Option prevents zap from always +// reporting the wrapper code as the caller. +func AddCallerSkip(skip int) Option { + return optionFunc(func(log *Logger) { + log.callerSkip += skip + }) +} + +// AddStacktrace configures the Logger to record a stack trace for all messages at +// or above a given level. +func AddStacktrace(lvl zapcore.LevelEnabler) Option { + return optionFunc(func(log *Logger) { + log.addStack = lvl + }) +} + +// IncreaseLevel increase the level of the logger. It has no effect if +// the passed in level tries to decrease the level of the logger. +func IncreaseLevel(lvl zapcore.LevelEnabler) Option { + return optionFunc(func(log *Logger) { + core, err := zapcore.NewIncreaseLevelCore(log.core, lvl) + if err != nil { + fmt.Fprintf(log.errorOutput, "failed to IncreaseLevel: %v\n", err) + } else { + log.core = core + } + }) +} + +// OnFatal sets the action to take on fatal logs. +func OnFatal(action zapcore.CheckWriteAction) Option { + return optionFunc(func(log *Logger) { + log.onFatal = action + }) +} + +// WithClock specifies the clock used by the logger to determine the current +// time for logged entries. Defaults to the system clock with time.Now. +func WithClock(clock zapcore.Clock) Option { + return optionFunc(func(log *Logger) { + log.clock = clock + }) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/sink.go b/scripts/token-log-collector/vendor/go.uber.org/zap/sink.go new file mode 100644 index 000000000..df46fa87a --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/sink.go @@ -0,0 +1,161 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "errors" + "fmt" + "io" + "net/url" + "os" + "strings" + "sync" + + "go.uber.org/zap/zapcore" +) + +const schemeFile = "file" + +var ( + _sinkMutex sync.RWMutex + _sinkFactories map[string]func(*url.URL) (Sink, error) // keyed by scheme +) + +func init() { + resetSinkRegistry() +} + +func resetSinkRegistry() { + _sinkMutex.Lock() + defer _sinkMutex.Unlock() + + _sinkFactories = map[string]func(*url.URL) (Sink, error){ + schemeFile: newFileSink, + } +} + +// Sink defines the interface to write to and close logger destinations. +type Sink interface { + zapcore.WriteSyncer + io.Closer +} + +type nopCloserSink struct{ zapcore.WriteSyncer } + +func (nopCloserSink) Close() error { return nil } + +type errSinkNotFound struct { + scheme string +} + +func (e *errSinkNotFound) Error() string { + return fmt.Sprintf("no sink found for scheme %q", e.scheme) +} + +// RegisterSink registers a user-supplied factory for all sinks with a +// particular scheme. +// +// All schemes must be ASCII, valid under section 3.1 of RFC 3986 +// (https://tools.ietf.org/html/rfc3986#section-3.1), and must not already +// have a factory registered. Zap automatically registers a factory for the +// "file" scheme. +func RegisterSink(scheme string, factory func(*url.URL) (Sink, error)) error { + _sinkMutex.Lock() + defer _sinkMutex.Unlock() + + if scheme == "" { + return errors.New("can't register a sink factory for empty string") + } + normalized, err := normalizeScheme(scheme) + if err != nil { + return fmt.Errorf("%q is not a valid scheme: %v", scheme, err) + } + if _, ok := _sinkFactories[normalized]; ok { + return fmt.Errorf("sink factory already registered for scheme %q", normalized) + } + _sinkFactories[normalized] = factory + return nil +} + +func newSink(rawURL string) (Sink, error) { + u, err := url.Parse(rawURL) + if err != nil { + return nil, fmt.Errorf("can't parse %q as a URL: %v", rawURL, err) + } + if u.Scheme == "" { + u.Scheme = schemeFile + } + + _sinkMutex.RLock() + factory, ok := _sinkFactories[u.Scheme] + _sinkMutex.RUnlock() + if !ok { + return nil, &errSinkNotFound{u.Scheme} + } + return factory(u) +} + +func newFileSink(u *url.URL) (Sink, error) { + if u.User != nil { + return nil, fmt.Errorf("user and password not allowed with file URLs: got %v", u) + } + if u.Fragment != "" { + return nil, fmt.Errorf("fragments not allowed with file URLs: got %v", u) + } + if u.RawQuery != "" { + return nil, fmt.Errorf("query parameters not allowed with file URLs: got %v", u) + } + // Error messages are better if we check hostname and port separately. + if u.Port() != "" { + return nil, fmt.Errorf("ports not allowed with file URLs: got %v", u) + } + if hn := u.Hostname(); hn != "" && hn != "localhost" { + return nil, fmt.Errorf("file URLs must leave host empty or use localhost: got %v", u) + } + switch u.Path { + case "stdout": + return nopCloserSink{os.Stdout}, nil + case "stderr": + return nopCloserSink{os.Stderr}, nil + } + return os.OpenFile(u.Path, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0666) +} + +func normalizeScheme(s string) (string, error) { + // https://tools.ietf.org/html/rfc3986#section-3.1 + s = strings.ToLower(s) + if first := s[0]; 'a' > first || 'z' < first { + return "", errors.New("must start with a letter") + } + for i := 1; i < len(s); i++ { // iterate over bytes, not runes + c := s[i] + switch { + case 'a' <= c && c <= 'z': + continue + case '0' <= c && c <= '9': + continue + case c == '.' || c == '+' || c == '-': + continue + } + return "", fmt.Errorf("may not contain %q", c) + } + return s, nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/stacktrace.go b/scripts/token-log-collector/vendor/go.uber.org/zap/stacktrace.go new file mode 100644 index 000000000..3d187fa56 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/stacktrace.go @@ -0,0 +1,176 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "runtime" + "sync" + + "go.uber.org/zap/buffer" + "go.uber.org/zap/internal/bufferpool" +) + +var _stacktracePool = sync.Pool{ + New: func() interface{} { + return &stacktrace{ + storage: make([]uintptr, 64), + } + }, +} + +type stacktrace struct { + pcs []uintptr // program counters; always a subslice of storage + frames *runtime.Frames + + // The size of pcs varies depending on requirements: + // it will be one if the only the first frame was requested, + // and otherwise it will reflect the depth of the call stack. + // + // storage decouples the slice we need (pcs) from the slice we pool. + // We will always allocate a reasonably large storage, but we'll use + // only as much of it as we need. + storage []uintptr +} + +// stacktraceDepth specifies how deep of a stack trace should be captured. +type stacktraceDepth int + +const ( + // stacktraceFirst captures only the first frame. + stacktraceFirst stacktraceDepth = iota + + // stacktraceFull captures the entire call stack, allocating more + // storage for it if needed. + stacktraceFull +) + +// captureStacktrace captures a stack trace of the specified depth, skipping +// the provided number of frames. skip=0 identifies the caller of +// captureStacktrace. +// +// The caller must call Free on the returned stacktrace after using it. +func captureStacktrace(skip int, depth stacktraceDepth) *stacktrace { + stack := _stacktracePool.Get().(*stacktrace) + + switch depth { + case stacktraceFirst: + stack.pcs = stack.storage[:1] + case stacktraceFull: + stack.pcs = stack.storage + } + + // Unlike other "skip"-based APIs, skip=0 identifies runtime.Callers + // itself. +2 to skip captureStacktrace and runtime.Callers. + numFrames := runtime.Callers( + skip+2, + stack.pcs, + ) + + // runtime.Callers truncates the recorded stacktrace if there is no + // room in the provided slice. For the full stack trace, keep expanding + // storage until there are fewer frames than there is room. + if depth == stacktraceFull { + pcs := stack.pcs + for numFrames == len(pcs) { + pcs = make([]uintptr, len(pcs)*2) + numFrames = runtime.Callers(skip+2, pcs) + } + + // Discard old storage instead of returning it to the pool. + // This will adjust the pool size over time if stack traces are + // consistently very deep. + stack.storage = pcs + stack.pcs = pcs[:numFrames] + } else { + stack.pcs = stack.pcs[:numFrames] + } + + stack.frames = runtime.CallersFrames(stack.pcs) + return stack +} + +// Free releases resources associated with this stacktrace +// and returns it back to the pool. +func (st *stacktrace) Free() { + st.frames = nil + st.pcs = nil + _stacktracePool.Put(st) +} + +// Count reports the total number of frames in this stacktrace. +// Count DOES NOT change as Next is called. +func (st *stacktrace) Count() int { + return len(st.pcs) +} + +// Next returns the next frame in the stack trace, +// and a boolean indicating whether there are more after it. +func (st *stacktrace) Next() (_ runtime.Frame, more bool) { + return st.frames.Next() +} + +func takeStacktrace(skip int) string { + stack := captureStacktrace(skip+1, stacktraceFull) + defer stack.Free() + + buffer := bufferpool.Get() + defer buffer.Free() + + stackfmt := newStackFormatter(buffer) + stackfmt.FormatStack(stack) + return buffer.String() +} + +// stackFormatter formats a stack trace into a readable string representation. +type stackFormatter struct { + b *buffer.Buffer + nonEmpty bool // whehther we've written at least one frame already +} + +// newStackFormatter builds a new stackFormatter. +func newStackFormatter(b *buffer.Buffer) stackFormatter { + return stackFormatter{b: b} +} + +// FormatStack formats all remaining frames in the provided stacktrace -- minus +// the final runtime.main/runtime.goexit frame. +func (sf *stackFormatter) FormatStack(stack *stacktrace) { + // Note: On the last iteration, frames.Next() returns false, with a valid + // frame, but we ignore this frame. The last frame is a a runtime frame which + // adds noise, since it's only either runtime.main or runtime.goexit. + for frame, more := stack.Next(); more; frame, more = stack.Next() { + sf.FormatFrame(frame) + } +} + +// FormatFrame formats the given frame. +func (sf *stackFormatter) FormatFrame(frame runtime.Frame) { + if sf.nonEmpty { + sf.b.AppendByte('\n') + } + sf.nonEmpty = true + sf.b.AppendString(frame.Function) + sf.b.AppendByte('\n') + sf.b.AppendByte('\t') + sf.b.AppendString(frame.File) + sf.b.AppendByte(':') + sf.b.AppendInt(int64(frame.Line)) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/sugar.go b/scripts/token-log-collector/vendor/go.uber.org/zap/sugar.go new file mode 100644 index 000000000..0b9651981 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/sugar.go @@ -0,0 +1,315 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "fmt" + + "go.uber.org/zap/zapcore" + + "go.uber.org/multierr" +) + +const ( + _oddNumberErrMsg = "Ignored key without a value." + _nonStringKeyErrMsg = "Ignored key-value pairs with non-string keys." +) + +// A SugaredLogger wraps the base Logger functionality in a slower, but less +// verbose, API. Any Logger can be converted to a SugaredLogger with its Sugar +// method. +// +// Unlike the Logger, the SugaredLogger doesn't insist on structured logging. +// For each log level, it exposes three methods: one for loosely-typed +// structured logging, one for println-style formatting, and one for +// printf-style formatting. For example, SugaredLoggers can produce InfoLevel +// output with Infow ("info with" structured context), Info, or Infof. +type SugaredLogger struct { + base *Logger +} + +// Desugar unwraps a SugaredLogger, exposing the original Logger. Desugaring +// is quite inexpensive, so it's reasonable for a single application to use +// both Loggers and SugaredLoggers, converting between them on the boundaries +// of performance-sensitive code. +func (s *SugaredLogger) Desugar() *Logger { + base := s.base.clone() + base.callerSkip -= 2 + return base +} + +// Named adds a sub-scope to the logger's name. See Logger.Named for details. +func (s *SugaredLogger) Named(name string) *SugaredLogger { + return &SugaredLogger{base: s.base.Named(name)} +} + +// With adds a variadic number of fields to the logging context. It accepts a +// mix of strongly-typed Field objects and loosely-typed key-value pairs. When +// processing pairs, the first element of the pair is used as the field key +// and the second as the field value. +// +// For example, +// sugaredLogger.With( +// "hello", "world", +// "failure", errors.New("oh no"), +// Stack(), +// "count", 42, +// "user", User{Name: "alice"}, +// ) +// is the equivalent of +// unsugared.With( +// String("hello", "world"), +// String("failure", "oh no"), +// Stack(), +// Int("count", 42), +// Object("user", User{Name: "alice"}), +// ) +// +// Note that the keys in key-value pairs should be strings. In development, +// passing a non-string key panics. In production, the logger is more +// forgiving: a separate error is logged, but the key-value pair is skipped +// and execution continues. Passing an orphaned key triggers similar behavior: +// panics in development and errors in production. +func (s *SugaredLogger) With(args ...interface{}) *SugaredLogger { + return &SugaredLogger{base: s.base.With(s.sweetenFields(args)...)} +} + +// Debug uses fmt.Sprint to construct and log a message. +func (s *SugaredLogger) Debug(args ...interface{}) { + s.log(DebugLevel, "", args, nil) +} + +// Info uses fmt.Sprint to construct and log a message. +func (s *SugaredLogger) Info(args ...interface{}) { + s.log(InfoLevel, "", args, nil) +} + +// Warn uses fmt.Sprint to construct and log a message. +func (s *SugaredLogger) Warn(args ...interface{}) { + s.log(WarnLevel, "", args, nil) +} + +// Error uses fmt.Sprint to construct and log a message. +func (s *SugaredLogger) Error(args ...interface{}) { + s.log(ErrorLevel, "", args, nil) +} + +// DPanic uses fmt.Sprint to construct and log a message. In development, the +// logger then panics. (See DPanicLevel for details.) +func (s *SugaredLogger) DPanic(args ...interface{}) { + s.log(DPanicLevel, "", args, nil) +} + +// Panic uses fmt.Sprint to construct and log a message, then panics. +func (s *SugaredLogger) Panic(args ...interface{}) { + s.log(PanicLevel, "", args, nil) +} + +// Fatal uses fmt.Sprint to construct and log a message, then calls os.Exit. +func (s *SugaredLogger) Fatal(args ...interface{}) { + s.log(FatalLevel, "", args, nil) +} + +// Debugf uses fmt.Sprintf to log a templated message. +func (s *SugaredLogger) Debugf(template string, args ...interface{}) { + s.log(DebugLevel, template, args, nil) +} + +// Infof uses fmt.Sprintf to log a templated message. +func (s *SugaredLogger) Infof(template string, args ...interface{}) { + s.log(InfoLevel, template, args, nil) +} + +// Warnf uses fmt.Sprintf to log a templated message. +func (s *SugaredLogger) Warnf(template string, args ...interface{}) { + s.log(WarnLevel, template, args, nil) +} + +// Errorf uses fmt.Sprintf to log a templated message. +func (s *SugaredLogger) Errorf(template string, args ...interface{}) { + s.log(ErrorLevel, template, args, nil) +} + +// DPanicf uses fmt.Sprintf to log a templated message. In development, the +// logger then panics. (See DPanicLevel for details.) +func (s *SugaredLogger) DPanicf(template string, args ...interface{}) { + s.log(DPanicLevel, template, args, nil) +} + +// Panicf uses fmt.Sprintf to log a templated message, then panics. +func (s *SugaredLogger) Panicf(template string, args ...interface{}) { + s.log(PanicLevel, template, args, nil) +} + +// Fatalf uses fmt.Sprintf to log a templated message, then calls os.Exit. +func (s *SugaredLogger) Fatalf(template string, args ...interface{}) { + s.log(FatalLevel, template, args, nil) +} + +// Debugw logs a message with some additional context. The variadic key-value +// pairs are treated as they are in With. +// +// When debug-level logging is disabled, this is much faster than +// s.With(keysAndValues).Debug(msg) +func (s *SugaredLogger) Debugw(msg string, keysAndValues ...interface{}) { + s.log(DebugLevel, msg, nil, keysAndValues) +} + +// Infow logs a message with some additional context. The variadic key-value +// pairs are treated as they are in With. +func (s *SugaredLogger) Infow(msg string, keysAndValues ...interface{}) { + s.log(InfoLevel, msg, nil, keysAndValues) +} + +// Warnw logs a message with some additional context. The variadic key-value +// pairs are treated as they are in With. +func (s *SugaredLogger) Warnw(msg string, keysAndValues ...interface{}) { + s.log(WarnLevel, msg, nil, keysAndValues) +} + +// Errorw logs a message with some additional context. The variadic key-value +// pairs are treated as they are in With. +func (s *SugaredLogger) Errorw(msg string, keysAndValues ...interface{}) { + s.log(ErrorLevel, msg, nil, keysAndValues) +} + +// DPanicw logs a message with some additional context. In development, the +// logger then panics. (See DPanicLevel for details.) The variadic key-value +// pairs are treated as they are in With. +func (s *SugaredLogger) DPanicw(msg string, keysAndValues ...interface{}) { + s.log(DPanicLevel, msg, nil, keysAndValues) +} + +// Panicw logs a message with some additional context, then panics. The +// variadic key-value pairs are treated as they are in With. +func (s *SugaredLogger) Panicw(msg string, keysAndValues ...interface{}) { + s.log(PanicLevel, msg, nil, keysAndValues) +} + +// Fatalw logs a message with some additional context, then calls os.Exit. The +// variadic key-value pairs are treated as they are in With. +func (s *SugaredLogger) Fatalw(msg string, keysAndValues ...interface{}) { + s.log(FatalLevel, msg, nil, keysAndValues) +} + +// Sync flushes any buffered log entries. +func (s *SugaredLogger) Sync() error { + return s.base.Sync() +} + +func (s *SugaredLogger) log(lvl zapcore.Level, template string, fmtArgs []interface{}, context []interface{}) { + // If logging at this level is completely disabled, skip the overhead of + // string formatting. + if lvl < DPanicLevel && !s.base.Core().Enabled(lvl) { + return + } + + msg := getMessage(template, fmtArgs) + if ce := s.base.Check(lvl, msg); ce != nil { + ce.Write(s.sweetenFields(context)...) + } +} + +// getMessage format with Sprint, Sprintf, or neither. +func getMessage(template string, fmtArgs []interface{}) string { + if len(fmtArgs) == 0 { + return template + } + + if template != "" { + return fmt.Sprintf(template, fmtArgs...) + } + + if len(fmtArgs) == 1 { + if str, ok := fmtArgs[0].(string); ok { + return str + } + } + return fmt.Sprint(fmtArgs...) +} + +func (s *SugaredLogger) sweetenFields(args []interface{}) []Field { + if len(args) == 0 { + return nil + } + + // Allocate enough space for the worst case; if users pass only structured + // fields, we shouldn't penalize them with extra allocations. + fields := make([]Field, 0, len(args)) + var invalid invalidPairs + + for i := 0; i < len(args); { + // This is a strongly-typed field. Consume it and move on. + if f, ok := args[i].(Field); ok { + fields = append(fields, f) + i++ + continue + } + + // Make sure this element isn't a dangling key. + if i == len(args)-1 { + s.base.Error(_oddNumberErrMsg, Any("ignored", args[i])) + break + } + + // Consume this value and the next, treating them as a key-value pair. If the + // key isn't a string, add this pair to the slice of invalid pairs. + key, val := args[i], args[i+1] + if keyStr, ok := key.(string); !ok { + // Subsequent errors are likely, so allocate once up front. + if cap(invalid) == 0 { + invalid = make(invalidPairs, 0, len(args)/2) + } + invalid = append(invalid, invalidPair{i, key, val}) + } else { + fields = append(fields, Any(keyStr, val)) + } + i += 2 + } + + // If we encountered any invalid key-value pairs, log an error. + if len(invalid) > 0 { + s.base.Error(_nonStringKeyErrMsg, Array("invalid", invalid)) + } + return fields +} + +type invalidPair struct { + position int + key, value interface{} +} + +func (p invalidPair) MarshalLogObject(enc zapcore.ObjectEncoder) error { + enc.AddInt64("position", int64(p.position)) + Any("key", p.key).AddTo(enc) + Any("value", p.value).AddTo(enc) + return nil +} + +type invalidPairs []invalidPair + +func (ps invalidPairs) MarshalLogArray(enc zapcore.ArrayEncoder) error { + var err error + for i := range ps { + err = multierr.Append(err, enc.AppendObject(ps[i])) + } + return err +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/time.go b/scripts/token-log-collector/vendor/go.uber.org/zap/time.go new file mode 100644 index 000000000..c5a1f1622 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/time.go @@ -0,0 +1,27 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import "time" + +func timeToMillis(t time.Time) int64 { + return t.UnixNano() / int64(time.Millisecond) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/writer.go b/scripts/token-log-collector/vendor/go.uber.org/zap/writer.go new file mode 100644 index 000000000..86a709ab0 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/writer.go @@ -0,0 +1,99 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zap + +import ( + "fmt" + "io" + "io/ioutil" + + "go.uber.org/zap/zapcore" + + "go.uber.org/multierr" +) + +// Open is a high-level wrapper that takes a variadic number of URLs, opens or +// creates each of the specified resources, and combines them into a locked +// WriteSyncer. It also returns any error encountered and a function to close +// any opened files. +// +// Passing no URLs returns a no-op WriteSyncer. Zap handles URLs without a +// scheme and URLs with the "file" scheme. Third-party code may register +// factories for other schemes using RegisterSink. +// +// URLs with the "file" scheme must use absolute paths on the local +// filesystem. No user, password, port, fragments, or query parameters are +// allowed, and the hostname must be empty or "localhost". +// +// Since it's common to write logs to the local filesystem, URLs without a +// scheme (e.g., "/var/log/foo.log") are treated as local file paths. Without +// a scheme, the special paths "stdout" and "stderr" are interpreted as +// os.Stdout and os.Stderr. When specified without a scheme, relative file +// paths also work. +func Open(paths ...string) (zapcore.WriteSyncer, func(), error) { + writers, close, err := open(paths) + if err != nil { + return nil, nil, err + } + + writer := CombineWriteSyncers(writers...) + return writer, close, nil +} + +func open(paths []string) ([]zapcore.WriteSyncer, func(), error) { + writers := make([]zapcore.WriteSyncer, 0, len(paths)) + closers := make([]io.Closer, 0, len(paths)) + close := func() { + for _, c := range closers { + c.Close() + } + } + + var openErr error + for _, path := range paths { + sink, err := newSink(path) + if err != nil { + openErr = multierr.Append(openErr, fmt.Errorf("couldn't open sink %q: %v", path, err)) + continue + } + writers = append(writers, sink) + closers = append(closers, sink) + } + if openErr != nil { + close() + return writers, nil, openErr + } + + return writers, close, nil +} + +// CombineWriteSyncers is a utility that combines multiple WriteSyncers into a +// single, locked WriteSyncer. If no inputs are supplied, it returns a no-op +// WriteSyncer. +// +// It's provided purely as a convenience; the result is no different from +// using zapcore.NewMultiWriteSyncer and zapcore.Lock individually. +func CombineWriteSyncers(writers ...zapcore.WriteSyncer) zapcore.WriteSyncer { + if len(writers) == 0 { + return zapcore.AddSync(ioutil.Discard) + } + return zapcore.Lock(zapcore.NewMultiWriteSyncer(writers...)) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go new file mode 100644 index 000000000..ef2f7d963 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go @@ -0,0 +1,188 @@ +// Copyright (c) 2021 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "bufio" + "sync" + "time" + + "go.uber.org/multierr" +) + +const ( + // _defaultBufferSize specifies the default size used by Buffer. + _defaultBufferSize = 256 * 1024 // 256 kB + + // _defaultFlushInterval specifies the default flush interval for + // Buffer. + _defaultFlushInterval = 30 * time.Second +) + +// A BufferedWriteSyncer is a WriteSyncer that buffers writes in-memory before +// flushing them to a wrapped WriteSyncer after reaching some limit, or at some +// fixed interval--whichever comes first. +// +// BufferedWriteSyncer is safe for concurrent use. You don't need to use +// zapcore.Lock for WriteSyncers with BufferedWriteSyncer. +type BufferedWriteSyncer struct { + // WS is the WriteSyncer around which BufferedWriteSyncer will buffer + // writes. + // + // This field is required. + WS WriteSyncer + + // Size specifies the maximum amount of data the writer will buffered + // before flushing. + // + // Defaults to 256 kB if unspecified. + Size int + + // FlushInterval specifies how often the writer should flush data if + // there have been no writes. + // + // Defaults to 30 seconds if unspecified. + FlushInterval time.Duration + + // Clock, if specified, provides control of the source of time for the + // writer. + // + // Defaults to the system clock. + Clock Clock + + // unexported fields for state + mu sync.Mutex + initialized bool // whether initialize() has run + stopped bool // whether Stop() has run + writer *bufio.Writer + ticker *time.Ticker + stop chan struct{} // closed when flushLoop should stop + done chan struct{} // closed when flushLoop has stopped +} + +func (s *BufferedWriteSyncer) initialize() { + size := s.Size + if size == 0 { + size = _defaultBufferSize + } + + flushInterval := s.FlushInterval + if flushInterval == 0 { + flushInterval = _defaultFlushInterval + } + + if s.Clock == nil { + s.Clock = DefaultClock + } + + s.ticker = s.Clock.NewTicker(flushInterval) + s.writer = bufio.NewWriterSize(s.WS, size) + s.stop = make(chan struct{}) + s.done = make(chan struct{}) + s.initialized = true + go s.flushLoop() +} + +// Write writes log data into buffer syncer directly, multiple Write calls will be batched, +// and log data will be flushed to disk when the buffer is full or periodically. +func (s *BufferedWriteSyncer) Write(bs []byte) (int, error) { + s.mu.Lock() + defer s.mu.Unlock() + + if !s.initialized { + s.initialize() + } + + // To avoid partial writes from being flushed, we manually flush the existing buffer if: + // * The current write doesn't fit into the buffer fully, and + // * The buffer is not empty (since bufio will not split large writes when the buffer is empty) + if len(bs) > s.writer.Available() && s.writer.Buffered() > 0 { + if err := s.writer.Flush(); err != nil { + return 0, err + } + } + + return s.writer.Write(bs) +} + +// Sync flushes buffered log data into disk directly. +func (s *BufferedWriteSyncer) Sync() error { + s.mu.Lock() + defer s.mu.Unlock() + + var err error + if s.initialized { + err = s.writer.Flush() + } + + return multierr.Append(err, s.WS.Sync()) +} + +// flushLoop flushes the buffer at the configured interval until Stop is +// called. +func (s *BufferedWriteSyncer) flushLoop() { + defer close(s.done) + + for { + select { + case <-s.ticker.C: + // we just simply ignore error here + // because the underlying bufio writer stores any errors + // and we return any error from Sync() as part of the close + _ = s.Sync() + case <-s.stop: + return + } + } +} + +// Stop closes the buffer, cleans up background goroutines, and flushes +// remaining unwritten data. +func (s *BufferedWriteSyncer) Stop() (err error) { + var stopped bool + + // Critical section. + func() { + s.mu.Lock() + defer s.mu.Unlock() + + if !s.initialized { + return + } + + stopped = s.stopped + if stopped { + return + } + s.stopped = true + + s.ticker.Stop() + close(s.stop) // tell flushLoop to stop + <-s.done // and wait until it has + }() + + // Don't call Sync on consecutive Stops. + if !stopped { + err = s.Sync() + } + + return err +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/clock.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/clock.go new file mode 100644 index 000000000..422fd82a6 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/clock.go @@ -0,0 +1,48 @@ +// Copyright (c) 2021 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import "time" + +// DefaultClock is the default clock used by Zap in operations that require +// time. This clock uses the system clock for all operations. +var DefaultClock = systemClock{} + +// Clock is a source of time for logged entries. +type Clock interface { + // Now returns the current local time. + Now() time.Time + + // NewTicker returns *time.Ticker that holds a channel + // that delivers "ticks" of a clock. + NewTicker(time.Duration) *time.Ticker +} + +// systemClock implements default Clock that uses system time. +type systemClock struct{} + +func (systemClock) Now() time.Time { + return time.Now() +} + +func (systemClock) NewTicker(duration time.Duration) *time.Ticker { + return time.NewTicker(duration) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/console_encoder.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/console_encoder.go new file mode 100644 index 000000000..1aa5dc364 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/console_encoder.go @@ -0,0 +1,157 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "fmt" + "sync" + + "go.uber.org/zap/buffer" + "go.uber.org/zap/internal/bufferpool" +) + +var _sliceEncoderPool = sync.Pool{ + New: func() interface{} { + return &sliceArrayEncoder{elems: make([]interface{}, 0, 2)} + }, +} + +func getSliceEncoder() *sliceArrayEncoder { + return _sliceEncoderPool.Get().(*sliceArrayEncoder) +} + +func putSliceEncoder(e *sliceArrayEncoder) { + e.elems = e.elems[:0] + _sliceEncoderPool.Put(e) +} + +type consoleEncoder struct { + *jsonEncoder +} + +// NewConsoleEncoder creates an encoder whose output is designed for human - +// rather than machine - consumption. It serializes the core log entry data +// (message, level, timestamp, etc.) in a plain-text format and leaves the +// structured context as JSON. +// +// Note that although the console encoder doesn't use the keys specified in the +// encoder configuration, it will omit any element whose key is set to the empty +// string. +func NewConsoleEncoder(cfg EncoderConfig) Encoder { + if cfg.ConsoleSeparator == "" { + // Use a default delimiter of '\t' for backwards compatibility + cfg.ConsoleSeparator = "\t" + } + return consoleEncoder{newJSONEncoder(cfg, true)} +} + +func (c consoleEncoder) Clone() Encoder { + return consoleEncoder{c.jsonEncoder.Clone().(*jsonEncoder)} +} + +func (c consoleEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, error) { + line := bufferpool.Get() + + // We don't want the entry's metadata to be quoted and escaped (if it's + // encoded as strings), which means that we can't use the JSON encoder. The + // simplest option is to use the memory encoder and fmt.Fprint. + // + // If this ever becomes a performance bottleneck, we can implement + // ArrayEncoder for our plain-text format. + arr := getSliceEncoder() + if c.TimeKey != "" && c.EncodeTime != nil { + c.EncodeTime(ent.Time, arr) + } + if c.LevelKey != "" && c.EncodeLevel != nil { + c.EncodeLevel(ent.Level, arr) + } + if ent.LoggerName != "" && c.NameKey != "" { + nameEncoder := c.EncodeName + + if nameEncoder == nil { + // Fall back to FullNameEncoder for backward compatibility. + nameEncoder = FullNameEncoder + } + + nameEncoder(ent.LoggerName, arr) + } + if ent.Caller.Defined { + if c.CallerKey != "" && c.EncodeCaller != nil { + c.EncodeCaller(ent.Caller, arr) + } + if c.FunctionKey != "" { + arr.AppendString(ent.Caller.Function) + } + } + for i := range arr.elems { + if i > 0 { + line.AppendString(c.ConsoleSeparator) + } + fmt.Fprint(line, arr.elems[i]) + } + putSliceEncoder(arr) + + // Add the message itself. + if c.MessageKey != "" { + c.addSeparatorIfNecessary(line) + line.AppendString(ent.Message) + } + + // Add any structured context. + c.writeContext(line, fields) + + // If there's no stacktrace key, honor that; this allows users to force + // single-line output. + if ent.Stack != "" && c.StacktraceKey != "" { + line.AppendByte('\n') + line.AppendString(ent.Stack) + } + + line.AppendString(c.LineEnding) + return line, nil +} + +func (c consoleEncoder) writeContext(line *buffer.Buffer, extra []Field) { + context := c.jsonEncoder.Clone().(*jsonEncoder) + defer func() { + // putJSONEncoder assumes the buffer is still used, but we write out the buffer so + // we can free it. + context.buf.Free() + putJSONEncoder(context) + }() + + addFields(context, extra) + context.closeOpenNamespaces() + if context.buf.Len() == 0 { + return + } + + c.addSeparatorIfNecessary(line) + line.AppendByte('{') + line.Write(context.buf.Bytes()) + line.AppendByte('}') +} + +func (c consoleEncoder) addSeparatorIfNecessary(line *buffer.Buffer) { + if line.Len() > 0 { + line.AppendString(c.ConsoleSeparator) + } +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/core.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/core.go new file mode 100644 index 000000000..a1ef8b034 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/core.go @@ -0,0 +1,113 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +// Core is a minimal, fast logger interface. It's designed for library authors +// to wrap in a more user-friendly API. +type Core interface { + LevelEnabler + + // With adds structured context to the Core. + With([]Field) Core + // Check determines whether the supplied Entry should be logged (using the + // embedded LevelEnabler and possibly some extra logic). If the entry + // should be logged, the Core adds itself to the CheckedEntry and returns + // the result. + // + // Callers must use Check before calling Write. + Check(Entry, *CheckedEntry) *CheckedEntry + // Write serializes the Entry and any Fields supplied at the log site and + // writes them to their destination. + // + // If called, Write should always log the Entry and Fields; it should not + // replicate the logic of Check. + Write(Entry, []Field) error + // Sync flushes buffered logs (if any). + Sync() error +} + +type nopCore struct{} + +// NewNopCore returns a no-op Core. +func NewNopCore() Core { return nopCore{} } +func (nopCore) Enabled(Level) bool { return false } +func (n nopCore) With([]Field) Core { return n } +func (nopCore) Check(_ Entry, ce *CheckedEntry) *CheckedEntry { return ce } +func (nopCore) Write(Entry, []Field) error { return nil } +func (nopCore) Sync() error { return nil } + +// NewCore creates a Core that writes logs to a WriteSyncer. +func NewCore(enc Encoder, ws WriteSyncer, enab LevelEnabler) Core { + return &ioCore{ + LevelEnabler: enab, + enc: enc, + out: ws, + } +} + +type ioCore struct { + LevelEnabler + enc Encoder + out WriteSyncer +} + +func (c *ioCore) With(fields []Field) Core { + clone := c.clone() + addFields(clone.enc, fields) + return clone +} + +func (c *ioCore) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { + if c.Enabled(ent.Level) { + return ce.AddCore(ent, c) + } + return ce +} + +func (c *ioCore) Write(ent Entry, fields []Field) error { + buf, err := c.enc.EncodeEntry(ent, fields) + if err != nil { + return err + } + _, err = c.out.Write(buf.Bytes()) + buf.Free() + if err != nil { + return err + } + if ent.Level > ErrorLevel { + // Since we may be crashing the program, sync the output. Ignore Sync + // errors, pending a clean solution to issue #370. + c.Sync() + } + return nil +} + +func (c *ioCore) Sync() error { + return c.out.Sync() +} + +func (c *ioCore) clone() *ioCore { + return &ioCore{ + LevelEnabler: c.LevelEnabler, + enc: c.enc.Clone(), + out: c.out, + } +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/doc.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/doc.go new file mode 100644 index 000000000..31000e91f --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/doc.go @@ -0,0 +1,24 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +// Package zapcore defines and implements the low-level interfaces upon which +// zap is built. By providing alternate implementations of these interfaces, +// external packages can extend zap's capabilities. +package zapcore // import "go.uber.org/zap/zapcore" diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/encoder.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/encoder.go new file mode 100644 index 000000000..6e5fd5651 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/encoder.go @@ -0,0 +1,448 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "encoding/json" + "io" + "time" + + "go.uber.org/zap/buffer" +) + +// DefaultLineEnding defines the default line ending when writing logs. +// Alternate line endings specified in EncoderConfig can override this +// behavior. +const DefaultLineEnding = "\n" + +// OmitKey defines the key to use when callers want to remove a key from log output. +const OmitKey = "" + +// A LevelEncoder serializes a Level to a primitive type. +type LevelEncoder func(Level, PrimitiveArrayEncoder) + +// LowercaseLevelEncoder serializes a Level to a lowercase string. For example, +// InfoLevel is serialized to "info". +func LowercaseLevelEncoder(l Level, enc PrimitiveArrayEncoder) { + enc.AppendString(l.String()) +} + +// LowercaseColorLevelEncoder serializes a Level to a lowercase string and adds coloring. +// For example, InfoLevel is serialized to "info" and colored blue. +func LowercaseColorLevelEncoder(l Level, enc PrimitiveArrayEncoder) { + s, ok := _levelToLowercaseColorString[l] + if !ok { + s = _unknownLevelColor.Add(l.String()) + } + enc.AppendString(s) +} + +// CapitalLevelEncoder serializes a Level to an all-caps string. For example, +// InfoLevel is serialized to "INFO". +func CapitalLevelEncoder(l Level, enc PrimitiveArrayEncoder) { + enc.AppendString(l.CapitalString()) +} + +// CapitalColorLevelEncoder serializes a Level to an all-caps string and adds color. +// For example, InfoLevel is serialized to "INFO" and colored blue. +func CapitalColorLevelEncoder(l Level, enc PrimitiveArrayEncoder) { + s, ok := _levelToCapitalColorString[l] + if !ok { + s = _unknownLevelColor.Add(l.CapitalString()) + } + enc.AppendString(s) +} + +// UnmarshalText unmarshals text to a LevelEncoder. "capital" is unmarshaled to +// CapitalLevelEncoder, "coloredCapital" is unmarshaled to CapitalColorLevelEncoder, +// "colored" is unmarshaled to LowercaseColorLevelEncoder, and anything else +// is unmarshaled to LowercaseLevelEncoder. +func (e *LevelEncoder) UnmarshalText(text []byte) error { + switch string(text) { + case "capital": + *e = CapitalLevelEncoder + case "capitalColor": + *e = CapitalColorLevelEncoder + case "color": + *e = LowercaseColorLevelEncoder + default: + *e = LowercaseLevelEncoder + } + return nil +} + +// A TimeEncoder serializes a time.Time to a primitive type. +type TimeEncoder func(time.Time, PrimitiveArrayEncoder) + +// EpochTimeEncoder serializes a time.Time to a floating-point number of seconds +// since the Unix epoch. +func EpochTimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { + nanos := t.UnixNano() + sec := float64(nanos) / float64(time.Second) + enc.AppendFloat64(sec) +} + +// EpochMillisTimeEncoder serializes a time.Time to a floating-point number of +// milliseconds since the Unix epoch. +func EpochMillisTimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { + nanos := t.UnixNano() + millis := float64(nanos) / float64(time.Millisecond) + enc.AppendFloat64(millis) +} + +// EpochNanosTimeEncoder serializes a time.Time to an integer number of +// nanoseconds since the Unix epoch. +func EpochNanosTimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { + enc.AppendInt64(t.UnixNano()) +} + +func encodeTimeLayout(t time.Time, layout string, enc PrimitiveArrayEncoder) { + type appendTimeEncoder interface { + AppendTimeLayout(time.Time, string) + } + + if enc, ok := enc.(appendTimeEncoder); ok { + enc.AppendTimeLayout(t, layout) + return + } + + enc.AppendString(t.Format(layout)) +} + +// ISO8601TimeEncoder serializes a time.Time to an ISO8601-formatted string +// with millisecond precision. +// +// If enc supports AppendTimeLayout(t time.Time,layout string), it's used +// instead of appending a pre-formatted string value. +func ISO8601TimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { + encodeTimeLayout(t, "2006-01-02T15:04:05.000Z0700", enc) +} + +// RFC3339TimeEncoder serializes a time.Time to an RFC3339-formatted string. +// +// If enc supports AppendTimeLayout(t time.Time,layout string), it's used +// instead of appending a pre-formatted string value. +func RFC3339TimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { + encodeTimeLayout(t, time.RFC3339, enc) +} + +// RFC3339NanoTimeEncoder serializes a time.Time to an RFC3339-formatted string +// with nanosecond precision. +// +// If enc supports AppendTimeLayout(t time.Time,layout string), it's used +// instead of appending a pre-formatted string value. +func RFC3339NanoTimeEncoder(t time.Time, enc PrimitiveArrayEncoder) { + encodeTimeLayout(t, time.RFC3339Nano, enc) +} + +// TimeEncoderOfLayout returns TimeEncoder which serializes a time.Time using +// given layout. +func TimeEncoderOfLayout(layout string) TimeEncoder { + return func(t time.Time, enc PrimitiveArrayEncoder) { + encodeTimeLayout(t, layout, enc) + } +} + +// UnmarshalText unmarshals text to a TimeEncoder. +// "rfc3339nano" and "RFC3339Nano" are unmarshaled to RFC3339NanoTimeEncoder. +// "rfc3339" and "RFC3339" are unmarshaled to RFC3339TimeEncoder. +// "iso8601" and "ISO8601" are unmarshaled to ISO8601TimeEncoder. +// "millis" is unmarshaled to EpochMillisTimeEncoder. +// "nanos" is unmarshaled to EpochNanosEncoder. +// Anything else is unmarshaled to EpochTimeEncoder. +func (e *TimeEncoder) UnmarshalText(text []byte) error { + switch string(text) { + case "rfc3339nano", "RFC3339Nano": + *e = RFC3339NanoTimeEncoder + case "rfc3339", "RFC3339": + *e = RFC3339TimeEncoder + case "iso8601", "ISO8601": + *e = ISO8601TimeEncoder + case "millis": + *e = EpochMillisTimeEncoder + case "nanos": + *e = EpochNanosTimeEncoder + default: + *e = EpochTimeEncoder + } + return nil +} + +// UnmarshalYAML unmarshals YAML to a TimeEncoder. +// If value is an object with a "layout" field, it will be unmarshaled to TimeEncoder with given layout. +// timeEncoder: +// layout: 06/01/02 03:04pm +// If value is string, it uses UnmarshalText. +// timeEncoder: iso8601 +func (e *TimeEncoder) UnmarshalYAML(unmarshal func(interface{}) error) error { + var o struct { + Layout string `json:"layout" yaml:"layout"` + } + if err := unmarshal(&o); err == nil { + *e = TimeEncoderOfLayout(o.Layout) + return nil + } + + var s string + if err := unmarshal(&s); err != nil { + return err + } + return e.UnmarshalText([]byte(s)) +} + +// UnmarshalJSON unmarshals JSON to a TimeEncoder as same way UnmarshalYAML does. +func (e *TimeEncoder) UnmarshalJSON(data []byte) error { + return e.UnmarshalYAML(func(v interface{}) error { + return json.Unmarshal(data, v) + }) +} + +// A DurationEncoder serializes a time.Duration to a primitive type. +type DurationEncoder func(time.Duration, PrimitiveArrayEncoder) + +// SecondsDurationEncoder serializes a time.Duration to a floating-point number of seconds elapsed. +func SecondsDurationEncoder(d time.Duration, enc PrimitiveArrayEncoder) { + enc.AppendFloat64(float64(d) / float64(time.Second)) +} + +// NanosDurationEncoder serializes a time.Duration to an integer number of +// nanoseconds elapsed. +func NanosDurationEncoder(d time.Duration, enc PrimitiveArrayEncoder) { + enc.AppendInt64(int64(d)) +} + +// MillisDurationEncoder serializes a time.Duration to an integer number of +// milliseconds elapsed. +func MillisDurationEncoder(d time.Duration, enc PrimitiveArrayEncoder) { + enc.AppendInt64(d.Nanoseconds() / 1e6) +} + +// StringDurationEncoder serializes a time.Duration using its built-in String +// method. +func StringDurationEncoder(d time.Duration, enc PrimitiveArrayEncoder) { + enc.AppendString(d.String()) +} + +// UnmarshalText unmarshals text to a DurationEncoder. "string" is unmarshaled +// to StringDurationEncoder, and anything else is unmarshaled to +// NanosDurationEncoder. +func (e *DurationEncoder) UnmarshalText(text []byte) error { + switch string(text) { + case "string": + *e = StringDurationEncoder + case "nanos": + *e = NanosDurationEncoder + case "ms": + *e = MillisDurationEncoder + default: + *e = SecondsDurationEncoder + } + return nil +} + +// A CallerEncoder serializes an EntryCaller to a primitive type. +type CallerEncoder func(EntryCaller, PrimitiveArrayEncoder) + +// FullCallerEncoder serializes a caller in /full/path/to/package/file:line +// format. +func FullCallerEncoder(caller EntryCaller, enc PrimitiveArrayEncoder) { + // TODO: consider using a byte-oriented API to save an allocation. + enc.AppendString(caller.String()) +} + +// ShortCallerEncoder serializes a caller in package/file:line format, trimming +// all but the final directory from the full path. +func ShortCallerEncoder(caller EntryCaller, enc PrimitiveArrayEncoder) { + // TODO: consider using a byte-oriented API to save an allocation. + enc.AppendString(caller.TrimmedPath()) +} + +// UnmarshalText unmarshals text to a CallerEncoder. "full" is unmarshaled to +// FullCallerEncoder and anything else is unmarshaled to ShortCallerEncoder. +func (e *CallerEncoder) UnmarshalText(text []byte) error { + switch string(text) { + case "full": + *e = FullCallerEncoder + default: + *e = ShortCallerEncoder + } + return nil +} + +// A NameEncoder serializes a period-separated logger name to a primitive +// type. +type NameEncoder func(string, PrimitiveArrayEncoder) + +// FullNameEncoder serializes the logger name as-is. +func FullNameEncoder(loggerName string, enc PrimitiveArrayEncoder) { + enc.AppendString(loggerName) +} + +// UnmarshalText unmarshals text to a NameEncoder. Currently, everything is +// unmarshaled to FullNameEncoder. +func (e *NameEncoder) UnmarshalText(text []byte) error { + switch string(text) { + case "full": + *e = FullNameEncoder + default: + *e = FullNameEncoder + } + return nil +} + +// An EncoderConfig allows users to configure the concrete encoders supplied by +// zapcore. +type EncoderConfig struct { + // Set the keys used for each log entry. If any key is empty, that portion + // of the entry is omitted. + MessageKey string `json:"messageKey" yaml:"messageKey"` + LevelKey string `json:"levelKey" yaml:"levelKey"` + TimeKey string `json:"timeKey" yaml:"timeKey"` + NameKey string `json:"nameKey" yaml:"nameKey"` + CallerKey string `json:"callerKey" yaml:"callerKey"` + FunctionKey string `json:"functionKey" yaml:"functionKey"` + StacktraceKey string `json:"stacktraceKey" yaml:"stacktraceKey"` + SkipLineEnding bool `json:"skipLineEnding" yaml:"skipLineEnding"` + LineEnding string `json:"lineEnding" yaml:"lineEnding"` + // Configure the primitive representations of common complex types. For + // example, some users may want all time.Times serialized as floating-point + // seconds since epoch, while others may prefer ISO8601 strings. + EncodeLevel LevelEncoder `json:"levelEncoder" yaml:"levelEncoder"` + EncodeTime TimeEncoder `json:"timeEncoder" yaml:"timeEncoder"` + EncodeDuration DurationEncoder `json:"durationEncoder" yaml:"durationEncoder"` + EncodeCaller CallerEncoder `json:"callerEncoder" yaml:"callerEncoder"` + // Unlike the other primitive type encoders, EncodeName is optional. The + // zero value falls back to FullNameEncoder. + EncodeName NameEncoder `json:"nameEncoder" yaml:"nameEncoder"` + // Configure the encoder for interface{} type objects. + // If not provided, objects are encoded using json.Encoder + NewReflectedEncoder func(io.Writer) ReflectedEncoder `json:"-" yaml:"-"` + // Configures the field separator used by the console encoder. Defaults + // to tab. + ConsoleSeparator string `json:"consoleSeparator" yaml:"consoleSeparator"` +} + +// ObjectEncoder is a strongly-typed, encoding-agnostic interface for adding a +// map- or struct-like object to the logging context. Like maps, ObjectEncoders +// aren't safe for concurrent use (though typical use shouldn't require locks). +type ObjectEncoder interface { + // Logging-specific marshalers. + AddArray(key string, marshaler ArrayMarshaler) error + AddObject(key string, marshaler ObjectMarshaler) error + + // Built-in types. + AddBinary(key string, value []byte) // for arbitrary bytes + AddByteString(key string, value []byte) // for UTF-8 encoded bytes + AddBool(key string, value bool) + AddComplex128(key string, value complex128) + AddComplex64(key string, value complex64) + AddDuration(key string, value time.Duration) + AddFloat64(key string, value float64) + AddFloat32(key string, value float32) + AddInt(key string, value int) + AddInt64(key string, value int64) + AddInt32(key string, value int32) + AddInt16(key string, value int16) + AddInt8(key string, value int8) + AddString(key, value string) + AddTime(key string, value time.Time) + AddUint(key string, value uint) + AddUint64(key string, value uint64) + AddUint32(key string, value uint32) + AddUint16(key string, value uint16) + AddUint8(key string, value uint8) + AddUintptr(key string, value uintptr) + + // AddReflected uses reflection to serialize arbitrary objects, so it can be + // slow and allocation-heavy. + AddReflected(key string, value interface{}) error + // OpenNamespace opens an isolated namespace where all subsequent fields will + // be added. Applications can use namespaces to prevent key collisions when + // injecting loggers into sub-components or third-party libraries. + OpenNamespace(key string) +} + +// ArrayEncoder is a strongly-typed, encoding-agnostic interface for adding +// array-like objects to the logging context. Of note, it supports mixed-type +// arrays even though they aren't typical in Go. Like slices, ArrayEncoders +// aren't safe for concurrent use (though typical use shouldn't require locks). +type ArrayEncoder interface { + // Built-in types. + PrimitiveArrayEncoder + + // Time-related types. + AppendDuration(time.Duration) + AppendTime(time.Time) + + // Logging-specific marshalers. + AppendArray(ArrayMarshaler) error + AppendObject(ObjectMarshaler) error + + // AppendReflected uses reflection to serialize arbitrary objects, so it's + // slow and allocation-heavy. + AppendReflected(value interface{}) error +} + +// PrimitiveArrayEncoder is the subset of the ArrayEncoder interface that deals +// only in Go's built-in types. It's included only so that Duration- and +// TimeEncoders cannot trigger infinite recursion. +type PrimitiveArrayEncoder interface { + // Built-in types. + AppendBool(bool) + AppendByteString([]byte) // for UTF-8 encoded bytes + AppendComplex128(complex128) + AppendComplex64(complex64) + AppendFloat64(float64) + AppendFloat32(float32) + AppendInt(int) + AppendInt64(int64) + AppendInt32(int32) + AppendInt16(int16) + AppendInt8(int8) + AppendString(string) + AppendUint(uint) + AppendUint64(uint64) + AppendUint32(uint32) + AppendUint16(uint16) + AppendUint8(uint8) + AppendUintptr(uintptr) +} + +// Encoder is a format-agnostic interface for all log entry marshalers. Since +// log encoders don't need to support the same wide range of use cases as +// general-purpose marshalers, it's possible to make them faster and +// lower-allocation. +// +// Implementations of the ObjectEncoder interface's methods can, of course, +// freely modify the receiver. However, the Clone and EncodeEntry methods will +// be called concurrently and shouldn't modify the receiver. +type Encoder interface { + ObjectEncoder + + // Clone copies the encoder, ensuring that adding fields to the copy doesn't + // affect the original. + Clone() Encoder + + // EncodeEntry encodes an entry and fields, along with any accumulated + // context, into a byte buffer and returns it. Any fields that are empty, + // including fields on the `Entry` type, should be omitted. + EncodeEntry(Entry, []Field) (*buffer.Buffer, error) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/entry.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/entry.go new file mode 100644 index 000000000..0885505b7 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/entry.go @@ -0,0 +1,262 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "fmt" + "runtime" + "strings" + "sync" + "time" + + "go.uber.org/zap/internal/bufferpool" + "go.uber.org/zap/internal/exit" + + "go.uber.org/multierr" +) + +var ( + _cePool = sync.Pool{New: func() interface{} { + // Pre-allocate some space for cores. + return &CheckedEntry{ + cores: make([]Core, 4), + } + }} +) + +func getCheckedEntry() *CheckedEntry { + ce := _cePool.Get().(*CheckedEntry) + ce.reset() + return ce +} + +func putCheckedEntry(ce *CheckedEntry) { + if ce == nil { + return + } + _cePool.Put(ce) +} + +// NewEntryCaller makes an EntryCaller from the return signature of +// runtime.Caller. +func NewEntryCaller(pc uintptr, file string, line int, ok bool) EntryCaller { + if !ok { + return EntryCaller{} + } + return EntryCaller{ + PC: pc, + File: file, + Line: line, + Defined: true, + } +} + +// EntryCaller represents the caller of a logging function. +type EntryCaller struct { + Defined bool + PC uintptr + File string + Line int + Function string +} + +// String returns the full path and line number of the caller. +func (ec EntryCaller) String() string { + return ec.FullPath() +} + +// FullPath returns a /full/path/to/package/file:line description of the +// caller. +func (ec EntryCaller) FullPath() string { + if !ec.Defined { + return "undefined" + } + buf := bufferpool.Get() + buf.AppendString(ec.File) + buf.AppendByte(':') + buf.AppendInt(int64(ec.Line)) + caller := buf.String() + buf.Free() + return caller +} + +// TrimmedPath returns a package/file:line description of the caller, +// preserving only the leaf directory name and file name. +func (ec EntryCaller) TrimmedPath() string { + if !ec.Defined { + return "undefined" + } + // nb. To make sure we trim the path correctly on Windows too, we + // counter-intuitively need to use '/' and *not* os.PathSeparator here, + // because the path given originates from Go stdlib, specifically + // runtime.Caller() which (as of Mar/17) returns forward slashes even on + // Windows. + // + // See https://github.com/golang/go/issues/3335 + // and https://github.com/golang/go/issues/18151 + // + // for discussion on the issue on Go side. + // + // Find the last separator. + // + idx := strings.LastIndexByte(ec.File, '/') + if idx == -1 { + return ec.FullPath() + } + // Find the penultimate separator. + idx = strings.LastIndexByte(ec.File[:idx], '/') + if idx == -1 { + return ec.FullPath() + } + buf := bufferpool.Get() + // Keep everything after the penultimate separator. + buf.AppendString(ec.File[idx+1:]) + buf.AppendByte(':') + buf.AppendInt(int64(ec.Line)) + caller := buf.String() + buf.Free() + return caller +} + +// An Entry represents a complete log message. The entry's structured context +// is already serialized, but the log level, time, message, and call site +// information are available for inspection and modification. Any fields left +// empty will be omitted when encoding. +// +// Entries are pooled, so any functions that accept them MUST be careful not to +// retain references to them. +type Entry struct { + Level Level + Time time.Time + LoggerName string + Message string + Caller EntryCaller + Stack string +} + +// CheckWriteAction indicates what action to take after a log entry is +// processed. Actions are ordered in increasing severity. +type CheckWriteAction uint8 + +const ( + // WriteThenNoop indicates that nothing special needs to be done. It's the + // default behavior. + WriteThenNoop CheckWriteAction = iota + // WriteThenGoexit runs runtime.Goexit after Write. + WriteThenGoexit + // WriteThenPanic causes a panic after Write. + WriteThenPanic + // WriteThenFatal causes a fatal os.Exit after Write. + WriteThenFatal +) + +// CheckedEntry is an Entry together with a collection of Cores that have +// already agreed to log it. +// +// CheckedEntry references should be created by calling AddCore or Should on a +// nil *CheckedEntry. References are returned to a pool after Write, and MUST +// NOT be retained after calling their Write method. +type CheckedEntry struct { + Entry + ErrorOutput WriteSyncer + dirty bool // best-effort detection of pool misuse + should CheckWriteAction + cores []Core +} + +func (ce *CheckedEntry) reset() { + ce.Entry = Entry{} + ce.ErrorOutput = nil + ce.dirty = false + ce.should = WriteThenNoop + for i := range ce.cores { + // don't keep references to cores + ce.cores[i] = nil + } + ce.cores = ce.cores[:0] +} + +// Write writes the entry to the stored Cores, returns any errors, and returns +// the CheckedEntry reference to a pool for immediate re-use. Finally, it +// executes any required CheckWriteAction. +func (ce *CheckedEntry) Write(fields ...Field) { + if ce == nil { + return + } + + if ce.dirty { + if ce.ErrorOutput != nil { + // Make a best effort to detect unsafe re-use of this CheckedEntry. + // If the entry is dirty, log an internal error; because the + // CheckedEntry is being used after it was returned to the pool, + // the message may be an amalgamation from multiple call sites. + fmt.Fprintf(ce.ErrorOutput, "%v Unsafe CheckedEntry re-use near Entry %+v.\n", ce.Time, ce.Entry) + ce.ErrorOutput.Sync() + } + return + } + ce.dirty = true + + var err error + for i := range ce.cores { + err = multierr.Append(err, ce.cores[i].Write(ce.Entry, fields)) + } + if err != nil && ce.ErrorOutput != nil { + fmt.Fprintf(ce.ErrorOutput, "%v write error: %v\n", ce.Time, err) + ce.ErrorOutput.Sync() + } + + should, msg := ce.should, ce.Message + putCheckedEntry(ce) + + switch should { + case WriteThenPanic: + panic(msg) + case WriteThenFatal: + exit.Exit() + case WriteThenGoexit: + runtime.Goexit() + } +} + +// AddCore adds a Core that has agreed to log this CheckedEntry. It's intended to be +// used by Core.Check implementations, and is safe to call on nil CheckedEntry +// references. +func (ce *CheckedEntry) AddCore(ent Entry, core Core) *CheckedEntry { + if ce == nil { + ce = getCheckedEntry() + ce.Entry = ent + } + ce.cores = append(ce.cores, core) + return ce +} + +// Should sets this CheckedEntry's CheckWriteAction, which controls whether a +// Core will panic or fatal after writing this log entry. Like AddCore, it's +// safe to call on nil CheckedEntry references. +func (ce *CheckedEntry) Should(ent Entry, should CheckWriteAction) *CheckedEntry { + if ce == nil { + ce = getCheckedEntry() + ce.Entry = ent + } + ce.should = should + return ce +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/error.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/error.go new file mode 100644 index 000000000..74919b0cc --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/error.go @@ -0,0 +1,132 @@ +// Copyright (c) 2017 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "fmt" + "reflect" + "sync" +) + +// Encodes the given error into fields of an object. A field with the given +// name is added for the error message. +// +// If the error implements fmt.Formatter, a field with the name ${key}Verbose +// is also added with the full verbose error message. +// +// Finally, if the error implements errorGroup (from go.uber.org/multierr) or +// causer (from github.com/pkg/errors), a ${key}Causes field is added with an +// array of objects containing the errors this error was comprised of. +// +// { +// "error": err.Error(), +// "errorVerbose": fmt.Sprintf("%+v", err), +// "errorCauses": [ +// ... +// ], +// } +func encodeError(key string, err error, enc ObjectEncoder) (retErr error) { + // Try to capture panics (from nil references or otherwise) when calling + // the Error() method + defer func() { + if rerr := recover(); rerr != nil { + // If it's a nil pointer, just say "". The likeliest causes are a + // error that fails to guard against nil or a nil pointer for a + // value receiver, and in either case, "" is a nice result. + if v := reflect.ValueOf(err); v.Kind() == reflect.Ptr && v.IsNil() { + enc.AddString(key, "") + return + } + + retErr = fmt.Errorf("PANIC=%v", rerr) + } + }() + + basic := err.Error() + enc.AddString(key, basic) + + switch e := err.(type) { + case errorGroup: + return enc.AddArray(key+"Causes", errArray(e.Errors())) + case fmt.Formatter: + verbose := fmt.Sprintf("%+v", e) + if verbose != basic { + // This is a rich error type, like those produced by + // github.com/pkg/errors. + enc.AddString(key+"Verbose", verbose) + } + } + return nil +} + +type errorGroup interface { + // Provides read-only access to the underlying list of errors, preferably + // without causing any allocs. + Errors() []error +} + +// Note that errArray and errArrayElem are very similar to the version +// implemented in the top-level error.go file. We can't re-use this because +// that would require exporting errArray as part of the zapcore API. + +// Encodes a list of errors using the standard error encoding logic. +type errArray []error + +func (errs errArray) MarshalLogArray(arr ArrayEncoder) error { + for i := range errs { + if errs[i] == nil { + continue + } + + el := newErrArrayElem(errs[i]) + arr.AppendObject(el) + el.Free() + } + return nil +} + +var _errArrayElemPool = sync.Pool{New: func() interface{} { + return &errArrayElem{} +}} + +// Encodes any error into a {"error": ...} re-using the same errors logic. +// +// May be passed in place of an array to build a single-element array. +type errArrayElem struct{ err error } + +func newErrArrayElem(err error) *errArrayElem { + e := _errArrayElemPool.Get().(*errArrayElem) + e.err = err + return e +} + +func (e *errArrayElem) MarshalLogArray(arr ArrayEncoder) error { + return arr.AppendObject(e) +} + +func (e *errArrayElem) MarshalLogObject(enc ObjectEncoder) error { + return encodeError("error", e.err, enc) +} + +func (e *errArrayElem) Free() { + e.err = nil + _errArrayElemPool.Put(e) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/field.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/field.go new file mode 100644 index 000000000..95bdb0a12 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/field.go @@ -0,0 +1,233 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "bytes" + "fmt" + "math" + "reflect" + "time" +) + +// A FieldType indicates which member of the Field union struct should be used +// and how it should be serialized. +type FieldType uint8 + +const ( + // UnknownType is the default field type. Attempting to add it to an encoder will panic. + UnknownType FieldType = iota + // ArrayMarshalerType indicates that the field carries an ArrayMarshaler. + ArrayMarshalerType + // ObjectMarshalerType indicates that the field carries an ObjectMarshaler. + ObjectMarshalerType + // BinaryType indicates that the field carries an opaque binary blob. + BinaryType + // BoolType indicates that the field carries a bool. + BoolType + // ByteStringType indicates that the field carries UTF-8 encoded bytes. + ByteStringType + // Complex128Type indicates that the field carries a complex128. + Complex128Type + // Complex64Type indicates that the field carries a complex128. + Complex64Type + // DurationType indicates that the field carries a time.Duration. + DurationType + // Float64Type indicates that the field carries a float64. + Float64Type + // Float32Type indicates that the field carries a float32. + Float32Type + // Int64Type indicates that the field carries an int64. + Int64Type + // Int32Type indicates that the field carries an int32. + Int32Type + // Int16Type indicates that the field carries an int16. + Int16Type + // Int8Type indicates that the field carries an int8. + Int8Type + // StringType indicates that the field carries a string. + StringType + // TimeType indicates that the field carries a time.Time that is + // representable by a UnixNano() stored as an int64. + TimeType + // TimeFullType indicates that the field carries a time.Time stored as-is. + TimeFullType + // Uint64Type indicates that the field carries a uint64. + Uint64Type + // Uint32Type indicates that the field carries a uint32. + Uint32Type + // Uint16Type indicates that the field carries a uint16. + Uint16Type + // Uint8Type indicates that the field carries a uint8. + Uint8Type + // UintptrType indicates that the field carries a uintptr. + UintptrType + // ReflectType indicates that the field carries an interface{}, which should + // be serialized using reflection. + ReflectType + // NamespaceType signals the beginning of an isolated namespace. All + // subsequent fields should be added to the new namespace. + NamespaceType + // StringerType indicates that the field carries a fmt.Stringer. + StringerType + // ErrorType indicates that the field carries an error. + ErrorType + // SkipType indicates that the field is a no-op. + SkipType + + // InlineMarshalerType indicates that the field carries an ObjectMarshaler + // that should be inlined. + InlineMarshalerType +) + +// A Field is a marshaling operation used to add a key-value pair to a logger's +// context. Most fields are lazily marshaled, so it's inexpensive to add fields +// to disabled debug-level log statements. +type Field struct { + Key string + Type FieldType + Integer int64 + String string + Interface interface{} +} + +// AddTo exports a field through the ObjectEncoder interface. It's primarily +// useful to library authors, and shouldn't be necessary in most applications. +func (f Field) AddTo(enc ObjectEncoder) { + var err error + + switch f.Type { + case ArrayMarshalerType: + err = enc.AddArray(f.Key, f.Interface.(ArrayMarshaler)) + case ObjectMarshalerType: + err = enc.AddObject(f.Key, f.Interface.(ObjectMarshaler)) + case InlineMarshalerType: + err = f.Interface.(ObjectMarshaler).MarshalLogObject(enc) + case BinaryType: + enc.AddBinary(f.Key, f.Interface.([]byte)) + case BoolType: + enc.AddBool(f.Key, f.Integer == 1) + case ByteStringType: + enc.AddByteString(f.Key, f.Interface.([]byte)) + case Complex128Type: + enc.AddComplex128(f.Key, f.Interface.(complex128)) + case Complex64Type: + enc.AddComplex64(f.Key, f.Interface.(complex64)) + case DurationType: + enc.AddDuration(f.Key, time.Duration(f.Integer)) + case Float64Type: + enc.AddFloat64(f.Key, math.Float64frombits(uint64(f.Integer))) + case Float32Type: + enc.AddFloat32(f.Key, math.Float32frombits(uint32(f.Integer))) + case Int64Type: + enc.AddInt64(f.Key, f.Integer) + case Int32Type: + enc.AddInt32(f.Key, int32(f.Integer)) + case Int16Type: + enc.AddInt16(f.Key, int16(f.Integer)) + case Int8Type: + enc.AddInt8(f.Key, int8(f.Integer)) + case StringType: + enc.AddString(f.Key, f.String) + case TimeType: + if f.Interface != nil { + enc.AddTime(f.Key, time.Unix(0, f.Integer).In(f.Interface.(*time.Location))) + } else { + // Fall back to UTC if location is nil. + enc.AddTime(f.Key, time.Unix(0, f.Integer)) + } + case TimeFullType: + enc.AddTime(f.Key, f.Interface.(time.Time)) + case Uint64Type: + enc.AddUint64(f.Key, uint64(f.Integer)) + case Uint32Type: + enc.AddUint32(f.Key, uint32(f.Integer)) + case Uint16Type: + enc.AddUint16(f.Key, uint16(f.Integer)) + case Uint8Type: + enc.AddUint8(f.Key, uint8(f.Integer)) + case UintptrType: + enc.AddUintptr(f.Key, uintptr(f.Integer)) + case ReflectType: + err = enc.AddReflected(f.Key, f.Interface) + case NamespaceType: + enc.OpenNamespace(f.Key) + case StringerType: + err = encodeStringer(f.Key, f.Interface, enc) + case ErrorType: + err = encodeError(f.Key, f.Interface.(error), enc) + case SkipType: + break + default: + panic(fmt.Sprintf("unknown field type: %v", f)) + } + + if err != nil { + enc.AddString(fmt.Sprintf("%sError", f.Key), err.Error()) + } +} + +// Equals returns whether two fields are equal. For non-primitive types such as +// errors, marshalers, or reflect types, it uses reflect.DeepEqual. +func (f Field) Equals(other Field) bool { + if f.Type != other.Type { + return false + } + if f.Key != other.Key { + return false + } + + switch f.Type { + case BinaryType, ByteStringType: + return bytes.Equal(f.Interface.([]byte), other.Interface.([]byte)) + case ArrayMarshalerType, ObjectMarshalerType, ErrorType, ReflectType: + return reflect.DeepEqual(f.Interface, other.Interface) + default: + return f == other + } +} + +func addFields(enc ObjectEncoder, fields []Field) { + for i := range fields { + fields[i].AddTo(enc) + } +} + +func encodeStringer(key string, stringer interface{}, enc ObjectEncoder) (retErr error) { + // Try to capture panics (from nil references or otherwise) when calling + // the String() method, similar to https://golang.org/src/fmt/print.go#L540 + defer func() { + if err := recover(); err != nil { + // If it's a nil pointer, just say "". The likeliest causes are a + // Stringer that fails to guard against nil or a nil pointer for a + // value receiver, and in either case, "" is a nice result. + if v := reflect.ValueOf(stringer); v.Kind() == reflect.Ptr && v.IsNil() { + enc.AddString(key, "") + return + } + + retErr = fmt.Errorf("PANIC=%v", err) + } + }() + + enc.AddString(key, stringer.(fmt.Stringer).String()) + return nil +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/hook.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/hook.go new file mode 100644 index 000000000..5db4afb30 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/hook.go @@ -0,0 +1,68 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import "go.uber.org/multierr" + +type hooked struct { + Core + funcs []func(Entry) error +} + +// RegisterHooks wraps a Core and runs a collection of user-defined callback +// hooks each time a message is logged. Execution of the callbacks is blocking. +// +// This offers users an easy way to register simple callbacks (e.g., metrics +// collection) without implementing the full Core interface. +func RegisterHooks(core Core, hooks ...func(Entry) error) Core { + funcs := append([]func(Entry) error{}, hooks...) + return &hooked{ + Core: core, + funcs: funcs, + } +} + +func (h *hooked) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { + // Let the wrapped Core decide whether to log this message or not. This + // also gives the downstream a chance to register itself directly with the + // CheckedEntry. + if downstream := h.Core.Check(ent, ce); downstream != nil { + return downstream.AddCore(ent, h) + } + return ce +} + +func (h *hooked) With(fields []Field) Core { + return &hooked{ + Core: h.Core.With(fields), + funcs: h.funcs, + } +} + +func (h *hooked) Write(ent Entry, _ []Field) error { + // Since our downstream had a chance to register itself directly with the + // CheckedMessage, we don't need to call it here. + var err error + for i := range h.funcs { + err = multierr.Append(err, h.funcs[i](ent)) + } + return err +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/increase_level.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/increase_level.go new file mode 100644 index 000000000..5a1749261 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/increase_level.go @@ -0,0 +1,66 @@ +// Copyright (c) 2020 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import "fmt" + +type levelFilterCore struct { + core Core + level LevelEnabler +} + +// NewIncreaseLevelCore creates a core that can be used to increase the level of +// an existing Core. It cannot be used to decrease the logging level, as it acts +// as a filter before calling the underlying core. If level decreases the log level, +// an error is returned. +func NewIncreaseLevelCore(core Core, level LevelEnabler) (Core, error) { + for l := _maxLevel; l >= _minLevel; l-- { + if !core.Enabled(l) && level.Enabled(l) { + return nil, fmt.Errorf("invalid increase level, as level %q is allowed by increased level, but not by existing core", l) + } + } + + return &levelFilterCore{core, level}, nil +} + +func (c *levelFilterCore) Enabled(lvl Level) bool { + return c.level.Enabled(lvl) +} + +func (c *levelFilterCore) With(fields []Field) Core { + return &levelFilterCore{c.core.With(fields), c.level} +} + +func (c *levelFilterCore) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { + if !c.Enabled(ent.Level) { + return ce + } + + return c.core.Check(ent, ce) +} + +func (c *levelFilterCore) Write(ent Entry, fields []Field) error { + return c.core.Write(ent, fields) +} + +func (c *levelFilterCore) Sync() error { + return c.core.Sync() +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/json_encoder.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/json_encoder.go new file mode 100644 index 000000000..c5d751b82 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/json_encoder.go @@ -0,0 +1,560 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "encoding/base64" + "math" + "sync" + "time" + "unicode/utf8" + + "go.uber.org/zap/buffer" + "go.uber.org/zap/internal/bufferpool" +) + +// For JSON-escaping; see jsonEncoder.safeAddString below. +const _hex = "0123456789abcdef" + +var _jsonPool = sync.Pool{New: func() interface{} { + return &jsonEncoder{} +}} + +func getJSONEncoder() *jsonEncoder { + return _jsonPool.Get().(*jsonEncoder) +} + +func putJSONEncoder(enc *jsonEncoder) { + if enc.reflectBuf != nil { + enc.reflectBuf.Free() + } + enc.EncoderConfig = nil + enc.buf = nil + enc.spaced = false + enc.openNamespaces = 0 + enc.reflectBuf = nil + enc.reflectEnc = nil + _jsonPool.Put(enc) +} + +type jsonEncoder struct { + *EncoderConfig + buf *buffer.Buffer + spaced bool // include spaces after colons and commas + openNamespaces int + + // for encoding generic values by reflection + reflectBuf *buffer.Buffer + reflectEnc ReflectedEncoder +} + +// NewJSONEncoder creates a fast, low-allocation JSON encoder. The encoder +// appropriately escapes all field keys and values. +// +// Note that the encoder doesn't deduplicate keys, so it's possible to produce +// a message like +// {"foo":"bar","foo":"baz"} +// This is permitted by the JSON specification, but not encouraged. Many +// libraries will ignore duplicate key-value pairs (typically keeping the last +// pair) when unmarshaling, but users should attempt to avoid adding duplicate +// keys. +func NewJSONEncoder(cfg EncoderConfig) Encoder { + return newJSONEncoder(cfg, false) +} + +func newJSONEncoder(cfg EncoderConfig, spaced bool) *jsonEncoder { + if cfg.SkipLineEnding { + cfg.LineEnding = "" + } else if cfg.LineEnding == "" { + cfg.LineEnding = DefaultLineEnding + } + + // If no EncoderConfig.NewReflectedEncoder is provided by the user, then use default + if cfg.NewReflectedEncoder == nil { + cfg.NewReflectedEncoder = defaultReflectedEncoder + } + + return &jsonEncoder{ + EncoderConfig: &cfg, + buf: bufferpool.Get(), + spaced: spaced, + } +} + +func (enc *jsonEncoder) AddArray(key string, arr ArrayMarshaler) error { + enc.addKey(key) + return enc.AppendArray(arr) +} + +func (enc *jsonEncoder) AddObject(key string, obj ObjectMarshaler) error { + enc.addKey(key) + return enc.AppendObject(obj) +} + +func (enc *jsonEncoder) AddBinary(key string, val []byte) { + enc.AddString(key, base64.StdEncoding.EncodeToString(val)) +} + +func (enc *jsonEncoder) AddByteString(key string, val []byte) { + enc.addKey(key) + enc.AppendByteString(val) +} + +func (enc *jsonEncoder) AddBool(key string, val bool) { + enc.addKey(key) + enc.AppendBool(val) +} + +func (enc *jsonEncoder) AddComplex128(key string, val complex128) { + enc.addKey(key) + enc.AppendComplex128(val) +} + +func (enc *jsonEncoder) AddComplex64(key string, val complex64) { + enc.addKey(key) + enc.AppendComplex64(val) +} + +func (enc *jsonEncoder) AddDuration(key string, val time.Duration) { + enc.addKey(key) + enc.AppendDuration(val) +} + +func (enc *jsonEncoder) AddFloat64(key string, val float64) { + enc.addKey(key) + enc.AppendFloat64(val) +} + +func (enc *jsonEncoder) AddFloat32(key string, val float32) { + enc.addKey(key) + enc.AppendFloat32(val) +} + +func (enc *jsonEncoder) AddInt64(key string, val int64) { + enc.addKey(key) + enc.AppendInt64(val) +} + +func (enc *jsonEncoder) resetReflectBuf() { + if enc.reflectBuf == nil { + enc.reflectBuf = bufferpool.Get() + enc.reflectEnc = enc.NewReflectedEncoder(enc.reflectBuf) + } else { + enc.reflectBuf.Reset() + } +} + +var nullLiteralBytes = []byte("null") + +// Only invoke the standard JSON encoder if there is actually something to +// encode; otherwise write JSON null literal directly. +func (enc *jsonEncoder) encodeReflected(obj interface{}) ([]byte, error) { + if obj == nil { + return nullLiteralBytes, nil + } + enc.resetReflectBuf() + if err := enc.reflectEnc.Encode(obj); err != nil { + return nil, err + } + enc.reflectBuf.TrimNewline() + return enc.reflectBuf.Bytes(), nil +} + +func (enc *jsonEncoder) AddReflected(key string, obj interface{}) error { + valueBytes, err := enc.encodeReflected(obj) + if err != nil { + return err + } + enc.addKey(key) + _, err = enc.buf.Write(valueBytes) + return err +} + +func (enc *jsonEncoder) OpenNamespace(key string) { + enc.addKey(key) + enc.buf.AppendByte('{') + enc.openNamespaces++ +} + +func (enc *jsonEncoder) AddString(key, val string) { + enc.addKey(key) + enc.AppendString(val) +} + +func (enc *jsonEncoder) AddTime(key string, val time.Time) { + enc.addKey(key) + enc.AppendTime(val) +} + +func (enc *jsonEncoder) AddUint64(key string, val uint64) { + enc.addKey(key) + enc.AppendUint64(val) +} + +func (enc *jsonEncoder) AppendArray(arr ArrayMarshaler) error { + enc.addElementSeparator() + enc.buf.AppendByte('[') + err := arr.MarshalLogArray(enc) + enc.buf.AppendByte(']') + return err +} + +func (enc *jsonEncoder) AppendObject(obj ObjectMarshaler) error { + // Close ONLY new openNamespaces that are created during + // AppendObject(). + old := enc.openNamespaces + enc.openNamespaces = 0 + enc.addElementSeparator() + enc.buf.AppendByte('{') + err := obj.MarshalLogObject(enc) + enc.buf.AppendByte('}') + enc.closeOpenNamespaces() + enc.openNamespaces = old + return err +} + +func (enc *jsonEncoder) AppendBool(val bool) { + enc.addElementSeparator() + enc.buf.AppendBool(val) +} + +func (enc *jsonEncoder) AppendByteString(val []byte) { + enc.addElementSeparator() + enc.buf.AppendByte('"') + enc.safeAddByteString(val) + enc.buf.AppendByte('"') +} + +// appendComplex appends the encoded form of the provided complex128 value. +// precision specifies the encoding precision for the real and imaginary +// components of the complex number. +func (enc *jsonEncoder) appendComplex(val complex128, precision int) { + enc.addElementSeparator() + // Cast to a platform-independent, fixed-size type. + r, i := float64(real(val)), float64(imag(val)) + enc.buf.AppendByte('"') + // Because we're always in a quoted string, we can use strconv without + // special-casing NaN and +/-Inf. + enc.buf.AppendFloat(r, precision) + // If imaginary part is less than 0, minus (-) sign is added by default + // by AppendFloat. + if i >= 0 { + enc.buf.AppendByte('+') + } + enc.buf.AppendFloat(i, precision) + enc.buf.AppendByte('i') + enc.buf.AppendByte('"') +} + +func (enc *jsonEncoder) AppendDuration(val time.Duration) { + cur := enc.buf.Len() + if e := enc.EncodeDuration; e != nil { + e(val, enc) + } + if cur == enc.buf.Len() { + // User-supplied EncodeDuration is a no-op. Fall back to nanoseconds to keep + // JSON valid. + enc.AppendInt64(int64(val)) + } +} + +func (enc *jsonEncoder) AppendInt64(val int64) { + enc.addElementSeparator() + enc.buf.AppendInt(val) +} + +func (enc *jsonEncoder) AppendReflected(val interface{}) error { + valueBytes, err := enc.encodeReflected(val) + if err != nil { + return err + } + enc.addElementSeparator() + _, err = enc.buf.Write(valueBytes) + return err +} + +func (enc *jsonEncoder) AppendString(val string) { + enc.addElementSeparator() + enc.buf.AppendByte('"') + enc.safeAddString(val) + enc.buf.AppendByte('"') +} + +func (enc *jsonEncoder) AppendTimeLayout(time time.Time, layout string) { + enc.addElementSeparator() + enc.buf.AppendByte('"') + enc.buf.AppendTime(time, layout) + enc.buf.AppendByte('"') +} + +func (enc *jsonEncoder) AppendTime(val time.Time) { + cur := enc.buf.Len() + if e := enc.EncodeTime; e != nil { + e(val, enc) + } + if cur == enc.buf.Len() { + // User-supplied EncodeTime is a no-op. Fall back to nanos since epoch to keep + // output JSON valid. + enc.AppendInt64(val.UnixNano()) + } +} + +func (enc *jsonEncoder) AppendUint64(val uint64) { + enc.addElementSeparator() + enc.buf.AppendUint(val) +} + +func (enc *jsonEncoder) AddInt(k string, v int) { enc.AddInt64(k, int64(v)) } +func (enc *jsonEncoder) AddInt32(k string, v int32) { enc.AddInt64(k, int64(v)) } +func (enc *jsonEncoder) AddInt16(k string, v int16) { enc.AddInt64(k, int64(v)) } +func (enc *jsonEncoder) AddInt8(k string, v int8) { enc.AddInt64(k, int64(v)) } +func (enc *jsonEncoder) AddUint(k string, v uint) { enc.AddUint64(k, uint64(v)) } +func (enc *jsonEncoder) AddUint32(k string, v uint32) { enc.AddUint64(k, uint64(v)) } +func (enc *jsonEncoder) AddUint16(k string, v uint16) { enc.AddUint64(k, uint64(v)) } +func (enc *jsonEncoder) AddUint8(k string, v uint8) { enc.AddUint64(k, uint64(v)) } +func (enc *jsonEncoder) AddUintptr(k string, v uintptr) { enc.AddUint64(k, uint64(v)) } +func (enc *jsonEncoder) AppendComplex64(v complex64) { enc.appendComplex(complex128(v), 32) } +func (enc *jsonEncoder) AppendComplex128(v complex128) { enc.appendComplex(complex128(v), 64) } +func (enc *jsonEncoder) AppendFloat64(v float64) { enc.appendFloat(v, 64) } +func (enc *jsonEncoder) AppendFloat32(v float32) { enc.appendFloat(float64(v), 32) } +func (enc *jsonEncoder) AppendInt(v int) { enc.AppendInt64(int64(v)) } +func (enc *jsonEncoder) AppendInt32(v int32) { enc.AppendInt64(int64(v)) } +func (enc *jsonEncoder) AppendInt16(v int16) { enc.AppendInt64(int64(v)) } +func (enc *jsonEncoder) AppendInt8(v int8) { enc.AppendInt64(int64(v)) } +func (enc *jsonEncoder) AppendUint(v uint) { enc.AppendUint64(uint64(v)) } +func (enc *jsonEncoder) AppendUint32(v uint32) { enc.AppendUint64(uint64(v)) } +func (enc *jsonEncoder) AppendUint16(v uint16) { enc.AppendUint64(uint64(v)) } +func (enc *jsonEncoder) AppendUint8(v uint8) { enc.AppendUint64(uint64(v)) } +func (enc *jsonEncoder) AppendUintptr(v uintptr) { enc.AppendUint64(uint64(v)) } + +func (enc *jsonEncoder) Clone() Encoder { + clone := enc.clone() + clone.buf.Write(enc.buf.Bytes()) + return clone +} + +func (enc *jsonEncoder) clone() *jsonEncoder { + clone := getJSONEncoder() + clone.EncoderConfig = enc.EncoderConfig + clone.spaced = enc.spaced + clone.openNamespaces = enc.openNamespaces + clone.buf = bufferpool.Get() + return clone +} + +func (enc *jsonEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, error) { + final := enc.clone() + final.buf.AppendByte('{') + + if final.LevelKey != "" && final.EncodeLevel != nil { + final.addKey(final.LevelKey) + cur := final.buf.Len() + final.EncodeLevel(ent.Level, final) + if cur == final.buf.Len() { + // User-supplied EncodeLevel was a no-op. Fall back to strings to keep + // output JSON valid. + final.AppendString(ent.Level.String()) + } + } + if final.TimeKey != "" { + final.AddTime(final.TimeKey, ent.Time) + } + if ent.LoggerName != "" && final.NameKey != "" { + final.addKey(final.NameKey) + cur := final.buf.Len() + nameEncoder := final.EncodeName + + // if no name encoder provided, fall back to FullNameEncoder for backwards + // compatibility + if nameEncoder == nil { + nameEncoder = FullNameEncoder + } + + nameEncoder(ent.LoggerName, final) + if cur == final.buf.Len() { + // User-supplied EncodeName was a no-op. Fall back to strings to + // keep output JSON valid. + final.AppendString(ent.LoggerName) + } + } + if ent.Caller.Defined { + if final.CallerKey != "" { + final.addKey(final.CallerKey) + cur := final.buf.Len() + final.EncodeCaller(ent.Caller, final) + if cur == final.buf.Len() { + // User-supplied EncodeCaller was a no-op. Fall back to strings to + // keep output JSON valid. + final.AppendString(ent.Caller.String()) + } + } + if final.FunctionKey != "" { + final.addKey(final.FunctionKey) + final.AppendString(ent.Caller.Function) + } + } + if final.MessageKey != "" { + final.addKey(enc.MessageKey) + final.AppendString(ent.Message) + } + if enc.buf.Len() > 0 { + final.addElementSeparator() + final.buf.Write(enc.buf.Bytes()) + } + addFields(final, fields) + final.closeOpenNamespaces() + if ent.Stack != "" && final.StacktraceKey != "" { + final.AddString(final.StacktraceKey, ent.Stack) + } + final.buf.AppendByte('}') + final.buf.AppendString(final.LineEnding) + + ret := final.buf + putJSONEncoder(final) + return ret, nil +} + +func (enc *jsonEncoder) truncate() { + enc.buf.Reset() +} + +func (enc *jsonEncoder) closeOpenNamespaces() { + for i := 0; i < enc.openNamespaces; i++ { + enc.buf.AppendByte('}') + } + enc.openNamespaces = 0 +} + +func (enc *jsonEncoder) addKey(key string) { + enc.addElementSeparator() + enc.buf.AppendByte('"') + enc.safeAddString(key) + enc.buf.AppendByte('"') + enc.buf.AppendByte(':') + if enc.spaced { + enc.buf.AppendByte(' ') + } +} + +func (enc *jsonEncoder) addElementSeparator() { + last := enc.buf.Len() - 1 + if last < 0 { + return + } + switch enc.buf.Bytes()[last] { + case '{', '[', ':', ',', ' ': + return + default: + enc.buf.AppendByte(',') + if enc.spaced { + enc.buf.AppendByte(' ') + } + } +} + +func (enc *jsonEncoder) appendFloat(val float64, bitSize int) { + enc.addElementSeparator() + switch { + case math.IsNaN(val): + enc.buf.AppendString(`"NaN"`) + case math.IsInf(val, 1): + enc.buf.AppendString(`"+Inf"`) + case math.IsInf(val, -1): + enc.buf.AppendString(`"-Inf"`) + default: + enc.buf.AppendFloat(val, bitSize) + } +} + +// safeAddString JSON-escapes a string and appends it to the internal buffer. +// Unlike the standard library's encoder, it doesn't attempt to protect the +// user from browser vulnerabilities or JSONP-related problems. +func (enc *jsonEncoder) safeAddString(s string) { + for i := 0; i < len(s); { + if enc.tryAddRuneSelf(s[i]) { + i++ + continue + } + r, size := utf8.DecodeRuneInString(s[i:]) + if enc.tryAddRuneError(r, size) { + i++ + continue + } + enc.buf.AppendString(s[i : i+size]) + i += size + } +} + +// safeAddByteString is no-alloc equivalent of safeAddString(string(s)) for s []byte. +func (enc *jsonEncoder) safeAddByteString(s []byte) { + for i := 0; i < len(s); { + if enc.tryAddRuneSelf(s[i]) { + i++ + continue + } + r, size := utf8.DecodeRune(s[i:]) + if enc.tryAddRuneError(r, size) { + i++ + continue + } + enc.buf.Write(s[i : i+size]) + i += size + } +} + +// tryAddRuneSelf appends b if it is valid UTF-8 character represented in a single byte. +func (enc *jsonEncoder) tryAddRuneSelf(b byte) bool { + if b >= utf8.RuneSelf { + return false + } + if 0x20 <= b && b != '\\' && b != '"' { + enc.buf.AppendByte(b) + return true + } + switch b { + case '\\', '"': + enc.buf.AppendByte('\\') + enc.buf.AppendByte(b) + case '\n': + enc.buf.AppendByte('\\') + enc.buf.AppendByte('n') + case '\r': + enc.buf.AppendByte('\\') + enc.buf.AppendByte('r') + case '\t': + enc.buf.AppendByte('\\') + enc.buf.AppendByte('t') + default: + // Encode bytes < 0x20, except for the escape sequences above. + enc.buf.AppendString(`\u00`) + enc.buf.AppendByte(_hex[b>>4]) + enc.buf.AppendByte(_hex[b&0xF]) + } + return true +} + +func (enc *jsonEncoder) tryAddRuneError(r rune, size int) bool { + if r == utf8.RuneError && size == 1 { + enc.buf.AppendString(`\ufffd`) + return true + } + return false +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/level.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/level.go new file mode 100644 index 000000000..56e88dc0c --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/level.go @@ -0,0 +1,187 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "bytes" + "errors" + "fmt" +) + +var errUnmarshalNilLevel = errors.New("can't unmarshal a nil *Level") + +// A Level is a logging priority. Higher levels are more important. +type Level int8 + +const ( + // DebugLevel logs are typically voluminous, and are usually disabled in + // production. + DebugLevel Level = iota - 1 + // InfoLevel is the default logging priority. + InfoLevel + // WarnLevel logs are more important than Info, but don't need individual + // human review. + WarnLevel + // ErrorLevel logs are high-priority. If an application is running smoothly, + // it shouldn't generate any error-level logs. + ErrorLevel + // DPanicLevel logs are particularly important errors. In development the + // logger panics after writing the message. + DPanicLevel + // PanicLevel logs a message, then panics. + PanicLevel + // FatalLevel logs a message, then calls os.Exit(1). + FatalLevel + + _minLevel = DebugLevel + _maxLevel = FatalLevel +) + +// ParseLevel parses a level based on the lower-case or all-caps ASCII +// representation of the log level. If the provided ASCII representation is +// invalid an error is returned. +// +// This is particularly useful when dealing with text input to configure log +// levels. +func ParseLevel(text string) (Level, error) { + var level Level + err := level.UnmarshalText([]byte(text)) + return level, err +} + +// String returns a lower-case ASCII representation of the log level. +func (l Level) String() string { + switch l { + case DebugLevel: + return "debug" + case InfoLevel: + return "info" + case WarnLevel: + return "warn" + case ErrorLevel: + return "error" + case DPanicLevel: + return "dpanic" + case PanicLevel: + return "panic" + case FatalLevel: + return "fatal" + default: + return fmt.Sprintf("Level(%d)", l) + } +} + +// CapitalString returns an all-caps ASCII representation of the log level. +func (l Level) CapitalString() string { + // Printing levels in all-caps is common enough that we should export this + // functionality. + switch l { + case DebugLevel: + return "DEBUG" + case InfoLevel: + return "INFO" + case WarnLevel: + return "WARN" + case ErrorLevel: + return "ERROR" + case DPanicLevel: + return "DPANIC" + case PanicLevel: + return "PANIC" + case FatalLevel: + return "FATAL" + default: + return fmt.Sprintf("LEVEL(%d)", l) + } +} + +// MarshalText marshals the Level to text. Note that the text representation +// drops the -Level suffix (see example). +func (l Level) MarshalText() ([]byte, error) { + return []byte(l.String()), nil +} + +// UnmarshalText unmarshals text to a level. Like MarshalText, UnmarshalText +// expects the text representation of a Level to drop the -Level suffix (see +// example). +// +// In particular, this makes it easy to configure logging levels using YAML, +// TOML, or JSON files. +func (l *Level) UnmarshalText(text []byte) error { + if l == nil { + return errUnmarshalNilLevel + } + if !l.unmarshalText(text) && !l.unmarshalText(bytes.ToLower(text)) { + return fmt.Errorf("unrecognized level: %q", text) + } + return nil +} + +func (l *Level) unmarshalText(text []byte) bool { + switch string(text) { + case "debug", "DEBUG": + *l = DebugLevel + case "info", "INFO", "": // make the zero value useful + *l = InfoLevel + case "warn", "WARN": + *l = WarnLevel + case "error", "ERROR": + *l = ErrorLevel + case "dpanic", "DPANIC": + *l = DPanicLevel + case "panic", "PANIC": + *l = PanicLevel + case "fatal", "FATAL": + *l = FatalLevel + default: + return false + } + return true +} + +// Set sets the level for the flag.Value interface. +func (l *Level) Set(s string) error { + return l.UnmarshalText([]byte(s)) +} + +// Get gets the level for the flag.Getter interface. +func (l *Level) Get() interface{} { + return *l +} + +// Enabled returns true if the given level is at or above this level. +func (l Level) Enabled(lvl Level) bool { + return lvl >= l +} + +// LevelEnabler decides whether a given logging level is enabled when logging a +// message. +// +// Enablers are intended to be used to implement deterministic filters; +// concerns like sampling are better implemented as a Core. +// +// Each concrete Level value implements a static LevelEnabler which returns +// true for itself and all higher logging levels. For example WarnLevel.Enabled() +// will return true for WarnLevel, ErrorLevel, DPanicLevel, PanicLevel, and +// FatalLevel, but return false for InfoLevel and DebugLevel. +type LevelEnabler interface { + Enabled(Level) bool +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/level_strings.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/level_strings.go new file mode 100644 index 000000000..7af8dadcb --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/level_strings.go @@ -0,0 +1,46 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import "go.uber.org/zap/internal/color" + +var ( + _levelToColor = map[Level]color.Color{ + DebugLevel: color.Magenta, + InfoLevel: color.Blue, + WarnLevel: color.Yellow, + ErrorLevel: color.Red, + DPanicLevel: color.Red, + PanicLevel: color.Red, + FatalLevel: color.Red, + } + _unknownLevelColor = color.Red + + _levelToLowercaseColorString = make(map[Level]string, len(_levelToColor)) + _levelToCapitalColorString = make(map[Level]string, len(_levelToColor)) +) + +func init() { + for level, color := range _levelToColor { + _levelToLowercaseColorString[level] = color.Add(level.String()) + _levelToCapitalColorString[level] = color.Add(level.CapitalString()) + } +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/marshaler.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/marshaler.go new file mode 100644 index 000000000..c3c55ba0d --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/marshaler.go @@ -0,0 +1,61 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +// ObjectMarshaler allows user-defined types to efficiently add themselves to the +// logging context, and to selectively omit information which shouldn't be +// included in logs (e.g., passwords). +// +// Note: ObjectMarshaler is only used when zap.Object is used or when +// passed directly to zap.Any. It is not used when reflection-based +// encoding is used. +type ObjectMarshaler interface { + MarshalLogObject(ObjectEncoder) error +} + +// ObjectMarshalerFunc is a type adapter that turns a function into an +// ObjectMarshaler. +type ObjectMarshalerFunc func(ObjectEncoder) error + +// MarshalLogObject calls the underlying function. +func (f ObjectMarshalerFunc) MarshalLogObject(enc ObjectEncoder) error { + return f(enc) +} + +// ArrayMarshaler allows user-defined types to efficiently add themselves to the +// logging context, and to selectively omit information which shouldn't be +// included in logs (e.g., passwords). +// +// Note: ArrayMarshaler is only used when zap.Array is used or when +// passed directly to zap.Any. It is not used when reflection-based +// encoding is used. +type ArrayMarshaler interface { + MarshalLogArray(ArrayEncoder) error +} + +// ArrayMarshalerFunc is a type adapter that turns a function into an +// ArrayMarshaler. +type ArrayMarshalerFunc func(ArrayEncoder) error + +// MarshalLogArray calls the underlying function. +func (f ArrayMarshalerFunc) MarshalLogArray(enc ArrayEncoder) error { + return f(enc) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/memory_encoder.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/memory_encoder.go new file mode 100644 index 000000000..dfead0829 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/memory_encoder.go @@ -0,0 +1,179 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import "time" + +// MapObjectEncoder is an ObjectEncoder backed by a simple +// map[string]interface{}. It's not fast enough for production use, but it's +// helpful in tests. +type MapObjectEncoder struct { + // Fields contains the entire encoded log context. + Fields map[string]interface{} + // cur is a pointer to the namespace we're currently writing to. + cur map[string]interface{} +} + +// NewMapObjectEncoder creates a new map-backed ObjectEncoder. +func NewMapObjectEncoder() *MapObjectEncoder { + m := make(map[string]interface{}) + return &MapObjectEncoder{ + Fields: m, + cur: m, + } +} + +// AddArray implements ObjectEncoder. +func (m *MapObjectEncoder) AddArray(key string, v ArrayMarshaler) error { + arr := &sliceArrayEncoder{elems: make([]interface{}, 0)} + err := v.MarshalLogArray(arr) + m.cur[key] = arr.elems + return err +} + +// AddObject implements ObjectEncoder. +func (m *MapObjectEncoder) AddObject(k string, v ObjectMarshaler) error { + newMap := NewMapObjectEncoder() + m.cur[k] = newMap.Fields + return v.MarshalLogObject(newMap) +} + +// AddBinary implements ObjectEncoder. +func (m *MapObjectEncoder) AddBinary(k string, v []byte) { m.cur[k] = v } + +// AddByteString implements ObjectEncoder. +func (m *MapObjectEncoder) AddByteString(k string, v []byte) { m.cur[k] = string(v) } + +// AddBool implements ObjectEncoder. +func (m *MapObjectEncoder) AddBool(k string, v bool) { m.cur[k] = v } + +// AddDuration implements ObjectEncoder. +func (m MapObjectEncoder) AddDuration(k string, v time.Duration) { m.cur[k] = v } + +// AddComplex128 implements ObjectEncoder. +func (m *MapObjectEncoder) AddComplex128(k string, v complex128) { m.cur[k] = v } + +// AddComplex64 implements ObjectEncoder. +func (m *MapObjectEncoder) AddComplex64(k string, v complex64) { m.cur[k] = v } + +// AddFloat64 implements ObjectEncoder. +func (m *MapObjectEncoder) AddFloat64(k string, v float64) { m.cur[k] = v } + +// AddFloat32 implements ObjectEncoder. +func (m *MapObjectEncoder) AddFloat32(k string, v float32) { m.cur[k] = v } + +// AddInt implements ObjectEncoder. +func (m *MapObjectEncoder) AddInt(k string, v int) { m.cur[k] = v } + +// AddInt64 implements ObjectEncoder. +func (m *MapObjectEncoder) AddInt64(k string, v int64) { m.cur[k] = v } + +// AddInt32 implements ObjectEncoder. +func (m *MapObjectEncoder) AddInt32(k string, v int32) { m.cur[k] = v } + +// AddInt16 implements ObjectEncoder. +func (m *MapObjectEncoder) AddInt16(k string, v int16) { m.cur[k] = v } + +// AddInt8 implements ObjectEncoder. +func (m *MapObjectEncoder) AddInt8(k string, v int8) { m.cur[k] = v } + +// AddString implements ObjectEncoder. +func (m *MapObjectEncoder) AddString(k string, v string) { m.cur[k] = v } + +// AddTime implements ObjectEncoder. +func (m MapObjectEncoder) AddTime(k string, v time.Time) { m.cur[k] = v } + +// AddUint implements ObjectEncoder. +func (m *MapObjectEncoder) AddUint(k string, v uint) { m.cur[k] = v } + +// AddUint64 implements ObjectEncoder. +func (m *MapObjectEncoder) AddUint64(k string, v uint64) { m.cur[k] = v } + +// AddUint32 implements ObjectEncoder. +func (m *MapObjectEncoder) AddUint32(k string, v uint32) { m.cur[k] = v } + +// AddUint16 implements ObjectEncoder. +func (m *MapObjectEncoder) AddUint16(k string, v uint16) { m.cur[k] = v } + +// AddUint8 implements ObjectEncoder. +func (m *MapObjectEncoder) AddUint8(k string, v uint8) { m.cur[k] = v } + +// AddUintptr implements ObjectEncoder. +func (m *MapObjectEncoder) AddUintptr(k string, v uintptr) { m.cur[k] = v } + +// AddReflected implements ObjectEncoder. +func (m *MapObjectEncoder) AddReflected(k string, v interface{}) error { + m.cur[k] = v + return nil +} + +// OpenNamespace implements ObjectEncoder. +func (m *MapObjectEncoder) OpenNamespace(k string) { + ns := make(map[string]interface{}) + m.cur[k] = ns + m.cur = ns +} + +// sliceArrayEncoder is an ArrayEncoder backed by a simple []interface{}. Like +// the MapObjectEncoder, it's not designed for production use. +type sliceArrayEncoder struct { + elems []interface{} +} + +func (s *sliceArrayEncoder) AppendArray(v ArrayMarshaler) error { + enc := &sliceArrayEncoder{} + err := v.MarshalLogArray(enc) + s.elems = append(s.elems, enc.elems) + return err +} + +func (s *sliceArrayEncoder) AppendObject(v ObjectMarshaler) error { + m := NewMapObjectEncoder() + err := v.MarshalLogObject(m) + s.elems = append(s.elems, m.Fields) + return err +} + +func (s *sliceArrayEncoder) AppendReflected(v interface{}) error { + s.elems = append(s.elems, v) + return nil +} + +func (s *sliceArrayEncoder) AppendBool(v bool) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendByteString(v []byte) { s.elems = append(s.elems, string(v)) } +func (s *sliceArrayEncoder) AppendComplex128(v complex128) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendComplex64(v complex64) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendDuration(v time.Duration) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendFloat64(v float64) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendFloat32(v float32) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendInt(v int) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendInt64(v int64) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendInt32(v int32) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendInt16(v int16) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendInt8(v int8) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendString(v string) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendTime(v time.Time) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendUint(v uint) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendUint64(v uint64) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendUint32(v uint32) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendUint16(v uint16) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendUint8(v uint8) { s.elems = append(s.elems, v) } +func (s *sliceArrayEncoder) AppendUintptr(v uintptr) { s.elems = append(s.elems, v) } diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/reflected_encoder.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/reflected_encoder.go new file mode 100644 index 000000000..8746360ec --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/reflected_encoder.go @@ -0,0 +1,41 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "encoding/json" + "io" +) + +// ReflectedEncoder serializes log fields that can't be serialized with Zap's +// JSON encoder. These have the ReflectType field type. +// Use EncoderConfig.NewReflectedEncoder to set this. +type ReflectedEncoder interface { + // Encode encodes and writes to the underlying data stream. + Encode(interface{}) error +} + +func defaultReflectedEncoder(w io.Writer) ReflectedEncoder { + enc := json.NewEncoder(w) + // For consistency with our custom JSON encoder. + enc.SetEscapeHTML(false) + return enc +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/sampler.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/sampler.go new file mode 100644 index 000000000..8c116049d --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/sampler.go @@ -0,0 +1,221 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "time" + + "go.uber.org/atomic" +) + +const ( + _numLevels = _maxLevel - _minLevel + 1 + _countersPerLevel = 4096 +) + +type counter struct { + resetAt atomic.Int64 + counter atomic.Uint64 +} + +type counters [_numLevels][_countersPerLevel]counter + +func newCounters() *counters { + return &counters{} +} + +func (cs *counters) get(lvl Level, key string) *counter { + i := lvl - _minLevel + j := fnv32a(key) % _countersPerLevel + return &cs[i][j] +} + +// fnv32a, adapted from "hash/fnv", but without a []byte(string) alloc +func fnv32a(s string) uint32 { + const ( + offset32 = 2166136261 + prime32 = 16777619 + ) + hash := uint32(offset32) + for i := 0; i < len(s); i++ { + hash ^= uint32(s[i]) + hash *= prime32 + } + return hash +} + +func (c *counter) IncCheckReset(t time.Time, tick time.Duration) uint64 { + tn := t.UnixNano() + resetAfter := c.resetAt.Load() + if resetAfter > tn { + return c.counter.Inc() + } + + c.counter.Store(1) + + newResetAfter := tn + tick.Nanoseconds() + if !c.resetAt.CAS(resetAfter, newResetAfter) { + // We raced with another goroutine trying to reset, and it also reset + // the counter to 1, so we need to reincrement the counter. + return c.counter.Inc() + } + + return 1 +} + +// SamplingDecision is a decision represented as a bit field made by sampler. +// More decisions may be added in the future. +type SamplingDecision uint32 + +const ( + // LogDropped indicates that the Sampler dropped a log entry. + LogDropped SamplingDecision = 1 << iota + // LogSampled indicates that the Sampler sampled a log entry. + LogSampled +) + +// optionFunc wraps a func so it satisfies the SamplerOption interface. +type optionFunc func(*sampler) + +func (f optionFunc) apply(s *sampler) { + f(s) +} + +// SamplerOption configures a Sampler. +type SamplerOption interface { + apply(*sampler) +} + +// nopSamplingHook is the default hook used by sampler. +func nopSamplingHook(Entry, SamplingDecision) {} + +// SamplerHook registers a function which will be called when Sampler makes a +// decision. +// +// This hook may be used to get visibility into the performance of the sampler. +// For example, use it to track metrics of dropped versus sampled logs. +// +// var dropped atomic.Int64 +// zapcore.SamplerHook(func(ent zapcore.Entry, dec zapcore.SamplingDecision) { +// if dec&zapcore.LogDropped > 0 { +// dropped.Inc() +// } +// }) +func SamplerHook(hook func(entry Entry, dec SamplingDecision)) SamplerOption { + return optionFunc(func(s *sampler) { + s.hook = hook + }) +} + +// NewSamplerWithOptions creates a Core that samples incoming entries, which +// caps the CPU and I/O load of logging while attempting to preserve a +// representative subset of your logs. +// +// Zap samples by logging the first N entries with a given level and message +// each tick. If more Entries with the same level and message are seen during +// the same interval, every Mth message is logged and the rest are dropped. +// +// For example, +// +// core = NewSamplerWithOptions(core, time.Second, 10, 5) +// +// This will log the first 10 log entries with the same level and message +// in a one second interval as-is. Following that, it will allow through +// every 5th log entry with the same level and message in that interval. +// +// If thereafter is zero, the Core will drop all log entries after the first N +// in that interval. +// +// Sampler can be configured to report sampling decisions with the SamplerHook +// option. +// +// Keep in mind that Zap's sampling implementation is optimized for speed over +// absolute precision; under load, each tick may be slightly over- or +// under-sampled. +func NewSamplerWithOptions(core Core, tick time.Duration, first, thereafter int, opts ...SamplerOption) Core { + s := &sampler{ + Core: core, + tick: tick, + counts: newCounters(), + first: uint64(first), + thereafter: uint64(thereafter), + hook: nopSamplingHook, + } + for _, opt := range opts { + opt.apply(s) + } + + return s +} + +type sampler struct { + Core + + counts *counters + tick time.Duration + first, thereafter uint64 + hook func(Entry, SamplingDecision) +} + +// NewSampler creates a Core that samples incoming entries, which +// caps the CPU and I/O load of logging while attempting to preserve a +// representative subset of your logs. +// +// Zap samples by logging the first N entries with a given level and message +// each tick. If more Entries with the same level and message are seen during +// the same interval, every Mth message is logged and the rest are dropped. +// +// Keep in mind that zap's sampling implementation is optimized for speed over +// absolute precision; under load, each tick may be slightly over- or +// under-sampled. +// +// Deprecated: use NewSamplerWithOptions. +func NewSampler(core Core, tick time.Duration, first, thereafter int) Core { + return NewSamplerWithOptions(core, tick, first, thereafter) +} + +func (s *sampler) With(fields []Field) Core { + return &sampler{ + Core: s.Core.With(fields), + tick: s.tick, + counts: s.counts, + first: s.first, + thereafter: s.thereafter, + hook: s.hook, + } +} + +func (s *sampler) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { + if !s.Enabled(ent.Level) { + return ce + } + + if ent.Level >= _minLevel && ent.Level <= _maxLevel { + counter := s.counts.get(ent.Level, ent.Message) + n := counter.IncCheckReset(ent.Time, s.tick) + if n > s.first && (s.thereafter == 0 || (n-s.first)%s.thereafter != 0) { + s.hook(ent, LogDropped) + return ce + } + s.hook(ent, LogSampled) + } + return s.Core.Check(ent, ce) +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/tee.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/tee.go new file mode 100644 index 000000000..07a32eef9 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/tee.go @@ -0,0 +1,81 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import "go.uber.org/multierr" + +type multiCore []Core + +// NewTee creates a Core that duplicates log entries into two or more +// underlying Cores. +// +// Calling it with a single Core returns the input unchanged, and calling +// it with no input returns a no-op Core. +func NewTee(cores ...Core) Core { + switch len(cores) { + case 0: + return NewNopCore() + case 1: + return cores[0] + default: + return multiCore(cores) + } +} + +func (mc multiCore) With(fields []Field) Core { + clone := make(multiCore, len(mc)) + for i := range mc { + clone[i] = mc[i].With(fields) + } + return clone +} + +func (mc multiCore) Enabled(lvl Level) bool { + for i := range mc { + if mc[i].Enabled(lvl) { + return true + } + } + return false +} + +func (mc multiCore) Check(ent Entry, ce *CheckedEntry) *CheckedEntry { + for i := range mc { + ce = mc[i].Check(ent, ce) + } + return ce +} + +func (mc multiCore) Write(ent Entry, fields []Field) error { + var err error + for i := range mc { + err = multierr.Append(err, mc[i].Write(ent, fields)) + } + return err +} + +func (mc multiCore) Sync() error { + var err error + for i := range mc { + err = multierr.Append(err, mc[i].Sync()) + } + return err +} diff --git a/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/write_syncer.go b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/write_syncer.go new file mode 100644 index 000000000..d4a1af3d0 --- /dev/null +++ b/scripts/token-log-collector/vendor/go.uber.org/zap/zapcore/write_syncer.go @@ -0,0 +1,122 @@ +// Copyright (c) 2016 Uber Technologies, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +package zapcore + +import ( + "io" + "sync" + + "go.uber.org/multierr" +) + +// A WriteSyncer is an io.Writer that can also flush any buffered data. Note +// that *os.File (and thus, os.Stderr and os.Stdout) implement WriteSyncer. +type WriteSyncer interface { + io.Writer + Sync() error +} + +// AddSync converts an io.Writer to a WriteSyncer. It attempts to be +// intelligent: if the concrete type of the io.Writer implements WriteSyncer, +// we'll use the existing Sync method. If it doesn't, we'll add a no-op Sync. +func AddSync(w io.Writer) WriteSyncer { + switch w := w.(type) { + case WriteSyncer: + return w + default: + return writerWrapper{w} + } +} + +type lockedWriteSyncer struct { + sync.Mutex + ws WriteSyncer +} + +// Lock wraps a WriteSyncer in a mutex to make it safe for concurrent use. In +// particular, *os.Files must be locked before use. +func Lock(ws WriteSyncer) WriteSyncer { + if _, ok := ws.(*lockedWriteSyncer); ok { + // no need to layer on another lock + return ws + } + return &lockedWriteSyncer{ws: ws} +} + +func (s *lockedWriteSyncer) Write(bs []byte) (int, error) { + s.Lock() + n, err := s.ws.Write(bs) + s.Unlock() + return n, err +} + +func (s *lockedWriteSyncer) Sync() error { + s.Lock() + err := s.ws.Sync() + s.Unlock() + return err +} + +type writerWrapper struct { + io.Writer +} + +func (w writerWrapper) Sync() error { + return nil +} + +type multiWriteSyncer []WriteSyncer + +// NewMultiWriteSyncer creates a WriteSyncer that duplicates its writes +// and sync calls, much like io.MultiWriter. +func NewMultiWriteSyncer(ws ...WriteSyncer) WriteSyncer { + if len(ws) == 1 { + return ws[0] + } + return multiWriteSyncer(ws) +} + +// See https://golang.org/src/io/multi.go +// When not all underlying syncers write the same number of bytes, +// the smallest number is returned even though Write() is called on +// all of them. +func (ws multiWriteSyncer) Write(p []byte) (int, error) { + var writeErr error + nWritten := 0 + for _, w := range ws { + n, err := w.Write(p) + writeErr = multierr.Append(writeErr, err) + if nWritten == 0 && n != 0 { + nWritten = n + } else if n < nWritten { + nWritten = n + } + } + return nWritten, writeErr +} + +func (ws multiWriteSyncer) Sync() error { + var err error + for _, w := range ws { + err = multierr.Append(err, w.Sync()) + } + return err +} diff --git a/scripts/token-log-collector/vendor/modules.txt b/scripts/token-log-collector/vendor/modules.txt new file mode 100644 index 000000000..0903ad462 --- /dev/null +++ b/scripts/token-log-collector/vendor/modules.txt @@ -0,0 +1,38 @@ +# github.com/araddon/dateparse v0.0.0-20190622164848-0fb0a474d195 +## explicit +github.com/araddon/dateparse +# github.com/hashicorp/go-version v1.2.0 +## explicit +github.com/hashicorp/go-version +# github.com/kr/pretty v0.2.1 +## explicit; go 1.12 +github.com/kr/pretty +# github.com/kr/text v0.1.0 +## explicit +github.com/kr/text +# github.com/peterhellberg/link v1.1.0 +## explicit +github.com/peterhellberg/link +# github.com/vmware/go-vcloud-director/v2 v2.14.0-rc.3 +## explicit; go 1.16 +github.com/vmware/go-vcloud-director/v2/govcd +github.com/vmware/go-vcloud-director/v2/types/v56 +github.com/vmware/go-vcloud-director/v2/util +# go.uber.org/atomic v1.7.0 +## explicit; go 1.13 +go.uber.org/atomic +# go.uber.org/multierr v1.6.0 +## explicit; go 1.12 +go.uber.org/multierr +# go.uber.org/zap v1.21.0 +## explicit; go 1.13 +go.uber.org/zap +go.uber.org/zap/buffer +go.uber.org/zap/internal/bufferpool +go.uber.org/zap/internal/color +go.uber.org/zap/internal/exit +go.uber.org/zap/zapcore +# gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c +## explicit; go 1.11 +# gopkg.in/yaml.v2 v2.4.0 +## explicit; go 1.15

    2>&772h(RV5P#2f<#HM^j_@|oXj)7z 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

    k6+m;x+`Dy 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

1~%ipJgA?WlvIN|4<$-`)HeGfk+5UXkpgW1(c7r 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�zRW>_ zHrQM)p4?v`=-gLmJTF45z*yL5$+IBt%c;7G6HP8B8YlG6b2;)GPyy!yTX3-{)g06~ z%cb<=7ixk|BJf=9TaYr4hb$u|UI}JZx>`6hiL@&9nE1t4ffXiRvs#1m<+aKLJ_NX6 zY~2skjrpmEoO3A}6_Y_H(0q!04G#EgRJLY?9BOl2Gl+6Tow_Uee{1ZoG3huKop)xdj6TGOrmA zPoRFMJc7INz)^jk>}?1Ep?&8&lsNN@VJ+$(>p8bHR<5H97RR+&_aR6tH5=LJhG0?N zTgL1w00s`TEW%-yO^0zZ-+MTa&65)EZrYQAUpJ)ma5sIJRMdMHUJ6qZih4tT0eRdt zZSVlWS?LF>t|>-!s_Ao{Nej8M6mRmQ5kENSa@6S<#u(D;?lsU?>r@8xaV0b0T{4=< z*UhIRXP%`>I-Y+5o36$%i>Zr*H-lb#K5wnC_7#ASs>92G_nrq2(2f_xY^^F}yu@Mw zLeEYxOmt8};RzhI@B&fU@;_9LPK1Ke(mMW@@2dDLkXGXPBnjPyuf*}_V6^bZ=`m;8yJXptU_~G)iR@n6y-C_m{x>e>FFT9brb>>-MhbJ5D{XLD9ul)#1Z1O5_6lZ9Q&sa%O z_7-~s(&c7iZ_KzB_mL%K15ytt)53p6c}>RL5L8J_*-{k824`<`<7SAWAx-0PJg(k+ zB&~E9bGYM{V>OFs7%f7>;IhQy3cPK7jJc!Has29W_l*=nTxc_N zIHblydBXj`FAl)^6T_H56PU2+r_<-=-xT^2av}XMl}Im$NdG-+LVAs^#c}s!)RkCO zpp}&>n5B;Wx4<=-%ra*3KxD^hxu)X}kAnDZZ_CGB(gx0x6pbw_Gy-)6QH{f>+fAAQ zUgj`Iq!8XgNX7h!^rXu1_=`)x=~uHFC#j}5p7U$@XzrsiH z;9D(j0Qym|{$XUfnOUsf-@R1#?g^x$DZ`jcrAp|7*JNXEEne}fZ{>|v`=_9q`0^9b z{$QzRUgmCO0mn`v9CQkNIOGJvui6>#gZY5zINjWtkYGIM#5|eWpTG$KbenGqouPpn z{}_PVB!x6-Mq8xmsewCQDEn_hY>xOO8JPN9kmu+RbSN`+YgRu82|hN3c=HvyGvMwb z;yw2>2xiLxF%$2f9PDwAhd8B z!;63qBtQ~Pk=jHOQANZWLxd#a7c~P_fm+KRCAGRpqI0EmcS&?+<}pbk)A2s82v@rh z%VTq*`J8ZK>&fJ=2YG+^nuyf%s0CyAKtn6FU5}5=#?^8i!&+eFy8MT5?4auX2&`A2 zxIsEZZ5YN4WrZ}No)uF7?jz`C8JulOnJ$@yO`zqKK&ikzf#*@I=kikDp027RJ1drS!35J^uAXr6ncB5L?pfWMFmhB=)G}K40>N8 zrMuI6qn!pUIhI}Nxzm@0?B$}5J3OXT1GQ|bW?@3nckY<@izv7S(Lr2|3mp@%&x;! zWlrq@U#7o#UxD%bQb}F7zIJ;hj;+FBXBgX5LZIE?soSBSh#c3c)tISQ5j@OVjri_1 zr47Dr!K=%(>~XyB#5HdC+) zZO82!V>~b3edzB^Zquvq5&HYqszJnQxf)idaSE+D0y-*R9>gDucPm=c@|gOa2W{C% zODGD|bFHZ;5Nu=pxSr0aTT1r~;-(64(y&o?KHdtvE3*g_&Y%4UkVys?{P+&X8}oZX zlEV{J?Tk-A`XS_V2NosaqdQQaf(KalsefT%oBFAG>{%@lPo*nGaE-}C>cXfcO@}px zUPToge8j~XY~sL+4)oBw?jg2VP*t>2#cipADX>siWljf|>7(LY<^*`^EHL5j7n2C* zd*8vjp>aU%lht1?yW@PP)494Q@GaKxL1K#^#q#_3YxMGApWfC8E@TZg#F;*F#$3hU zEL5!yo`MnVCET{KMq8z5=0==Os#Y<)2%@P}M)2w+OLw#!HBr%-BC(%gFo&7k2q>Qd0=6sQ*TBhjX%abMi&K4Ov@j^KMYa$xl4X-= z{tf$;fN5K_>Vg!RyIH1YBgZNHO7;N4+Kx?6Vj9!a4{}80E{mX=x@t*?QdP`R%hLwh zQ~*`~_!&@j{L`8kkf@e(4U9mp0O~aYX7mcv1Jh?rdQ_;%h{Xug!z;yUp_-023^bCB zxFyn~MCfsrR0xTRxJk(w8F|Go>O|t!OrH8+40`PCNpQN;<6{Ol#G(gmYp%P+i$6H0 zbDE1y7u+Ay{9jYX(fk>F5`pAxe89_|gU$ev|6808Zozc)dW`eD)sX2}bOpR#cwLP4 z|L<|0-5#Y|18S!K|9_{2a91$8?G}L8pFCDE+(nNw zH9Rfs206-z#NbNmx+He(As)=e1n52~Wd1bqhCx2gX#3Im`RM+Ui)z5?aM@V?k@0Pz zpRzt~ueDiC(Yh47DNCg~(* zqSS@bKgI}vKgwOE{L;<}8Ir@c&%H7Ow?3cz0XdS+-sxhuZBvg9W$!G%ihpzt&i{$0 z(Cg*$Psk0n_I8=mbJYmOqxh!h#8oA_Iz|_Rm|)>?xoiv_gRBipu^_vl*Dbgp7OTJ7 zy)^pYKn(5|I36PVu9qRQ5p$Tq!e;W;&r<1q@`^YPN895=d9l%5(>Lj>2a}Jma zL*L7;AptnEGy~Id{O{oqb4#BwNrt^)u2bm^6U-i|7Zy%n3TX`c+q)tJsBPqdHiH>G z1=OA+%_RS#(2Dj=K24l+$ADV3=!CGhUf_wwJRwa|Z+~M+pwKv6+|W6ak1k){yEjU{ zw0`}QvSWHqJKBwwu>0pv> z^{KtPWK_L;oUQ*3X2=gnB*Az;(@gMG4?E;LeICabkElE0BrwZw|A5S}cniR|J(vUo zwjvzS`@#1YK`!7lNa12@|4FS>X~oAQLA`?Tj4lDaBYUFm-!-9b6wMN~>_Mq3c0g}E z13b*+J^ro$+$e>hjdeL%>^g~_=o-+g=|Ne+(P3j=Ju6G^)~g+Vk-Fbz-@jswwv&Bv zKV3LJ;+aHH@R;Hw?DCH+Tpl>$rV(6>cHE2yP6_FS$ZX?OC%mmqGy8f1ecvc6 z$m>`2S!)8WTH`#m6KG{R?YG)5g@vti{6!)K7Bvgk)$f$Y%H4Rta97E=peL-km@kwt z6-NzoX+?s4_PPCAVcp{rCiQ0%oC3MO8!dUKr(sqbgJy;`Qd4H@M~)ISL^!FMyYytF z7av9L z(ANornIWk)`U)}s4(2q&AUTP#0`g!Mz+wu5g7*D$t>g^41>18p9ARj;|cx z+x2t*ziSqS>Bk8d zZD{&gyH(FVWYN#V!g>>ere9cOm8wBu`Z?JO&DGj?tNxa?ntn(D{r=U)>V$rfi&6Be zP|b$WFT0NP>jK9UQZOvKKtE|8>jTGg6h+A{3>!g>?QDRmvxRuGVm(w+U(UxiHDlwC zC`)2zQdHjOk;XyjECiHx3b>=s&lgn@z)t;t?|(5rucuUqnxDfO`xFjHOFaU(ATy?F z@G-9Tggupkep5W)Kh`}hQD6528 z1sRA7=$~IlVaPl0tt0YqvP;#;Y%NEvxRYJ9)M_uXOF?PYg(F90yBb0dT+ChUGUXRk zFG3mLI-v`ktSG|{cC_XoyC+U0(8Ktd1zNrOD*FU7+Zm_zVfd2PnrBDR^0D`F2Ja2A{JH+!A|tNB}@v#9;w2;gvf|M#Rt(Qp}=@Ppw|hS zaGLttu-}EF0^>8_BCqU;h54!(I`Qh9Ew1?b}$oL5)ld zJO5)IA^D)Vrc9^^RqK%XD5afwnCFUErgiG`@I$LnE5iF1QH}5U*x$BQV4e zrWa{Q$h}&9 zmlTp*R@OLaM{luKpMCd92WNoEtPk_OHiX=eSWx?s5yOI$pp?b=SA|%9Zc!sHfEI_E zi;+P%7h|@mz+ilYmEuH-z`V%*u^2yKhEB)I8#NSuXM3!I?+x;VS5UGol)iGoaH;h! z`SHFIZ0j<$$)e7&fUl!MWI8VS7%>s|FuKW1-Y@t8L(jAN@8bIZ7vxlM`a%mC*kcHN zev7nS0!h0}UjpN=K>wFnuvKKW7GirWa_Um*ItN(5tVVWSRF&xuQidH@Rr*7gU5T26 z4>JD@Zu%6b%@8U!Y8!?0O=8HyH`#*V8Xz{8wcJroR?{zn%X-3TCa+*`fiihT=AeAG z-(`IW=9Nlm*OcW&(RPElu?r&w*MCz)e}i&?D>XaO1>5N>T~LBoy_Jo>;4u}ba`0R2 znyjJXi$GP4AAm~7>Eo0ez5*(*e74`I5I{JksOg6_R703-p#e|qPN$ieZ^xxV~o_mYA=UH1S8t>+SMrRBwpY(HT^k=7h;i`dX4?Ra&TUP$t5umj z2*@^pp|Y=y)H3NKKo7Vv@zq*9Jx{JdQVTjh0eJdOB=)>qGFzj+W@95>H>fF+$xgI0 zM`sF)2F{P8j-gf#D`^cfp#sgQp2tu~?fHT5{x~RzUpaY-!E6z-KOm)v&WZ2+Qi zK>71a1W%gjx88!lffsw*JIFXUrigxJ$ox0sgKqj&XfpO0SSH-j^{eT^{+;sw{huWN zk6!;t(eULnq?7)k&J z53Dh)NdRxuDZtGg+d+>Ro2fCpafNH z9Qf0Ph4`wQSPBim4TLc9z&KI81R6IaCYr>YgO*DPSvfyAS#PQK|D5|#2ZBfS$Mkc` zLF{^bqPt#tRE3d z!$y9jJ;@ntErlRtz`s0-jnR664uY#$w^m9rD!}xTtSsS#Fe5DVR41vS9b`8);=@LD zoKH28VBHnHDXr6e0RQNdnY+XK!B~m}EYa}+5-#EsB;+%!P@>;>g{O~O_K^(FpJcml zAA7iuJ=~|hNuiZ3WqoA-s5+?WEu@Hk37IkZ<45D$r{7FyJIDWfKWY4Pd~VU>a{#C1 zn!N;y#9hiKh^wD#HQvqp_Jw0BMSew~ErW9(X=+}a=|aY?>2X#%0+kr2w6HLau#?kaT!iXjS0Dp-Ft`A)K90%Lw}bxB;+uk{*L<@Mf`Dd<&PB@O|u&zAnp)3U+Z z$k!K%wnv=5ThBzs5yy}baJXDPv2Efi5y0-4?@B|5^-6Xtj?(h(WYyLO4#h^ko5M51 zM2w){!}gd2rwVdvHWE2ljkP$nd1nNtZqVx}ln*749-4(tE&>gRQ86XZwX~5LvzIKwO+R1s=;zlT-<#(uopQ3m)`vuL}bl% z=`g85zjDBE!gXRuOt~F%Lm+j8q*%9l2S%JLubo?H6l&()%yKqJW!y2GU3lOxx(gX> z*i2skhAeYiUHDx^>@IA;N|D^b_c`wbaaAGF0t~^tNLSjog!5zQ z6nYoAKI63PL-Ldd#E_xtZxd@xjkvj^qYP8*Wot5!%vAu~{|*>%{`_qq2(ohsMI>el zfKHrmWThtwY6!=F7^6&(*RS))@N=#mHss zDLaJ=4|Jug**5MykivBbs#3Ac_sxm)#*Fw@9{C6O5G92w3wtL62=@!tVk1NKlVA&c z+Z}Gy?@B`lci({vTPHFRSYx7Vb3p}~;_cr0Sv;;1z8z7 zUk;zX{7lIwam54{Tir6aqvf6qc7|Wn1qY>^(<u@rRA6fRNcY*ECu`efd45 zYWRa{SOd>*S;ZfszqKQoU zE8nc*xLH3(Z?cd@PZTvd_RpG4oKAfCXGqQH-}4!Gm;UjG^lygLHllVQ`8B@|4{!c! zyDX}YF!ks8e86n=3cSlihXTWsFrL8u#1+>eu;touax+)ClhgSCOG^$68v01LT}cTF z@0>cboI+GDJ-arKEn!_g|JRWvVnO3na6)?34q8PA4-G>W@++vQJ`N@ z;Ck$!-%fI-{_`c0Gku*rM#I<{mw^d2$HR;8K+4TnznliG4)VKhhxp^PX!Hbd=loR& z@MHV}D@v}E8d9t9uqlrrEJC?sK(p%wbN+?cy|LTXi7lv)B?=BkC6@m z$K&!y{)14(ONx2?^<)oUer^kK25t|sL$YCviQ-=ps*g{D# z=DZ5a#aPjc3Php0wGG=`S6q`>DCuRs!|9cyu?gc6(CvYbAv->MT+5CeHex2Ki&)iT?BZksuY$XViKdcLGrp%I=Rl3=F9)tPAy2l6S}gdLd;@f2Y|z1e%Wd{W;GC2Y<-n;7di&LBFvB~xuNur6{hM(?`LIU#%l6^| z6*cA$TwOr7J-u?4A_4HSTz4X#`q!t1RIb5Jx0lbLni=$&YyzmSOdg& zwFH>7z^R#Z1aN=`?8fSWQH?EI?Hm(0<&&1d?XYDqaSa_0UH{{%km%P=hP!oa7=u$> z@>*v0AA>Va0+}Bm!_dsCPobam#FsI{KH{Ep{~qKDoy7va%_*{sw!sq^i^-s|GSgkt z20JP4zQG>T9e=r*m{4RoG1pqM0olUJ%rMU5nOh=IMU8} z_U0pWORshXULhNDt+I*tl+%7}gDI))M^_RVWUs9A`l+lKa)5uB84MAHW}j5${4y3$hYt zNt`+hU{R7wJ(vgr3)(({rS-_eU0tli?O#et`|^Wt%V2W*gN=A^ z?dvvI@`rk+l`X<}#O#5+W$KXBYq>AQM*)QjdhxyFDIEXB{rkDxB_XZA34z&^yP$BN z#7x9LY^}UI>;{t`9GUV%;RiaJC-qy7FgU~-_!$lh<|CgHXuj{3@76)bn8GMENSO@qG ziW(rn0D^%gkhW=!A`XH}#%)khQ4zv28W!2yf(szbj0i3jg9xI?qUQg;=iXag-JNJ0 zfAc+`kEFV)?t1on?zyMp7|QrXpR${nTmqA^UMpuapCM|@8K}p`t*t8oQVbV?ERkm= z_-UjI53XVi+2_B)(IYWrf?gHDqO2KiN-W^uAYe!e5Fw-xh!6#F>zX%-G9wyQs38G! z*`I7bl=#bV1_Ey=!jXaPJTkCdjttNVl&AEM*{9Sad8s9a2X?|t_1H0Ej{Q%L1cF!4 z6wLCd1#|Num@>pp9=zc&+s34Lf)n7=J(BF2Rt;;%7rMgI*{rhsJCVrbNJ>$=0l^l> zc$fDXc+G$-2KRvzU^5RY@>T6IS<5g+I2!r~TOZ?jQy0O^zsH^%;{84xmD#)*VxFM{ zIgC+Lr{Em<-OL}!^Nr_YJ1&)}FZA0?oG~xu7nfMBX*1VM5-yX7mf(t5rWKuWwa$DA zGYG{W{Wk>4)pL|U8Nvdg#9nuq?XK(oN?~F!tJWKT4wM`d4M8txSh!>ne$X{miL0%) z?H>;R*rm`U%4fY;Z32ULD0;{{tV~`~A_>Zf_ZasEc`mUDW+z)YNceJ_ehFQM^}oIW zXv5!2lszT zp9083g1nW=$5NmFSK<`mABIqsvJUvs6mh~Yf%h19lAbPPB_^S71VjsXgBh_U3(lbb z4cpN(20?N;O;zc!w5|}_!c6>?@oOO%Pm9msU=Q3yB5;ulmVgLeokF=)g5R=Pr4-7a zqg_(kTsBU9#j6&8>deaK=j+esqMgkE;3BCLCcsMGhZ2*oR!3N>fe-4i8J*kugDV`AjFr#;Hc(Ph8BhQq-M_gfB zV7wk0=u*dormV#5kk+?V*qwRN(FyloN|f<)2~sJ;_z_kJEL1E47ecI>fo%|0s08Ijm{C9As9gy!@UNbXb$AK`=ECIy|3RWGT0`J{ zlOkvWTp}|S%grRqd4q_6VJ?&Xbz71C`dmH#s=^ds@EMtNHmHh_$p$wQQ1t(Z&j!O@ zAY;Jp4|j{Z9P|col;W^A@V!?NqhMj`TEfHR_>?7!H?Yl%xZS{ZZ(s+B_P;3y^WGcy z*q3qG6?y`4+85XbBmbssAkYmrQbt~K(Z7j3&XF@A;Ictdo~)98R^S;(LK3F?vFYTR zeu0R6j~jjqBxnUZ;s1Cqf$)XXa+Y`=y}|2{ihc)90EXH>a|w2gf(WME&X|4enGC+U zf#V3ysFut9+hkPhvaxHr@PlvbrXxBlAA_LuQ&=1eEIv_!p&f_;7TlV7>n z?kYW2YM4}<$}4TAL;p|nW`!sFf+OKgyDb+!t>U)a!-=ao8`i5A%!(eo81+VuI&p7z zjvCvzo7AWY8iX)c}=8udW`*S4jt-g%UC%b$| zz8Spq1FTIu7g@E(;I?mu z_q=epX6&8Z3657F`qI1m!h1X$zL?~TU7hdc z{LW$_NKbGIb{zT@`+@^t?P#*a{@1o|p=MWkDtBDGWb3s5wCnBpsm8PFNGlIgba^`A zi*kmepzGA}D{#K(y?kUiPNK{#XjZ-xqru8?2!#C$aMN2~29(zVJ$Vw0KP3rlHUwK! z{>)F_R?B8EcopXn2zxPjZ+(TJ5mKd?XXz#e@`)wuGfKl4GhQBFVYv?@FiXA*x{ z0SS08?zDc`2`h#}qV7bO{|q>1;VF&#r8_Q}`+x3^!ys_j&uEV4t|cvSVp*>QLh&7Y zFf-jdi0>MxyfZu5Kl~E|F}q`Bc4nmuy@O9T_%q|elaj)YN%7ul89Aw)dM22ZrGMi4 zhieHK&S{&O6MtB5AnJmsAl7}syyR@y2@+q4%($3X8U!dNb`EBQe6`8AnD~A$hHJ)g z@>+ZDf{1_$_D{v0cADOM@dY2Mly>J;;ew27H=PAe>4+eUZVOtsK~$4`H*)N|JSg`; zmxG{n93=^F2yjf+5Db$_gtF1O3ZEyY$V!kDi);x&t9)qQM$NZVPu;>uTA zSgBo)*kPlqh2_D2){gCJTpL&j<0_FW{c)lA%dn7;z|Cfg5pU^pZ0-*84g z%&-jCXsdw$Jp141G!%btH;Euj&q7eyxX-_;vrbUYZ&A-v_lYq_`<#n!jZTS88x=}$AiykUs!JB2y zhQPBY^wYCXT^+2^P86~^qXJp(by>Zdj0#LG06XBqCA>J%VbHm;M)1I^g`VZ3Zi@cq z>+|DjuBClCo^J(5fSf~#H(gBmC!tO74uV#;b;LsLV$K7jNHe1VeE!384tC@Aq6pug za0064Ky>7pf)pKqC3vNlC{yFnK9(qyS6rfC4)o8;mFo+UW1@&iE;9ZVr=bk@4?Cl7 znTiS|t4M*RS#B|Iq~7pUYruXmbFc-dSO-MFFJsA^3b~fE!|yKI$+5$gfQF>g&@e14 z)CP+`^W?Wky*=3SPF4;e#2m5Oo{-Wxwr_{yb2R#IiNw7lt`>qde(fVCVrps>*2!N{ zgc$#d>c+L?VTo`=8ZsQ|QCsGEN8ADdGHFAG_#aifM1n;`3`vBM` zW~60<;73@eKk13Fps#=P1*G(l};VV$% zupa5CEB`=9gnO!&QaYXCz@iNOWnGIT>4W_P;~<$!0*)8jtgjp178peLQ4V{85;_R4 z0X0f?uy;y!@XFNe;8kf}D0bZ7+i2Orn;7%ix+6DA5_|~6NU~l(*aV90=jG%+?5V4H zz>7iVg4Q<=Ld%5PzO1gPld~{02dO>I-^EB2M)eoLqMrWWv_ctf^?rraj$bvy!lwnI zwVTOLE;2Oo8zXeF1asiS8k2*Sb*^ja;2eZ9Hp5n;C*z&T_$v0&=GTM1pnt22zA1wmjE|9Own$VYw2;L0{w>@?Un@XmJIfZ zTagNoTOH<54#fZbHr)T$Oon_#=qL0mgl^)M&6N9JA`wSifgJ$oFI}C(`)D!{c=4yg z|FCn8DXPI1#XQ`(URMcqG5C!7cZ^^$OO@&RaF^O6fPd^&ZW;L}rNDRd z9Dm|G>J|Bv^@w+q{>Orp;h2%yMk@sNS!aIBLdd{@7uHZS3VfUyqiFMX54}HKU%o4` zc0llII)jo+CSHZk{RBRQ7!4B+Vs#MhJJk?JU@hFE)R2^tQ&PiHKtJG4H4;xCHy`v+ zfc4)}5Jx$wBPUO&BhPx}{hB)Kg{LS`HWuCt@JZ$t4d1D233l1kBrYojf7mX^bni{JwGa=h&p_%!$gN{N83PlFpsV)boT{~Z&2D~Q0WPPp zcAxkNIkkdyj+#>(=QLuXnp0Obr@N9JbNXwadgcTRLntYDJ(z3&Ml&Uq5w2aKu|=3- zVT^$r><$BFu0kQPOgM4Z(td7eNEFy9J$9RS83}ejOcH>`jS{u-%kc)d4{rri@w!Ue zkR0KDO(Fc$w-pc~Nw0>hR8CU_$EJ`}llVR~pgH-3LK*$-0wS58q z?y`cWfG?io+cJ~z zyey{~v7`ofcZw%tix&|qF5i~$K4|m)p^Gu{zb1P!4iuip2`=JL@o86t?X==T4^%9V z^bqX^0|UYJ1K~tiv6vzc4uE58<@<`(3dA!Y=?;9O%#4isWE1RQNEV(C%B@K?ikF4x zg2O$u5EbJI?x5$UQLSOAPtp@|dg27M0Ax^VBg_tptqU6_61bS;470GS0L#T~*v=aA zq;M6!^U0eA7CrYQ$r z1Yb8rP1rEsiY?*5R!vKq+(12LXudEJvEpzuAb;VT93|-YqdE168`@8n5;zKGJf1ZS zn=guq0{q0x)%DCv1J8HdjO3`Z6{bA^iSmZ36zhg<7)yag{!IJkSPCkbXn) zx1WRWJT;d_p}`PeeW`_QmlNn>P)`v~sEA07zvtJAes;1-sN0^dgzxvRQk8}}ekH%_ zd-8a-K2cMHavTOQjY)zmPVoc^5C#+f8mX3|I9Wt-vej`Ts2$LtD6zKQP!H^_RbR1Z zU1YHo`7A2BgQQ{|o<|5`h4ZorJ`$u=ft#L&XGf=oL4i*UI(-*iQorsi+l232)T|M&YF+A7usaVF+SoyR- zW-9V&?8izz$s@=o89azz8noq8yG2p*sogrtrwu-)ZC`CjOKp=$eD97g6n&|2$p>>N z)Wh?Ka98k)748&V5bkq3D)^=KQ1Ij9aDBk<5#Y~;-@Tej2tP__r+goVcfP=Cej}_; znL8}sFTryM{HTS!8P(pvX0OXv?fvOfey<|S|9SHPq2{3czb5-K)+qU2flipe8}j|4 zj}-j)h$=`19|OM~FGs;|$J!|QJ{R?MgwuXNkg3*w`kQb7bU)}fUAHg93Gqv!tvv}A zm0nDWF=-n+@Jq5h6O877|6!ISz$WR7pAu8SC8zx0(nx+Vl0$x^lIG1WbSQpY35P9bpbvh2WHZ#1J?qM+T*&CQSQYZi62jC_032ooTXzXr!M6ZBKMFaJvtHhe>dd zR$5Cn%|WBk@*{#|je3$cKc{vKq))o(HClM+FwH(y3&JCbKv;qM$ z=W&P_YMcyJ*XYa|hssz(AKt-Wq-1mp=JTS~H^<3d3Q|!SjnLc`Xc|uX1-t~B!+mrQyjAd5 zut`S)_m~C(AK;*s)r9gDgGkjAujBv$h$>z&T@D!QZ+!Zj9vn`i-VPbr`Usna;=zzy!|gc2`Lr~Rm~j&(J@pVuK9`Dn6BzhKP%Syc~6@c$}Y zSW0LmI5@=@*iE}fh6Q7V!=l+yg)0mluaY7pC>)n4haCc(2`ysiX)3?nCH zX%PYf@z^>Sq!7EV7_t*jO_5`zNWIEt*2Bc^j-vJrv0BY>0?vB54N;v5@^-OKZs4TL zhh``$lM4Q*^Q$JMD0lgdHgKoutr!k1EikWwLkrwTUhrpzp4ZY; zY+Ts_q}a7)yj6n}DI-(lBaj#lHhn$bAU^NrMQ9azM{*q#Re`YOLx@v|PiPajERl6L zVZ&W)UpOVyDhJ@BXEjAS3wu`o0;g{Qa>EQm%#CtFM8O7xn@gaA2M=-7PSjZb=_H3) z`i&QBt?5#_Zu7D;SXiPzx>R9khaN|e_``RqZOCM4Q15z$;@iIgsa!l-nP-cn9;3vI z77#9o64ya(fdm~TuI{Z-fDbL%Q2e#sW0!!GT#5=8M^d54*G>M$&~ZcjktX9;*18V> z+Q54Q7+5hle~0#kV8O9U6YY~S#=^%{-%DLkuEqOMVwcV^U2$uQo30MY>-f)mIwH;3 zgdJ&?ysjR?uHSip5ht)Ybd%4k8M#1a(X>WDCX#`eKNbr+$-Z1c;btpt&G-V6YtV50 zATb~?AgR)W(;zwRoJf$A>(?42@Aqg3B=K)I79^Fh1h7919;n3lxLJtYFBh064Wf38^Waju5fAl5w(3-+-Q z4+)bG*3C_Y(KFGF<8UiG%7QakMmgjOR#wPm5ych74*bVR43rHSn3f&98RBRtZtlQF z{3Ps=DxHYma49QC1Ab$}yQ2}4^io3LrpR!Hbi^x&G}qGU(kJ(OQ}M>C*{lR6M++gC z>I;tUnCc5G6wA>EDG0$lnxA1@DDD{Ez*teZNbA@5@2hc)88r6 z8p1OM%8x*?o+f5yzKl+P!v*{zq7M=!hr_{@W(U1ERdQV^$54I2GtCJ;924hRMp^_3 zsDVX1ckNLxS=v?B8TYt3y=?gHy}_&SsVA7mx=U1KSF|eGbrzgasGX#1=i(Yw8_<{9 zoH7j)x71!NbL22AwxaguahI;!uEta7SKa(R*2QE!5zPRZ=q2D}YW{)xggUU<5b$Jt0G>8!ac)3o9-J;- zST?1g=*2(>p&|I_!eJ4=1rG{7LIUGwx-`|U9LUnc?gIU*dI1Ir@O+epRWRH=s&8Ok z0dBm3X^U|2XKwhrC~JjYEx`ry9D>G*f5eEK`4Q=IV>VD!e85ng1;+M8 z361$;Pl$g&vt=YIZU-P_+M4~9m?f@K`HmjxU*3*QE}1eIzSH+O1PGWsiHj||x@5}G zxWb%uB_vbqqm9K8jVXC?g_o(#kz?*bW1;xZ7Q%YyaTCpZcY;3ayy7(FAP%+9x)7!T z^XG7Tgeind@TCa^-Ma4IiAGB**)-OYAK@>Q(>)#2<*(ZlS|nR}A!J74_lpk{o`lq+ zd=#wg!cih(EFFT21!eyZtC>DH0V~D$AXu5Hi}gV_t``W|UwGfQX{K zCFQ&el<^@Nk%ysTSjq<bBZT;eL8xElYp+%LP*G7 z@XmSM*+F+Ywh9WFJ@{N6P|KI|YcK4E`ZffQhwwlPq>e>=HFoAUPDjpP6_)%OJAo?h zhv3WU?2qxyZa0F&F%R@YH9ep$;wTebrT56Aen9eoR15|xP}bR=fNcEwGrMpSh%fX7 z)Zzl)0DWyPTJ!`CdjdaMPcNoif-_b61S~O&0d6$p0Yp@}MHMLS&$J#hU?se8EIG7@ zKXf}IqT9(qJGp2l5AAR|fNZ6-Q(?EWz_i03x}6iF+Nl>+9_Z@=?41pjrih?Co>wf$ z(~Z3Ux|)=~vIH&16+!zyBx4A^R)Kr%WW_^v>{9U?2Mcj@eNhP>;KV#>0QjFDfqyhg z$&PJZ9^y5!L^u@o-`zsoLl%IzU-_$Il%8xXl=$SyhPan>is4VGPWw;QZ_WC5>H6JO z{ies7`r~8kbH(Ny4y9}|c{pdqov3c@M$R&_&b7=(%$#rbz&-wTFaZx^V+>BRETl@-Jt;P!2&r-Lsc56SA28Y|gu}TJI*9f!Bi@w#yPx`P z>K+kzFajy@xIZmdC?rY)S`!o(Tmt3ts_bD!@zv_^;1wRn_mL3aqvAubq9I_9FU7DZ zhw`QMHb+k5jzjcUlh_Tp#8oOSgZRS1C&aya#L21PD6t5WuM5IAHT|yn1_!>zDb3 zdhNCd&t(x;B?a}?B`Wd-4a5pwabL-6C~;SNwRWrGEnagNe7!+l$G5t`v36q<_Hx#{ zRIS|vYg5+}nT}Ov#8WIrBk%R_Q_-IF`8eUs<s-l%Gn^r z=$1gyeGpRJq@Qa^>n44>Z0>X1`{bF7ckcb79G{GTzi#8In$s!&vFA}V)3$bi^%8c0 z4ZGEaY8fL$=U)x>vV#+*0)RJ9=EDmx>lg{_k;+LcOs` zj(w;^k|ej|VUM^yq5e2U1rY<8a`j)-4$9sX?x5gV*#FG)JO4sk>*AWL{iik3urx6C z7#vf=W_S`d!}SjNe7wb8kJ&*fM;-2u<0;BC!(D=F#`SDLcCHf25D)D?e4J~BTa`GD zK!jGg2K(nY`m_%S`#!vXetiE>YfOOq=N}cGPT5reNlCNlZO0P(kOOU3sPiv zHN`qc8hw=_!55rL3iAa66{?aOl|25;v8;sicdV8!)zYmG2%F%m(t1#GRiPTi4f=xV z>dEtG_O$!TkxDt%JgEem9S!AEaRDH-AzHFzc@fgd7t#$-P+WV02iBk5S~p9jF?qgV zR=zLjEr3l~CjCeTMSteUvk51JIf&sPre+D=TNkK$#h4ZEkquo{E2-dJKyoYkGar%K zNvJK%g@q*E)}G=CRr21lUcfX%VsOH~cs|VaQX2U&Q3w)I4x%D&G&N_AI^w$bP7&6~ zj3APleG_-NER2~+4J~w#|M?UppiL>@TY)Z^2w~Ru}$)0!RE0e?b<|Kh_Sv5&hd5mvUtd+&Ys~ z0GUVmQq%Ld*Qc}(!ub~w{7d^Fl^2M(6kZ|XPJ*sz&1ZpCW`ltOo5idIEZL0xE*t+$D{Ui0eh@73V*!4Uqu8~v4l4Of@48j- zci1`@_8RA|tOF_byVgNe1IfAp>&6WbBA9c9bf6PR7;PR>i+8R+kKUown7}4Vjq&}8 zxA9(=x87&rz-LiW5GClsIxv9>Vu$l%;u_FYdjmI7?a5dGMS(j$mU1lcKOgG?Lrj7v zlOM<4FmBA#dNkyjrJ9VQH6*_#Vrxk8uiEkb-_p+k|0>N)&`&Y1pdY!?;FIS#$u3uH zq01GplydO}{ZB--cdXR5YA+-gIHwUH#h}Ng&m=BD3~UE6q;L!@Rwh8`>SUja)vIC= z_$`==gME3D6mcg15n56krF31fpDRO`Zt`cge}H1^FINVdZ>l|B z@n5@Vv44;AF?t-njE(n}F})e?IqYnlK+e+HNY$Ft8${A&eL8l=&nIKR%@9yUg`;<% z0f<8~%2{IbTAyAAm4laV48wX?-w29B@xNr_0|3Q?zo_$PPQ9OFJB9OSNt~(UPbnA3 zNx`85b?``9nSnujLOCgjpQ4+Ng{%+pOjxRbwL?1aBXlnYW}l0AQ^fNf0%Xn(9OuEJ zJ`t|;y}m_Y7H?<`6f}K7$rFI5?&3S86z`o z9;_%|C<~5a6@tJ|8~wBmMhT)ccETP~ILmHQ%>v{+d_+7*tE6;e4Ku7zQY#^*K8i=t z!}+N2Nh=?$hW>W4BtDeFw=9jVIf)<+Z_Pcsr48bf1}kz*kl{Y2?f3X;k0w$6?#Q9R zpsjjroBK1j%_5>?b52zWZ_e@F+W0h(BbN1BZIxv$`~m+WM!3c`<8}djQg-m63JegQ zDA#lg_4Tl&81DixfB+JAjKjn5La&Qh+@0Lpj+fw{QHr2-d!W-HDD_Qi4Dz*H(d z<{w(dAJ%bC)zp#f;rq@hhh18DIXvLr;4+G8Z}3&>>g=E-(j;IN&*K=xEMa>Uc<3tq z7^Mskd4pb9G!t;V<92?d@cC!CE?KGLoWF9AXE!m6NS=!MVo!Jw5Vq|r_H~%Jf6~OQ z&UdsnLemL+u1b^81gUZZMi@yqi$;-d%o|-23!~^3l64E!F)iGwTTpLImcPgr0D=|g zp{A9E!osk5Y!6e;l`Bl_2P>rIfG9@@J1GE?&u0M$jrK53JS-BLCGU&|woZ6n*(c5s z!+6;G3@K9Wgm{CeRQf5kPhB&zuwx35^4^oIK8V zxABFG z+!TR%B!(*SEY2DUpp}co6}`5!CUYWGsqijAO4IR#6-`Rb2eIGUR{H~KTs8XFmXOw? z_6M+2Si!NV#gcNGi~_F7tibiPy`dnk@hKT31%rdI?irScwF}Hzu3K`kZs}7-uwe<6 zREsC;t(yTR23oNdELzgITq;0#XSzT06e%hxeaofe95++?7Q03B;)#_?7~>-f=pq$P zwmKe;R|h{1OirO!plwzOR{aTC0;t+Aapx}jOo*^{8z+)mG9g*xAK%4BlkT#6I`-{@ zk3jZ8yKXLTb1=7^w=p3sm-Z*M;<|PS4E6QBQcxbKDMXO~zVQ&6nC#EIc_ycarBJVA zED`e`Ck?=nOaiEo()d6OmU;k+7p-Hl27S>BSR7T}7s)85FF_f8?(bT;6Rrxyk3>`= z)5pAN4vFy%Q#|BCrjB8}Xk4M1nS;^YdqHaD{FHD2Z1OvX1wb9M}*XPvNr< zJRi5Q5TC;Y&Rt88Q?vG^P|oQk_}tUXAVwjNZ~ziZFBFihEuk@xFuCBD;#9G}m^!sL zruK0@ruJQuA%j4FL?z!0`twa7=xF zYfQEAVMx{R)U4xn3~!l2)5Z+|4qk?YA;goFTkDPqPSL}(p8}ecnui-$1}ga@QZDlR zGCvJKUPPkb9>gusPhUwWe$#eHoG-7S#1XeSbhpR?*ioz@=5$oywBTRwoJYtSW?lK#T>x?afU5j0bi- zfHhcM&2UW^>5;?Z#1y=(V~d?ouBilS>;+NO4+UQ;Mlcj6g;)&k|E6(b9ySRG?Y#~)jZj3t=0-jz(X3Qzl)MfmAj zjtPA3scorDB#zdPkG**6-r-n}M-DO!^YDd*dr6G?9RhPULwYFHcm)J-xdUEX$49`+ za==T$#|4=L_y8)S>Cfb!ARLPmuo?Y;#OC{pQ{h~F2$nGp9j0Knk*kj;kgqs5$A_R0 zMR`^&Z+RYhgcSCHl1w)LUdh&b&myw~=nR;cS_Yu{GtZq$s)F2pl-iD-DrM!~IG1D2 zO0n8r#!mVD50hwWx#-2<_;mSXcKsg~L}}#c54QI$?~dAoFdsx?X0+*xTiO0RQR2cj zL%)P}*QpK9bbM*@Z0ntPJ^lwNR7tp2E?3o@5afRbw2xJ!vnDN*>2Ur z$w|5ciG7tm`(PMiKeJ!4{p9f-@af1<-XTTGqwUH1(aZLuuiLS53GP*43RPA3y$xlEcv<9{1zp349!i9~{I!%S*i=jiB&#gu)H)IrdpzZNb%`J#va0 z%zyqk%{w)lBX=g0pi%r&qWA{_U^Msu{F9>2<|60Aaxw9E$mJJM�+&OkVlA{A5yk zwM{1{I7?5*(~^nU#VBnfzlK7;xk`m5{1fx=_*df5Kd~4;56DmTITlyxm%IxWqt}6M z9B%~i4^P+fE2F>LRXT(3F(EK`A?5iYt9j6l@4!iWAKoBjxn$ztIA(7flY;$rSh3^P zvEr(l=@<_QB3Y&WJZG3dH10k?bVQbds1BI8^fL!U|N0jNQ3wnq&!f$VzIFQ0-SBz> zD=PzN<7C~2to}oZ8S5Qww2N#5)$hb)tY=j9$*jK3t%i`vS%wmq{o<(puj3HanDU2i-3KRvR4HUAdAU~{JGN>FKKst^%S z(}E@g8P?i!mtohD!mi}c@pnb)wvyrrafK%s<*Ef0YNxMrPiO*~OgJ94uKzNfPEj=2 zapFuj>v&q?3@hFY`LNjrx$2%%`mK;i!8A{8947uyeT-c|#cblz^@ zHKea_4s7FnP$ED)K``=S*@g85OO!SooF?WHkET>H=5cz*5>`-Vju?t2W3;4e#9o-H zH$H_GwqV*VlQHdCnP1e6S|9f-a%ne3cSu$(=e8E>fYljP+6Yi$U5O?NAA5w~Bnw_v z_zl!Zbyi5z4P=tudxo@u$$C%69Da_|l!k3EXdx$P9z=~227}(7R>QT+jZGfqfAbKA z6IV3E<9~Cf{OT``Bm7kI>TV`m4#nq`g5F=eRMC3|-h$poeCMFISB@dQYmiS}OH4p& zNjM&2vy>KIvX2$9szO+6|CH>&RQgi9fmi9T@n>FJEX)BfUIFgKXU8AbP>B%fkFhSR zKz-zsaV-sS)T7YSjVfmA&AGVu1ea9c0#3dS7Jxkso|v~5T_w{9Ovg07;AaD&$mprU zG^|%0)3D;}o5n=A23p<=|7hjiih+VNE=F{uu_@G;50i>~%(zCE5(hEK&LP|Ho`XIk_f zzPxMw5JGB$&W8YCNV%kFA~3#6;YmXnaQszZm}E7<99XTuMi>JNX}?)V2Wcz#X2~Sf4sf@sp{K1pbH;X9>&O#LRQHU zh{&f(Xho5GT@^fsli~etUB&T3&sD4y_V#HycHf^m2eI+0|ByoizQzok7D9LsrCF!WK0A+R6(Yv z7z6HK?Z}`Q*y{P|8_it1`*%i53@?CBL^u{AeI8XQ z?$GkJ@TTDVaVJ9h-Jc#I{UE5yJk7LqKRo>{@i;L{0P^J{aV(d4fx{y7L`e*SjKiC- zpo5H~ZRLSHw&#P)Px)|1=|&M^W#pRFRbMDpGbe|@K8Nkrh{B?b;dji19hZk(@)!j| z3gjDi&{I~CBm=>20D+Gg=W)dbr%e36emNn|`WwDX%7Nmk$|jksqAl(pN4CLEipqFL z@1@DF$A*Ny=if)sVZ^}L6s&0NTzi3iSU<@4)%%(?@PdE`M9BCvJL~50sV|_7|1rd2 z8E+ty&Xk7xQ)(^SiAVm-y0IKiE2J~trpqJ$KmnRWB|br=Zv*i5UB^dY?lQEfRtDn- z@JSSu3^UH4;qn*#9@wr@x-kOk+>nlXeOoE5{; z#Mzi;H3g`|(O*`9En1o`4x;ctFGQP5!V>VLU}(Q%we9E9qq` zChfW-5j@971Z&SpaSW;rF>u*u-O94?A5IqgbN(vT?Qr z`>&m9?T34S-hsNUvpKa;VrZ5_DPL7zTVk?i+)Vhuc&+*F#~3?NtuOmQ^1z05t}kUZ zCkdeRqAu7z?|H5SNUnn+I;LX~sFjg82#=Z8rrL5%X4I@s1cM$y)LfF$Q{rD{vAC<0 zS+iiJ9FjZwcWzS;D&)cR_P9d@^ubLF_#9O_aJ_&Wl`)OwT%~W|Z^`m1{Ds?S9{zGs z>00{GYWcZDq;OEqri?O%HE0cMQ)qm=uCUd5$zToh$2~qYV}qPoXQ67)(vQ{NnoX;|4ESz z(0r(x+|n0pu}IEMDaSlADL!P9kF#n^g)M|fSY zT>KaV<>id|SIOf75-0D^{9!c38P5(-YEf2*245NQO_PY?5H$kc+w!fF8#hRFB9rCkNFSP%wbEV?c3S1Cd$7V6a z65a*wE5pT~*+W%FTg4Q_6N{}!QN1A|gnqd~=-}aE;NiQ@iVpPJWz;SQ9u6FipaVgq zu**a?U{kwVC9liVA_w_Z8`zl8esr!+E7kgR0EN)hJsV^;3p-ZviuI{np+2g4AIyPd zC`k4NF>jSZ-WT*hPz=W7CkPHKrxwZOO(FwpM%YG7c=0SfXprkUdc~^M5ey5qi{uAx z9JPcFye+2${;#47JV61gUh~2Sj~pq;ZeX2%uL=iaEidzk|H}(et_sU15kL0@zC#|K zF)y@6;$^OYK$$RZt=W^q6@5W5aAlE-tWffefQ>#Fd_lGUD@L8QY6^qNOoSS(NQ}RL zwvZaKw1Hq#;vLx~%5kBw7wR@;E&FaE_n*RELd#Zbc8|su$y2>jhQZIuY?9EL-qaVG zXMt6i1D}2Hdk7`Cs`V2N_G2TGjooroZQ!$vnS10oFp&y*$$ANNs3 zK3P3YyDy>*)2;>@@m(R09bmd-K@{Z-n-oJiOm-Y58}6YWwjLr(HE|%SLfSQX7S75S zafYZ04pH(o^9Sw!c2kUW(5yCfEjdumLBbN!fsrsu2m_@c%X*XJ`!J%`yl!+|-|yBn zT~Qg({$Yhs{14+Gp9Y?%qE+#^yXuuvfe@~46g8qUG4l~5}7znc!mC#kvr?J6xM$%GR3eN&%*fC4AiRk})= z*=C*hACv`}gb^FR<7AGRV3#TQpqu>#1L<;+<4EK1coH^f4;EfUI|u26xMKuoJd8K2 z5@F=rg~H_k$II2F{<2gj6O!?>Y6Hr6~Z6Oi2K zjOz#f^OPo^kfl8kB`6^th;kM+E(Jd24TwpLn^5Aq8s&R11<|V=@pAZZo46HTRtl+5 zZQJ*dHeLB1D);Cq@r?VtkdqNr{Hv0%XhQHjVi}L~X6)k$GcF!L zJ2(=#0jnuwI#BXq#~3+jb}d_T6HbtqvfHPRnL)V$fj)d}(U-AWoiMWsfWqFX3WeHc zI{Wo#6!!Z5RPayD_Y!7+#srC9NR$B`*&T)%t~gxZzLVMJX8dn4Dk&Cu3knS^l0Z%Y zi^TB?7LhAiW0o9oFDb?j()16B4t~E!5<8FKA(>Yulb2WO^Jiaieec-czeMb#J5WhA zBb9@LbHn+ai9l>SO-IY}1N7;r|C5+WCcm>C|0jc+x|U-GE=_E%$@V#2My%pS7hOiA znm4*6P#f6-auLY%u{(?Yt)pCiQwVIPg%L`u{lXRkpVk5-pRV9wU8N7(m#Xt-;tD#xrHn(vB!eq#V(?22CzRMpV-T%vFDFFIM;#xN*l31m zC$^c-rEr^*aB(f|-4@3Qcu z;v&Gsn%xsn3dN5e4cW84gOWX|3Sbpw4n6$Nw@MF3v<$j8aH(b;)3U%N11$?UV&EcW zF;TuC`KUH*xRmUSgiBH+ToxT@04~q>*)nt^$kTD?(#N zWvnmSZ3UJgFwTBY!lHlp($5Qz@%WE6Q|>!byxKeJ*+byk`gXwet}_)}_4(&_H#*=t zZci*+%k<|G0AAW`VR0h+_K0T@{fc!(sQtLBVW*x+M1HeGnav!6J`nCqE{j96Fm@z~yGYw>H! zyq><21I2*%$<=H-YChp6ztt%N5COKgv4jraXK94*lM;CjLVpUnIUEI6j}9t)-;#Ha zb*$nw6u;(H#=yhAJp(XBYw}p)_mi)qtdRJ9RVN(3&wJ~*LTEfU>E@+BhaIoHaiK4kGcGFm+!KQw5CiBs`QeB@ikaHb4N6P8>f)C1UL)|W1Y!>U} z-YxjThm9cQ`CD#v9R}lRnpef&F-5V4!jnB2u@0r-1*UZh;}Mc}x)j&(gIWbF2$hV@2ak zL$)KJ9sorV`iEoqfr=5igf_NAgv->|DX`PbJN;>j{&$AgF;03SJh9G_O=OaP4(7x7 zlCBgy5(h1>G(+2@8C%IJ`|T>iT$JPjzY#1Piof_Kh^+_ODY111K^aPn%Xa9u*+g`jzpzQ{swT;DF$eU4iPS4TJt0gjNZvQDqriWQ8KYuP>{*Lth9KG!dY?Dfkt zjCsKK;~`Bb!b*6B2$L&Bm%q3GR_^UA1c6pArSu7dQ2d825!L)&Tcu6pofxvia}dgq z2M;7*n*-@rfYTUDuGZFQve=L7t%G-PShRa3DN&j@EODxjXT<%PGfnXV3Diflz*kaU z?f)~0IS!el&X^=wQ3l+IlDf*S6UTn&$lrkjk$y;S5p9+Lex*{r zI2s851vL0RPY8dk`y>*P>n}`WmMA$-2nS5CU`r5C*d^bVcweKLEjjrs`b+V`_| zOt41<24Rik;*O_7^SJVXJtGpyKZ)s-Gw?{@L*kPklyLH6gZZ%yKaj$h_t-s91H|#k z0y-2c@DLfxvfN051ovPuvauDUS!W<_oSBd};jQ%i2&A}m`zw?uFbYTE4ku!+AWLG+ zZ>Ah;x;^4Erd#KiP!}zhutijZGn@OQV7Pp1_C5q$;sC-GOahG5rio8kT>sa00P}6# z0_JO#Oy-M2s2E65)Rp7_?zt0ur+iu_zCs-vQn{lCr|`5bECr&hXcB|!TEr8r_elvz*DLO-?#iL zCJ}!!`Iv!XViLw*MTW)k5|OG22ovC8TihUi`&PwPq4@oT6ihUc7E{+!h=@ahltG5s zDOdARDdlR%{y+T5VeD#xZoo|RfR0Im*4eC7KOMiwbr|BM9T~%&12UGT^I0VHHeEpI zMNh-*u8R)Pz)s~*=1Xz$_?gX#$h!6Rr~?)wOPVmo$fxz!hl@)2S0?o{61~fjdMs77 zf6a&x?ADf0nn4lr57?xP2x0mHBt!A3Q_A>|OFnI>;PL{w%*&IDG?!}y(VTO|0!otO{|3Twv&3cu_u(xl1emYs>d!I5&NT9hgaSS1R(aQ<1< zT=-B#ZI^*d3YTdXrp9C0Y~LFcABi_8iN(CZN{T6Oa8VU5)`zq$U}|8hy>Mi`aupup z``@Ma;^OsJTD&bRA}K1k`~k}>w}O_LEY{y0$?0-vfq85aX5c+9 znDU3U0?`Kw#l(snI@81vzNbHOb{~W1PEgnON<`szD3>1oJ%IaY*o44uUJ3RqX?(bb4|Kc%zJERqx507AaE;&Lx%FV&rg=R*Z^gxRI_yFsM(DqcpYB0a zK=E*d160kFK*UwJbosF6G1OB_^ttB(FQND`BOo~5ZKX^YL>1D68KB*+vRthG7X<`I z=wF*JUjc9EPSzfZzI&?1TeI=IbmKZ!x!YWaeKanjah__**u+m@wywq&cn=k;tU~Bo zQ^ENwcVdM6{(C%cp)9}>a(YNuIUGK>W`!esPC2QO_)#ksWI1DK5aNQ6@}Q16b~0y6 zd3j5w$UoGlEe}vcu|+WQTTAVMC?) zGkZ%raM|UW96QsbrFrG5(p*)kLRE63lE@=5yAUjp^hqX}ZNmiq|8}NXQ1Lkw9rB2B!&)r zgDm<3t9mP2X|}-J3KT&jgrGn3B{m{W5dP8xe^}442^<{^_DX;bPlI5DvIVKpnlLJ| z1O>UjcCZLv-}9tEd6;5yAPzud>In;_yup%vxMU;dS0#xeU3w5VY2=P#NM$^{b2inV zVN%WmbcaKhRx3Bh#9Kfwsm8C?4-((s0kQ{b1imiH9uzV(NUQ zw)~J8zE4Mdqs5KyKhoYq%<&o8+-ZXEpY|tKz{0~4$|YDY!5Vr4hs=KcYu%2ykeid` z=qX!HwZ6T~IW;z!EJA==Y^gP{%fgadO;*kCQfgWMo?^}qdXs-7X^W2u6nmwB1`~Yv zkasDq{&K`@rDNY=Jbq(2k%pi65C&!&wtL-j`l-n#ogffKW`SM_HBZa9CMHboWv8z=M%eW=x)S6Pe2$8P_o&o{^)BUiH|uxIh=_6rG%kyBk-T*4K+`) z@<$U%vWd93V+nf+Tn#j_V&Li&;9rIWxg_@QfFwr6PDzqms|CPd*rou)P`pNHE=T_6 zVN=sO_Y2tnp~N+dPC&a7P$SL*?1fq`^=g5Bl}Dan?DMmQaEEo`KtiZsd|^uejTl9T z7%76Cq3{dK(J&m=>$n3A`*YM+#%WpIQxjj!b9Ra%MPFT&ec&N|xk+DccAc}XPsj7( z_y@`F(&Lb5IFxw)C%{i&b&W)MDC*ip1xY;At@ikjG?|=@L6lxa^8)@iYsc{sG}XJA z!St?=iD_msAVIC^7fn#B8Fmn;CK(mxnf6IUSE2p0?Di+=_BAD4zsR&dEu#G!rF{rv zkda>?IS~dj_QTTZzcuFQ&1F$hv&XQ z25DS5o>$fyXYC8X?!_RI@B3mxYX2=aNwi~<)%iM135P*G5*U{2PhNX)ZrfGbMc8#B z*>wuI9c-QK^;b3Z`VTdo%;WT32ZL?yKQ0282b-A5&S8@_FvqiRs#u#li$>Jcl}rRA zv0zjU`!af^Ozw|{w+}+Y-E_kmipj5-hA)k1xV<#2peT$H0yCb1wrh)|-B1A%G)x2p zk>UwV*o}+@2r`T!6u)^HIdPTctyXLZ$l(Q7u_z+o3?;tz;i*_SAc*_IQT+lfnjs1g z;G76>KHW!8X}AD$Vv@BB-3kcL2l)vIJB2}*il1htHVF6SV5V0lM1b)1I5X41=sFC- zuBJa5gcl9hARJ~ICjAH)nOkBu8{d0ugjn1Bl4<WF$U#ABw+GJvyI{u2GM2)T2}Qs1F{Mi_W%ANjGBU6{Yi? zYMT2W)oTAEmr88v9-3iv9@4_`g!C1w%wR4I0}t%v4-0YlyV?`fucoeL4bX=Qp;F?M znR0SHk;%Evkf6ys;>sbhI#XZW%*OROcI!bqOZ?;Q%1; zf@316W6rP0$BDT5P~yeabbrz{q$kjKS zgSnF@AcUB2^BJHat9v5SvjTD)XEX>}yo6*E`FQk%L!u19tu(`t?qZA@A?BP%4leNM z)wL&M)!2caPOIpos+5)oCU`o*;e2-zvyuMvA7oO!+;hf0Pm^kY=0|R_0M;$X*2Y^~ zucoNSmxxd|66^3kK|b^I3hRC9L&`u0u0G%)Go=iXG85jUjc4yajng*SzQdbUej;{9rvHGaj)a& zwx7<1_jrH-st`A?P$6;!3+Lb-${7(A-1-a-1|lGs;k@I@9ImbfcrPZy0Mz3miTs<* zMwBIc3z|nfJXm=Z46nmYCv#=A+ylmH6Boh7lMfj#K6R7gVsfE>?_nn6Uzi zgR#kukqH~$U^?<;c$7^$h#f7g!|GtYJ3({s1J4=`etlz9M-Q?i$!~0%C=aNfq?1~3 zMl1`9F_xv z!m&u8+4j8&mWNe(T3{$0U~*7s8g8ve6R2Sn_DI(XNLeM7BxhjlJ`@tHfsesy+3`vW zJMi{c`zXAP0N$EjA?L?N{Hg$|*R*S}wX8Jy$PG~db@vEkE-Zh0=G2G15fRwqif48| zU~lg)5!l=Ow87qw>!UjRC?njNB9jjXN=J>s+sv1Nx2A758gITRyj^WNxA8Uyvn;m} zliBa_ljE!=$JU1za8rfC3pWh}FA$Z$%az!?q~GCMJXZX~^`EP>7LYg45~jKy(7L&= z(T^*Bj=)a`1P>_uti}SC`qAdBiu5qZ!uXj#pg#QMnI46^s2>mX0e%MP&NO#*dCK5t zXmn>?9i1usT%BkB_a1&FaG+#N&o2 z{Ph$3T>)n+*)VLRmiA7r2Y6#jZ1j=wo=THd5S{6UP;N`iW``47?(Vzh5!4E_pEst11^+zNk_eu}`~ z?(Yo#rmczsX&DEe^32G z@Yn9mM&qwf6#niqW3ch}GA1kd6ALxe=GQcZKi(35v{)Vd$H&%@x}WMXPk=un+ljwk zg1_Du#o+Jp*7e};#>*7`R{R)&zYcp1{#Ijg8^ID4UBVy@<8S^Ijlnbv=*qek=Ju4k40TiIy*^@_sZD`|SdHvaZv41&L%06p~I6ZHMTyyPwM zXW{C=A0JyieytCGke?K`PW-vCK3k7Cf;#bbyGpOZd%ZAN-zo}&!=VBHerXcoV~!q( zz~7B~4E~zF8HK-{o$JHjj=qhI-LE?{`tMPLzd8Sm>TH~&Gp+wrM~%kcna?Qw zx4hB#%ZQOke@!JU(TY@KqjJ^=;H6)ViWYA^?w0CSg|uh?b?9&7W!i_ktJ zFa&S(KTW$>{7*Y-BQV$d3xl~`Z$x3P>YOmDuQ|~7+wQ~eQRw^N>}d3zfbbYWUj+~Y^!f+DH%4ncb4)$>Yt}{KZ-f0wAv(tdTyO`VYK+#JJQou5(8~@K{449Q+{+$je+!ue*>iNf2q-sPK$!{t~2z6ZAhO1ghR_LQel&I=Ezoa)c#c43jvOzFCzf|?|&P>-}6co;D?)W*thLc44Do&Ru5b0`yJ}K|+m91lCKKt0!=N17`#6H3I`2P4lH z`(VZH2+Vc(m%-fXm!dFNaeA0#!t!Z8V;-W}rZ85&95@fy8=yPW*y|E7@@Z&vXI&kg zDfx7f>gc!ii^I6vHCyz{h!+}-zVoBd_sVI}=-Z1i0DUSLpa~X^+~CE>Re2uM?0e&- z)o)J}$~?%(%>W}rL*ulSC)pEpr%U_<@)6(NmO(4n?sYwh$Sb{@Jaw%HNLz#N3xG=* ze=;6{A^WWCOo>0~_n_=(yB^1mb`SNat9tbFV|a9qdX%Cb)$mbk^(aw2+QLUo)T1Ni z($*S2+Iy)q|FwFwh>v!tM<1(4kMq$6^=OrPbRQqRp&q@g9^K7HPpL=q)uWsE=mGVp zOg$QeM~L50&kEJEOcu*mk8V(p&gG+_>d^r8=wv?Xr5^QEkDBvQXZ0vmJ=#B??YC3U zTB~RO#xpBHJ!+yJZQ`RJd)i?E=e7hvV;5STU#dC!Sxii{Grmm4ua<&O5g!fT$7uRK z_y;tBI1&}klOi-XNKiUR+$0>2gJ#@Tt8ac%w3PJ zMw*Jh+EGJNV~_r|x!5+xz^z-7^c0XkXhdvGckK9AsPPwY{D}SH9}YeE+D;H5a!73B z1t)NDuC9-Y1WfI+vGz3fn~#1A@NFQRA3?k*2wMtl_A$WTr-qJ6TqI!;5;M+|gJ=b( zF?``rux>+S!T^jfgvc)z@JK|BM1vu5?++HINmwAt7l8t)NZfI60P`!x{M4++xb&=R z&I!+1;fFSO6nz2mb=Yyx+YvFZ%tL+%jZhq3B7 zf6iqarV09#EL{UYS15UGyho0i<9sFbd+!j_!&jY}W&$LBT>_HMur@KiI+m;@JN=efRBX=zIQ- z2>NdJv7zs$o^{f<|Kw=;o^}C-OT*x|>3c^9(06y;iKg#UrW*RrjOgSv=_HE2+oGRF z()R~Jo4)%z)kyl@!Sz=|^c^~hv#y`Mr=8D=wqOp$KNt}D9zF;3UE0m2@8!oEv^GTF z7;F_2L6HU5_(I4Mj4^$O_W5cBMLD^$)^>&m3~NroW?i8z_gXf7(fFC$}NgasH{7I{ySA*XF$Xh;4*Zm<~WMce0m_+f*-_*cMJP#8&;3vzJ#} zqZc_pha(#m!olch;klr;hj{n9()0%4Tc7;d@?@i^&AL-U*&7h1DI8D(#MTDGiXgU* zGlkf`eF(&s+|?$w>;yw>9h5L7e*Xx4g{@poUn4$`rLV7#)xG>aeK9_IpNfy>u@eMW zit7f!m0SvWLi!47W5OVzwuj1aL7Mx*mZF9jm`}eB43cv_L0x|8S~eq}EX+YPCB(Wa z#6a)>jFU~&>~7js@K^Ll+k=ykXa?u=mY#`4z)j5Z=%ZoJoHa;xRf5K3iz+`Hlf8;D z**GYotcRO9G!@196n>i3R=K!ixm$bSG?3naEfEC1ALVJ*H?rhlW8K6|9HJB2dl*cM@w<4~%vnA}4N~ z2bj8WII@1XJr;KX1S0rw^rFo))&_#`yAbLWz2`Zs<6LX?f0SZ%Ym3ptRBsP_gTVZn zPw)pQiJLAwvhe}%$Pb-u9_bXXsh9GpW`v34kClyl@;mlr5|2h|$tZ$Qk;t8-mIe*X zt1-5bZ@gHft}}WDOBpMGH>5eqx(*CM!COy=U$fV!I;FPQ zY0TIBm--io)(1wk{@w9uEPdT#dTA_u)sT$*d-7;wLZ0#uq!ZRCqIT(kr>cb{e<+V7 zA$2`axA>;`D%fwX&@4RUR|h@fhJ*tdN0yxGv1p4{jdw_GNPMHPlz!xj`XhYg)VlD4 z2m*X$y&=GEk17I$oQHBe=`X~DQ#rOd!=^ts5eQX-@rrW1&GaS8ky~r|>}t*X5hCw7 z9C7x@NxMy0f3gYH)r-eRclAO_eO=Y;gFV%Ne$1qDN~e;9{T|;RltKNtdXAz=5A|cZ zjFLHI_ct|DyYDEPcL0T_2G@Mz8PPB&gs+>AcjxzRv?3 z@@@YV^l`)fDWb_OHl-LDIapm?Cq@QcR&YznyIk8XmD6P-*6$;>C^I9%F;!kWT~=Cn zzvE{E=Puz@d)Ssx^8EvjKQg}ptlAQGF6%60Pl2n7L$Izy5`l7>it^Uaqub-8wjA9a z%b)O9rHXYS2Zft#^JT1=!XpR;twHziyc5AbaXHMr59yWyub<5XVniK)i8k%=8a>3 z7vszic!Wp0(VHCY?nDEg>~wUJNO^1ALu4lm%j8v{`%dwbc39LhY@ai#`ez}tOkOfZXRlfD?sjTeCda!tcaM|QiaM^;h43`oAM-2X3sufol z_r`wwBkM2VH%k706w66Z z7nj77@FMJsZtZNL>o8_x?2G%^OU;G|$^P!0hW7ShF-(l-i4xh|T=1(XuY$Bj%6qqM zqwR~SK)JSN4?fU1`{I7C;S|lqI!oOgPy_ZwHw-JnzUXte&|9J(^p@Vi(3^F~AwzBd zrF{`&zfRg5OJB#DUK&eZzinT{fx3)+kwAj`U)UGpTp*42*F_Lu_qPlIep2pK`b(M; z6Hfc$jbxkt+(h7S+7}7z>PFp_mVo_68!EglqN^)oy6RtVSBSo>mmp-`f~1eEx4icN{Te>9Z%zqK!RydO)Sx0t^FZ|Kv4a4___kAmWV zL7yMB0MT5yHiAAMS!w9A+x<@ZJSi@kKHHr12k0}OU9DLYAtj%?)zIfAtdB|J+WxJ> z$HXF7;e|H!b=7$K><@Yo`}e*-L7%Nb5p&vUI z2-d%y1gs~YYGXZnzrp%{sUM-9BJHmcn_}h9*ZXuYjg>zQ(pROTuSI{Fz6uk7`48TT zps!0R4Sj71I5EHUXbgS5!JvrW_wSs*UT)RBXwB!l+0a)(L@$HbOALMa&`~4(J57LM zO<&_@G>*PbIQ=*1tLjL@^!0{BR5<)QYwr;H3QYigRi0wg*SCBBBz?u$Uq{!+($`GW zOJnKlx9uRK8Mb9DxL0!i3z9u)s3+oivE7z z{wiZvyH`d?xpgBA6@D|r+0{FTqPyC3LVaB|UccQ2%8>mJ|DVur7t64s^jiUd5UbyM z+%A;Z>~2uvg(usTc;g;JiT_*sYsA~J^!at|AC!MD(dv)%Kf>=3PNapGJX0>-9-S&h zuM^zjsFajMbydi;rqch-Xa)-Se0c=1d0#igW=(fez{Z2o6tIDT79=)g-Vqn#wYq&t zb~F%9hqKxKRNcOob2sG~3M-3f|JIoH^BwKi-X-CHQK|pn1a$1EB?H6O?5T>JK>plk z)0=48NtoWpwFEJ{eaf6Uj`sbiCuZ-Tbw((SxVDgKr`t&3^g;&aU^CINb>^{Vu2DF( zeTZA~g~pyN1dVNKZD>sPr;gSbI_uJqf5SE7Ukbm)j`*Ai|CY`{E1yDDZmyfEV%%JJ zOC#duk|2YI++2YsK+YGH5ysHZt*35fJ3xB}Z zbrRQ<%C4%{*Y)-R!a%k*Vq9Izk7Hejt83#ZA%=&>^7{nVidKdktbJb_QaHvYh2Pm9 zEx`V0{(rMS`b?cm!T;!z2t?obia~VKsfx?<#M`s``)DlhVkkt6NfQ%)*ApFCkLXS` zk|$hiko-7Syu)pKqNo7}l-IXSZ zQNs;M+!xW+?J-^5R&Q4|_~cRJ_K%LgS=krUCjANf;^XfK0cBqlpl8`XN&-dHjO3kj z|7iP2A&aN)1X;X)f=w39zA$9*yY_`^MuYLU0QT_o|BC;Q8vcJR0_8WpXi(l13;r-` z?%o@X@?FhslslHpvHXvYtVeVwhW~R7vLC<4*~t{?B%1%xPh|dLL03ifueJc8O1jV#}HL^Re@iZHo z;Hg`OviE-L3GA<}lsz`<6nlVo#qO{<;>&oBwxRek#CTP3V8L=V@0eV_GrQPlXV6SpzB38*YP90|&8B6U*`HMK{2lQRX3%f*&rnwWlUHU)9^vzF2H z9+^1RU-N}TDS8zoKmiyKg;LEc#fj$RndJcx*SE-LSl9%jZBj+sqC#2 zHfxro5(LP6z@sc8ErGsR|C(>w|Nr+lv{|6=?s6l$_cz@2g&Bx{{{DsmyC`0{zhU-^ zF8SKEY*pH-P^aA;Ym0E1Z{c?&Q!o^ubR*wTZ08{OI{dsE%XNdEh)KQvc84KBvD zeq;A%{@Q(K1-CTvCx6Dm75p5hE>%q71!R&GRH-j{@{+3eK!aNk!@;6!>yRI7*#T2? zUU-~b%R4GVbnx2-{^a$1ffcFw3bL>R4}F_9?MT1~?oIYh8;>jB{8Ni+m!;x#zjR1M z->k)TDNOC1RI#?Wxm;j>(u_m2it)3-0~xnA$zF@;1;UnX+w5qYT)Wzq;cQz5>qgr; z;S@A|j?VsX6i4E4LOg+e5GT)+W>{?*aU)HvSnI2NlHY~>J*#yri%Ohhz4F%XgB3Nt zifMd|+`kLh7yM!Jcq_98H~z4CQ_mPP}>tzTcD=WbKC#`7_2&X)} zH3wF)eg$>SaWfM)))ofFU^7wSvZ?6=RCjuI4JQ#{W^8{%O*n(eTM`KOO-4OT7}P(L z2`d|&=MSpZA(u}YDq@5-GJ;l<^y~o-_+#S(WDWdEM0Vrs8cyil5F36V03PHE`Qd?b zEidifm{+^^tiHjo8ssO}@(otC0BvIAxv%10T&VdMchfFrng|~BI;}6R5DCWsIGwY5 zU{T*Gdk(@~qq>Pi#{+>JW>+7H2=0D`c{$sCL7ZvB*>CI!%BSVl(_<-|6gK^#frY_7 znO|$N_QN^~I0ISvgY|bi#(IP{!XOmc3^@^tF@Ja-IU)^G>yOLXNOZh%C|V!)6Xs_fg|CR6lkpPrfS&`#SB&kOHMJTQM3VS5 z2%g3!;ZF#jj+>Y&`G(a@*Y{H+yaDdvn=lP;MW&C)CX@l8O^ZiFCpzN4vISo@11fxn za;KS2vI1-FeAUe7oNopfE?|q0Qy8U@nS6wXPUi>slZIB~CZ?f$!y1hmi>lf6G5ios z<-1_?iyR=TBYTlt3~f&H-98Uban+*u0=cgo!M(zOw;AR96L=ObV&H8?p|xY4>Opf2 zjc@Y&z`T}d`)*y=11!X!)HMeeF?I0`>nYTw))#F52mBcA=lf{?+q~7ttd6|dTw2|_ zq^&7iHnjj9O^%#^_sIVpeU)MGfAlfuRj`5LWs2!iyiYMro~~w>S-`*i(0lovMf~zn zo)XIW9cuHEf2K?xheCvX`YPT+{ejR_&Xj@B-J9_f?DO*%5Si5_&HbU*DB~gzunpmb zytdBS1)cGB6tI0K`EEZA72&Fj?{-etxawS-sroOal^+t2?((v!b8wd&5hctPUzP8( zdNe&35BVn;_VYW#XLtcOGvp1c{~Nop!84cRr$RP9p(ef!W~+o8iCl}f`5f?1EXns{ zP8*|ZmE;3@eDVXH$u!3L_gqE&3)l>tIx>#A{`-?${aK>h9%+kIHRi@2zJmyqxq%ll z+O6kxMaMWk^9L6SMO048NF!-m1>3{+o$9-Nj=DOz_zJnNd<6GIMmc`@C&-wNix^~- zqtH5C!+aa9Afxe3yZz6w(6s+3$Jjyp`7GLg+$33buPa1UI6q@3DO%R8cxcg-eaQ#0 zkKN|qvb|h!>$x_3M@DRo59%8GJ8IOEIrOXk>?b*bf6`BBu$Sn3!y2q>YVN2h(vvsn zw8C)3_j|BG>EFO`?40`lU`cfx74HAmjRi!pSD_%@h;Fd?n^1m=K#B~Y4lm-WlU!+{ zWZ{OQhIF8);aAiMU%_u&jgT)GjZj{S(Fj?U(FjW#OZ(~yWGZEDFW)ic(h$)oPDcR_ zm`*FIU5wSjENP_hE$fKRvS_1q;;S;t8kU57sQj26LQmNT^z@&+t-7NcpDIQ2q3OJ= zTKE8e;4eBGs$~Ds+CMewDyJ@a2j28x67V^US=qIC0Dm`0vToP@> zB~g3C)W1TV)MhTy&mp83f0EulL81D8s5WF?>to26-!#LKFM zY53v70QB(%&w{!Sg!Rwlp5%vku-h9~xTwUpgMGSgFjQhCLM2{Uoe=&Z>z_ed@&73< zGHuK~u)|>PPF!iq7NRDpgjwT>I?frsit#u?iz_HU1S|KXjNzV?aRFEaOPyHjq83hg zq)-;XV-LPCD@Bndcp<9(ZlmgUT)CG@url7kW@*fg;APdqG5jIc&Q^=0f#(5Vm7`tw z;yb}U2iF^X@l(MUFRVQbg-}bRgNMe{4Ga$x9=noP7;}D90JJnGn?t4~aR}m11br%Q zP?oOCWI*TQeS1LjZENIAj9Gx+yx^WjFi&s|gC%LruK^fw_&h({ zSFYuq-5c_1_h3o7xlvy7YQDjm7GOdY8^8qN#OBbs5DU=2)_)aST4+e$+RfPCJa1rf z-`cOz1~f7LH=OSW`zW5{S-%E&DRn@T753+F&FpFDn|6nKKCmIa>kq|?T~_7<+v4G? zT+fyOWkd^5ww$-VnIW%O`<_$$CHO`)d==>D%Ef{H%_!CAm!?)NWc_k} z_5|X;ds~dEu9vy+&o_d7o?U0~&kqIvys#c);D;0c3Pkrj;+~%p_iPNM?jHVz0y}Xu z((s*Wm>qTo`xK~(1EEGcBfk>mtG~y@up|Bm)r=Hby9??XrUdZ0=*QNgA7sdisIgws zH-MI8J*sXnVcd@^Jz;Fe6ZeEM2PMGQ&8S!=3@(7!be6N}&*0Z7`fQsKUoaDfyyOvp z%8Mfn6PwX}cwYwTi?}d`ST#Pwd{iYTv1=k(QnGLle(Y%j$IC~jjVs>Z34F*ubcu^* z{2)0&&uLn%cnc2z<$c*0Zi|gvR#^2~Px)Es$B)ck zIm;)Eq*thb{vp`YQo8qtaXqv%5L#wkbFm8}{3h6E>uQ4$R>ku}7V-l7vl!kGT1HOB zbT@(?C2aPik#VZPuKlVJ0JX&KyE9q_`#dbwH1&rXwUmfJxOUsF#l~5F+=`a!z=J#I(h|!{T)B>ZJsMk z_zH^nCrr2i7ZiPbk!FT8`BldeMeSwT+FmAag_XT5gKv86W&C^r{?XJ>;*+bo9`^X9 zQp3-b=?o{aDod8F1F&V*1y71nPi5ZlziQ;enS5^ZKMZ8&CKbb@sZC^v_2|Gcn%+)5PgPxj4t9USWqH)`k)=i>M1 zl0Anf@jNZq*EVgzbXC&Az>I|A@^1x07q$yYL_>*WV-RjwiyX;EIi~|AYuw8gVlRJ>{X~t<8P*_QM+FM-lHw* zfwXI}_@a03m78yqooxmdX+dOmCssx?QpVx7_8R^|t~YQ0VWu#2NQPBR>} z_(J;k)!8-@LOEw8QKF*qqxpeme@Wb|W+cEN&xhUl3D|d#2Bw)UyPILQ^S!{jIe_W> zuMR+ooDaJNG=P6>)Nt}28YgKMOx(0VC-#ubBG`LA?A#T)uXgP8PJ)kfKJ5Nm_4%*` zh^~1lo3tCwOc{iTD<~8WZAhJNTwoo4pJG~}V*%IOCq>l)+?bD4*n1uXvkrjd8N!B` zGJb`k0G)Er$H4E8RW4#)P+^Gq%lRH+u3H`@ro!*qe|ZR5XaLz~{B|XbJ2VVU!|SsR z4e#>87#joQ1_zAzG{iB}-02TVmW58WKLe|h2Zts?K_>5YM!)Y^h7K0F^G9_>1PzzD zL!mdEnACqd{#O`2JBr~}vTDR}$_FvQj1 z0jhn@8+4pT}a>I!9IIp%2JABhPgOO^~KgyN-Uws6cJ!M-Gc@gq| z4_giSFTargsVGOlfE+FisiF=SF6>)gItG zWJ$rD3?o;A>)yEC#n?xe8^(TXh+=F)ms#MUC0@pUaHGxG5E)oQ$(|V)4jm^LF$3Pu zs{kmV0crN`da_~fVO~Jl1mw=&-qi~U{ufXj>9ie5>1Y9m04b&_#K^^P$_5a{8a7C= zc_HV40%>QI*QIyRNc@-#0-4@(7@uD3W%h5;5J5LIP$fYehqZkLN4n{}%5Ow8@B9e8 zA2iK{=6RD1n$Iurpt+lYX{X6QbweC9$2*@OL`Yv(Do7g7%TF|Tt{d!uw6fMq&=sG0 zASHt238w+cKL!#;viGpWex@1rj5`G#273<&dw*isyPvT4+3Ji@@ozf$d-&l|%-j53 z_94*mNremXeQq^~|9p@K9Sdu`=y-Fz2OahBcPj$AP6N_-AKb;@eS#Oz5CU@Z_h2ui z#Q1wpcc6a4c?qN5d(PqVcfI_57&t)qJ2wu0e}+(tSpGiz1N8oepbO3GCmA%CWAypM4*Y8fi!x&);=2cy8u}6nV!>Q0rq4q(u1po^C*L%Yg|a*?Sn_ zXwwXvzaK@1!QbbDzh8!Q6@23iL283%>N6lc=fmfxMKN#l_e1Xi9luO*A^wswgZN+1 z^C14Sx4r1txXyzP;qTbIt_N8(;0r0GkZd1TC^n=4-f2W+F%cv8_-!HpDdEYZNF%*$j4ifZ?l_xEVdR-k59e@%9Iv8 z{}?${puqOl=RZ2=_X{ZyB(_%pr06!xFoz5KE40`eh$$ z=y$#sST_eSZU0b!4n6)H^xJZhvVWYNF#Wv88@@bWci5)ik7z^G#E$b!u0c=Z}`(2 zUizK#p{Cz6z&ys^J5VS%{qdIcdj-D^`mxw53&x{g-|_`Dcnb1)&o|V^PdVi0X$WYH zk)K;@_563Ui++#aXz14uYiQS$lwrE#p8wuYjD8aU&-$oT0n_w*wY{O=C;dFYUY{Ff z7Dd0;-uq+nb984l|DBaE{k-QJb~SCV$KMU;tc*X3KG5&X7K(nnCH>~$*FirPTMMVe zqhDTdfrY0|`swox_3@$(`duLwWXG{@)L%N*==tv^7yY)5HT0X>*Mri+*P|$n%Fj_N z6Qkej?{farz%>1S{;Q#1TQ9JkuSJ3B`ESJ^qu*mEsQK^Agz4u!+;FUEgH6Ae&{?71 zbf6yeYY)N3@yA=zuNuD&`mxyBcUwIAasJzb#~|P{X7P|E@-sVDe$EuDv4en=pQGPV z^IwUJejRTx^jmzEhkkQjjiNM4zuC(Zqu7m)Sm!mXOXsr8Z zJbJ~RAaOPTiGO*5OJq(y(va-2J|0-*4p>qCn55t-vfb=mHc0%JnESDAPNmw@a)#3~~FsKIoUTKNMT>tPWy6zT{*WhNr8dDXM57i%L|{4XWsL7L8U#qf}8Q ziw3JAzba~lBIN&2W!+WTZztikPO7MbD*B#9ZBe&3pgc2F+8nGX=H6wO=juXn7=K&=q|K10+2xm&{ ze4{BKw#k2dni{TIbi(K6g=+kvRrK&3`>;n{UqpfOHK&&zk!WHv~P# z1t7@*;ARCNH_6)nu63~PTCd!tljKDDN5oS?SL^FQsC7yY($NvDA)RKVh8)lna-Pp~ z*R#SuhzGEz$5reLsFVvT`AMa}|5d1Tbth2i?iDtbmOrAY#PcZ;UgS>M;JW*x@&S$l zw|rPMF;+gD8-@QL$_Goyht2r;&*a0$b3y2?*SR?9{wob9opzdY5u%RzjT|Mk?w zd$%o9Ng!6tl4xE?1%;voO*_!j5=dT<>J}gGR{{#7O;5Fd; zqHA4LtsQNsTG-twANoGU?y2w^hkWS$mQc1H`S1tN>RC@YBO{K)-gKye$CEqcl zT*qi&{s;LEqvTXFt|6ekCtpN-k;q?P<$$Q5zfJ_bMDEDW7es*sYZ^$1O+KVq)~i5v z)fg8wcNQ9I-hHY<_85`&6P}17TPfb-7YZTC-fDEJ_zwV(_?jUAu<8{6=%N8=Y2Tuy zp=P!VKx+a}@h!Fs&F277H!hyc&vME9cY%JZS64MQF(tYL{}>6;iyIwv-{ZP-w&ec= zkY!;6%W;n}6c(b*V>)$bmOS}JC5`ROlD8Zo95CQmaKO05HU~U;zvh5QyWgK54w0Yx z6*dLuQ{v}8lh55>25Dv%xoE%pQbYUuvYe9hrpJgLmwYZ^0Lbs_Zy&t`D4jJF%>d1t z8wSX7L1{%OG5T9`07_7Qs|D({d_L{u#N_iwT+G#{zm-4AZpS|#t7JYubm(stZG`Um z8K8SD~Iq%Ul3*9RQ;8xi{)hM1R`}gjzS8n7Dji^AF)4r~c;CRI>HA zFIo$go^B5+t$oL)QsY^gN{PwmKXSfJjQ+O&x>)_~_IqsjiRo|k=Kq>5^5O1s{=`2& z>Q6l1oP9ONLbs7_9`bziyY4n)p5C~7+*j8a@Xi+IMR%c$4+$0yx=3z(V^zM zsjthx@TjCQ`4u-kixF~~2BJsEk&Vp=>Ei;@UVwP>e*sRS`M+A(60d)!gd`s9AF`&Y zXUQ6VxPFm0^)-^qA@c6>$zU4U4uh$3kv*6eRvWU$%m4MCuYazI9Y5z9kcrtx{>b=+ z2IXFV^^OC7`ApsA#Nhj;{oeU#BcbdJgiV$Qq;)BZ$s8@Gq6H;$^o^q8A$2kr^oWw^ zm!20rAZ_r|;Kk=IbuoPF3k}1+id8HfQso@BT+z>b$jkG0zM?u-NIQrekQRGB+V@WZ z$N&vQGkm8;hT#KVAYBBA;(7agwBrFMlGyoZn_3FbTf>ec!~cPt(OYCmC5%5;_xS=? zK!-E=_yrlkK6gDR^GE!o(UmVN<{t-3Kq)N&vziO@Uy=^ypT58_KmG4v!~TEH`DlxZ z;_$zLnJE9&o4*!>9yvm5mVfAc->;vbfQ5ag_r)%DdwjTIw|>Vve3|60f{WJ0tH+o#tchpE1eU}V1 z^c{^wZxr=s-{+-ozZVjs@9f7w-(45E=)3Wt0rFc%Cy+1hjYHqho==#*Gl5}E-$or0 zr0?uE4?*92X;6In_Cvc|^c|8a^gXH#=sRGpP2aN6q3Fx_`spgZJ_BJ~h_4rK4dUy! zQ;di8FVaz}&^M%bzzo6UnXk?QvZ_lm{3?59bo0V*uM(i-$%OnsrcAXZl^HW-r>R{R z<=$JnTPIl;z60_gXPbofV}k-gS)|<>ti8A4*M3&6rNo2WF?uzC6+^R3{svLSukJ;6v$K-R9 z9#hr#g}?T|StdPZab~F}H|7FFS*hHZPvGhhxiOo{PSeOU08n3R962%Bpv}yQsT(BM zt_G=`m~2o6t3*b>FNJnT8(9+~qROH1lHIFn&w6N&W{loq7A z3)M32Qy5}pabwBoSqB%U1A(OKp%CZ~t0aW3_Nx4%u?Q?;G=L-*9g3?c0+CdR$wisD zb3Hp~bP(8UKuO&I$pg3&c>qt*` zgKvp!;^h__XQA3Y>?~m|1O#XKgGgJ(Wj=Pduq_){ia%+~W?T>@HS#-Gr+-zcDUshI znjNyc;cV4OhR+$eL;|=;z&Os(J1eG81rfX1=Qi4p|vxM1}^&6HP`2dMs;D5&xxo4ek1|{1aoR+ttG;$~YLv?Az1lPJaL)Le=M1H=1 zAwa~`zpUTzb>pxbjqlOa~~my6Jk_OFimMiLaL2jUf6ntOS2T^jC1fdibfGXM%57byq1wER`+RA?y(qv&hG{Mo#?y$T+$L*15q0)HPtMeT7x^ubVx#RsBXruz%6H(w?5GajnJC6`oVq^q>f2{jhR z{|W#_tsJ|X32nZ&ReSKbIzmn}shR!|2qBQjk5hy;O-Ll6%?<%4siTQ?g@pNYRBMo$ zM3+hbeH9Xj7oJJxj*fZMrSN0zAFcTP6hVoqgU@0A2x$R1m7hhkj7(<`hBGtNbXFH;W+<__ATt~j%8m0TggQ&= zYY|{VsJ|fXiQs3^90=SdxQk^C(}l1(k{X zvPS6|wdvu^pG}RUzc?&^u>u3k;~EeJNN9_d=24Tgx{|Gio%y z$bW18qEMV%H~HM37e(@u=0gxB>=0Km+&R$lKCJz zlwV%>%XZG+a~Ih6N56}GFX(HS?U&Zd4x*g%>nn(S6>6cJ6`wpr3alofm2>_Q1I0e` z@l*l`YXF*?$Ngvk%yI!Ji2+dT01!X(1&--(gkxob!Xp1>`;?&t6R?BHfrk3s^SguW z9{kTE(yHswztS|T2jX62iufJ>e0YeWw(Xz)e3x+AlMTRWs~@vDEv3|OS_1z0KjJ^2 zHlflyWGMNuzaWjN`5dFNW!=Kr7l7c=h! zi+(@AH3o*BX;}1UAIE^hf3a$ccNlzhzd~%`A^aCz2&7U2(c@rDodGh#3*=e>;_+V; z0ZxMci*{f@*c`2UnsXfd0sqCZG9A|MzgSa_-dERi=;c4}BO)A!UVgk&#=#>8+adn> zA7&iDf3d&VjD)!U3(o(WmHjcmRnU}ebHHKD?;(pG*dNv6M<;^AP68_Wv_EF6_8pF4 zixe!aN)gV~sx+O4^9-dqkkcXZ1Z!hX6uxHt#9qPV z7B08uchdS}}ku1t5*jIR9&)T|7 zERJA@ku~s!%$F;$NWR%wQWpP9W)zWLT=rN8auI9jf+M;k>xE7 zYHnjtapoA?%z2WS$!;YyvwXy=lZOFahBAjmsJ*NzJED+7dW>x(D@UuWf#)lQybthU=t@uAD4jl+3$$|F*{JGiHAWTM{y>|L&=@u40vF;GLo55W%=B5m9{SxhepEL_r$G6RHSo8 zDNDB=XAA~Z%IO5;tGM3I66hpSEZGt%u@_X%s+98nAp{2+xC}q>b@k@s^>Adz(%40a z)?08i+yo>9cdO=dr*wUo(|xmQmc)7fKh)p9lBh>#en149D}!1h`up9}A(wwR%O(8J z?`h=nznlCa{e1u`Q}gd^U89!tlfN-FJ{Gse1oig;+l~Id=&(Ome_!OM{_tPd-|s2o zfYAE;{fwumM}Oahh_+~c!0>~jzfb!?W|P5tF`Ja3NbB!|$7<$v>+im4UqUVN>|ap( z5r(Fgm!)I)4Tdm@=9NsQ25sV7$IG{(M_2HYdl>YxZy;uiQPaRS^ZK~hru}J#$Zt1R zdUJvJhyQ-Fkpii8Nbg^k%Kc4@-bXDG0 zDp!iaJ0d!z{@$oR@)GY=o+nr-N-+nGNYh&wilf=$wgaoy-x?`?!o~*75!i*Iw=iV+ z<_*v6I^DU0VO1%+1BfHiA_0L2O}QCp897s<^Av7KKLx1g&Y#YFMV&t1N!k-dB(&<3 z*6i!`XSfjgNq5uN;=`PXJYOI?7a+s$jG_@jS*n)#m8e8k*_78SP<=~Xy+-BFNHyh` zWSwnY)$h6~N~ejWll2QC9_s$)MIrnPu^U02+XgHi*U&R6?TsM7;wdgHh72$}7!Yy-Lfdtvv&U10aB`(y-EsG@upm7++GfEWK}MnFT@bRdtpe)Uc3C#c^BnsTET z;=8jbxBc+)iPjSA(?}YD;h2uSHR7yeD3otH* zLme`HSoqy=U?CuDzuTtbR`f5eoOqdUUbE?e%)jsy!&$X;De}BxWl3*}|BR%PZoYYV zih{$I<)$aqH7VblTyi)rll4StHotLhjel+33$9iuW*^ds4o(i2pIf{}`&C<(T=oA}^)7I<nbM>DrJ zdlwcx?S%ynAOse#6d_0I7vL&pIq{S3W>0$|PyqT_`=Q@(5wIGMWjWEsSIP5es>z@Q zY}^Pou22)2M~oopsUkF%25PBRXgAI*)e7Wb5#|5BPW)GN8VHf;Uc4VSZX)k#FtHTu zs(2HAu7(pY_RSmGu*p6)p)_)-KD|B+96zz}PqZba8DZ!=VPX1%0ufIsBlR5w^I+>a}@ehA|V1=Co7F@ychlXyuMvTn5Bx?0{+ z`tK<7sx`!Z^IY>L^q=1HuGJks)f9%1d~N|-c2zwB_EDw+{U5F`ra%X9`v(xHk@))J z)LWo{guA))n_o^e3dpSA+Cls#>>v1Ml38E$)-`ICru{}!W52jHCb+)%W~*6WjM|5T z#ldV@Mj!ky`v*py@u#dWy4}F(RIe{iuON@d_YX`$_*-;+adKF+tK+{Ch3ltn(5{X` zk>X72r_q`fz3Yn?Mf7Ydbnl;wE+{ZfPy^1D*JLSiH80&J`GYku#wW|Z=)=muE0<@x zcx7d0L)kI=!7GqXP$Cd?ns%~zB${$gjQWUecox*7E+>-sh4e7)Y( zpX#bVa-Fw+YihLqy0KoRm>Myd#bJwo0NAt+-$Op455mbzQ9Jy+{+V6fIg-a2z_w!i zGCC&82(9p=A#>Ek05rOH$u;ifvBF>QrO@-3I?!`qm7%Bj2PPF7nr4f_=CNT=zU)!< z$BxYaaLP8ND7}zbPWZ4t%CF8nWAe-UWmU=jA2`Pe!cp8aSt`AZN-bQ;IZCgF=1F=r z$7ab3L86AG9N{?swX2H@mYiUyG#ZOvnxmBt2u8^LTa-}I{2{%k*u?V7BJ(QanGyMH z=O(}BCa}bhrzl{WCDwdwfc>(^18m*3QDBPe)|N*B#rM$kAh~iCYlKs#f+n>8{-XH8 zPrkrIwdholNl_OKQ_DEBlMgrGZQi&C{WM-MHQEM6G29pNfTr8x@nR~NM<@C)f9*fn zh2JZVH(hSv?egYpqFs*SchharZXXK2-2lzHQv=iZy>XoZcJFQvekVA9Dg2Ii07?YE z$9^IBo&E1b@axUr|L-xnuQq|$_W~ZMsw4(2FfX3D9uej z?LENF95Cu8XyMktX*7`(`!*Xd`W(XTw4I3{*_&d2=G9&#e+1yd#9b&HV1q(@9b@CP zpcsCb2d@Rd>t_?t;~pov@cKwc)8jLK@!<6+1Jv&EkqpmJ(}j`{R~W29{@93}KrkP5 zamj~QR~s;&{M!TO^`hutQT+SbEm1J_@^645fF>#A*V-ifyXj{KYGJ_e%7zY8JrN``KcZ6zue#F9zb!#ynV{hh>XFQNcJU2if>x2v$}>IADms-Dv=Q>dx%4Z` z1!ZO#%5)dX^uTJKl<`N0Kqss^3}rZf3w1aQ){O(=PU+;L&V3mMaXof;sB^e!yFCnA zGbrQG#2HH%@15Wp122APV66Gs1LNf@yu^9w<|vH#V?Yj=u*blq8$g_mKPEyPCO>o% z=TrjsoZm4PT@>;Zf;F$?5#?>tJ2@T#EYF&Q3qA@ zJ&W3^qL!-YQx-K)Mf=wY(4{Q;={BQUTbbvBT8#ONEX3h`9;MoG`ya*G_u-<}icmt|)WhmY2%@T<`u%^zkV8;5mxNMTM;F#6;Z? z4HC(Kd`RL_Nq*0tvt}|^Cs+N=*dG=h>l)G>+nM3E7>j4N8=?gRvJ*IP37$BFpfSf5nJo_(u0ZxMZ+kaXsu`(c{b!9{iYETeO zt2ZMX)(>1?p_^jIL|@39H|@H&idos#X<)iRRGKF3IU@)mm}eKy39 zx4!+CeZ%dy=UOaFfe1;m7!C;y-B4 zPtIB63p0Wdr(`zwn*|(B_^eHZzznEtawV&^0(?E;pfuOy^;GA>kR#WP0iT?b;bO-7 z(hZ;V_+BxiGMOB4v6mU!GVDPyBUl}cZn0!k$Kn>1FDM)RI?aRP2++}oIjuYQ1R!nU;hXESv-Om z@bKp=Xjv?OmSKMdV!6-$6#RL^O*Vf%9!Q8k1K}q!$6?x3CcY=RM{&wF*-wlRL+&%C ziBEpvu+0$hgA?oVOP}pW7qXSzF_pW0wwvMGtAL=z`p@CLJ)?vzx*h^dLJ;4|%#!M6 zWOkBYQ$01gb6#!*`!A1*L7X9>(RoYg)^#_K5sdRzYQQ5^1D*NGd0QIY@H|&MyJ(^g zSVVvyU0wW>LNOnraE=ra5*BM_e>1_0z0*V~c2TY`ozOzOUkX5s0}Q*R?ft=-^dXko z`wVLU$_hfQv9|~dLT$ffAI8P4V0*CtRr@MCt138s`NL|ovzq%6cE<`cbv(N{4Fb<#bF#R{VzpCMfQ336V+g>99>eme=M15W0k95m)9(O^h> zf2_QvxBKx;8#ij>vhul$^U~fQ3-@IQi4matvIVXj?#uoX4fz;a?hor7n+6SRtd(<; z@?e(Z4a)ld*reFvrt4JuaGg@pihUrCm-S0ej`ur0g(qE$FU0?+swho9k4)km z1K57lqhMpf$kIZ@aG+@g&Of?|iaa{9fepZ) zbYwFws@W5EPt!whhaL!pjaZRQXsCy;qT!F>e}fzZ!^1Vr4QV5xc9j)Ui8u{nW#%j_ zSMT_Oa#>-~9~xMQ^B;$q>83z}QwyxauA!9KNL7N>gs={h?Psc$JYAhodAhpA-%wyD zj#V7KGtD19V`s3>{GqI`DfgjOM_QqK)@cZmi8RJlA~;khy${TF9`i14){5can`&x0 zP|x5hXSZLC#zP^+7JA_EgdWHh*Y960JoF4u9L1^UYxM;Aq-<^0JQO^^;JK##=qLUjJ9D{x^s^FrKxWJ|!YzT~ti!lZl z<6?19XyamnAR=TCF%gL9q!Ez;L}b~BxYmh?_B=T+=W`b#vVwi)6&OTh2t#F9Zxng3 z(DBe%IPPx-3+-?vW5{ZSE1;z*elV@Zi4-UpfRDf(Sk$^>m;bUSW?gKwRkc2D2pNX; zKUN3VVZDl2t3rQO8iFKIlRu3USqB0fhea@uF)ke?#m%x;GJiiY^w*_VlIDSV9}s{MGI=r6%Rl|AlYPI0E0{-_VBQ z{gTL*GXP^*5>7ba>~I`z{Gs*!+I?x$3lOQwz^2AhwgdS^Qgf$|Lw;=rHBmxNFKCFH zM!solDCQ8@S9>rmcY0|fTS39o6yLOGjuP3=FuDB02e zeds^)6ZW5eL4!be^l$k&Tk=ES+0E;<5!gu*|@RXX{p6Y1mEokve?36zx|9@#LE^V#^$f$$Z{ zfzE4@;rzF}&{`e080hesKY2%f&Su}tX5jhA7m#6r&<5BT6#e&)(eX31I-J5A^d6*I zV|Bm{90BpAo~iC18SBZ2F#}9qn7(cljKTw7F zAJEJAD)3U{TP8#UO=kx*OGE=rH(o);_|!LVSfko4X})Sb~ya&6znthJS|4gkxe6$)2$mWCutCzDJy->gq<+${ndZ4#^3qHqZc#da7fP~Nbh6gtE=e+NmN;Ma@Lx`HG)X)M|7o-QOF3rFw_zeRvZ};aI ztQdS>H_T7|Ads_R!bO4bUt#3D`M1HLTRux29J=nawDZDed=~6;`#|aE;85mgbuIHk zI|89^t*_D3Kxln+Ud{?%@UIv+bv~_083Kn^fcVINhw!ifkhl}#MU8@I888<5%(@)E zG8*un^)VlFK=5WcZnA4|1^spruKR~Jvv?dnh(ELJI+J*homn9N_aAzE{14;PzQP>q zj!(mkk$8OC-RHw<@I!N#f#UoWV>S5qdKf6ES&^q98h>a1`T$fW{A115HEKJ=Xlw@EMv-qw#69ZxmwqDEr1ul+#nTDLcjs%CZ3aMmh!tZMD_Q zDl%`!7)dg}$}=E2KUHMMv8(_|)HwG22zu&-FU8-dgV%;ZvgHi}BR$d7#YoK?8nQqC zF)dxQw8;XVfzUZx%GsXS=@%0ntN9k;h!yra4MpM+E(4UULsfiKZw*NESNm5CpnhIJ z84f_v_?>ocV37*;EY4P$el)36OSiSfBb@Rs$YAwaqtstP32X$@iTzCXL+R%za zTtk|&lnns+Dl*G)VeRipQ0gW!2qVd8KI)g_tJEG}mlB0jwu#jMT@Z|-3ktL2)94DM zGx2b-GgFf0Qu)ln`k@0GAn#3C%FmZ@hVPjl?hBuHkCkVnS+2q>U`iKF>NTfcBypK zIuGrk4H6rH7Av`)v)(uJM`+EFjWinp3#rz!(=;1Zi!I4b64xE+lV#IqBot=Qr+{Pv zef<0defUe-`&a{|x50=rw@~xq_JI?V!;RptCOMGwTm$-Kk{URV|K)}|28oDUo@K;0m z$3FB>zWl5x<)ib{BnDDAsb5e0?z;0xe+|sg|5=;9=!~P5))2J0t<@fFwS>%R+hVkg-3HrT=B>dz=0M2K#n1 zCHzGeOj%0Nu!OSMbstV?^Qz2e|9T7aS?VRCge9w@_gM7H#r71}g`-_S4)h`rPyEcjf`sE|UVfQ24d_m5tjuLf zEM#%nbg1~5MZ%T!#LrwW4T>K>GaBupxyO#5x$#9AqP^b4c)aQ&dptgLicMeW4_^9G z|9nO1pGT?1k<24d4mh_^IpA+}Cy%5C@Kp}ACxOaUyfo^<2E43SDoXx94M-L>pxZg1 z!=1mmh`s96&@$nny9{9sLQqXww+uMXDOA=;}40K|zJgeG;%#|^1Z z^@2!?0pW9is2d+|6(r%QwhHhrFmCl)8h-+it|$c{c5lzDo-y*Dun#T&IYX%VpQ6&p ze-V0=|047bCI2r{-#c`F%KsE4|AgFAmXi8hzhpiy%=E)NFjM-4HZ$d)#5y20B1_cz zrGEJ^umJ8iKMZ6HuA30$m+`_c^##{)rvx$;C0SSOcd^R*I}NK``%kA_IPY{XpA5`L z6JzAU<#qrc@*xZdkjKwf>*xLZ6dcVjU(7N5(!d30>uFKZ@D!O8SrKIa)F#APL}sys zNf*N1TTveOm`CpSDeHV=&`s<0MQ-yi0Gu+N?2=byp^_46{8QIW%;_X|p|@E=-fX zUv~JX+X=3+EDI`=y~BS*G+)38G$;2=G9ft_?IZB7e`dOMADZL*qNFKb&0zdabLAYt z4v(b;OAyA1gk$%X(*%X<5xlO(^#aI5^oMwt*Ql5gZ)xm2Fo3$O@h50HQlm&C^3Zua zh~&hX*6nGY^ZOh%zbC_Q2K{<7L1BKE`3dv8nsOgj$@Jp}0EK6$uo&8mtoKtHeo@?@ zt~EQRKcBLcwW51=9Eq62P+JYk`6m`OnPWh{QoE!aSJnQoj(s5jKcLm%*BT8#MH2tA zP>MbAF{M^tydcjX;&WKPw#)B8$|Sh#F&*BREb_NISZ~&NOw}{r;-Gv>y(k{q=GkOy z?V(LOm#nxCE~#kX2W%9~JFGgwzz_C;fghYGVQz8-e!P<)K7b4Id@1`;jvKaZIt!zT;IS=5C4%R3lL%hkaVLUD zQWWtIagBl$5^#^LqY4O(%{Og6u6*;)EUI0OL#=N?@J1!_#82kb4Tg^%+rYM23l38e zIm}{b(;--vnvC^_ZzdxheDiV4K~eBPim!43zJT>;0N#wold&3hWDb4-se}pb57uS- z4}L`38vBfsL_nLl>J2lRkr4;EF;qO6LTcr~;x^KgAJ7)xywh{17iSLeqx4jy8Xk~b z+*n?#Lp0sMT;V%H7KO;#0YwO7*mR&SMP5ZZkgH)2@h6p>S9d9T&>Ffg&2X{NTT&CS z1`Gu<{nq2C4*kba$x&XYlJjvkis4cW6!r?|2UIjfb&-?M+*n3Qq(oI-{3Kgc$SOrj z#$@ug4o7w_s`}aa*QBU_`8|AE2Wwy95|5^!7o|Iw}g&oZiEgSa&& z=%0P^AI3l1ZXUYx3=FQ&n79~M>g z)V-7=%5N?Ig*@fh19QY|q34%Rfu2pzHT0DAZ|}bvn#Ro^QontG`wNk?x@u&) zwh_p#JLP7-frN&n21C%g2Wg9LV|lGM;9UTH?(1$Gz`5AJS?8ki<68}t`(d3+DxeNf zx#J05DjeHKQ{m9|!$|;St^eLd>Nl$mssA&LM`vtB=b{i-7O z@7fP1$uh8>_2bFXp!n;@W6>_x`Z4=KA@aT_K;+{F7$RFEk1_#Y5qkgy6EC;hO*&G86Q{|THNcP1r^QTv9pEEPj-MN2PbY1m5Fyu&0DDMJs#32@lM1LBUlzQ?PtMNPccl4i* zG1P6;Td1q_pX(9ZnCw@X6HJIrXD9e?&i8dkO^A$=|x9;k{oNY1sW02&%;Oqe@h! z_2+L~qVJt5Bl@>d%dGyefmyAVZMKbqNAbEa26s(1f7q~!l?{(RyjJ%8@s>f)FyJ~tfG z;3enOw)GhH*Qq6K>A_AzOFH!Y*&BeY`!o=3f4w`sU+;?j zJ$n9p;<*Ip&)!_GVz%hX*#f$PYybKW?b+-2^XHcC{LtZl`}r;*>cU4r)NlIOL_O+o zL)7}`Pn~}OvnKQJV*bpcT=qxj&nu-NuKdK03I4tLi7{W5G{P=~6a3*JGQVNXsV2HO ziG(qKA!jh&Ux|5qyVrIL@LIk%sn{gI~l)Up3$ z92$lL!x0Zt&N)leM>=J~ZSZes!}8K}%&@2=7bTNX0+dqM2oG$eq+>Ycdy+BqzBTn} zau8RPQ~|=!kC!DOQxdnJOvH`SQ9S!lhVcRRi|BnQ#II~c$woQ1qG+3)zv`w=zGK)x zKF98q#_}DMd2Bdo1Xmt*!k^nIFK2sR=;u6NV0(1qQc8Zf5lmE42+y9Mh4OQzUyMU3Ws}EhTY19P&K&^O6PseN2_~`*3Zcv& zQrp8+52=ymL0+J~=||X6DyrIR@IwFT=OpKahaBKLMkUj=jzFzKb%+M+5CD6_4{J8r zD4u>#hxiu4IrLHZ?Ksu#gT}?5&}~3Z5DP z*(f_|)>s?3-jgUsuv3;l2P25jVa6As<2P)<{S4SbfU5FBOY>Cj`7y$RH(_thuw?Gx z2-Y0P4=u^ty&P}IK@iBHn`F9#|Ai5Sx1KPg8`{9*lz&GEG7Mg{ik>6$B}3!b05k~crah)?m& zxEx)gR;-m`v*V{BcKi(a6$Gt3MZExNa1&BAYxh-(Klux85vw==JfN@ps{=WUec|mK zUl4gTL6i3i?XYR&NPh-}WKA$6-3B<{2Rm=DX$VGI$R}&|V@k{w(y*&4z|P0eKrB2F zFYC|wnTH_w27eUnv-vMZ1<0st4Iz@@5AFAdc3T@yX1~7lSM`H7!o$XMHWZ@5`4vYi7`Clmdynovz6m;MzT4BN|@7)1wRLVby3`I~_l*&L|Xiw~MZlLor z1Vl&xeg%M+RF^sc*_;BxEaDr+2gqO2C6Vq!IOK;cO703CBd`)tG&bA3- zRS*q&HiG-o#*h&T(8r<+s7QVn2>ob{niK7*+AhAK4g1v$21Bp{dQ#U^eylZJ$mtpl z(H+{@n#_$e;t~mjFHa7HMvn-DGxG+80$WoDg)ZKj2A27V0`Fvs@PTCW@_^SrxV#8ZcVEI@~YUAhCA@*fQe&_>e z4H&+WYVOdsMj`yn%sAE{+;AdVY4yidd^5%!sYD~aG{9RLMMt{wbKe-xLGwRcpHGoM zN$2_;mYc-=7pESBg;03CYqj;uM`pD(Yfik?biMwIZ`zynd2d~#URt%k#VoD*#jP>H z_4zl`%=&!PBjo=-&wnxM%Rgm(-mMh}sdnt2ega2IeE-EHjH2lJ{NyZIpC4Z#OSzwB zVkvhNiuC&YrxeYa-u3wkh@x2kg*sZPNQtR_N71E^BT7vw1KgF9cs0b13PFT< z1?s#js-9`ffBGv}XyC^#7JBUi!$L#;uGZ3H#Nd5u8W7;gAKdkL;$bz_PqmXG_LR~Y z1o7QEm(AzBn+;F>h_x-hRv=dSh-0Ts;G^TB0P4o+07_T#VCcr!6G2r3>)e#dz_YdY zAvLk)y4XxFXX0<4INw0FT^qB|HQTjuHN`zw3RH&NsnNH6?s0AOo+_knbSFsN^%R@b zS2i@HJ__PBX4z^N{EmO46K0$Y7(p2W`G@=)joNAZ%&4_4axZz$kbCsQPSeTRExokp zm#JxSX#33Uqd@RoYg`21c#|RcZ?m01zGy)p9{bE^9TT?C%ml7Y{Nsa)=vkEVhl-D$ zEm8RO*k|&kLGkS~{m?F#eP&3xQ2MADp!9%~Y)Y3U8%o!2pHaEJ4{?6f(&ogB%RbXU z@E>EJ!FnI(U2dwwmi{4#1rX!Ig>n%!&>$*6o%BTi!zN$F)8J>ZT#T#c=)-(yg5JPd z2O2oe-;twYV9roy#zf=ZROY2(oE^ob6qXRhNHwu?;??*bQ~3qH`K^m;7bDWA;HWz7 zf5=i69v-EmtU~gFi8`@GvUkn?f3S# zsqyzII~A-qKI8aiG1R$|!5=C{0|Jsh~co{Jof)v|9L3G6ictlI9VahTAE0mn+Di*NlAdgpz zqa*#`6;{eRcWD34!~wt^YQ7HY7Hn_$FQxJbqhDF^PL~*#q^#_&wVP>S1FYl*x z;1|KA=}WBD2fjO4_mV9dCE^d^H0^Oh)=@#fs7Vw>96Y1=7%0=N}sm;LDdB?XEwn4^j%E2 zNqGz}-HsE*tRLrq>KIX#bkeb+Qh(JQvOo^Ec=^l>_ws7@!Zw2rpc+0G6W&*7Yyas(fk#ye+gc|) zY2cgsHlBd959H;%2dm?IRQscr#|8t#jZhQUfG|BawHk8uA&mqd78t^1??N6bvcw3m zL?MEfvNxeyT!)7aWaEAF02n#8jSu>XHR*lDUjYISw>aq^GWE!3_#oV4(!K3~+8R%- z=<*kNp%wC4v{q#&dKN=lMj6+y)+UTO=6}IYwP!5J^LD?+45i4qYHtG>nClCD{_;+? zu)gz`RdlLoATXuV1{l6=Gwr_^RogkLwp(X#LZE-ozc9JufU85#fA|ySe<%OK1D`K^ zVB+vo(|DT&EwShJuhuR>U2kQU6K3Tmn5^|t%`kPNYV2~$-h^n4&?;;8EVX|_%uiF6 z&cO%RJFRR%dEs0z${LO^@R7C;Rbl$T`Fd42teN$2v(jJgW*wZ0xaWAT+D49TV)L;+ zzuSW}>-&AN2wU$JJGKyT;BPj^#G&y=yA|WMOmD#^qskx_GNo*z_2Wzo58aV!q8Yfp zZL*}kMyz=fMxoC!tU|`a8$sin4UJ*#``Oyw0o{m0=DCrUupWEq++c4k zoll9OGwG}Cqb(`q>pLGvpCpc8U1Il)uS<@GHbU?*(B*4fBQ<27|e zpI$|30HfuAW$bVm77*7P^uRi}*87~+Eu@%Jna%-L8i3qgNO!KY)FUkzvsM7{Wyp2l z?}^%=?)E*nhHWhH46awSO90i>RnTWa%lT>#&}xijLJjlec081sfk7*PUdZkj5JiA{ zZfc;)Hz?eufh6||OkfZTsV6AP$c>pc9Z&Mjv)J>63kkh*YILtqzlTX8`Y)AR$YiIGzvN6 ztw(o#chHBeaX=RgJ-+$I&_nGO&A}^>pOM*7S!@dx#|85nu%N^VhF-|* zNr@9yzsMGmo(CslepPM;?1znfGnT^B(6>CNp|5f(u3*I)lFa;1FfU&b%@4=KWi$HY zc_3$tZ)y_ihY7WjZ)&75s)lvFkRZU-WAIBeX(_YAkgEdWYkzh5jvD1Be;DZe8Em7_ z_Gtj!{Ux%|ofYVS+*}(5g)@B!asO3pbTj6OJFr6S!G_@HrfiDF5dvg}+JgY#97+N7 zb2Wa6SPTeb?|&k*Mjk$#IY)jgw0}a$71$u4?e_;;T+kna>%wE8^B{BT1;|r+ba5ZV zB;|lxrZngIP@9&h`T2NMgZX)<&Tp^uzcBSbjpr##iFWKApR3wib*8^+BGP>vq<+?? zcq zW%x0b5(>sJ;BJ<>A66SK!YTjYnaT?nZ#fw3v*ZBVik=!+{nB9$HFrGl{Rt=0 zjZCbnX+=|dHAK=g35wUVCaJyxz?hWj1G|9ERd;sr5obJPD zY;eo5MYS~$1P?17uc{*c16B8I$Ik#v5ASnCRHc0M6}jl>Rr2HIyBRVF{Z&)u;3I$4 zgU{dx=M!A?8z{T7q#b3`7-F|Z9%HW=^}opHyrU|=KbDhIE>-X@iwCd1Z@Q>&PK@_W zRZ4U9v_-t9;gpt5z);uJxJKL*oy1>8-1T?F8*wS~HVaLS9(Kl- zzKG(WH;sc#^>7g{WSKAkSMaVh74Hg`0u2H=7^FM#9VN{;>XZ;S z3Y(Dg=gYhyIxA@=7kkV_D!!7EbaT;(^`IRh(GUh4sKVH+8j9?IGh}yG0E3&K6GD=H zm!dY{d6zZwU9NigE&;G!@*?jueUEkYDxC9F*i&-A#t`huUQF(=q&%^KL3<;54q33jLvF zd7%w?p_QEV&ey>Kvj>wuA$cnJH4|@zHXK~@CQcYaUCXh|!OACm^idbJNwNyKrxa3X zfjpyADV*~8Vc?k4-vP&{`P&bd0TI$;BUw;gok$fSn`XR^v%~NG4vXjGKah zqi>HzfNJm+(%@=qHo~_gCV{z82ceL^hvB!{qcDqQ#-ZLU{vk$xCKqHl)f>p4-rzNd zKI6Tl{bVBe&}E;gf;NafZ8(L8`FKZQj`L&HObzq7`ZRzF z8Ojs`xg5ICXJpjkUWPJ;I)``wquDRNN;wkYG6y`v?VA|QG7@oiJl1E?^>;0ZChKoH zV$P&2c|uM$K(bEd1MLs}?M&`rWlcK2y|40nwgZK$S?H^LjWZDxJ_?Tj24heDq9zW? zyx`IX;$aV0;tu#fvmx;R;6jCeo#7<;bz{MwQvv2f&*t!DR3)v(#3;fHgI5VJBezt~ zInfGeyr)1bOc|jbz!X{_O;Q=x%k@bD#W=<#+DPc`6gQY3135}lymcU&JF@|r`~91) z;qu{S#uxB&FkW-r&568)N)4oZEYPtY(g!aR(SS!_5RoOGHHqDH&?q0l$9w=qAk&9|ng9`S79Grg2 zc?&Ek#@31;?#ak}F0bRBG>FSmn}liv!&sM(5D3lH)>Y>~s&hvV6?HB+@j!KA z6%=;Fq#kFN!3qgd zn8tJ}fbjf_H(cW2ol!;{Y`M(|X35V4qg;co{3weW!#$W_ew48wk=g%r3pshXvUKDg z;{35mT)E-Jo+Jdi?26w$Sy~m}KX@z}M$>TtEY%~(N!eElC+!;x201Rx_79HyMo)W@ zc>civ=C|!?ehYGDn6gcVG3K}F97&kpU;*?DlnE|A44L2$yOk$5fA=ftKi5tF7i{`ZCSkPv;NG_rwtHFN_`_@# zK<$7dEO50ACiG=7r_XyfZH4tNWys9$n7Zobt6=$)UUfSSS30soA(NMa_W7l0EH zY_LD!@mOK1Bstt;ekMmA#5Q9e5Pt7B$TFEPY?qXR93Hr-$E7`d z`zk9%wrW=nEN%VL^O83p{CYA6$tC-NparkFD3S5Jp~Snlco6i+k5L3+*-@4X{jw3+ zP!3lBjB*^%TYR|&!u4q&r(cHT&)T^UkOpZ;T9wTnVMuYl7g9HYq{gG{E&wpAD_}*Q zBwsSMZn!%P*F<_%SqAe6k_=tQaHPQ3qlE(SFWpT1qiF`~(p0_#c?khoky(xk^TKUX z;powZ@b9?5pdh5SB7CohB|f?UefnjBSsVkg?rZWr7!x-|P+* zNGuYmdWbTFVbS)7Ty#W)6kAH|fI=kK>XAcz#-2=|g9It}us**;kbdtqK>F$?i6Py( z{mX>#E%vL~E_9n^m;I~oPh7>rKRSUUL%@W;9zJ0(nDD6%!i4wZCokvYiP?R9^M%Uy)7-=HuDbd<9|F!mIaU#yAIU zC5?LhI5vubpGc#WwTB@EF~B5q*9V=jIwiXUA;Fsw2C)au?#eF_C5wJZUV)^VO2JF4 zR2|q&a17D2Je*$k8Z~Hoa{O(&kn6Etrx#DrZxN)~p_ zy;j&Yd<)n$`>0mfHL4(mKh?HvE%#4UH-?Y2{#y6n+iY9>{udZx(206GebQRE4g@K~ z(k(2_fjp+1Lt^8Q`6PAD0nM>OEe|yvr~9fm!=3N`0*n(oLsoDHa3)c=uQ~R@B$oKC zmD<$Nva3?%R=NMfw#e9yI3zAC<~R8ZzWyrm4QjB`n{?kDPEt&*w+KeOV9jOc<)@%%z@QF98;&zy)MiHD{Scdho%=X)6&?4Dsl>s*Tz5ri7Zw6E z_uES^xsFvihSQNd<(|#I*eT=VJ0&u@==>Pt|7?IR{FVI^9p6X$5A<+P(;JJq?kYvD zN0tz2i)wQx#%Ev-DmtCI>@EEgG5Osz6=$QU>NXL=%bc#B-|bl+qwlxuMg zd%P;wbf)27Al*tOKL^PG^{U>`P!TS|il?Y6ujRY@nT$UprAxfph!UjkMi*1ew%iFZ zTkx#*0R+@)Pdb171uuP`2Vq0nl*~Y+^OQ7%;c=r@N_GY9hX7-^Ob-Z@V1jR=d?E9Q z)c}EqoJZvJzu`1>KfesDK;8t0*uNofIkCTW*3|*5%{u&z){)4YO5l;vMq&aD$_qNy zu5s6{lKKt1V^noD{sr4Nu6qUzC5O9T*D^MmsgK$MooSq09YLkiEmuo6{|G8eGy=YF zU>H=;A9s){pas(3?uGUro7I%XbGZT^DSO{HIP>pv$kIouW@ zNJsE7vX{W($RFfnbYP><ebChpj4+RSA?sQ01=G3>Oi@cPj?OfyS>91$K# zVo*&V#!8E1Erj>A?qX>Du1Lzb82)Jg{^KeKg@PH~Kg&zP?j&76-*j9ely!X3u}LcB zci`$^kAMCX%xt?p{X_R8nZu*KphNTkkXcy>09!we0C*pl0I>N&09bLo0I1afzG?x0 z@HfC5UpW|H9?@WsT*V(H;A?AN8R&SJ9t3C@D5wpLvEt#_ zP=ck~!;VH0=LOzn;eugy2ZRi~M`Po-w!|(MJ$3#F?aOQ`qppOn!pD>jz*EVym@{=d zGz$YpWnk5XiWpTBU7_AL}G4?Coc`W#Uk z%g{%7#iIHiL?n|#wU-!jg0Ruo5lG;?1G)k{;=%;(1OQPG{lfgP2R0EabRT3> zj7#P`qp1M$2FD2b_tv>5yS*|!%Aw<~&MU>l!ot^b)-5@BcmjQsE2 zQ#+wj*0X+BasF5Csr&GnlZ#kp+xyGG$KpC0mUKL~pqs^%UW+J(V@lFgCkLsEnLBE` zwiiRYI^Q8Vznm>b+eX2k`WxU{fv(w3P80d6)Z3?#5v4_dVfEQmj7=Q$J`LVpc&;bi zhS`HLCF=CSmSXJIfHs3#umFLIdWYK-IPZ;#OW323_}#_5a6l*b!okV?_Ic_Cr&`T8 zzY*MfpQ2LN4y_^Rvp;~T0(%%g7%7*H>Jj`3Z$b#K18H$Vwk4fau@mI#%KBOT=a#t2s0H}#` zpttR`D@d~dl2`8ih{mD#r@%DUKh08i{foFb77)Rts*wi2)TUW6!+PXW%g32o|CUGN zLzItt)JgfEoH&`2(fN31M+fbCQ%)e9f18Sz->#8l4eC1 z!*=zMw?&ZUiG1%$d~f4DouHUc`dbqH364PY=ae76Yz~bke^FS{)!sG6nq|+VhcAxC zBpIJjdj9V{GFih8ch{fM)4*Su(DpWwj=S#izEyr30Wx z0LWP-q)s97jxUXG>VOBmh0$skx(mi0mRj{sV=yw~Z29Ri06$_?Sb+gxc^G!oTdBN4 zb1Jga9oQ6u27sd&2+1J^n{kgVb)4BHZ{R~;;Pb-f51j|mZ%udAtYj~)U^o04b*VP3 z*8Gw6E0kn-O{{(-|1@a+S*7QXDYM+4e?EV~Kl~-%i~@VnHY_KbK?_Ni4`^5__e)J0 z$xM@8qH{kYd_;=G@{#LehmYo5r};?J%xeF9ae;h4+iQS>6lg#79?{ONudj|1w z&p21U`l7fG_Ox=2r!MaG0Zykb&fn>tktT(H0-jj5P}~P1(quNiD(>}Raq?FZ30*4G z_2z%(p0OGwF+V;-N0zk=b1?!X$JYm|6ZN=g&g1s=I^<3M1TdMVRgEIW`QJ^r+ZTA+ z=tE~y`2~^>$bnJd;5`$4n61V1AU>}nd^}IbJuAsH@3Z9hZzf+5^P+I8KV>vW1gT~v z`s$990vGx|Zgq^!nb#tEXP?tJSKUXQZMA|7A z$K=b?s?43}{Bl1xn=5J>orkivfie@85$_zOM$avBRZT4^-?F&fx4;9Hsb zguzS2fTebkz^%hy{9-qwGP~7vO%(q-l2p!q=y0gcOoj*vL{@Y06c5PgzzypVq;g+~ zB}jh&nwX#F3vOHe<}BYcc))Oh9L z6$T3v$E=dfylPY^7n+PR*{h8rc}gNia7XtEet?xp>#!a#X*ft&1?#hI*Z%2W&U3+Tb+$|KwALgn%Js#7+6T#a;U_0&qm}8_#%p5JTPH+nof*w7tpm@{v zGd~Cvs}_oh`){%y@lYraCL;s$t31c@{*65#gEUM4Sj_6udMz zPrXTIqJ>S9n&^Opj5OXF7io<14}gLb10G$Y<7ZeU+KZLv5*7$|d9D-NLL4g+0LJ;H z=hNVk1-xqB2%0?T8Cs8}5_08y%3IlFMWs^WJuiDS)Lc$p(QfSif{Rtrm%mm>Kf`d_G8Ls%7ih z;TQ=$&q%0xTVhkQWVE(|{bAX(O%}^0MSgm?@M8s1>;XS9igXxwq&X9=W>xrntj!P68q7YU!@h)Xj}>cr%y3wh)|qaOHuqKA z#TZMlPAi^oiG~z2UO^~4GEQA3NWUIm#`{3yOj079eTP4;-s?LedLi+NIz1;@%*NSi zZ(k=Vorq09<=6$2FXs@tO7DK5C;rr!H?YmhbEYP(UwR0C#MMFLiSAz>qk3hGA7Exd z5)&p-r&ICag#}!WcXdiqKhBUaoG==ad-dpGrSl>eVYp0x!HyM1@iRi55SZH}c^zVB zaWa^OK)}L6+n1u>jKY&FNgTl-h!Iu&72k0BG!GNVdH#Z_(V`v{m2m~TG^40TO)%hr zw^hPNz}+hK7hDqk#=;Xzz*{U}sSD*BC%*HmJ^2ocvQgo_4v-m)Lw8lB?sBj!}74^+sDY#<)D`d-TM!vRTf)|Z@cB5tXrze zZ?N*yE4$QGrQSJi%w3i3tE)QP>8`CI3XAW!VO+&6W3$GggnQZ+JVL2kZW?=wd)hm= zLCK1Wk>O=5>ObUmPkUWHy6N^Yx7=BgHJV_L!v|yT95b%6_y{fJ(QLNgHOZrO0V>j^Y?%Po7r zd6<-FgN3t}dno)FlcR?C??4(G@IVoN8#J88MnYx;LUlbOA(nesdX4&?1$CfqwjgYD zHgKrsJ#;s_QQiL~)u{83;V(q&B+$};*Ai$s6%bjT51hKy!v;QBN}fmH8g*|EfVAsK z4kZYxcsIxI?oyq0v&GmPM8cp!Bn;*sY7QiUquus*QkRBBTeQqefFzHDYaE)n=&5RU zU<6Gl4fU^Kpn*LO-I<_;C>D(c89g>FBU6GXRvs3z0t5x~(SC7l1gv=!x zv~V#=ihXEZC!h}XM}kG)3LFPCG`KDd>&{TqAx-isi5}?oe?fBBW>*t1=u+j3Oif%d z*ER#p)(@{F?F2kF^OIlXu_!EzEoPKM%~AoRvxG00*LsaRIXre zDB_t~VdIxlNS4_yzY9zNOY0vTUvxo|6|;tLsc~>SanHTWsW(Ph*qsLf{HgEJ=9wuy z#?P=Jmt&PlAq|+_z=~*z@0MSU2xB~gSnwKX{2Nle?!{kTFzy7I1^v>yY*$b3Th;fy z@=+Q-DNgP!O&^nR+Kcg z#RF_0l!=XoW&OZPjVU`53E|o2``5MsfD57s9~oEUOFy1n4FLGCz{}N{4PH(qW7+2x zHQ~+!$eBUPnI8or)FW|b^8si*7r*X>71;%zy{p<(^z?uIAD--4z&}7k&y!feHqDJr zq2!7T|JOf9-fO;aJ&3(P*9R8eWVL4nFe*- zxm-OUW=$R6`3ou*=b;2P5SgimwLo1po;Mw9*^7ALJjeJllDR3|I>^KZZC9U%J0pL2 z3dTr)L^Cj{+FQUKN2eE}j^uYVhZR|YQmd(#P5{O$btZw?RhILfAJk7KRy>z97t*OR0 z>OoA6Fn4O&3_>s_Hg!Uo2;^)$b^5nWMeko=0{9`|Z}7|i!V27fksb+p%A?5{^k&l6 zs6y73Bj$YJiEt}!P+l{Zd!aA8VDB<=?2iA`;Tr#A`E_)N94lp#D~|Q=_}O`H_?7Q} zCC4sP{gAsAQcdf=M8^wrJDlD+leeyaV^;qh_#3(k5L?&8%m6?}7FYkwOi;(vzniuG zUBXVS*+nfv`*$vXp?~Gq#JowjdOnB9H{h4{?`Ga3@`fZy><5PB{mksrp=k7PjDPvD zB>3HdM;}=>aPi41kIk~R)_U~==eeNqqMXM-GI}qIs=;5d{~wfOSd>WcumZVFAxT=sjk@$*c%C)>f=yBaiwj-PJTfq; zsRJC<$8n+FU&rRBjrw)~sMq5%{Dgp=%RRjWu8(`+NS9@w(A}~}BJa1y=_mC^p|k1k5z!nT&b9+@4kMY>ogw(In?o%{);{V*TXBf*RmX{_s8ev7=SsqeNWucy8J zEC!H3#wz^y3oc#2j$$`Fi+kyYCvc&xwcj*X7bH_5hbr2+7rK&giL;yP>s&v+oR?Hx zaM2>X;+wSdam7=e>e9B!o7Xr{RP?Pbcu_7+t}b{=F1l40JT4dJc*73(Hi!oy{qbM$ zah>ZA_^XFro&9<9s-$Fjn_G{kkKrk8ygbWBG4*21 z`_uXU-uU;ynD>48{@VEWx5d0qW>)oi@$ZMnyl=zz-QwS$uHX9$_Pk2^ag{0q%K_J` zA<#Gjto}SMRy@bnoxWuxH+ z`La(?3uE55B~sJk-~U0s$NpbLia1GFChbh(gyjJRy#*&cRKwRm25r~gj$L#RSzWsU z#)a%F0DUO#h)S6y28C9s+8dg4uBx4#nDBP|}gz~Nciz(<|+%gq-s`jlqp)5)q>zTxj*xCP zka9Jo6)9bT2}0g!w`oXEKT4d6Baj})z2Ni+F4RRD(p&!oq;3Y1N&2sk?3dq5LmDQK z+D0G^A*3|WG#?j;zps+!RS?ws6`D{6)SL*YP3H@t&Js|IAix3OpdM@7(M;t*)Ugf0$}BODwdDZ&aNE;tm17+=J(z&N|6YH$BiBFjSJdx`Z+~%c zbQb*{o=*gGv!XlKWN{_+0ag5r4o&NZGXAk`Am>amcqZCPYR6NtEvHC=fSAE*3i?3h z9BqFV=l9L7{G%5cs7((gkVbBWJ~zb2hl!svzYaXz(`qRMK=kYo1a0SHaN^LhniFXr zKqx+XN(-8d>E6LKUYy9M>egBVVw~+`TWLzv*$$6@d&qWWu|@7_ci@(-3g6u7)K|29 z=c0Y-y-EZ!g`_wi4J3V2 z=5NRU8u*W#7Y9Ej3jg^38NL-vQsV~2!GHSf2>x$8`9I^o5b%@Y;1@;VU-SP2ewTRo zU-pmSe_-w};XfMv8)LgV{X5F^Zy^;9A|E;KbWf_g6GJ!Yo=jeNC@?wXvRo(_yT`K6 zJ14y%TJPq&8M2Eg%PXVk+!{g0Pj(n3?C_|tL!$Bl2a0@6iI;!OFTt1TVg+-VKRrCP z^77!s^!%#y%3Rb4%K6T4P=DDgS;{c;fp#f+0Wd(jS_e1PdOG(=DMbDmvx-Mkhn z3NFeNt=Uf9x~_G7sb2a^tj+*^!Xtl${QO@c{?OLL(S-6;;NPVZC`OTOq|W|&tso1B zpR@cyFUoU@Jbzev+$o-k>RfeUvAh;N_6KZP;vl5}f53EznGX|yaHhX3E6h$U~+Ux`MJps+wtNI0AT2-PNq zufahfEukjQ@ID`#AGi9R{N0?KC5iRickL4=nFj z|0X_5+UP!eIAVwY#2K%NA}RoQK!8{8V#KDF?|>~7d-;F65d7adK}!N zo@o#U!bz#9bP>^PLQ*iU`_<1FV(Av(Hcw)1?0pQe$n;QmEMfG)xn*->hE4VI#1(Fl#v;E*+^9X0>0zjYklt*90(OYwl@c1EvT}q}g-|F$LJ?IGP*w`= zTTVOJUHcyYF8R~=5Qxd zO1Q?q4v)2#hi%RijDdpgoQdF$w%A@imHL5+UKen7qD0VhI*ZdtwyWpyvWb)W<5_zC zs~RwwB+9bRc1|+kv@}~@A=+lx0^uTN(89j&4*!;fJ~Cshe9AC}hF}GbCS&LuwFn6d zjHZb=)vT;W?MTFRa#=Bu;hObh#t`mh1*7g0F=BOb+BeV##H4+;%a_TSu#IZvnM`NX zkJ%(a&usdrp_zKsD1RIL+o&lN;&2{%}8@mvoO-rxQGbI>Uywm^BZKTrenSS`rM+r+72vg*%vlrCvR_HgV%qs z{bU5K_9sut=N_1g-Zfg4Ni+L)V%uV@Y{c|VBTvcn_1WOFJ3Q=NzoWQM1EOPH$G#Ar zKsLgq+fT{z+L!0n&C+!QuTGVB6{Ej#sb2Z|IxS$IUH(ULFdzYBEuASCBvZe!4sRrK3Z}b z`G!S;raa7#axZ%X6Z@Fj=HN*lGfv-{6SV4LiPacq;}2>;)@ zXm-g4S`M4w2q!SZlLF2N|1%5N-(t^3h5sxq{Fy*jg#QFw(BLbTU8WM`o~0~oAjcj2 zv4quss5QCYWbJF>d2-URn=LFXvHEO1Ozz*szFu1H7xKy;LAjSY{yVwnr|cgi`%KY@ z$UZ03u)k>Mi0tpn(XuaQizE9`$48cZkqI6avvJqbCHo?I*%yqnSB16Yb0oZA74DF-n< z(0=kUTK=iZ&!d8gQRV2;u!U9W(xnYZi$RyJjqOs%>XYH^?O-Hf&rk?!11^1bAqR}E zQeE&;DDwuces{)U`|iV)`Q=e%zQM9*$*0i{5&dSQ(c|oVuG3z8zF0&$P8+yiL zOjN&)?LXpz2ZU>z zu_@Eh;VjUK4#yI=|3ZiV9VT`pNmncL03K19kD@X!G0L13|BuR?AgIh?p^6fBG`d#i z)g5D$x%xi4bw%#za8c;-ihLsS?|(s&pZcdG@XW~h@jRo)f5?BDk$<3-Apf)Du7`GpA<+^^H*^ASIbbT8*eA^#8JnbGM|+kdCi`Kb|q zNAg9lYw>@zLqz;fJ-Ky#?wE1H5plMhnlGvFM->0-{&f14tw{-WLWRCpPue?^tQfGbCp zOI`n+D(9#1<8z`q|Ga&qKd7pvK5rA}?}(i`Jnt1NT))z@(iy+>;TZl z?SBgRJAR+nzFUUv!5Fst0&Dj3(^-lA+)HXP{oMP-DAdFB{h89sT-PcWi`b*^4?URV zW%%Hx4c4MRfA`#~;pYYrp~T@ZJ24RBbXXaMW%f=?weX+hJNTCN-N@AFi4!<6?e_gR z53roxPOwD(szW^!5v`gPt6wI*a0E=Ve1Uq5D6I`afFG{K_M2uX=^#sWwXX-%0IuSTVFo>oemTUZ`j^vYlsZJetcOv8ZN9~7urlutmJA<;OOj22qSfLvFnk`-a+ex%+xF)~Ux=7o-MQL>Q!;28plM(yBTAve4A&Bd|B&WpV{ zBc_;^pYAbFR7bfnAd_R?{KzCN$ASDN_GYWxn3~^>xzX?`Ux;YM1!_6WW<{q5CAUfM z1pV!Fj<(KhuS9TV&NDhu7|jI}_~AJ_51*8diS#l*Y`zY@)>FsT>}n*dAW*3lss4?` z(Dkwg8m&r-ne;Hm7ML?edjrAgi?!g+#hvQ@ViO2smiv_P%h~cJ!tZqFH{(XacnHIv z@19j(TaOh`IEC}+W4L{uleW*`5G>fTxGzLG%*XdQB;!hIW$+wt89Z1dkDZOYbXGkP zOZEk?&y0-DkWcTv6`3gOu4QvWg^L*B*y)qC6v_u_C(In4?S6ZX7;msoK<^nD~Eyz|e_ygW1% z?HoXgRr4KUZY8w*EJO*^3+-78Zwz?$Z3#^vDJy|8p+#Uf4^}obj9IzRbTsx?Yvwt? zt1rp}c+ltiToNaQYe^$ND06C`S%LT9%R_~#@yuS2R5vV-$iQdNOCzzU^?0H<3NZr@ z&dk6(*1mB)p%y$T$n9U!jS9h8L@8cBqX9HCMCpK)OD(wm4Aqfmm~VXXYvf{?Q_&Q} z^a!RhSTb<0$6v7b0pMMEypsisnUq|MP1OPHrp%Zdr;O_Itk%{nm~WX1?Ga5snKGT^9j zP&YH}!8j@yUIJtD5IscBUSx@Jrcf%#cHQg2N@UPuuE5lL1c;Q7+5w|PULr-#U=g5UxQY328)RvWo=+8r~?@d58@hj$kgkPicKQ+H;{zu?5 z{{lUXxkBbACCOl$b-D<4Sj8$6mAQ2n`eK=!!j0EU z=)|d$WlxdV?+_H^N(Qht7${D`sy_hfBdb-(zlhPB&ZXdgJ@5zCNX{VsS*#}ysFS`9 z`dL6JJWyHB+^%iC@Lo7 zhg%0GVL6(ErzW#{do!>KW^BSsL)k#1Ms1zhuPWLfiKxlIr7mm*KN+dQw>U@&{fb+| zkNNK!6W`&O6ao{`yf{Cb*#2T)tC#O{yDNfGDmLJO~@L-2!^e{S9>xsdO-yO&!-ZNV z$pj8n)T>jFqIO1N8-@Otf&QpUmd5fAYR*EUb6f0ihyCrQoakQIHMRO+)>v2d!71Z+ zCT=*Z7X9(t=7imGqk2f4hkB#3)$~9tbq#-xZ$W;TZ&gAtMqbpzU8#{p%5B%%=ca>T z$PQ84xPM(R6$kgEA~92T7L5u{5QhIXm|SusDd9Ds$1tx7O^(G>j4P}!PNY~o{{gE;hmhNQghv99K9(Ej zzaz=Re2ejn0|8wj3@X>rTHqCw4M^m?!{u)ET;6v$V4xa>k+!ziJxzaR)>a~qzn!PH z*Tnkw1agh4hc9s0p0WHIdq1Ec`&KxF1O)r;I z6`XYffW*lqpk=DF2edciBoMm?q5|zNv3i6AEUxG8kZs5E4scK!vR`{yif80~kR)G|_Z__|#}l z1pC+Q5B55PI5oQ#2}rZ85&CyN@3{*|AND_n`35PVxAjDPnmZkE|MDN4av#cjPTHXB zN=f9|d;(iQz7$)4i*Q1CO3$($zuq7&tz6&fR*n}t@=X~j%2@o@KHtf@iozoI!la>r zWrhBRtU`bNUka=DA3r`bBz8|HOi#3_>{*?cR@tq(D!F}SSCYDvz*%*_`fvf}zN2+j zWqFYkK?6!-hO#JA!=i8k&@m)PB+Co3q|)mj^79h?9}~wq)4AAK)G$e&#LjM z7S?XY09#=-*IW6^rW}X)xUR`sehQ(ND!#$rb`?9|e>Szn-h3=`5~e~S1BiZZa8JJs z`W4??*A8ajp{$CJ@wZ)tYz~86`;gq<7w_?rd+Le2=mQ;tv5|}9`ZQY0_G2Tkr1|_1J1y|@Bqc(J**CS-K~vAd7)>%KwrqGvqBToU^41&RK9s+vMb2!&c?6Y zpqcq3+=$+;!c5gZe;yP%l)bZwA5MIL<*Dz~&c^@&p2J*Vf$?!9Q3ks_u$1g)fT~+y z{b>7^toI~dIlU|Aup=T;jGSXH4gjMuj~ovO3tK&k>`2B#`)=6Z0oFRieT~}GQ8%!j zZvw+Gw2d%028JM}ppntm@mv&97yXH?1UT8|73)*6GogVCrBPCBUz1!MD9yZZRZ9D; zejCD^CdFo9;Y<0Ozr{Uu5-yB>%-`sqdLwR$x7BAO@&UvdsUq&u228#o&VlK4Z!f&< z+LjH%Y`2f|9ipJjgs1Ha?Ta+XWg1k?22qdEGr+7R)GbRxif^DSy8lf)Rw*&_Do9NhY7h3rx3xK!)-XSzH@@%8G^92D1b*$Fb% zAxY5rR?zvzNF>fUUpA$e&-Ma?wc~FP!h*T@;oa;{ z^-r=%d=5VbxtxA$LR<}Y1xzLz2g(C#4uuHamkwg;`VXBZ`nj@fa8|_!gWFX!vOH|S z&X)gPD=9Ro1bv-@@dFFK{5bLMJ`b*^9Ah;j{pZ>ojQ_9?hvb6)!KTAt$uQ>=Uyrq{ z{DyHSd+G+X#d`}QDOQjSDUn~G0SuhQ0_s}m3rzs^a)oJoxHn2lOKJbPr%z()lYf_o z)<_<$5scqORA90umbw8g0?JGx?zdNh3r!HiMrjKd`UgG}D}aLv5|{G#xF2|mddXjv z>T=i4<|P6MS@=RV>G8@v?Q}i`EuaagN}BE;}4xQUFv{+wKSn*)uW zV@vgg(*bR8dtD{WfR+pK=p5qIYL&eJKMt4Cq3}_B=KmRoz^?$@U#w#W>Ii8R{Z-(f z$?iCSO?M$H8SJ#TvYQ-b8Jd#t{!+Y~(oPam%5%tE9>ZMa$b+Pfk%PQP3yQ)${aRpl zaUISTTZy_BeDJ+w+{-4{rr>(**^@r0S+{QQE>4r4)aZH0IgU@2X zhY}maGYaG0|Aq$fl$+nyAjn@iIwz&_Du+W_<+pz!?FWrLjs!WZu^bv>ur_UPf*E%B zQ}=YH9ty8tST{J?+gu-hST=0RsJjW?cz%z2@KbpX2e(WLXs#1aSg-DST--#EsK?VR z8%%o!KTU|Auq>n}mz)EE6IrClV*khH$_$ZH8XN^ZP~I1Goyf0o!g)W+eg2Tt${c^e z4HG%MwRhTwrFj13sf@%0KElaO>W7CpY``|$%?T0sY0yA<2zq#s^arKAM{RgCGLWo} zT;hCETx<2j7NxUAXx60cER|dytEq`T+JF~fD<)(``+TnUzh0mctJ$@koCg1EGk;;9 z%P*`Ng?sf9ZTM;R_Z>z5s_7(Zxhk2tz-CXb`QLU(QpdPx>PQ3=#sJ1WF^bIAGO+Dz zm$y$kmjt&N2FDX{8(9yGcfv;?PtK&K6L#Z?-(ml3G5x3W6aQ0Ri zKbuEzCgctdnz$4(jNrgY_yHqL#*f-5bdX^KFcg=fRAF`dHij9o@kjW5wue_Te#238*DjSu6$GhGT}d%) zhK+Ou9JqbV?YhAKc{ZP$ON_ApW2+7A_Aqwr+8Rb=buXcxC(t@@pL9)PKc8?+FcS(BV1bMsE1mP>P z%hc6_Az=Nxh=2vte^J0137|#sMJ2GX8$yoC1OIowP2-;$?iZuhB37uj&y4-)iM7un zrkS?XQeyU!#Nx@+}BE%Bn9J3dFbrEcJb7 zwlAXzCcM~rI`)S3+mFLd&ta2nUv^GpGq0zX@1lRLy7M#9i+8(0nTXbRLT!2sh#KIc z;8pKiO{+OHVZ4HF4|f8Jk#;*55}&*SwrL*QjwluXpv4}<{EVt?Q2R1rV+-pt;8&V! zon9&?bq6X9e&Ao3w?eI#QUwQJ7X@_)KTuFV;YYoGAE(@$f`Y5^k8%3to|f>6#m_xm zHs4A(UkF=(1T*d!Cx?UO5GJ&x&eSQzLonMbpJaf4=X|g0DI+Dy`>k0_L2qjBss8y4 z_pIeQ0_%RD77uay2<_ziCPSGO6m9H>N!Eoa=VB(Y;&-(hDmoU~7yU(oK3!@zRMy*9 zy(Rjq`rz>sUTf+pE-VHwMCR0*^TEwGvqRD3QqX1;rd75`AA)bx3w%8^{&loq^a?FX zl_6V|mc@2vI1CfjA&>E&41GWbMq<&2StJOK5)DOy%>5W-MpndqumG`t#)f`qZ`b}I zwB=Kc9d^;W3vx)Lvt%;Gp;bqCL8)={nsPd61)^j)M4523ebx5Brlt=7uMxB%SsMJS zvO-N50A&+i2AYEz|GpfCj}v6B-^eVHjjC!IHB>1E3XbA>I?A8`{$ltQyqBle4~oT3 zxJc-uIsWY5#}Y|6UgD42VyP7&TjYZ4qZ**Tw28Ba-GUG#20WTL^Z9G*U-iA`^Jag+ zlDnxdF=OpI4NZal%H{7paj9ON0R#|u_JF*b26cDzV>JH!GSrgZUK-+s@IMxxVJ#an z<1oU&K!EVGO?l$na=BX&a~Cp?7VPonWgwgFdT;{?wq9L~?GiYuWLdJI$*F>q46l$~ zXT$;s>W@Kntd%Y?;u`*gr%nn`GfT@5Rzw3=sQtGfMDjz+bP_TjcB)x~eD6SW0L#AE zBDHU}v##+(&Mjd1DLNFL3i~IB_x_csE7YC)b~J~$Xfgel)=fG!h<+Lp9~-bsKJy>E ze(X{GHZXo4TH;2pfu}&9kFYb;&KqH;AYk|Sa{AAXn@(v`ZZs4FY--c<4)}N2|Fh9_ z-TyBgC;hLWBV>w!zv%z%a*wU9gfFmDmfU070KbwY!L=lEQH~3(!tJynk9CIr=|1P% zW-NVl*A|L#H;Hk;$Fr-+XfUR71k%jx?Yu{jA_Z16*4U)={wM?PT@lQ#B~zW|&|Z}C z82hC>2I6Xd2m7l80sq={L=XN3fnbS81II`^ZR@6tBvtwAp-cl5HFWZ~bc1K=^=H%8 zRCKoNS^6e_eMLsN{8&`wJb_I{0taJm^<1?m}SnP zm}S14r59=8J-?(iNvvX)+F_pdSf5=h4Wj<=5#O5!WFUnmljjjgdoqQhD2>+RCFupiXx6BBv^Tc~Jc z0H58lgmZTZ_(kzzL^r-WNFY|O@skc2MTBSt6G77>6QG36wL&C*CL|ZsU`Y=<4M>qjeOJ6kpO8fIEq79@dkKlN<5ghNo?_1hW z)C4xq6N$Vx5Y&zLCJ;4&#YbQj!+%552#c4KqFJmuO3^#EYl?ogS5p*a9EwWGUq#U} z`Zm9j#aUj|7Z@B9+x@ZQ36_HD^EJSp8J~8L9bNaR+x|@+b=D&;&8`-j-nX5m#crAw zyVVF8QtkjrAJ;H#q`yir*SG7CY*=T%n-x@$jBCApyx<`v(*#4q~?r4^mLe;ehQKS45pK56`*$(jy;klo$t=0>$Yn*RZwPh-fp3^yXfPxgi1_ zgI_aJrQ&i;E{0off|EL7A0XWn=eru7wfLobhp#4eIMHB-%vK9irU1!G+(KYDic&uqJDp% zBS8Lweixl>#vNz4jp+AUv+cG_h?_kKZP#bp^niQy_gWj3MhDzfL%@2r3N7Vt%LDG# z`?WTb`oV6RY0X?4?q#q`9B{4Je#YE)n-o-oLrCrUs3+R9*dG8K+1X(P&5U;<6y7Q` zLY#>}YkfWh{1@J;`}~GIzls0YrEFsYAD-5PP>p7|IEFli$aV~cU&2Wjzm_A3-Ef25 zirxP&uqzOvGQBDexsF7xllVsmu^h4m{IDB_Heno-hSEEX9H9F-!b5YmXliyLzOlVZ z9@O+Q;%FxB^_Qztj;X8|ea7mdW7?jPcj~E*V3XCfb)*d`3>j;}d01h_gc9!B)lUN8 z8!^hac_#z*i<&bbY9Gg|4LyBk)gsknP9g!)NPu+M2jRCNkS(;oRqgfSX5HSCzxz%7 zlfX46v0+00>EPBV!;{^OD!ZC&e3&ZZGJn$tEp$+S>eG5O7L3%!AbRh=5<12SMVgXE zxapN>;|;mQ^hbXX{jUy5MtszM{x#wqF;3ueB7d3#9nVRA(1VP^aCiJ^!4kkU1{@aC zG-`s~2-h(Jb5vo?{%Sy&e3Z|&lAF#%#6ThlyET4GT-v|2oJ{S)K)n|>wc);@cFFca zc#Grb7W((Mt9UH@2Y>~2vOk0&X7_k$N4F%ES%bu1PO+obji9=&wR-3${* zQcekHES5+)u+|O^1tB1V~G+(sfQx$15MBlEEqAUU2W_5W+d= zTja9HUH~$uVD(xry+?i(ivf*lj}!{@-gPZVA97>hXfDtiFd}{0lcLo>)R8`Rx2B@b z$w%WVKG25$uAREO6o^g@sf%eJAWq-6SG(LKik7TAyt-S~B zv|WDvwgcZz&>xiRM+ZK^qnqUe&<#oh`Mdg?OLc+GEN~$U7@?jEQKW9E1JOmei*P>9 zP^gB_n4fd~*rO%V-Bbl(KdmxN-`wWp&+I?7(!4Ll``*sYa7OH^5IL}2nQwPak|0zO zy6LtOJsv$F{se1eEV9bcPN*JLI~D`a=7zyr3m=wK|Dt9_!W5!{p_*9{r)D}r%{*e+RL_^tElCs&qjS)r zRUjnKvc#54gOp}imY|m77v8|z3HpUkx%(1F5U*XtvyKO7h+?XjEsiPNreca zcTUv)E2ux945%$Ra)fYS1frEVHpo~XXW37{@L?80~ zIGk{7uIqYCp?`<_LLk-&h-ura7!f=SOUr=ReD>q7MC@!Jb`cPJ{e2+TzZJwTau9QH z@d6h;%mEjwRuKXwa2botkp)Kz!dEc=g2%)j1>{=L&>azqjOsC?p;rsb#k+d{m4@CA zKxpKK_q2u{_LXLMKK^YQx>54me;ccZ8~2KSob`_A#~xdty6UPNWeEFr33JLYe(3lA z*^KvPe2@H5{b(m2U8x^kq91+4M?>_ZLHf~3J~~SPJ4*8g4Y`{x@DvMl)ZZMfABFhn z&;+UM$900=WIj^*(GLCSRzCVrKYC9;x|)xc>qkrUqar?fSwEVmAN9i{+V28?mVVZQ z#p?8<8vUp}A64o{cj`y`KEk6L@hFry3v@;?2T6qZ8Lmv1S)lOoSbP_W_a|QH`Cl*j z?(j7lGJgVZQ`~x;Uyi(fZWBiq7=9ll?C6Ta_l zzR%L%=XqlG$L$mMJ-(RDFMhz1O4fLa{$kACF<SEwe%pimm#n$eu8A^0CuW~7?3C}_$04I_%1)1z^~6=kS5fuWQ!2IHXtzX zS3-@JNqDH0qb3)U)XtR#ng`I9fgeEXUMmnl8Zeq>1?+@M6j7@X4~ogZaGTHcC_V{u zh|Ua49w2kQND1v$sm@M2^Pk26GygrRxc6=s;QH<8=un*Q#4cbVBx9-4DoM9 z-t~ENE%JSaT#@Hw=E$d!c}|Qk0HsDS&jb7Cv2Nff2ql13?%xY8><7L_YLB^MXGrIw zDb+*_2sjUTFo z*uxt+oNy=Q_S8I54hMh|C=S|)sK*TJ;Z>GU>5)OoX=yu&IDJT>7cV0%802j_Q+gqlF_ftiY9rPotKSAj=4GN)D8d{I?a?vOsa)uAJ zkhJQlZ+CzN(|%e(s|cPc3qUFwq#(XmZFGS-Z|DL70R=X*fbIHyEqo$SN+%Cu^%47; zK-AhNxFFY=Ym{YnSP=9XzM20@v}4qTBCE_Er0%Hw7eMJS*<1jLM1|!Bp}dUnW`o$~4`#FfApfa+X!7{pTuDD@nL1}1Z9@Hy ze5lJhi}5{-TIxrSi&H!dTR4gW^uYfa$MMg}Z$*4Y>NaN*qB@O>iMHULIE5|tHyX2u zI04ag`G`xN?1H;qH(c!&|EhaN3~S#xKZb(IqhmPRU7N;10PvMp`KheE=`W z(AadEbN)b;?;O8N=!k$pM)(E-fZrvrfvNn038h8$07MNJWX~0Z9SZB#mUC5?7Ib0}=$RB=rk$Yk0kJe_j8c<6^fdi>hwaA!|?z@;W^lsF45?Zx!3l;*gh?+&#}`cj5juB zzrBU}G?Sf$-*RnLEm{JVgrOCyG3MfuIOIl?o>ZG_Q4aBoZ55R$l!{dViz~;Sal^Qq z#*D#Xu@$Eo`^|sIRoSs7kCP#lI4?FOuOgk%agM)Ef@e`6||2-BFVo(GTyFqj^vp7#vk?jt%7c@?|hAY)@ z=$T`4!}8=#@OFn|Wh!Gg@yLX;lx3VHX3`-i3M6x$lOga7RmwT0(dW?ZTW^kMpq=N( z5n~XB`Iz=3Uh4KWQ#JZmR+C0mq>-pNF=f&J=T_&PghOaxBZP!cVEp12h=PoKaG*+AeVckS1r;V@8CAH1&e z3Ym1uUvXbbzr9Uf_w*qsiHHuD2PP-$v^hxNweveCA%yzcAUYWJ?)bQ+#nFdYV>epH zznC^6*=)2CEpF|KrIOP>MXd~M0;-QA48u+7J{xui_IF=j(KY-63ixci;kwaMc|)cy zV?>N!jADP4bD;1touGvASw_Up|0l=ab!y>8C`fz?1zE(xEW$u4f?_moctYzkS}xjW z(HQHX*mc=uL+eu7g;#>I)d$nuwM4x7V0(A%bGRVgfHKS(S`-M76M2{uUBh4DtKnu`&Si1~xOmn}BbzU5daN z@V&6EYa7$9wW07aWC<}{g&m@d&1U9*BI6F@+Mr065gUpaT%+E=M9RJ zpe-0^6U8QSujPlcZeV%z1hIZ9RTP+f2v^)7xil^+2pDg-FCk@X|Pvz*+UW95HTq4QVI zXPG=Al_>>@V=f5`1n}tr_1NVw#PtY3lprXXWFCA({E>uxVyvF1$Q~tp%3d#lN-Bks z`X2YO(%ug~^AIu`>AXMU*UtU|VxdFpCIUa=$Ecd)Fq)sPX6486gv%LXbpNjw{kaS6 zy`A~f{DV(RWDyxG={?vb#r;5g^pbmeNYtGqr1!4CDT;R|H+_n~ZLItsrc5vj&prKj zC`ApCnmp9D8o5|{f(s>@PQWd)_z$@BZCatf{w>VvxF!t7Tle%H0=y!%4f5I>g}?B! z-S{ph&D}M=oqyF^NQHMz=)iPp`|h@S9V}!q!hTk-Emm>^QmxxgaV>^Zq7^;5bfda- zyZBV|WC@6LGrQh)op}+KfSin?7SuzovjoK0_czjABK;lt_n=#?6*SPX-R5;ve~ji6_^a1P2(9@L+udLpBY?CK zAk4^M2c6gk({SjZgYCwjj4SlbLDvM7FL}PH3;v>W%)NZSp%81NhPJ~F6d#Sdtf;O- zp4Ge>AlrruWcKW%as7(wQp`iW|5#XdK|$jJ>#@M$fn&aIj%zp1zlCh9SF^68I+M!) zE}`U9jrqMtUTs!)%kOR~ztQ>?FGtGL240rnG8E-`-G6h=iDUc@aIzxG4;Nft8Pdt; zWpJ0V_+U3E!{8^$Y}xuZW`Dr#^4giPtJTIj{7-Qa;i#vg>!Mo($}mk+`H*@T8xS{q?P)0C&4!U}a1 zCM*~S73YGbzkCw@0wX+WJs73M_As#TN5CP)lJ%sDo=)*NC=7ZK{iZPh@Du?6Hq5EC zt@k+~ibnzjf?*&PVuELS=xbmFMn(t-a_NJceukY2Vewf|I0<-2{Bh7FRO2Qs72-CEAY)6Zdp-t9P+~4{BF510I;t$+kK|js z$AVWOj%c40LbL-Evt5758;J88vEwGc2$|1EshrjTs*W1i?^^=)FoC`MJXnxR?b2Qx zl$RuHov`s^C!C5^yM}~v&B9~#+#9kt)>54$Z)cp#8C5ubjYPrDC`TFIZkF3<=Js~n z%O;QPwQAh3P(6R4RiL{~W`ymUaW3MDc8~g3Xjka02K5Mb_o!V{(HrpRP3{2NY6pr* zH`DULk#gqCa4eD^!38XKh98BXFoyQqfSnd;HkQz;yx0dq)5_y^ov_Hz9}rdKh!vr~ z7>3aduQ#Y9RrUQ3R?rAk&C1>QdIh%B)%wAUeOXTjUAh8S=s;|J;lnPh7p;NPW??Dmi5nOli?Sa6Nxe}Pb5ZxQNshi)YRejV8nVKEyx37$__Ij6doSv zkg9i>;hn0xLiczz;ZS_kIa?27AzH`4pLMC%`P%MLK0k(s?1CGBndYP8&Oz62c+PYx zn;hBxaJ$se9;bPOsTawOAxa`e{PpR+z>ebJC}dRQOtCL2M~KDkG}sqVjxT^>DrMLX zv7fNdW+Cy^mNzYQJELJDNv3fZ($Qcxon_yUT%5n-zK1|f(U0M=ummIo*#g>aob$nt zgt#{JuE<4L{^bv_yhyFN6!xmq^^sP`_kUDNvyqv4LHzFASXIqF&7`@N6}}p=iddx` zb4~kY{1MOZ+RAfqf{v%Gn$G&|`!^QCHcqtyePxxEzu;WRC&R`#1^2HRU;)>2-LMM* zVpauz#swaKhR5op%UCbI@pI)>SG29^)fmLhCFkGDF?i}B=nf7IHM{g!@;9UX%`X_A zc5=*6L>&o6J6BscB_WQiYF#eu71+7=h<^)qNTYNME0O3>=iN+_`rEC(5#4qF;lwKnN)ljl(*drzMYqD*k(sY` zlzt8@$f0M`^qK>d=KSQu1OIA9ifHZIxDS!T=i-8zdLDjZGK|D3ZeW;p&&`oQkXIj6 zB>bzkoh80O+et4VQmsd~x!5Bl3(NO%0N?UAx0&={^?4^(++ThEX_eDR1CM22g=7dx zo2MsfPr&%WrGWSYm)KR;U({#K->5#JSk%=|Qg^zi717FpEP1e3O*-~H1$!D-B~QJ! z54n}jmT%jo4JP?4nD%lO0Oq^q;-@lQJ%5etVsSLOYj22iV3>rF@(Z-hF>Os{f9X7) zc>V_&7KG?q8{@{!HPvIlhoIT=oDd4r+)XS2|sGN%7s%$ z?>P?{l9T=@{2P8AaPT!YSh>688(gVd@e@)vd&$=EsIs#RGe2`$95eqR!Rn9d;a}$O ztyHK{{(iB~Z{lz5Uw=jF#_s_fOuJ@07wTsW;}1+LY*vB+4=MH)=*<7q?=DGvhuznl z4NqzGWm*1J=~m!-5qoZn1*Mi{1u@HfEeL@PzLEbSd+Tu1E^Ky+uEPP`Ywugp^!l&* z+>@k6B3+yT;qL6OI3WL|eI343bfSZl>I?FOkH#}YV%`3~!(T{fzwN5=bmaUmmL$`o z(C&BIs&jN+jGgxRGRk1uoD+Bu`^vL9y=<$eUNPN+}aZmR3S*LK>YZJp}I>FQ39>aL7b*Ok?AjrlRS zP?xYW*w?etl9r?c0=CK7)&?FC7%xjwand^f9>Ww`%L+%KnCi|=bJ0GW@`!f))SvC3 z$Fyr|oX7MDZk2nOfX~5q)Ye%*@cNqo580)#FR`kRfUrawfL@CLnz$(r(CxTYt2CaU zJrV_Ud<0Oy0K%jj0Nok^v~QvY)Jgkr3b&m9(V%9 z@fZ96p45!s>p&KaxXuN*RYz$+J!1eh(EcG~sWrnjp~!&#f)^ryuKY_}`!2#Q<>O)@ z)dvqnN!2a3eG?5djn;J$X#Y4S4y|W#tM1aU>SADRfKJ!^+1~)-ZUFv*E)hU8{uIXu zRk&5BXh0Xl0J0;1!rXWYjIQ}}?O6_?M%@$FzRPfn_HDaJ+V^89+P;e%P@?|~G^7y% ztw|ARlS6T6-HBWEpoTRs2G&&+8zKAU29PHE*%3hhdLjQqk}0j-`J8@(fae`h5lNMZYh`1^f3xY+&zC8JBX%kTX!ko`|?@?C7Jh0WU{b_&TVdraz2VDR>Wd0x@W|!)R zrF=Nbl>FK}EaSs+UD9>ST&~wQl*15>k4kd=1&w`46YLu%k!lN_=enc=+T8=Y z=wgt^Q|W&+9)uWxH|pgfx(m%zWnisTtrkJrLh9jO7@3QmxW8io>Hh0NTlw%k{-qhU zaN8D@C$&#H_%l4VnP0In!TD8qU_5vT_t86m{_PHPj&@0|RWp^fBvr%SsF@maE`zVm7T`bgt4W=$npILFAdj*C z$T8OHsVo7L<320+Y8eaLZ|W)*%N-B^V(tf?#t#bfnRIRN-ceSceOArtWL6o#o&9F> zeRMj*53p!3q+92-m5uZTtBIL6zi~pb53}O=>n*o$y&OZj-;4EV#l0GQ$*VAzQGp~m z8e44UdUejFY^3BT@L_U@K*V%*Hv5rTz4fY?ii2tTq#R6uyl^G$E3Bg_V3Q`FSrn{A z3sQl>{wZB?_Nlj~p6C|^^y8)vR_hBiAgO6JtjV_esqhaylj5-v;yRlWiK3lzkfBX7;>W$t6*Anql;z&rtoJ+ow|<~_xMgZ=jU0-II#5cV+Uv8~|cxmIv$Bbhe% z*k<{;9mMAxPyCDzKBF7*0`(+*Z^Unl6k-@5N1c3P%VeV6ofH1bkwZ-%W(I&hqevh4 zuKWW5D!2T3ZQL_o7UGErCb_4zm7%>lBmtvfjoV@N0z93=Be8D<0w=aK<&+S9V70SdH43XBp{EZb@x73J8ti;bJ`gA++ z2?`b45B&smcmT6^+0ML6v2A#<{jhn2L%pG8k%jH%I8q7{jtU{tI~>zi>)keePcLR9 zmhDKj>_4>y*53RrUbhcRMdSN=t9$CPcx&==F!MN-@GZ>oaqZxTku;RG-sBGuB>oR~ zeEpME^K&vja?e=CvS<(bUM6rW(3ke2-ITXrNuDo=wS3{iMJ($JY{&l4jLf18TZbls zA<*e-nkEzm0*$0bph4QrH~1J3!>2bH2cDtuI|6}(I zE(tHr|H(b$LR<{(x2@@RzAMGfCl$ld*XZG*;LwR7~m=YF{%f9lI+DY9Y5Z0(I_zgMsOyaNBuM#p#uy2fo<}s$qB$$H1 zl3WhHfpzffFB}9eC3&zRIsVVr1H^0@Ag1lDNaM(kHf5pjaPAT4fH6x3Z2(fM&WwEA z(&%D70+CZC_8K#~?mDg&aXlLpPi!3SA-^y(xL67D3xN@9pQfh&P|BoJ5D~}tI(-s4 z(!I85%<_LeH}J&5Wy)O?I2uvK|LC;06W9)f&av33Xv|t&B#a^*9z@6p$pVvm_-t=m zi0=44%RWy<(tt0yZBe_mR{nbv-Vbr}W#?;AQ+w2!!R$_IEU`~VhMq>v|A% z!9wNG!hhhrQgsLm#z5 z-`-*_rqJ4o4>Y4M%qp0b7^%ySIqx=)%pCJB(C`YM!{$ylVBaq?CTDNa^qyp8rkyOS` zp;b_9gyO*RVyq~y+0P}mlhet=TnywW|6+T{e|&-J%|aag0R-=|c((J}-W2K2+fki4 z|H#Xs>oVLI2iAJ~tf$FW+-vQ{!Ibnucf-&z^-+nhZUk^PtQ@0yIj@8B1;PAP?wLO! zLB!W*6~=$TFH>Z!XA!EY^+>)m7RMcnFo-W-aCAQ~Q+n4JZguQUuWf1Uo&u~$g0?rm z!99b=e}e$tK8@N(S`Pd=wTNF~&32kh7X^LQWxjwl3PveWEyU5d7+o(4%nZrs8pI$A zHfk%Bx+uWH!RmTGLi-?jbq%;i|ML-pZ@AS%$|K&d#$zCT6^ua5rh%3|CgTO+*V8m|G`00i+||P z^JFZUpv-(vVLvhaECzEO0|%~16MRMktB<70L#TSZqM2A2ffNy6LzW)g$VR6u>f_WB z8S5mpWs||Ye8Kh%RnJp$`oi#IymQq6b{0r2n>9NPOW zz{`gDI(EUaYseIKVzV&tNENFh8jT_Ki<4%5x z#trGxxci57-?$ZH|HH;PP~zY~hFvtyfo*wzhk63Ztq~2Gh)grAl(c~5L9gZ3*U=o_ z4zzP}LP=t;1?%!cBysps;&qg`MaP|H^@m>M5cp!ecE@+GR#S@GfYIj5*+<1IFpBi^ zy>96z{9FtTB7KRU3MDGit2VAi&7kKW$YdZKAYkboZU#t=tr&+YWI{I-dj|cJeuFbn zs5?eo&BCJYXfO!N4S9$>-&G|j5qB=yC0gP@XR3I6#w7w#%)R>xkVp z;+NHxqsa!eWsP75JE{oJ;{LarWO{{&;8jZOrT*e$V{?`#<=#%%Ge(%fuhosA6}FL8fYQbR-kOhZV?cF(VL5 z?J1vkhMw20Q$Y{wZ<`4{=%;sK)Li%>aDNPTN-``F-6l5C#Zq8{#E(b8ExH|0h5xi{ zc!0Lcrf?n7Y2Oo{b#C9|XE-qF(!PU$O0<1L;@YRiHv9!5$HzCS&EAO?*|qq=A~&3+ zTD5yD468q{o}{~EQIu?De4}&nYUGj0_+BIe#>>&k_`NA+e@u2e3vb>TldbF9P*#C! zA9%k25wJMFne*!BPBxxittL5KXdifOvN5NAZunN<9wzy4DXy;JA&QZkp;)=Y8=Lk3 z-|%WtxmxY7!1(NE$o=42`!R2RFE_3BP+Wm=_ZebNXuJ>Rgu08d&ac*w8<}+>ew0vT zPwU6=f_M~8hR2Iz|9=d9hWrD)ks1*+ku1@wD8HZDh$`|GEvY~5-jdqvPu>Ih^(%O* zVph+Mx2JyWc(X$+{I~X0;O9xuw`zK4RjazM)057IOj5b4YAO9B)TMth)nwVuC3778 zq#PT_ijvB&a!@3uc+5vYG3mk^_OEylis+RtXR-$+;BHhK7zIz71Z{v|rM77w2FM=f}W9@gXZ;oaoGr*EG=}2$xpWCVA)X}IK=M&@f zvfJ1fm?XNWK1U{!`-!3Kl&a6k)7ja6j_RZ0w+kz=@B4n2?y5TNc95{@uKh}y+grL? zp_giWQpvVE?H_~_8aug`oEm5H4 z)2|LGI|thdj_JqV(VM?R1iK@Ao~vWoK$X-G*JAEp)M|f)zS0RdzKup(;wD9VU=&K7 z5xt?e1GG+vF7j8SYl)7cOhQ7zcaZ2e+pCB_(2V)hX*V6~ETMl@gTU&=?A5$lsf*x? z+ISX+2ZqagAH!S*@E6Omn4G7q)a#MKUg*3iYRp$z@nUOTf6g!0JFj%N6udeQ@mTFi z&I=D7ygn4i6R-R`meGisTs)R4TRa)O2J@EfTHaJRq~xInXBuBfE8Er zD3px#P58{R)uW}=%*Iwr(XVDWt)^Ycpa(OH#*Mw>JZbdE^9Cf@kFWqdEkTxG{-g2@ zJfGbi?nP-hP{zVh2F?@vfB0<+j!8{QQb4Mza+1OPpSWKO0ffr%f?scBLa4%?r@jvH z6KQN!gOd#AkCd-r{O7WY5vs?FkbKURJhd-SpRd6K8R?d)wN5gae@J6@FJeZ}XK1za z(FCM7I%zPlP^*&$iG`YwjzC=6=w{aK-RBZC8{ID^*qhY@_p@C4N%er=vaZo~10Mi9 z_2^J7B1>N*4e6~LlX62iL&~}{*S_i;W^wiyF!=TC6sq7JaGmz=;Jiw4KG>eDEt5l% z&5N&^Oy92bt9hXW{R*<{)u+1>#QYa44)pK_$a2Cc}x6^fT zK5+TsmsCHYNrWinC0XAoyaH9_D=)wUt_3dg5 zFBe=nyk!q1bcMq!uhj4|iStkTvnz=8Aj9j-pBzei-S+^WxaDmt_0Zet9J6E(#%xex z*#r~+;RAw+S%UdLld|E2(Mh2%RwXwfBjChuTAj~#)U0L-PpCKWUrP-oTmHjAdL@{* z;J49R$~_lODNAl6E>4|*DU ze68-;sd2pj828~i`5<-k(pY=!z<7SA>?&rXF zTFKyMTMQs2EwKGFgZWK;*sorIE2l#1P8eu`AB|`~hW^eB;y#MuKP20nWH8^5�Lm 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