@microsoft/terraform-cdk-constructs 1.9.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +38110 -28389
- package/API.md +40683 -30877
- package/lib/azure-actiongroup/lib/action-group.d.ts +3 -3
- package/lib/azure-actiongroup/lib/action-group.js +5 -5
- package/lib/azure-actiongroup/test/action-group.integ.d.ts +1 -1
- package/lib/azure-actiongroup/test/action-group.integ.js +5 -5
- package/lib/azure-actiongroup/test/action-group.spec.js +9 -9
- package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +3 -3
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +5 -5
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +1 -1
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +6 -6
- package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +9 -9
- package/lib/azure-aks/lib/aks-cluster.d.ts +6 -6
- package/lib/azure-aks/lib/aks-cluster.js +8 -8
- package/lib/azure-aks/test/aks-cluster.integ.d.ts +1 -1
- package/lib/azure-aks/test/aks-cluster.integ.js +5 -5
- package/lib/azure-aks/test/aks-cluster.spec.js +12 -12
- package/lib/azure-containerapps/index.d.ts +1 -0
- package/lib/azure-containerapps/index.js +18 -0
- package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +50 -0
- package/lib/azure-containerapps/lib/container-app-environment-schemas.js +522 -0
- package/lib/azure-containerapps/lib/container-app-environment.d.ts +374 -0
- package/lib/azure-containerapps/lib/container-app-environment.js +310 -0
- package/lib/azure-containerapps/lib/container-app-schemas.d.ts +48 -0
- package/lib/azure-containerapps/lib/container-app-schemas.js +466 -0
- package/lib/azure-containerapps/lib/container-app.d.ts +925 -0
- package/lib/azure-containerapps/lib/container-app.js +320 -0
- package/lib/azure-containerapps/lib/index.d.ts +4 -0
- package/lib/azure-containerapps/lib/index.js +21 -0
- package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +10 -0
- package/lib/azure-containerapps/test/container-app-environment.integ.js +82 -0
- package/lib/azure-containerapps/test/container-app-environment.spec.d.ts +9 -0
- package/lib/azure-containerapps/test/container-app-environment.spec.js +412 -0
- package/lib/azure-containerapps/test/container-app.integ.d.ts +10 -0
- package/lib/azure-containerapps/test/container-app.integ.js +119 -0
- package/lib/azure-containerapps/test/container-app.spec.d.ts +9 -0
- package/lib/azure-containerapps/test/container-app.spec.js +839 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +3 -3
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +5 -5
- package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +9 -9
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +7 -7
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +9 -9
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +4 -4
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +6 -6
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +4 -4
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +6 -6
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +1 -1
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +5 -5
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +11 -11
- package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +14 -14
- package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +12 -12
- package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +8 -8
- package/lib/azure-dnsresolver/lib/dns-resolver.js +10 -10
- package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +6 -6
- package/lib/azure-dnsresolver/lib/inbound-endpoint.js +8 -8
- package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +7 -7
- package/lib/azure-dnsresolver/lib/outbound-endpoint.js +9 -9
- package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/dns-resolver.integ.js +5 -5
- package/lib/azure-dnsresolver/test/dns-resolver.spec.js +11 -11
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +5 -5
- package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +12 -12
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +5 -5
- package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +9 -9
- package/lib/azure-dnszone/lib/dns-zone.d.ts +6 -6
- package/lib/azure-dnszone/lib/dns-zone.js +8 -8
- package/lib/azure-dnszone/lib/records/dns-records.d.ts +31 -31
- package/lib/azure-dnszone/lib/records/dns-records.js +42 -42
- package/lib/azure-dnszone/test/dns-records.integ.d.ts +1 -1
- package/lib/azure-dnszone/test/dns-records.integ.js +5 -5
- package/lib/azure-dnszone/test/dns-records.spec.js +57 -57
- package/lib/azure-dnszone/test/dns-zone.integ.d.ts +1 -1
- package/lib/azure-dnszone/test/dns-zone.integ.js +5 -5
- package/lib/azure-dnszone/test/dns-zone.spec.js +11 -11
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +1 -1
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +3 -3
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +1 -1
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +6 -6
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +6 -6
- package/lib/azure-metricalert/lib/metric-alert.d.ts +3 -3
- package/lib/azure-metricalert/lib/metric-alert.js +5 -5
- package/lib/azure-metricalert/test/metric-alert.integ.d.ts +1 -1
- package/lib/azure-metricalert/test/metric-alert.integ.js +5 -5
- package/lib/azure-metricalert/test/metric-alert.spec.js +9 -9
- package/lib/azure-networkinterface/lib/network-interface.d.ts +5 -5
- package/lib/azure-networkinterface/lib/network-interface.js +7 -7
- package/lib/azure-networkinterface/test/network-interface.integ.d.ts +1 -1
- package/lib/azure-networkinterface/test/network-interface.integ.js +5 -5
- package/lib/azure-networkinterface/test/network-interface.spec.js +11 -11
- package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +6 -6
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +8 -8
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +1 -1
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +5 -5
- package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +12 -12
- package/lib/azure-networkwatcher/lib/network-watcher.d.ts +1 -1
- package/lib/azure-networkwatcher/lib/network-watcher.js +3 -3
- package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +1 -1
- package/lib/azure-networkwatcher/test/network-watcher.integ.js +6 -6
- package/lib/azure-networkwatcher/test/network-watcher.spec.js +6 -6
- package/lib/azure-policyassignment/lib/policy-assignment.d.ts +3 -3
- package/lib/azure-policyassignment/lib/policy-assignment.js +5 -5
- package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +1 -1
- package/lib/azure-policyassignment/test/policy-assignment.integ.js +5 -5
- package/lib/azure-policyassignment/test/policy-assignment.spec.js +12 -12
- package/lib/azure-policydefinition/lib/policy-definition.d.ts +3 -3
- package/lib/azure-policydefinition/lib/policy-definition.js +5 -5
- package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +1 -1
- package/lib/azure-policydefinition/test/policy-definition.integ.js +5 -5
- package/lib/azure-policydefinition/test/policy-definition.spec.js +19 -19
- package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +1 -1
- package/lib/azure-policysetdefinition/lib/policy-set-definition.js +3 -3
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +1 -1
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +6 -6
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +6 -6
- package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +10 -10
- package/lib/azure-privatednszone/lib/private-dns-zone.js +12 -12
- package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +25 -25
- package/lib/azure-privatednszone/lib/records/private-dns-records.js +34 -34
- package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +1 -1
- package/lib/azure-privatednszone/test/private-dns-records.integ.js +5 -5
- package/lib/azure-privatednszone/test/private-dns-records.spec.js +49 -49
- package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +1 -1
- package/lib/azure-privatednszone/test/private-dns-zone.integ.js +5 -5
- package/lib/azure-privatednszone/test/private-dns-zone.spec.js +12 -12
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +6 -6
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +8 -8
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +1 -1
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +5 -5
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +12 -12
- package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +5 -5
- package/lib/azure-publicipaddress/lib/public-ip-address.js +7 -7
- package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +1 -1
- package/lib/azure-publicipaddress/test/public-ip-address.integ.js +6 -6
- package/lib/azure-publicipaddress/test/public-ip-address.spec.js +11 -11
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +5 -5
- package/lib/azure-resourcegroup/lib/resource-group.js +7 -7
- package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +1 -1
- package/lib/azure-resourcegroup/test/resource-group.integ.js +5 -5
- package/lib/azure-resourcegroup/test/resource-group.spec.js +14 -14
- package/lib/azure-roleassignment/lib/role-assignment.d.ts +3 -3
- package/lib/azure-roleassignment/lib/role-assignment.js +5 -5
- package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +1 -1
- package/lib/azure-roleassignment/test/role-assignment.integ.js +5 -5
- package/lib/azure-roleassignment/test/role-assignment.spec.js +12 -12
- package/lib/azure-roledefinition/lib/role-definition.d.ts +3 -3
- package/lib/azure-roledefinition/lib/role-definition.js +5 -5
- package/lib/azure-roledefinition/test/role-definition.integ.d.ts +1 -1
- package/lib/azure-roledefinition/test/role-definition.integ.js +5 -5
- package/lib/azure-roledefinition/test/role-definition.spec.js +12 -12
- package/lib/azure-storageaccount/lib/storage-account.d.ts +6 -6
- package/lib/azure-storageaccount/lib/storage-account.js +8 -8
- package/lib/azure-storageaccount/test/storage-account.integ.d.ts +1 -1
- package/lib/azure-storageaccount/test/storage-account.integ.js +5 -5
- package/lib/azure-storageaccount/test/storage-account.spec.js +11 -11
- package/lib/azure-subnet/lib/subnet.d.ts +3 -3
- package/lib/azure-subnet/lib/subnet.js +5 -5
- package/lib/azure-subnet/test/subnet.integ.d.ts +1 -1
- package/lib/azure-subnet/test/subnet.integ.js +5 -5
- package/lib/azure-subnet/test/subnet.spec.js +9 -9
- package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +6 -6
- package/lib/azure-virtualmachine/lib/virtual-machine.js +8 -8
- package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +1 -1
- package/lib/azure-virtualmachine/test/virtual-machine.integ.js +5 -5
- package/lib/azure-virtualmachine/test/virtual-machine.spec.js +17 -17
- package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +6 -6
- package/lib/azure-virtualnetwork/lib/virtual-network.js +8 -8
- package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +1 -1
- package/lib/azure-virtualnetwork/test/virtual-network.integ.js +5 -5
- package/lib/azure-virtualnetwork/test/virtual-network.spec.js +12 -12
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +5 -5
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +7 -7
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.js +5 -5
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +13 -13
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.d.ts +5 -5
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +7 -7
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.js +5 -5
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.spec.js +20 -20
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/network-group.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +7 -7
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +9 -9
- package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.js +17 -17
- package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.js +15 -15
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +5 -5
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +57 -57
- package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +6 -6
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +8 -8
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +1 -1
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +5 -5
- package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +12 -12
- package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +6 -6
- package/lib/core-azure/lib/azapi/azapi-resource.d.ts +7 -7
- package/lib/core-azure/lib/azapi/azapi-resource.js +6 -6
- package/lib/core-azure/lib/azapi/azapi-resource.spec.js +7 -7
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +12 -12
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +15 -15
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +35 -35
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +58 -58
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +25 -25
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +49 -49
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +13 -13
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +22 -22
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +24 -24
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +40 -40
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +44 -44
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +72 -72
- package/lib/core-azure/lib/azapi/providers-azapi/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +54 -54
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +86 -86
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +65 -65
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +102 -102
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +25 -25
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +62 -62
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +36 -36
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +69 -69
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
- package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
- package/lib/index.d.ts +3 -0
- package/lib/index.js +5 -2
- package/lib/testing/index.d.ts +1 -1
- package/lib/testing/index.js +8 -8
- package/lib/testing/lib/cleanup.js +1 -1
- package/lib/testing/lib/metadata.js +1 -1
- package/package.json +10 -22
- package/setup.js +2 -2
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
* property transformation, and resource creation.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
const cdktn_1 = require("cdktn");
|
|
11
|
+
const cdktn = require("cdktn");
|
|
12
12
|
const virtual_network_gateway_1 = require("../lib/virtual-network-gateway");
|
|
13
13
|
describe("VirtualNetworkGateway - Implementation", () => {
|
|
14
14
|
let app;
|
|
15
15
|
let stack;
|
|
16
16
|
beforeEach(() => {
|
|
17
|
-
app =
|
|
18
|
-
stack = new
|
|
17
|
+
app = cdktn_1.Testing.app();
|
|
18
|
+
stack = new cdktn.TerraformStack(app, "TestStack");
|
|
19
19
|
});
|
|
20
20
|
describe("Constructor and Basic Properties", () => {
|
|
21
21
|
it("should create virtual network gateway with automatic latest version resolution", () => {
|
|
@@ -477,10 +477,10 @@ describe("VirtualNetworkGateway - Implementation", () => {
|
|
|
477
477
|
},
|
|
478
478
|
],
|
|
479
479
|
});
|
|
480
|
-
expect(vng.idOutput).toBeInstanceOf(
|
|
481
|
-
expect(vng.nameOutput).toBeInstanceOf(
|
|
482
|
-
expect(vng.locationOutput).toBeInstanceOf(
|
|
483
|
-
expect(vng.tagsOutput).toBeInstanceOf(
|
|
480
|
+
expect(vng.idOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
481
|
+
expect(vng.nameOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
482
|
+
expect(vng.locationOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
483
|
+
expect(vng.tagsOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
484
484
|
});
|
|
485
485
|
it("should have correct id format", () => {
|
|
486
486
|
const vng = new virtual_network_gateway_1.VirtualNetworkGateway(stack, "IdFormat", {
|
|
@@ -590,7 +590,7 @@ describe("VirtualNetworkGateway - Implementation", () => {
|
|
|
590
590
|
],
|
|
591
591
|
tags: { test: "synthesis" },
|
|
592
592
|
});
|
|
593
|
-
const synthesized =
|
|
593
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
594
594
|
expect(synthesized).toBeDefined();
|
|
595
595
|
const stackConfig = JSON.parse(synthesized);
|
|
596
596
|
expect(stackConfig.resource).toBeDefined();
|
|
@@ -631,7 +631,7 @@ describe("VirtualNetworkGateway - Implementation", () => {
|
|
|
631
631
|
});
|
|
632
632
|
expect(vng1.resolvedApiVersion).toBe("2024-05-01");
|
|
633
633
|
expect(vng2.resolvedApiVersion).toBe("2024-01-01");
|
|
634
|
-
const synthesized =
|
|
634
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
635
635
|
expect(synthesized).toBeDefined();
|
|
636
636
|
});
|
|
637
637
|
});
|
|
@@ -728,7 +728,7 @@ describe("VirtualNetworkGateway - Implementation", () => {
|
|
|
728
728
|
},
|
|
729
729
|
],
|
|
730
730
|
});
|
|
731
|
-
const synthesized =
|
|
731
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
732
732
|
const stackConfig = JSON.parse(synthesized);
|
|
733
733
|
// Find the azapi_resource for the gateway
|
|
734
734
|
const azapiResources = stackConfig.resource?.azapi_resource;
|
|
@@ -769,7 +769,7 @@ describe("VirtualNetworkGateway - Implementation", () => {
|
|
|
769
769
|
},
|
|
770
770
|
],
|
|
771
771
|
});
|
|
772
|
-
const synthesized =
|
|
772
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
773
773
|
const stackConfig = JSON.parse(synthesized);
|
|
774
774
|
// Find the azapi_resource for the gateway
|
|
775
775
|
const azapiResources = stackConfig.resource?.azapi_resource;
|
|
@@ -796,4 +796,4 @@ describe("VirtualNetworkGateway - Implementation", () => {
|
|
|
796
796
|
});
|
|
797
797
|
});
|
|
798
798
|
});
|
|
799
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1uZXR3b3JrLWdhdGV3YXkuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS12aXJ0dWFsbmV0d29ya2dhdGV3YXkvdGVzdC92aXJ0dWFsLW5ldHdvcmstZ2F0ZXdheS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsaUNBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQiw0RUFHd0M7QUFFeEMsUUFBUSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtJQUN0RCxJQUFJLEdBQWMsQ0FBQztJQUNuQixJQUFJLEtBQTJCLENBQUM7SUFFaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO1FBQ2hELEVBQUUsQ0FBQyxnRkFBZ0YsRUFBRSxHQUFHLEVBQUU7WUFDeEYsTUFBTSxLQUFLLEdBQStCO2dCQUN4QyxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixHQUFHLEVBQUU7b0JBQ0gsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLFFBQVE7aUJBQ2Y7Z0JBQ0QsZ0JBQWdCLEVBQUU7b0JBQ2hCO3dCQUNFLElBQUksRUFBRSxTQUFTO3dCQUNmLFFBQVEsRUFDTixnSEFBZ0g7d0JBQ2xILGlCQUFpQixFQUNmLDJGQUEyRjtxQkFDOUY7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSwrQ0FBcUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRS9ELE1B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QUksQ0FDakQscUdBQXFHLENBQ3RHLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXByZWhlbnNpdmUgdGVzdHMgZm9yIHRoZSBWaXJ0dWFsIE5ldHdvcmsgR2F0ZXdheSBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgdGVzdCBzdWl0ZSB2YWxpZGF0ZXMgdGhlIFZpcnR1YWxOZXR3b3JrR2F0ZXdheSBjbGFzcyB1c2luZyB0aGUgQXphcGlSZXNvdXJjZSBmcmFtZXdvcmsuXG4gKiBUZXN0cyBjb3ZlciBhdXRvbWF0aWMgdmVyc2lvbiByZXNvbHV0aW9uLCBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcsIHNjaGVtYSB2YWxpZGF0aW9uLFxuICogcHJvcGVydHkgdHJhbnNmb3JtYXRpb24sIGFuZCByZXNvdXJjZSBjcmVhdGlvbi5cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7XG4gIFZpcnR1YWxOZXR3b3JrR2F0ZXdheSxcbiAgVmlydHVhbE5ldHdvcmtHYXRld2F5UHJvcHMsXG59IGZyb20gXCIuLi9saWIvdmlydHVhbC1uZXR3b3JrLWdhdGV3YXlcIjtcblxuZGVzY3JpYmUoXCJWaXJ0dWFsTmV0d29ya0dhdGV3YXkgLSBJbXBsZW1lbnRhdGlvblwiLCAoKSA9PiB7XG4gIGxldCBhcHA6IGNka3RmLkFwcDtcbiAgbGV0IHN0YWNrOiBjZGt0Zi5UZXJyYWZvcm1TdGFjaztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IGNka3RmLlRlcnJhZm9ybVN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ29uc3RydWN0b3IgYW5kIEJhc2ljIFByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSB2aXJ0dWFsIG5ldHdvcmsgZ2F0ZXdheSB3aXRoIGF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBWaXJ0dWFsTmV0d29ya0dhdGV3YXlQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXZuZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiVGVzdFZOR1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdCh2bmcpLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheSk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzKS50b0JlKHByb3BzKTtcbiAgICAgIGV4cGVjdCh2bmcubmFtZSkudG9CZShcInRlc3Qtdm5nXCIpO1xuICAgICAgZXhwZWN0KHZuZy5sb2NhdGlvbikudG9CZShcImVhc3R1c1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSB2aXJ0dWFsIG5ldHdvcmsgZ2F0ZXdheSB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZ1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogVmlydHVhbE5ldHdvcmtHYXRld2F5UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC12bmctcGlubmVkXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDEtMDFcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cyXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzJcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiVGVzdFZOR1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdCh2bmcucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0wMS0wMVwiKTtcbiAgICAgIGV4cGVjdCh2bmcudGFncykudG9FcXVhbCh7IGVudmlyb25tZW50OiBcInRlc3RcIiB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSB2aXJ0dWFsIG5ldHdvcmsgZ2F0ZXdheSB3aXRoIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBWaXJ0dWFsTmV0d29ya0dhdGV3YXlQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXZuZy1mdWxsXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImNlbnRyYWx1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgdnBuVHlwZTogXCJSb3V0ZUJhc2VkXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3czXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzNcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBlbmFibGVCZ3A6IHRydWUsXG4gICAgICAgIGFjdGl2ZUFjdGl2ZTogZmFsc2UsXG4gICAgICAgIGJncFNldHRpbmdzOiB7XG4gICAgICAgICAgYXNuOiA2NTUxNSxcbiAgICAgICAgICBwZWVyV2VpZ2h0OiAwLFxuICAgICAgICB9LFxuICAgICAgICB2cG5HYXRld2F5R2VuZXJhdGlvbjogXCJHZW5lcmF0aW9uMlwiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIHByb2plY3Q6IFwibmV0d29ya2luZ1wiLFxuICAgICAgICAgIG93bmVyOiBcInRlYW1AY29tcGFueS5jb21cIixcbiAgICAgICAgfSxcbiAgICAgICAgaWdub3JlQ2hhbmdlczogW1widGFnc1wiXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiVGVzdFZOR1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuZ2F0ZXdheVR5cGUpLnRvQmUoXCJWcG5cIik7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLnZwblR5cGUpLnRvQmUoXCJSb3V0ZUJhc2VkXCIpO1xuICAgICAgZXhwZWN0KHZuZy5wcm9wcy5lbmFibGVCZ3ApLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLmJncFNldHRpbmdzKS50b0VxdWFsKHByb3BzLmJncFNldHRpbmdzKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMudGFncykudG9FcXVhbChwcm9wcy50YWdzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBkZWZhdWx0IG5hbWUgd2hlbiBuYW1lIGlzIG5vdCBwcm92aWRlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogVmlydHVhbE5ldHdvcmtHYXRld2F5UHJvcHMgPSB7XG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICB0aWVyOiBcIlZwbkd3MVwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJUZXN0Vk5HXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHZuZy5uYW1lKS50b0JlKFwiVGVzdFZOR1wiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJSZXNvdXJjZSBUeXBlIGFuZCBBUEkgVmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGhhdmUgY29ycmVjdCByZXNvdXJjZSB0eXBlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiVGVzdFZOR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC12bmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZykudG9CZUluc3RhbmNlT2YoVmlydHVhbE5ldHdvcmtHYXRld2F5KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgYWxsIHJlZ2lzdGVyZWQgQVBJIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZlcnNpb25zID0gW1wiMjAyNC0wMS0wMVwiLCBcIjIwMjQtMDUtMDFcIl07XG5cbiAgICAgIHZlcnNpb25zLmZvckVhY2goKHZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgICBgVk5HLSR7dmVyc2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYHZuZy0ke3ZlcnNpb259YCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgICAgYXBpVmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICAgICAgc2t1OiB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgZXhwZWN0KHZuZy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUodmVyc2lvbik7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBsYXRlc3QgdmVyc2lvbiBhcyBkZWZhdWx0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiVGVzdFZOR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC12bmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTA1LTAxXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkdhdGV3YXkgVHlwZSBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgVlBOIGdhdGV3YXlcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJWcG5HYXRld2F5XCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctdnBuXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgdnBuVHlwZTogXCJSb3V0ZUJhc2VkXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLmdhdGV3YXlUeXBlKS50b0JlKFwiVnBuXCIpO1xuICAgICAgZXhwZWN0KHZuZy5wcm9wcy52cG5UeXBlKS50b0JlKFwiUm91dGVCYXNlZFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBFeHByZXNzUm91dGUgZ2F0ZXdheVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIkVyR2F0ZXdheVwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLWVyXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJFeHByZXNzUm91dGVcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJFckd3MUFaXCIsXG4gICAgICAgICAgdGllcjogXCJFckd3MUFaXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZy5wcm9wcy5nYXRld2F5VHlwZSkudG9CZShcIkV4cHJlc3NSb3V0ZVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGRlZmF1bHQgdnBuVHlwZSB0byBSb3V0ZUJhc2VkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiRGVmYXVsdFZwblR5cGVcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy1kZWZhdWx0XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICB0aWVyOiBcIlZwbkd3MVwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCh2bmcucHJvcHMudnBuVHlwZSkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklQIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBnYXRld2F5IHdpdGggc2luZ2xlIElQIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJTaW5nbGVJUFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLXNpbmdsZVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLmlwQ29uZmlndXJhdGlvbnNbMF0ubmFtZSkudG9CZShcImNvbmZpZzFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgYWN0aXZlLWFjdGl2ZSBnYXRld2F5IHdpdGggdHdvIElQIGNvbmZpZ3VyYXRpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiQWN0aXZlQWN0aXZlXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctYWFcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2ZUFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJjb25maWcyXCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXAyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLmFjdGl2ZUFjdGl2ZSkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuaXBDb25maWd1cmF0aW9ucykudG9IYXZlTGVuZ3RoKDIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkJHUCBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgZ2F0ZXdheSB3aXRoIEJHUCBlbmFibGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiQmdwRW5hYmxlZFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLWJncFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgZW5hYmxlQmdwOiB0cnVlLFxuICAgICAgICBiZ3BTZXR0aW5nczoge1xuICAgICAgICAgIGFzbjogNjU1MTUsXG4gICAgICAgICAgcGVlcldlaWdodDogMCxcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLmVuYWJsZUJncCkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuYmdwU2V0dGluZ3MpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLmJncFNldHRpbmdzPy5hc24pLnRvQmUoNjU1MTUpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgZGVmYXVsdCBlbmFibGVCZ3AgdG8gZmFsc2VcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJCZ3BEaXNhYmxlZFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLW5vLWJncFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLmVuYWJsZUJncCkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlNLVSBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgZ2F0ZXdheSB3aXRoIEJhc2ljIFNLVVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIkJhc2ljU2t1XCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctYmFzaWNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIkJhc2ljXCIsXG4gICAgICAgICAgdGllcjogXCJCYXNpY1wiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuc2t1Lm5hbWUpLnRvQmUoXCJCYXNpY1wiKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuc2t1LnRpZXIpLnRvQmUoXCJCYXNpY1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBnYXRld2F5IHdpdGggVnBuR3cxIFNLVVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIlZwbkd3MVNrdVwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLXZwbmd3MVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLnNrdS5uYW1lKS50b0JlKFwiVnBuR3cxXCIpO1xuICAgICAgZXhwZWN0KHZuZy5wcm9wcy5za3UudGllcikudG9CZShcIlZwbkd3MVwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJUYWdzIE1hbmFnZW1lbnRcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBnYXRld2F5IHdpdGggdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIlRhZ2dlZEdhdGV3YXlcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy10YWdnZWRcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgICAgY29zdF9jZW50ZXI6IFwiZW5naW5lZXJpbmdcIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLnRhZ3MpLnRvRXF1YWwoe1xuICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgIGNvc3RfY2VudGVyOiBcImVuZ2luZWVyaW5nXCIsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgYWRkaW5nIHRhZ3NcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJBZGRUYWdcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy1hZGQtdGFnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICB0aWVyOiBcIlZwbkd3MVwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0YWdzOiB7IGVudmlyb25tZW50OiBcInRlc3RcIiB9LFxuICAgICAgfSk7XG5cbiAgICAgIHZuZy5hZGRUYWcoXCJuZXdUYWdcIiwgXCJuZXdWYWx1ZVwiKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMudGFncyEubmV3VGFnKS50b0JlKFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLnRhZ3MhLmVudmlyb25tZW50KS50b0JlKFwidGVzdFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgcmVtb3ZpbmcgdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIlJlbW92ZVRhZ1wiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLXJlbW92ZS10YWdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBlbnZpcm9ubWVudDogXCJ0ZXN0XCIsXG4gICAgICAgICAgdGVtcG9yYXJ5OiBcInRydWVcIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB2bmcucmVtb3ZlVGFnKFwidGVtcG9yYXJ5XCIpO1xuICAgICAgZXhwZWN0KHZuZy5wcm9wcy50YWdzIS50ZW1wb3JhcnkpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMudGFncyEuZW52aXJvbm1lbnQpLnRvQmUoXCJ0ZXN0XCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlRlcnJhZm9ybSBPdXRwdXRzXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgVGVycmFmb3JtIG91dHB1dHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJPdXRwdXRUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctb3V0cHV0c1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLmlkT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KHZuZy5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KHZuZy5sb2NhdGlvbk91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdCh2bmcudGFnc091dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgY29ycmVjdCBpZCBmb3JtYXRcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJJZEZvcm1hdFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLWlkXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICB0aWVyOiBcIlZwbkd3MVwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCh2bmcuaWQpLnRvTWF0Y2goL15cXCRcXHsuKlxcLmlkXFx9JC8pO1xuICAgICAgZXhwZWN0KHZuZy5yZXNvdXJjZUlkKS50b0JlKHZuZy5pZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiVmVyc2lvbiBDb21wYXRpYmlsaXR5XCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCB3b3JrIHdpdGggYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyc2lvbnMgPSBbXCIyMDI0LTAxLTAxXCIsIFwiMjAyNC0wNS0wMVwiXTtcblxuICAgICAgdmVyc2lvbnMuZm9yRWFjaCgodmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KFxuICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgIGBWTkctJHt2ZXJzaW9uLnJlcGxhY2UoLy0vZywgXCJcIil9YCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBgdm5nLSR7dmVyc2lvbn1gLFxuICAgICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgICBhcGlWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgICAgICBza3U6IHtcbiAgICAgICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3Qodm5nLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZSh2ZXJzaW9uKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklnbm9yZSBDaGFuZ2VzIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGFwcGx5IGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIklnbm9yZUNoYW5nZXNcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy1pZ25vcmVcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcInRhZ3NcIl0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZykudG9CZUluc3RhbmNlT2YoVmlydHVhbE5ldHdvcmtHYXRld2F5KTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuaWdub3JlQ2hhbmdlcykudG9FcXVhbChbXCJ0YWdzXCJdKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBlbXB0eSBpZ25vcmUgY2hhbmdlcyBhcnJheVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIkVtcHR5SWdub3JlXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctZW1wdHktaWdub3JlXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICB0aWVyOiBcIlZwbkd3MVwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nKS50b0JlSW5zdGFuY2VPZihWaXJ0dWFsTmV0d29ya0dhdGV3YXkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJTeW50aFRlc3RcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy1zeW50aFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczogeyB0ZXN0OiBcInN5bnRoZXNpc1wiIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcblxuICAgICAgY29uc3Qgc3RhY2tDb25maWcgPSBKU09OLnBhcnNlKHN5bnRoZXNpemVkKTtcbiAgICAgIGV4cGVjdChzdGFja0NvbmZpZy5yZXNvdXJjZSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBtdWx0aXBsZSBnYXRld2F5cyBpbiB0aGUgc2FtZSBzdGFja1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcxID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJWTkcxXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB2bmcyID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJWTkcyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTAxLTAxXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIkV4cHJlc3NSb3V0ZVwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIkVyR3cxQVpcIixcbiAgICAgICAgICB0aWVyOiBcIkVyR3cxQVpcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nMS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTA1LTAxXCIpO1xuICAgICAgZXhwZWN0KHZuZzIucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0wMS0wMVwiKTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJWUE4gQ2xpZW50IENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBnYXRld2F5IHdpdGggVlBOIGNsaWVudCBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiUDJTXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctcDJzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgdnBuVHlwZTogXCJSb3V0ZUJhc2VkXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdnBuQ2xpZW50Q29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIHZwbkNsaWVudEFkZHJlc3NQb29sOiB7XG4gICAgICAgICAgICBhZGRyZXNzUHJlZml4ZXM6IFtcIjE3Mi4xNi4wLjAvMjRcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2cG5DbGllbnRQcm90b2NvbHM6IFtcIklrZVYyXCIsIFwiT3BlblZQTlwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLnZwbkNsaWVudENvbmZpZ3VyYXRpb24pLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoXG4gICAgICAgIHZuZy5wcm9wcy52cG5DbGllbnRDb25maWd1cmF0aW9uPy52cG5DbGllbnRBZGRyZXNzUG9vbD8uYWRkcmVzc1ByZWZpeGVzLFxuICAgICAgKS50b0NvbnRhaW4oXCIxNzIuMTYuMC4wLzI0XCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlZQTiBHYXRld2F5IEdlbmVyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBnYXRld2F5IHdpdGggR2VuZXJhdGlvbjJcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJHZW4yXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctZ2VuMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHZwblR5cGU6IFwiUm91dGVCYXNlZFwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MlwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHZwbkdhdGV3YXlHZW5lcmF0aW9uOiBcIkdlbmVyYXRpb24yXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZy5wcm9wcy52cG5HYXRld2F5R2VuZXJhdGlvbikudG9CZShcIkdlbmVyYXRpb24yXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkV4cHJlc3NSb3V0ZSBHYXRld2F5IFdpdGhvdXQgUHVibGljIElQXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgRXhwcmVzc1JvdXRlIGdhdGV3YXkgd2l0aG91dCBwdWJsaWMgSVAgKGF1dG8tYXNzaWduZWQpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiRXJHYXRld2F5Tm9QdWJsaWNJcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLWVyLW5vLXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiRXhwcmVzc1JvdXRlXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiRXJHdzFBWlwiLFxuICAgICAgICAgIHRpZXI6IFwiRXJHdzFBWlwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3Rlc3Qtdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIC8vIHB1YmxpY0lQQWRkcmVzc0lkIGludGVudGlvbmFsbHkgb21pdHRlZFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh2bmcpLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheSk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLmdhdGV3YXlUeXBlKS50b0JlKFwiRXhwcmVzc1JvdXRlXCIpO1xuICAgICAgZXhwZWN0KHZuZy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLmlwQ29uZmlndXJhdGlvbnNbMF0ucHVibGljSVBBZGRyZXNzSWQpLnRvQmVVbmRlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIG9taXQgcHVibGljSVBBZGRyZXNzIGZyb20gc3ludGhlc2l6ZWQgSlNPTiB3aGVuIG5vdCBwcm92aWRlZFwiLCAoKSA9PiB7XG4gICAgICBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIkVyR2F0ZXdheU5vUHVibGljSXBTeW50aFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLWVyLW5vLXBpcC1zeW50aFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiRXhwcmVzc1JvdXRlXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiRXJHdzFBWlwiLFxuICAgICAgICAgIHRpZXI6IFwiRXJHdzFBWlwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3Rlc3Qtdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIC8vIHB1YmxpY0lQQWRkcmVzc0lkIGludGVudGlvbmFsbHkgb21pdHRlZFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGNvbnN0IHN0YWNrQ29uZmlnID0gSlNPTi5wYXJzZShzeW50aGVzaXplZCk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGF6YXBpX3Jlc291cmNlIGZvciB0aGUgZ2F0ZXdheVxuICAgICAgY29uc3QgYXphcGlSZXNvdXJjZXMgPSBzdGFja0NvbmZpZy5yZXNvdXJjZT8uYXphcGlfcmVzb3VyY2U7XG4gICAgICBleHBlY3QoYXphcGlSZXNvdXJjZXMpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGdhdGV3YXkgcmVzb3VyY2UgYnkgbG9va2luZyBmb3IgYW55IGtleSBjb250YWluaW5nIHRoZSBpZGVudGlmaWVyXG4gICAgICBjb25zdCByZXNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhhemFwaVJlc291cmNlcyk7XG4gICAgICBjb25zdCBnYXRld2F5S2V5ID0gcmVzb3VyY2VLZXlzLmZpbmQoXG4gICAgICAgIChrZXkpID0+XG4gICAgICAgICAga2V5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJlcmdhdGV3YXlub3B1YmxpY2lwc3ludGhcIikgfHxcbiAgICAgICAgICBrZXkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImVyX2dhdGV3YXlfbm9fcHVibGljX2lwX3N5bnRoXCIpLFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChnYXRld2F5S2V5KS50b0JlRGVmaW5lZCgpO1xuICAgICAgY29uc3QgZ2F0ZXdheVJlc291cmNlID0gYXphcGlSZXNvdXJjZXNbZ2F0ZXdheUtleSFdO1xuICAgICAgZXhwZWN0KGdhdGV3YXlSZXNvdXJjZSkudG9CZURlZmluZWQoKTtcblxuICAgICAgLy8gQWNjZXNzIHRoZSBib2R5IChpdCBtYXkgYmUgYSBzdHJpbmcgb3Igb2JqZWN0IGRlcGVuZGluZyBvbiBzeW50aGVzaXMpXG4gICAgICBjb25zdCBib2R5ID1cbiAgICAgICAgdHlwZW9mIGdhdGV3YXlSZXNvdXJjZS5ib2R5ID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyBKU09OLnBhcnNlKGdhdGV3YXlSZXNvdXJjZS5ib2R5KVxuICAgICAgICAgIDogZ2F0ZXdheVJlc291cmNlLmJvZHk7XG4gICAgICBleHBlY3QoYm9keS5wcm9wZXJ0aWVzLmlwQ29uZmlndXJhdGlvbnMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoYm9keS5wcm9wZXJ0aWVzLmlwQ29uZmlndXJhdGlvbnMpLnRvSGF2ZUxlbmd0aCgxKTtcblxuICAgICAgLy8gVmVyaWZ5IHB1YmxpY0lQQWRkcmVzcyBpcyBub3QgcHJlc2VudCBpbiB0aGUgaXBDb25maWd1cmF0aW9uXG4gICAgICBjb25zdCBpcENvbmZpZyA9IGJvZHkucHJvcGVydGllcy5pcENvbmZpZ3VyYXRpb25zWzBdO1xuICAgICAgZXhwZWN0KGlwQ29uZmlnLm5hbWUpLnRvQmUoXCJkZWZhdWx0XCIpO1xuICAgICAgZXhwZWN0KGlwQ29uZmlnLnByb3BlcnRpZXMuc3VibmV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGlwQ29uZmlnLnByb3BlcnRpZXMucHVibGljSVBBZGRyZXNzKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBpbmNsdWRlIHB1YmxpY0lQQWRkcmVzcyBpbiBzeW50aGVzaXplZCBKU09OIHdoZW4gcHJvdmlkZWRcIiwgKCkgPT4ge1xuICAgICAgbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJFckdhdGV3YXlXaXRoUHVibGljSXBcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy1lci13aXRoLXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiRXhwcmVzc1JvdXRlXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiRXJHdzFBWlwiLFxuICAgICAgICAgIHRpZXI6IFwiRXJHdzFBWlwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3Rlc3Qtdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy90ZXN0LXBpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGNvbnN0IHN0YWNrQ29uZmlnID0gSlNPTi5wYXJzZShzeW50aGVzaXplZCk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGF6YXBpX3Jlc291cmNlIGZvciB0aGUgZ2F0ZXdheVxuICAgICAgY29uc3QgYXphcGlSZXNvdXJjZXMgPSBzdGFja0NvbmZpZy5yZXNvdXJjZT8uYXphcGlfcmVzb3VyY2U7XG4gICAgICBleHBlY3QoYXphcGlSZXNvdXJjZXMpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGdhdGV3YXkgcmVzb3VyY2UgYnkgbG9va2luZyBmb3IgYW55IGtleSBjb250YWluaW5nIHRoZSBpZGVudGlmaWVyXG4gICAgICBjb25zdCByZXNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhhemFwaVJlc291cmNlcyk7XG4gICAgICBjb25zdCBnYXRld2F5S2V5ID0gcmVzb3VyY2VLZXlzLmZpbmQoXG4gICAgICAgIChrZXkpID0+XG4gICAgICAgICAga2V5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJlcmdhdGV3YXl3aXRocHVibGljaXBcIikgfHxcbiAgICAgICAgICBrZXkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImVyX2dhdGV3YXlfd2l0aF9wdWJsaWNfaXBcIiksXG4gICAgICApO1xuICAgICAgZXhwZWN0KGdhdGV3YXlLZXkpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBjb25zdCBnYXRld2F5UmVzb3VyY2UgPSBhemFwaVJlc291cmNlc1tnYXRld2F5S2V5IV07XG4gICAgICBleHBlY3QoZ2F0ZXdheVJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICAvLyBBY2Nlc3MgdGhlIGJvZHkgKGl0IG1heSBiZSBhIHN0cmluZyBvciBvYmplY3QgZGVwZW5kaW5nIG9uIHN5bnRoZXNpcylcbiAgICAgIGNvbnN0IGJvZHkgPVxuICAgICAgICB0eXBlb2YgZ2F0ZXdheVJlc291cmNlLmJvZHkgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IEpTT04ucGFyc2UoZ2F0ZXdheVJlc291cmNlLmJvZHkpXG4gICAgICAgICAgOiBnYXRld2F5UmVzb3VyY2UuYm9keTtcbiAgICAgIGV4cGVjdChib2R5LnByb3BlcnRpZXMuaXBDb25maWd1cmF0aW9ucykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChib2R5LnByb3BlcnRpZXMuaXBDb25maWd1cmF0aW9ucykudG9IYXZlTGVuZ3RoKDEpO1xuXG4gICAgICAvLyBWZXJpZnkgcHVibGljSVBBZGRyZXNzIElTIHByZXNlbnQgaW4gdGhlIGlwQ29uZmlndXJhdGlvblxuICAgICAgY29uc3QgaXBDb25maWcgPSBib2R5LnByb3BlcnRpZXMuaXBDb25maWd1cmF0aW9uc1swXTtcbiAgICAgIGV4cGVjdChpcENvbmZpZy5uYW1lKS50b0JlKFwiZGVmYXVsdFwiKTtcbiAgICAgIGV4cGVjdChpcENvbmZpZy5wcm9wZXJ0aWVzLnN1Ym5ldCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChpcENvbmZpZy5wcm9wZXJ0aWVzLnB1YmxpY0lQQWRkcmVzcykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChpcENvbmZpZy5wcm9wZXJ0aWVzLnB1YmxpY0lQQWRkcmVzcy5pZCkudG9CZShcbiAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvdGVzdC1waXBcIixcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
799
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1uZXR3b3JrLWdhdGV3YXkuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS12aXJ0dWFsbmV0d29ya2dhdGV3YXkvdGVzdC92aXJ0dWFsLW5ldHdvcmstZ2F0ZXdheS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsaUNBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQiw0RUFHd0M7QUFFeEMsUUFBUSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtJQUN0RCxJQUFJLEdBQWMsQ0FBQztJQUNuQixJQUFJLEtBQTJCLENBQUM7SUFFaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO1FBQ2hELEVBQUUsQ0FBQyxnRkFBZ0YsRUFBRSxHQUFHLEVBQUU7WUFDeEYsTUFBTSxLQUFLLEdBQStCO2dCQUN4QyxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixHQUFHLEVBQUU7b0JBQ0gsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLFFBQVE7aUJBQ2Y7Z0JBQ0QsZ0JBQWdCLEVBQUU7b0JBQ2hCO3dCQUNFLElBQUksRUFBRSxTQUFTO3dCQUNmLFFBQVEsRUFDTixnSEFBZ0g7d0JBQ2xILGlCQUFpQixFQUNmLDJGQUEyRjtxQkFDOUY7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSwrQ0FBcUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRS9ELE1B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QUksQ0FDakQscUdBQXFHLENBQ3RHLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXByZWhlbnNpdmUgdGVzdHMgZm9yIHRoZSBWaXJ0dWFsIE5ldHdvcmsgR2F0ZXdheSBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgdGVzdCBzdWl0ZSB2YWxpZGF0ZXMgdGhlIFZpcnR1YWxOZXR3b3JrR2F0ZXdheSBjbGFzcyB1c2luZyB0aGUgQXphcGlSZXNvdXJjZSBmcmFtZXdvcmsuXG4gKiBUZXN0cyBjb3ZlciBhdXRvbWF0aWMgdmVyc2lvbiByZXNvbHV0aW9uLCBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcsIHNjaGVtYSB2YWxpZGF0aW9uLFxuICogcHJvcGVydHkgdHJhbnNmb3JtYXRpb24sIGFuZCByZXNvdXJjZSBjcmVhdGlvbi5cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgKiBhcyBjZGt0biBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7XG4gIFZpcnR1YWxOZXR3b3JrR2F0ZXdheSxcbiAgVmlydHVhbE5ldHdvcmtHYXRld2F5UHJvcHMsXG59IGZyb20gXCIuLi9saWIvdmlydHVhbC1uZXR3b3JrLWdhdGV3YXlcIjtcblxuZGVzY3JpYmUoXCJWaXJ0dWFsTmV0d29ya0dhdGV3YXkgLSBJbXBsZW1lbnRhdGlvblwiLCAoKSA9PiB7XG4gIGxldCBhcHA6IGNka3RuLkFwcDtcbiAgbGV0IHN0YWNrOiBjZGt0bi5UZXJyYWZvcm1TdGFjaztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IGNka3RuLlRlcnJhZm9ybVN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ29uc3RydWN0b3IgYW5kIEJhc2ljIFByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSB2aXJ0dWFsIG5ldHdvcmsgZ2F0ZXdheSB3aXRoIGF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBWaXJ0dWFsTmV0d29ya0dhdGV3YXlQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXZuZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiVGVzdFZOR1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdCh2bmcpLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheSk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzKS50b0JlKHByb3BzKTtcbiAgICAgIGV4cGVjdCh2bmcubmFtZSkudG9CZShcInRlc3Qtdm5nXCIpO1xuICAgICAgZXhwZWN0KHZuZy5sb2NhdGlvbikudG9CZShcImVhc3R1c1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSB2aXJ0dWFsIG5ldHdvcmsgZ2F0ZXdheSB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZ1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogVmlydHVhbE5ldHdvcmtHYXRld2F5UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC12bmctcGlubmVkXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDEtMDFcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cyXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzJcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiVGVzdFZOR1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdCh2bmcucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0wMS0wMVwiKTtcbiAgICAgIGV4cGVjdCh2bmcudGFncykudG9FcXVhbCh7IGVudmlyb25tZW50OiBcInRlc3RcIiB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSB2aXJ0dWFsIG5ldHdvcmsgZ2F0ZXdheSB3aXRoIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBWaXJ0dWFsTmV0d29ya0dhdGV3YXlQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXZuZy1mdWxsXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImNlbnRyYWx1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgdnBuVHlwZTogXCJSb3V0ZUJhc2VkXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3czXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzNcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBlbmFibGVCZ3A6IHRydWUsXG4gICAgICAgIGFjdGl2ZUFjdGl2ZTogZmFsc2UsXG4gICAgICAgIGJncFNldHRpbmdzOiB7XG4gICAgICAgICAgYXNuOiA2NTUxNSxcbiAgICAgICAgICBwZWVyV2VpZ2h0OiAwLFxuICAgICAgICB9LFxuICAgICAgICB2cG5HYXRld2F5R2VuZXJhdGlvbjogXCJHZW5lcmF0aW9uMlwiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIHByb2plY3Q6IFwibmV0d29ya2luZ1wiLFxuICAgICAgICAgIG93bmVyOiBcInRlYW1AY29tcGFueS5jb21cIixcbiAgICAgICAgfSxcbiAgICAgICAgaWdub3JlQ2hhbmdlczogW1widGFnc1wiXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiVGVzdFZOR1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuZ2F0ZXdheVR5cGUpLnRvQmUoXCJWcG5cIik7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLnZwblR5cGUpLnRvQmUoXCJSb3V0ZUJhc2VkXCIpO1xuICAgICAgZXhwZWN0KHZuZy5wcm9wcy5lbmFibGVCZ3ApLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLmJncFNldHRpbmdzKS50b0VxdWFsKHByb3BzLmJncFNldHRpbmdzKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMudGFncykudG9FcXVhbChwcm9wcy50YWdzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBkZWZhdWx0IG5hbWUgd2hlbiBuYW1lIGlzIG5vdCBwcm92aWRlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogVmlydHVhbE5ldHdvcmtHYXRld2F5UHJvcHMgPSB7XG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICB0aWVyOiBcIlZwbkd3MVwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJUZXN0Vk5HXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHZuZy5uYW1lKS50b0JlKFwiVGVzdFZOR1wiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJSZXNvdXJjZSBUeXBlIGFuZCBBUEkgVmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGhhdmUgY29ycmVjdCByZXNvdXJjZSB0eXBlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiVGVzdFZOR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC12bmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZykudG9CZUluc3RhbmNlT2YoVmlydHVhbE5ldHdvcmtHYXRld2F5KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgYWxsIHJlZ2lzdGVyZWQgQVBJIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZlcnNpb25zID0gW1wiMjAyNC0wMS0wMVwiLCBcIjIwMjQtMDUtMDFcIl07XG5cbiAgICAgIHZlcnNpb25zLmZvckVhY2goKHZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgICBgVk5HLSR7dmVyc2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYHZuZy0ke3ZlcnNpb259YCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgICAgYXBpVmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICAgICAgc2t1OiB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgZXhwZWN0KHZuZy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUodmVyc2lvbik7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBsYXRlc3QgdmVyc2lvbiBhcyBkZWZhdWx0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiVGVzdFZOR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC12bmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTA1LTAxXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkdhdGV3YXkgVHlwZSBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgVlBOIGdhdGV3YXlcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJWcG5HYXRld2F5XCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctdnBuXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgdnBuVHlwZTogXCJSb3V0ZUJhc2VkXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLmdhdGV3YXlUeXBlKS50b0JlKFwiVnBuXCIpO1xuICAgICAgZXhwZWN0KHZuZy5wcm9wcy52cG5UeXBlKS50b0JlKFwiUm91dGVCYXNlZFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBFeHByZXNzUm91dGUgZ2F0ZXdheVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIkVyR2F0ZXdheVwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLWVyXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJFeHByZXNzUm91dGVcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJFckd3MUFaXCIsXG4gICAgICAgICAgdGllcjogXCJFckd3MUFaXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZy5wcm9wcy5nYXRld2F5VHlwZSkudG9CZShcIkV4cHJlc3NSb3V0ZVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGRlZmF1bHQgdnBuVHlwZSB0byBSb3V0ZUJhc2VkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiRGVmYXVsdFZwblR5cGVcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy1kZWZhdWx0XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICB0aWVyOiBcIlZwbkd3MVwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCh2bmcucHJvcHMudnBuVHlwZSkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklQIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBnYXRld2F5IHdpdGggc2luZ2xlIElQIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJTaW5nbGVJUFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLXNpbmdsZVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLmlwQ29uZmlndXJhdGlvbnNbMF0ubmFtZSkudG9CZShcImNvbmZpZzFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgYWN0aXZlLWFjdGl2ZSBnYXRld2F5IHdpdGggdHdvIElQIGNvbmZpZ3VyYXRpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiQWN0aXZlQWN0aXZlXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctYWFcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2ZUFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJjb25maWcyXCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXAyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLmFjdGl2ZUFjdGl2ZSkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuaXBDb25maWd1cmF0aW9ucykudG9IYXZlTGVuZ3RoKDIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkJHUCBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgZ2F0ZXdheSB3aXRoIEJHUCBlbmFibGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiQmdwRW5hYmxlZFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLWJncFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgZW5hYmxlQmdwOiB0cnVlLFxuICAgICAgICBiZ3BTZXR0aW5nczoge1xuICAgICAgICAgIGFzbjogNjU1MTUsXG4gICAgICAgICAgcGVlcldlaWdodDogMCxcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLmVuYWJsZUJncCkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuYmdwU2V0dGluZ3MpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLmJncFNldHRpbmdzPy5hc24pLnRvQmUoNjU1MTUpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgZGVmYXVsdCBlbmFibGVCZ3AgdG8gZmFsc2VcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJCZ3BEaXNhYmxlZFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLW5vLWJncFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLmVuYWJsZUJncCkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlNLVSBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgZ2F0ZXdheSB3aXRoIEJhc2ljIFNLVVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIkJhc2ljU2t1XCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctYmFzaWNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIkJhc2ljXCIsXG4gICAgICAgICAgdGllcjogXCJCYXNpY1wiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuc2t1Lm5hbWUpLnRvQmUoXCJCYXNpY1wiKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuc2t1LnRpZXIpLnRvQmUoXCJCYXNpY1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBnYXRld2F5IHdpdGggVnBuR3cxIFNLVVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIlZwbkd3MVNrdVwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLXZwbmd3MVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLnNrdS5uYW1lKS50b0JlKFwiVnBuR3cxXCIpO1xuICAgICAgZXhwZWN0KHZuZy5wcm9wcy5za3UudGllcikudG9CZShcIlZwbkd3MVwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJUYWdzIE1hbmFnZW1lbnRcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBnYXRld2F5IHdpdGggdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIlRhZ2dlZEdhdGV3YXlcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy10YWdnZWRcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgICAgY29zdF9jZW50ZXI6IFwiZW5naW5lZXJpbmdcIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLnRhZ3MpLnRvRXF1YWwoe1xuICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgIGNvc3RfY2VudGVyOiBcImVuZ2luZWVyaW5nXCIsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgYWRkaW5nIHRhZ3NcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJBZGRUYWdcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy1hZGQtdGFnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICB0aWVyOiBcIlZwbkd3MVwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0YWdzOiB7IGVudmlyb25tZW50OiBcInRlc3RcIiB9LFxuICAgICAgfSk7XG5cbiAgICAgIHZuZy5hZGRUYWcoXCJuZXdUYWdcIiwgXCJuZXdWYWx1ZVwiKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMudGFncyEubmV3VGFnKS50b0JlKFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLnRhZ3MhLmVudmlyb25tZW50KS50b0JlKFwidGVzdFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgcmVtb3ZpbmcgdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIlJlbW92ZVRhZ1wiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLXJlbW92ZS10YWdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBlbnZpcm9ubWVudDogXCJ0ZXN0XCIsXG4gICAgICAgICAgdGVtcG9yYXJ5OiBcInRydWVcIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB2bmcucmVtb3ZlVGFnKFwidGVtcG9yYXJ5XCIpO1xuICAgICAgZXhwZWN0KHZuZy5wcm9wcy50YWdzIS50ZW1wb3JhcnkpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMudGFncyEuZW52aXJvbm1lbnQpLnRvQmUoXCJ0ZXN0XCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlRlcnJhZm9ybSBPdXRwdXRzXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgVGVycmFmb3JtIG91dHB1dHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJPdXRwdXRUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctb3V0cHV0c1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLmlkT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KHZuZy5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KHZuZy5sb2NhdGlvbk91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdCh2bmcudGFnc091dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgY29ycmVjdCBpZCBmb3JtYXRcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJJZEZvcm1hdFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLWlkXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICB0aWVyOiBcIlZwbkd3MVwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCh2bmcuaWQpLnRvTWF0Y2goL15cXCRcXHsuKlxcLmlkXFx9JC8pO1xuICAgICAgZXhwZWN0KHZuZy5yZXNvdXJjZUlkKS50b0JlKHZuZy5pZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiVmVyc2lvbiBDb21wYXRpYmlsaXR5XCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCB3b3JrIHdpdGggYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyc2lvbnMgPSBbXCIyMDI0LTAxLTAxXCIsIFwiMjAyNC0wNS0wMVwiXTtcblxuICAgICAgdmVyc2lvbnMuZm9yRWFjaCgodmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KFxuICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgIGBWTkctJHt2ZXJzaW9uLnJlcGxhY2UoLy0vZywgXCJcIil9YCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBgdm5nLSR7dmVyc2lvbn1gLFxuICAgICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgICBhcGlWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgICAgICBza3U6IHtcbiAgICAgICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3Qodm5nLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZSh2ZXJzaW9uKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklnbm9yZSBDaGFuZ2VzIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGFwcGx5IGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIklnbm9yZUNoYW5nZXNcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy1pZ25vcmVcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIlZwblwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MVwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcInRhZ3NcIl0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZykudG9CZUluc3RhbmNlT2YoVmlydHVhbE5ldHdvcmtHYXRld2F5KTtcbiAgICAgIGV4cGVjdCh2bmcucHJvcHMuaWdub3JlQ2hhbmdlcykudG9FcXVhbChbXCJ0YWdzXCJdKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBlbXB0eSBpZ25vcmUgY2hhbmdlcyBhcnJheVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcgPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIkVtcHR5SWdub3JlXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctZW1wdHktaWdub3JlXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJWcG5HdzFcIixcbiAgICAgICAgICB0aWVyOiBcIlZwbkd3MVwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0L3N1Ym5ldHMvR2F0ZXdheVN1Ym5ldFwiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzSWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy9waXBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nKS50b0JlSW5zdGFuY2VPZihWaXJ0dWFsTmV0d29ya0dhdGV3YXkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJTeW50aFRlc3RcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy1zeW50aFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczogeyB0ZXN0OiBcInN5bnRoZXNpc1wiIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcblxuICAgICAgY29uc3Qgc3RhY2tDb25maWcgPSBKU09OLnBhcnNlKHN5bnRoZXNpemVkKTtcbiAgICAgIGV4cGVjdChzdGFja0NvbmZpZy5yZXNvdXJjZSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBtdWx0aXBsZSBnYXRld2F5cyBpbiB0aGUgc2FtZSBzdGFja1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2bmcxID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJWTkcxXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB2bmcyID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJWTkcyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTAxLTAxXCIsXG4gICAgICAgIGdhdGV3YXlUeXBlOiBcIkV4cHJlc3NSb3V0ZVwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIkVyR3cxQVpcIixcbiAgICAgICAgICB0aWVyOiBcIkVyR3cxQVpcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nMS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTA1LTAxXCIpO1xuICAgICAgZXhwZWN0KHZuZzIucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0wMS0wMVwiKTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJWUE4gQ2xpZW50IENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBnYXRld2F5IHdpdGggVlBOIGNsaWVudCBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiUDJTXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctcDJzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBnYXRld2F5VHlwZTogXCJWcG5cIixcbiAgICAgICAgdnBuVHlwZTogXCJSb3V0ZUJhc2VkXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiVnBuR3cxXCIsXG4gICAgICAgICAgdGllcjogXCJWcG5HdzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgc3VibmV0SWQ6XG4gICAgICAgICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcGlwXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdnBuQ2xpZW50Q29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIHZwbkNsaWVudEFkZHJlc3NQb29sOiB7XG4gICAgICAgICAgICBhZGRyZXNzUHJlZml4ZXM6IFtcIjE3Mi4xNi4wLjAvMjRcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2cG5DbGllbnRQcm90b2NvbHM6IFtcIklrZVYyXCIsIFwiT3BlblZQTlwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3Qodm5nLnByb3BzLnZwbkNsaWVudENvbmZpZ3VyYXRpb24pLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoXG4gICAgICAgIHZuZy5wcm9wcy52cG5DbGllbnRDb25maWd1cmF0aW9uPy52cG5DbGllbnRBZGRyZXNzUG9vbD8uYWRkcmVzc1ByZWZpeGVzLFxuICAgICAgKS50b0NvbnRhaW4oXCIxNzIuMTYuMC4wLzI0XCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlZQTiBHYXRld2F5IEdlbmVyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBnYXRld2F5IHdpdGggR2VuZXJhdGlvbjJcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgdm5nID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJHZW4yXCIsIHtcbiAgICAgICAgbmFtZTogXCJ2bmctZ2VuMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiVnBuXCIsXG4gICAgICAgIHZwblR5cGU6IFwiUm91dGVCYXNlZFwiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlZwbkd3MlwiLFxuICAgICAgICAgIHRpZXI6IFwiVnBuR3cyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHZwbkdhdGV3YXlHZW5lcmF0aW9uOiBcIkdlbmVyYXRpb24yXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIHN1Ym5ldElkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQvc3VibmV0cy9HYXRld2F5U3VibmV0XCIsXG4gICAgICAgICAgICBwdWJsaWNJUEFkZHJlc3NJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3BpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZy5wcm9wcy52cG5HYXRld2F5R2VuZXJhdGlvbikudG9CZShcIkdlbmVyYXRpb24yXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkV4cHJlc3NSb3V0ZSBHYXRld2F5IFdpdGhvdXQgUHVibGljIElQXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgRXhwcmVzc1JvdXRlIGdhdGV3YXkgd2l0aG91dCBwdWJsaWMgSVAgKGF1dG8tYXNzaWduZWQpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZuZyA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXkoc3RhY2ssIFwiRXJHYXRld2F5Tm9QdWJsaWNJcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLWVyLW5vLXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiRXhwcmVzc1JvdXRlXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiRXJHdzFBWlwiLFxuICAgICAgICAgIHRpZXI6IFwiRXJHdzFBWlwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3Rlc3Qtdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIC8vIHB1YmxpY0lQQWRkcmVzc0lkIGludGVudGlvbmFsbHkgb21pdHRlZFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHZuZykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh2bmcpLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheSk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLmdhdGV3YXlUeXBlKS50b0JlKFwiRXhwcmVzc1JvdXRlXCIpO1xuICAgICAgZXhwZWN0KHZuZy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICBleHBlY3Qodm5nLnByb3BzLmlwQ29uZmlndXJhdGlvbnNbMF0ucHVibGljSVBBZGRyZXNzSWQpLnRvQmVVbmRlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIG9taXQgcHVibGljSVBBZGRyZXNzIGZyb20gc3ludGhlc2l6ZWQgSlNPTiB3aGVuIG5vdCBwcm92aWRlZFwiLCAoKSA9PiB7XG4gICAgICBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5KHN0YWNrLCBcIkVyR2F0ZXdheU5vUHVibGljSXBTeW50aFwiLCB7XG4gICAgICAgIG5hbWU6IFwidm5nLWVyLW5vLXBpcC1zeW50aFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiRXhwcmVzc1JvdXRlXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiRXJHdzFBWlwiLFxuICAgICAgICAgIHRpZXI6IFwiRXJHdzFBWlwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3Rlc3Qtdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIC8vIHB1YmxpY0lQQWRkcmVzc0lkIGludGVudGlvbmFsbHkgb21pdHRlZFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGNvbnN0IHN0YWNrQ29uZmlnID0gSlNPTi5wYXJzZShzeW50aGVzaXplZCk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGF6YXBpX3Jlc291cmNlIGZvciB0aGUgZ2F0ZXdheVxuICAgICAgY29uc3QgYXphcGlSZXNvdXJjZXMgPSBzdGFja0NvbmZpZy5yZXNvdXJjZT8uYXphcGlfcmVzb3VyY2U7XG4gICAgICBleHBlY3QoYXphcGlSZXNvdXJjZXMpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGdhdGV3YXkgcmVzb3VyY2UgYnkgbG9va2luZyBmb3IgYW55IGtleSBjb250YWluaW5nIHRoZSBpZGVudGlmaWVyXG4gICAgICBjb25zdCByZXNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhhemFwaVJlc291cmNlcyk7XG4gICAgICBjb25zdCBnYXRld2F5S2V5ID0gcmVzb3VyY2VLZXlzLmZpbmQoXG4gICAgICAgIChrZXkpID0+XG4gICAgICAgICAga2V5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJlcmdhdGV3YXlub3B1YmxpY2lwc3ludGhcIikgfHxcbiAgICAgICAgICBrZXkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImVyX2dhdGV3YXlfbm9fcHVibGljX2lwX3N5bnRoXCIpLFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChnYXRld2F5S2V5KS50b0JlRGVmaW5lZCgpO1xuICAgICAgY29uc3QgZ2F0ZXdheVJlc291cmNlID0gYXphcGlSZXNvdXJjZXNbZ2F0ZXdheUtleSFdO1xuICAgICAgZXhwZWN0KGdhdGV3YXlSZXNvdXJjZSkudG9CZURlZmluZWQoKTtcblxuICAgICAgLy8gQWNjZXNzIHRoZSBib2R5IChpdCBtYXkgYmUgYSBzdHJpbmcgb3Igb2JqZWN0IGRlcGVuZGluZyBvbiBzeW50aGVzaXMpXG4gICAgICBjb25zdCBib2R5ID1cbiAgICAgICAgdHlwZW9mIGdhdGV3YXlSZXNvdXJjZS5ib2R5ID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyBKU09OLnBhcnNlKGdhdGV3YXlSZXNvdXJjZS5ib2R5KVxuICAgICAgICAgIDogZ2F0ZXdheVJlc291cmNlLmJvZHk7XG4gICAgICBleHBlY3QoYm9keS5wcm9wZXJ0aWVzLmlwQ29uZmlndXJhdGlvbnMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoYm9keS5wcm9wZXJ0aWVzLmlwQ29uZmlndXJhdGlvbnMpLnRvSGF2ZUxlbmd0aCgxKTtcblxuICAgICAgLy8gVmVyaWZ5IHB1YmxpY0lQQWRkcmVzcyBpcyBub3QgcHJlc2VudCBpbiB0aGUgaXBDb25maWd1cmF0aW9uXG4gICAgICBjb25zdCBpcENvbmZpZyA9IGJvZHkucHJvcGVydGllcy5pcENvbmZpZ3VyYXRpb25zWzBdO1xuICAgICAgZXhwZWN0KGlwQ29uZmlnLm5hbWUpLnRvQmUoXCJkZWZhdWx0XCIpO1xuICAgICAgZXhwZWN0KGlwQ29uZmlnLnByb3BlcnRpZXMuc3VibmV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGlwQ29uZmlnLnByb3BlcnRpZXMucHVibGljSVBBZGRyZXNzKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBpbmNsdWRlIHB1YmxpY0lQQWRkcmVzcyBpbiBzeW50aGVzaXplZCBKU09OIHdoZW4gcHJvdmlkZWRcIiwgKCkgPT4ge1xuICAgICAgbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheShzdGFjaywgXCJFckdhdGV3YXlXaXRoUHVibGljSXBcIiwge1xuICAgICAgICBuYW1lOiBcInZuZy1lci13aXRoLXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZ2F0ZXdheVR5cGU6IFwiRXhwcmVzc1JvdXRlXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiRXJHdzFBWlwiLFxuICAgICAgICAgIHRpZXI6IFwiRXJHdzFBWlwiLFxuICAgICAgICB9LFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBzdWJuZXRJZDpcbiAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3Rlc3Qtdm5ldC9zdWJuZXRzL0dhdGV3YXlTdWJuZXRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzc0lkOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wdWJsaWNJUEFkZHJlc3Nlcy90ZXN0LXBpcFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGNvbnN0IHN0YWNrQ29uZmlnID0gSlNPTi5wYXJzZShzeW50aGVzaXplZCk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGF6YXBpX3Jlc291cmNlIGZvciB0aGUgZ2F0ZXdheVxuICAgICAgY29uc3QgYXphcGlSZXNvdXJjZXMgPSBzdGFja0NvbmZpZy5yZXNvdXJjZT8uYXphcGlfcmVzb3VyY2U7XG4gICAgICBleHBlY3QoYXphcGlSZXNvdXJjZXMpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIC8vIEZpbmQgdGhlIGdhdGV3YXkgcmVzb3VyY2UgYnkgbG9va2luZyBmb3IgYW55IGtleSBjb250YWluaW5nIHRoZSBpZGVudGlmaWVyXG4gICAgICBjb25zdCByZXNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhhemFwaVJlc291cmNlcyk7XG4gICAgICBjb25zdCBnYXRld2F5S2V5ID0gcmVzb3VyY2VLZXlzLmZpbmQoXG4gICAgICAgIChrZXkpID0+XG4gICAgICAgICAga2V5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJlcmdhdGV3YXl3aXRocHVibGljaXBcIikgfHxcbiAgICAgICAgICBrZXkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImVyX2dhdGV3YXlfd2l0aF9wdWJsaWNfaXBcIiksXG4gICAgICApO1xuICAgICAgZXhwZWN0KGdhdGV3YXlLZXkpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBjb25zdCBnYXRld2F5UmVzb3VyY2UgPSBhemFwaVJlc291cmNlc1tnYXRld2F5S2V5IV07XG4gICAgICBleHBlY3QoZ2F0ZXdheVJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICAvLyBBY2Nlc3MgdGhlIGJvZHkgKGl0IG1heSBiZSBhIHN0cmluZyBvciBvYmplY3QgZGVwZW5kaW5nIG9uIHN5bnRoZXNpcylcbiAgICAgIGNvbnN0IGJvZHkgPVxuICAgICAgICB0eXBlb2YgZ2F0ZXdheVJlc291cmNlLmJvZHkgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IEpTT04ucGFyc2UoZ2F0ZXdheVJlc291cmNlLmJvZHkpXG4gICAgICAgICAgOiBnYXRld2F5UmVzb3VyY2UuYm9keTtcbiAgICAgIGV4cGVjdChib2R5LnByb3BlcnRpZXMuaXBDb25maWd1cmF0aW9ucykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChib2R5LnByb3BlcnRpZXMuaXBDb25maWd1cmF0aW9ucykudG9IYXZlTGVuZ3RoKDEpO1xuXG4gICAgICAvLyBWZXJpZnkgcHVibGljSVBBZGRyZXNzIElTIHByZXNlbnQgaW4gdGhlIGlwQ29uZmlndXJhdGlvblxuICAgICAgY29uc3QgaXBDb25maWcgPSBib2R5LnByb3BlcnRpZXMuaXBDb25maWd1cmF0aW9uc1swXTtcbiAgICAgIGV4cGVjdChpcENvbmZpZy5uYW1lKS50b0JlKFwiZGVmYXVsdFwiKTtcbiAgICAgIGV4cGVjdChpcENvbmZpZy5wcm9wZXJ0aWVzLnN1Ym5ldCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChpcENvbmZpZy5wcm9wZXJ0aWVzLnB1YmxpY0lQQWRkcmVzcykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChpcENvbmZpZy5wcm9wZXJ0aWVzLnB1YmxpY0lQQWRkcmVzcy5pZCkudG9CZShcbiAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvdGVzdC1waXBcIixcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.d.ts
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* - Full backward compatibility
|
|
18
18
|
* - JSII compliance for multi-language support
|
|
19
19
|
*/
|
|
20
|
-
import * as
|
|
20
|
+
import * as cdktn from "cdktn";
|
|
21
21
|
import { Construct } from "constructs";
|
|
22
22
|
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
23
23
|
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
@@ -266,10 +266,10 @@ export declare class VirtualNetworkGatewayConnection extends AzapiResource {
|
|
|
266
266
|
* The input properties for this Virtual Network Gateway Connection instance
|
|
267
267
|
*/
|
|
268
268
|
readonly props: VirtualNetworkGatewayConnectionProps;
|
|
269
|
-
readonly idOutput:
|
|
270
|
-
readonly nameOutput:
|
|
271
|
-
readonly locationOutput:
|
|
272
|
-
readonly tagsOutput:
|
|
269
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
270
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
271
|
+
readonly locationOutput: cdktn.TerraformOutput;
|
|
272
|
+
readonly tagsOutput: cdktn.TerraformOutput;
|
|
273
273
|
/**
|
|
274
274
|
* Creates a new Azure Virtual Network Gateway Connection using the AzapiResource framework
|
|
275
275
|
*
|