@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
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* Run with: npm run integration:nostream
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
const
|
|
12
|
-
require("
|
|
11
|
+
const cdktn_1 = require("cdktn");
|
|
12
|
+
require("cdktn/lib/testing/adapters/jest");
|
|
13
13
|
const resource_group_1 = require("../../azure-resourcegroup/lib/resource-group");
|
|
14
14
|
const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
|
|
15
15
|
const testing_1 = require("../../testing");
|
|
@@ -72,9 +72,9 @@ class DnsZoneExampleStack extends testing_1.BaseTestStack {
|
|
|
72
72
|
}
|
|
73
73
|
describe("DnsZone Integration Test", () => {
|
|
74
74
|
it("should deploy, validate idempotency, and cleanup resources", () => {
|
|
75
|
-
const app =
|
|
75
|
+
const app = cdktn_1.Testing.app();
|
|
76
76
|
const stack = new DnsZoneExampleStack(app, "test-dnszone");
|
|
77
|
-
const synthesized =
|
|
77
|
+
const synthesized = cdktn_1.Testing.fullSynth(stack);
|
|
78
78
|
// This will:
|
|
79
79
|
// 1. Run terraform apply to deploy resources
|
|
80
80
|
// 2. Run terraform plan to check idempotency (no changes expected)
|
|
@@ -82,4 +82,4 @@ describe("DnsZone Integration Test", () => {
|
|
|
82
82
|
(0, testing_1.TerraformApplyCheckAndDestroy)(synthesized, { verifyCleanup: true });
|
|
83
83
|
}, 600000); // 10 minute timeout for deployment and cleanup
|
|
84
84
|
});
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLXpvbmUuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtZG5zem9uZS90ZXN0L2Rucy16b25lLmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnQztBQUVoQywyQ0FBeUM7QUFDekMsaUZBQTZFO0FBQzdFLGtGQUFvRjtBQUNwRiwyQ0FBNkU7QUFDN0UseURBQTZEO0FBQzdELDhDQUEwQztBQUUxQyx3REFBd0Q7QUFDeEQsTUFBTSxZQUFZLEdBQUcsSUFBSSwwQkFBZSxDQUFDLHFCQUFxQixFQUFFO0lBQzlELFdBQVcsRUFBRSxDQUFDO0NBQ2YsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLG1CQUFvQixTQUFRLHVCQUFhO0lBQzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsY0FBYyxFQUFFO2dCQUNkLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVztnQkFDckMsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxhQUFhLEVBQUUsWUFBWSxDQUFDLGFBQWE7YUFDMUM7U0FDRixDQUFDLENBQUM7UUFFSCwyQkFBMkI7UUFDM0IsSUFBSSx3QkFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckMsd0JBQXdCO1FBQ3hCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUNqRCxvQ0FBb0MsRUFDcEMsU0FBUyxDQUNWLENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQzNDLDRCQUE0QixFQUM1QixPQUFPLENBQ1IsQ0FBQztRQUVGLHlDQUF5QztRQUN6QyxNQUFNLGFBQWEsR0FBRyxJQUFJLDhCQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN2RCxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRTtnQkFDSixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sRUFBRSxrQkFBa0I7YUFDNUI7U0FDRixDQUFDLENBQUM7UUFFSCxtQ0FBbUM7UUFDbkMsSUFBSSxrQkFBTyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNsQyxJQUFJLEVBQUUsR0FBRyxXQUFXLE1BQU07WUFDMUIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLElBQUksRUFBRTtnQkFDSixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sRUFBRSxPQUFPO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsZ0RBQWdEO1FBQ2hELElBQUksa0JBQU8sQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDbkMsSUFBSSxFQUFFLEdBQUcsV0FBVyxhQUFhO1lBQ2pDLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGVBQWUsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUNqQyxRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLEtBQUssRUFBRSxrQkFBa0I7YUFDMUI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxRQUFRLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO0lBQ3hDLEVBQUUsQ0FBQyw0REFBNEQsRUFBRSxHQUFHLEVBQUU7UUFDcEUsTUFBTSxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQW1CLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sV0FBVyxHQUFHLGVBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0MsYUFBYTtRQUNiLDZDQUE2QztRQUM3QyxtRUFBbUU7UUFDbkUsZ0RBQWdEO1FBQ2hELElBQUEsdUNBQTZCLEVBQUMsV0FBVyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsK0NBQStDO0FBQzdELENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlZ3JhdGlvbiB0ZXN0IGZvciBBenVyZSBETlMgWm9uZVxuICpcbiAqIFRoaXMgdGVzdCBkZW1vbnN0cmF0ZXMgYmFzaWMgdXNhZ2Ugb2YgdGhlIERuc1pvbmUgY29uc3RydWN0XG4gKiBhbmQgdmFsaWRhdGVzIGRlcGxveW1lbnQsIGlkZW1wb3RlbmN5LCBhbmQgY2xlYW51cC5cbiAqXG4gKiBSdW4gd2l0aDogbnBtIHJ1biBpbnRlZ3JhdGlvbjpub3N0cmVhbVxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgXCJjZGt0bi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIi4uLy4uL2F6dXJlLXJlc291cmNlZ3JvdXAvbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBBemFwaVByb3ZpZGVyIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL3Byb3ZpZGVycy1hemFwaS9wcm92aWRlclwiO1xuaW1wb3J0IHsgQmFzZVRlc3RTdGFjaywgVGVycmFmb3JtQXBwbHlDaGVja0FuZERlc3Ryb3kgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IHsgVGVzdFJ1bk1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmcvbGliL21ldGFkYXRhXCI7XG5pbXBvcnQgeyBEbnNab25lIH0gZnJvbSBcIi4uL2xpYi9kbnMtem9uZVwiO1xuXG4vLyBHZW5lcmF0ZSB1bmlxdWUgdGVzdCBydW4gbWV0YWRhdGEgZm9yIHRoaXMgdGVzdCBzdWl0ZVxuY29uc3QgdGVzdE1ldGFkYXRhID0gbmV3IFRlc3RSdW5NZXRhZGF0YShcImRuc3pvbmUtaW50ZWdyYXRpb25cIiwge1xuICBtYXhBZ2VIb3VyczogNCxcbn0pO1xuXG4vKipcbiAqIEV4YW1wbGUgc3RhY2sgZGVtb25zdHJhdGluZyBETlMgWm9uZSB1c2FnZVxuICovXG5jbGFzcyBEbnNab25lRXhhbXBsZVN0YWNrIGV4dGVuZHMgQmFzZVRlc3RTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHRlc3RSdW5PcHRpb25zOiB7XG4gICAgICAgIG1heEFnZUhvdXJzOiB0ZXN0TWV0YWRhdGEubWF4QWdlSG91cnMsXG4gICAgICAgIGF1dG9DbGVhbnVwOiB0ZXN0TWV0YWRhdGEuYXV0b0NsZWFudXAsXG4gICAgICAgIGNsZWFudXBQb2xpY3k6IHRlc3RNZXRhZGF0YS5jbGVhbnVwUG9saWN5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gR2VuZXJhdGUgdW5pcXVlIG5hbWVzXG4gICAgY29uc3QgcmVzb3VyY2VHcm91cE5hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuUmVzb3VyY2VzL3Jlc291cmNlR3JvdXBzXCIsXG4gICAgICBcImRuc3pvbmVcIixcbiAgICApO1xuICAgIGNvbnN0IGRuc1pvbmVOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0Lk5ldHdvcmsvZG5zWm9uZXNcIixcbiAgICAgIFwiYmFzaWNcIixcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIHJlc291cmNlIGdyb3VwIGZvciB0aGUgRE5TIHpvbmVcbiAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAodGhpcywgXCJ0ZXN0LXJnXCIsIHtcbiAgICAgIG5hbWU6IHJlc291cmNlR3JvdXBOYW1lLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBwdXJwb3NlOiBcImRucy16b25lLXRlc3RpbmdcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDE6IEJhc2ljIHB1YmxpYyBETlMgem9uZVxuICAgIG5ldyBEbnNab25lKHRoaXMsIFwiYmFzaWMtZG5zLXpvbmVcIiwge1xuICAgICAgbmFtZTogYCR7ZG5zWm9uZU5hbWV9LmNvbWAsXG4gICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwiYmFzaWNcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDI6IFB1YmxpYyBETlMgem9uZSB3aXRoIGV4cGxpY2l0IHRhZ3NcbiAgICBuZXcgRG5zWm9uZSh0aGlzLCBcInRhZ2dlZC1kbnMtem9uZVwiLCB7XG4gICAgICBuYW1lOiBgJHtkbnNab25lTmFtZX0tdGFnZ2VkLmNvbWAsXG4gICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHpvbmVUeXBlOiBcIlB1YmxpY1wiLFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgICAgZXhhbXBsZTogXCJ0YWdnZWRcIixcbiAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICBvd25lcjogXCJpbnRlZ3JhdGlvbi10ZXN0XCIsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmRlc2NyaWJlKFwiRG5zWm9uZSBJbnRlZ3JhdGlvbiBUZXN0XCIsICgpID0+IHtcbiAgaXQoXCJzaG91bGQgZGVwbG95LCB2YWxpZGF0ZSBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAgcmVzb3VyY2VzXCIsICgpID0+IHtcbiAgICBjb25zdCBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IERuc1pvbmVFeGFtcGxlU3RhY2soYXBwLCBcInRlc3QtZG5zem9uZVwiKTtcbiAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3RpbmcuZnVsbFN5bnRoKHN0YWNrKTtcblxuICAgIC8vIFRoaXMgd2lsbDpcbiAgICAvLyAxLiBSdW4gdGVycmFmb3JtIGFwcGx5IHRvIGRlcGxveSByZXNvdXJjZXNcbiAgICAvLyAyLiBSdW4gdGVycmFmb3JtIHBsYW4gdG8gY2hlY2sgaWRlbXBvdGVuY3kgKG5vIGNoYW5nZXMgZXhwZWN0ZWQpXG4gICAgLy8gMy4gUnVuIHRlcnJhZm9ybSBkZXN0cm95IHRvIGNsZWFudXAgcmVzb3VyY2VzXG4gICAgVGVycmFmb3JtQXBwbHlDaGVja0FuZERlc3Ryb3koc3ludGhlc2l6ZWQsIHsgdmVyaWZ5Q2xlYW51cDogdHJ1ZSB9KTtcbiAgfSwgNjAwMDAwKTsgLy8gMTAgbWludXRlIHRpbWVvdXQgZm9yIGRlcGxveW1lbnQgYW5kIGNsZWFudXBcbn0pO1xuIl19
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* full backward compatibility.
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
const
|
|
12
|
-
const
|
|
11
|
+
const cdktn_1 = require("cdktn");
|
|
12
|
+
const cdktn = require("cdktn");
|
|
13
13
|
const api_version_manager_1 = require("../../core-azure/lib/version-manager/api-version-manager");
|
|
14
14
|
const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
|
|
15
15
|
const dns_zone_1 = require("../lib/dns-zone");
|
|
@@ -19,8 +19,8 @@ describe("DnsZone - Unified Implementation", () => {
|
|
|
19
19
|
let stack;
|
|
20
20
|
let manager;
|
|
21
21
|
beforeEach(() => {
|
|
22
|
-
app =
|
|
23
|
-
stack = new
|
|
22
|
+
app = cdktn_1.Testing.app();
|
|
23
|
+
stack = new cdktn.TerraformStack(app, "TestStack");
|
|
24
24
|
manager = api_version_manager_1.ApiVersionManager.instance();
|
|
25
25
|
// Ensure schemas are registered
|
|
26
26
|
try {
|
|
@@ -171,7 +171,7 @@ describe("DnsZone - Unified Implementation", () => {
|
|
|
171
171
|
name: "contoso.com",
|
|
172
172
|
location: "global",
|
|
173
173
|
});
|
|
174
|
-
const synthesized =
|
|
174
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
175
175
|
expect(synthesized).toContain('"id"');
|
|
176
176
|
expect(synthesized).toContain('"location"');
|
|
177
177
|
expect(synthesized).toContain('"name"');
|
|
@@ -186,7 +186,7 @@ describe("DnsZone - Unified Implementation", () => {
|
|
|
186
186
|
location: "global",
|
|
187
187
|
ignoreChanges: ["tags"],
|
|
188
188
|
});
|
|
189
|
-
const synthesized =
|
|
189
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
190
190
|
expect(synthesized).toContain("ignore_changes");
|
|
191
191
|
});
|
|
192
192
|
it("should handle multiple ignore changes properties", () => {
|
|
@@ -195,7 +195,7 @@ describe("DnsZone - Unified Implementation", () => {
|
|
|
195
195
|
location: "global",
|
|
196
196
|
ignoreChanges: ["tags", "location"],
|
|
197
197
|
});
|
|
198
|
-
const synthesized =
|
|
198
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
199
199
|
expect(synthesized).toBeDefined();
|
|
200
200
|
});
|
|
201
201
|
});
|
|
@@ -206,7 +206,7 @@ describe("DnsZone - Unified Implementation", () => {
|
|
|
206
206
|
location: "global",
|
|
207
207
|
tags: { test: "synthesis" },
|
|
208
208
|
});
|
|
209
|
-
const synthesized =
|
|
209
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
210
210
|
expect(synthesized).toBeDefined();
|
|
211
211
|
const stackConfig = JSON.parse(synthesized);
|
|
212
212
|
expect(stackConfig.resource).toBeDefined();
|
|
@@ -216,7 +216,7 @@ describe("DnsZone - Unified Implementation", () => {
|
|
|
216
216
|
name: "contoso.com",
|
|
217
217
|
location: "global",
|
|
218
218
|
});
|
|
219
|
-
const synthesized =
|
|
219
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
220
220
|
expect(synthesized).toContain("Microsoft.Network/dnsZones");
|
|
221
221
|
expect(synthesized).toContain("2018-05-01");
|
|
222
222
|
});
|
|
@@ -227,7 +227,7 @@ describe("DnsZone - Unified Implementation", () => {
|
|
|
227
227
|
tags: { env: "test" },
|
|
228
228
|
zoneType: "Public",
|
|
229
229
|
});
|
|
230
|
-
const synthesized =
|
|
230
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
231
231
|
const stackConfig = JSON.parse(synthesized);
|
|
232
232
|
// Verify the resource exists
|
|
233
233
|
expect(stackConfig.resource).toBeDefined();
|
|
@@ -282,4 +282,4 @@ describe("DnsZone - Unified Implementation", () => {
|
|
|
282
282
|
});
|
|
283
283
|
});
|
|
284
284
|
});
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLXpvbmUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1kbnN6b25lL3Rlc3QvZG5zLXpvbmUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7R0FPRzs7QUFFSCxpQ0FBZ0M7QUFDaEMsK0JBQStCO0FBQy9CLGtHQUE2RjtBQUM3RiwyR0FBeUc7QUFDekcsOENBQXdEO0FBQ3hELDhEQUErRTtBQUUvRSxRQUFRLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO0lBQ2hELElBQUksR0FBYyxDQUFDO0lBQ25CLElBQUksS0FBMkIsQ0FBQztJQUNoQyxJQUFJLE9BQTBCLENBQUM7SUFFL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkQsT0FBTyxHQUFHLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZDLGdDQUFnQztRQUNoQyxJQUFJLENBQUM7WUFDSCxPQUFPLENBQUMsb0JBQW9CLENBQUMsZ0NBQWEsRUFBRSx3Q0FBcUIsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsK0JBQStCO1FBQ2pDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsRUFBRSxDQUFDLGlFQUFpRSxFQUFFLEdBQUcsRUFBRTtZQUN6RSxNQUFNLEtBQUssR0FBaUI7Z0JBQzFCLElBQUksRUFBRSxhQUFhO2dCQUNuQixRQUFRLEVBQUUsUUFBUTthQUNuQixDQUFDO1lBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBTyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7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ekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDdkMsRUFBRSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtZQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGtCQUFPLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtnQkFDaEQsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUMsQ0FBQztZQUVILE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsTUFBTSxDQUFDLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7WUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBTyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBQ2hELElBQUksRUFBRSxhQUFhO2dCQUNuQixRQUFRLEVBQUUsUUFBUTthQUNuQixDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXByZWhlbnNpdmUgdGVzdHMgZm9yIHRoZSB1bmlmaWVkIERuc1pvbmUgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSB1bmlmaWVkIERuc1pvbmUgY2xhc3MgdXNpbmcgdGhlXG4gKiBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29yay4gVGVzdHMgY292ZXIgYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbixcbiAqIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZywgc2NoZW1hIHZhbGlkYXRpb24sIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uLCBhbmRcbiAqIGZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IEFwaVZlcnNpb25NYW5hZ2VyIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9hcGktdmVyc2lvbi1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBWZXJzaW9uU3VwcG9ydExldmVsIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgRG5zWm9uZSwgRG5zWm9uZVByb3BzIH0gZnJvbSBcIi4uL2xpYi9kbnMtem9uZVwiO1xuaW1wb3J0IHsgQUxMX0ROU19aT05FX1ZFUlNJT05TLCBETlNfWk9ORV9UWVBFIH0gZnJvbSBcIi4uL2xpYi9kbnMtem9uZS1zY2hlbWFzXCI7XG5cbmRlc2NyaWJlKFwiRG5zWm9uZSAtIFVuaWZpZWQgSW1wbGVtZW50YXRpb25cIiwgKCkgPT4ge1xuICBsZXQgYXBwOiBjZGt0Zi5BcHA7XG4gIGxldCBzdGFjazogY2RrdGYuVGVycmFmb3JtU3RhY2s7XG4gIGxldCBtYW5hZ2VyOiBBcGlWZXJzaW9uTWFuYWdlcjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IGNka3RmLlRlcnJhZm9ybVN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gICAgbWFuYWdlciA9IEFwaVZlcnNpb25NYW5hZ2VyLmluc3RhbmNlKCk7XG5cbiAgICAvLyBFbnN1cmUgc2NoZW1hcyBhcmUgcmVnaXN0ZXJlZFxuICAgIHRyeSB7XG4gICAgICBtYW5hZ2VyLnJlZ2lzdGVyUmVzb3VyY2VUeXBlKEROU19aT05FX1RZUEUsIEFMTF9ETlNfWk9ORV9WRVJTSU9OUyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIElnbm9yZSBpZiBhbHJlYWR5IHJlZ2lzdGVyZWRcbiAgICB9XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ29uc3RydWN0b3IgYW5kIEJhc2ljIFByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBETlMgem9uZSB3aXRoIGF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEbnNab25lUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBkbnNab25lID0gbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmVcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoZG5zWm9uZSkudG9CZUluc3RhbmNlT2YoRG5zWm9uZSk7XG4gICAgICBleHBlY3QoZG5zWm9uZS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDE4LTA1LTAxXCIpO1xuICAgICAgZXhwZWN0KGRuc1pvbmUucHJvcHMpLnRvQmUocHJvcHMpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIEROUyB6b25lIHdpdGggZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEbnNab25lUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxOC0wNS0wMVwiLFxuICAgICAgICB0YWdzOiB7IGVudmlyb25tZW50OiBcInRlc3RcIiB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlRlc3REbnNab25lXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAxOC0wNS0wMVwiKTtcbiAgICAgIGV4cGVjdChkbnNab25lLnRhZ3MpLnRvRXF1YWwoeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgcHVibGljIEROUyB6b25lIGJ5IGRlZmF1bHRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IERuc1pvbmVQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChkbnNab25lLnpvbmVUeXBlKS50b0JlKFwiUHVibGljXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHByaXZhdGUgRE5TIHpvbmUgd2hlbiBzcGVjaWZpZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IERuc1pvbmVQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJpbnRlcm5hbC5jb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgICAgem9uZVR5cGU6IFwiUHJpdmF0ZVwiLFxuICAgICAgICByZWdpc3RyYXRpb25WaXJ0dWFsTmV0d29ya3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWIxL3Jlc291cmNlR3JvdXBzL3JnMS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChkbnNab25lLnpvbmVUeXBlKS50b0JlKFwiUHJpdmF0ZVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBnbG9iYWwgbG9jYXRpb24gYnkgZGVmYXVsdFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRG5zWm9uZVByb3BzID0ge1xuICAgICAgICBuYW1lOiBcImNvbnRvc28uY29tXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBkbnNab25lID0gbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmVcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoZG5zWm9uZS5sb2NhdGlvbikudG9CZShcImdsb2JhbFwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJGcmFtZXdvcmsgSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHJlc29sdmUgbGF0ZXN0IEFQSSB2ZXJzaW9uIGF1dG9tYXRpY2FsbHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlRlc3REbnNab25lXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoZG5zWm9uZS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDE4LTA1LTAxXCIpO1xuICAgICAgZXhwZWN0KGRuc1pvbmUubGF0ZXN0VmVyc2lvbigpKS50b0JlKFwiMjAxOC0wNS0wMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHByb3ZpZGUgdmVyc2lvbiBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUudmVyc2lvbkNvbmZpZykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChkbnNab25lLnZlcnNpb25Db25maWcudmVyc2lvbikudG9CZShcIjIwMTgtMDUtMDFcIik7XG4gICAgICBleHBlY3QoZG5zWm9uZS52ZXJzaW9uQ29uZmlnLnN1cHBvcnRMZXZlbCkudG9CZShcbiAgICAgICAgVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgcHJvdmlkZSBzdXBwb3J0ZWQgdmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlRlc3REbnNab25lXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB2ZXJzaW9ucyA9IGRuc1pvbmUuc3VwcG9ydGVkVmVyc2lvbnMoKTtcbiAgICAgIGV4cGVjdCh2ZXJzaW9ucykudG9Db250YWluKFwiMjAxOC0wNS0wMVwiKTtcbiAgICAgIGV4cGVjdCh2ZXJzaW9ucy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJQdWJsaWMgTWV0aG9kc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcHJvdmlkZSBuYW1lIHNlcnZlcnMgb3V0cHV0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUubmFtZVNlcnZlcnMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QodHlwZW9mIGRuc1pvbmUubmFtZVNlcnZlcnMpLnRvQmUoXCJzdHJpbmdcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBwcm92aWRlIG1heCBudW1iZXIgb2YgcmVjb3JkIHNldHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlRlc3REbnNab25lXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoZG5zWm9uZS5tYXhOdW1iZXJPZlJlY29yZFNldHMpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBwcm92aWRlIGN1cnJlbnQgbnVtYmVyIG9mIHJlY29yZCBzZXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUubnVtYmVyT2ZSZWNvcmRTZXRzKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWxsb3cgYWRkaW5nIHRhZ3NcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlRlc3REbnNab25lXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgICAgdGFnczogeyBpbml0aWFsOiBcInRhZ1wiIH0sXG4gICAgICB9KTtcblxuICAgICAgZG5zWm9uZS5hZGRUYWcoXCJuZXdLZXlcIiwgXCJuZXdWYWx1ZVwiKTtcbiAgICAgIGV4cGVjdChkbnNab25lLnByb3BzLnRhZ3MpLnRvSGF2ZVByb3BlcnR5KFwibmV3S2V5XCIsIFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QoZG5zWm9uZS5wcm9wcy50YWdzKS50b0hhdmVQcm9wZXJ0eShcImluaXRpYWxcIiwgXCJ0YWdcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBhbGxvdyByZW1vdmluZyB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICAgIHRhZ3M6IHsga2V5MTogXCJ2YWx1ZTFcIiwga2V5MjogXCJ2YWx1ZTJcIiB9LFxuICAgICAgfSk7XG5cbiAgICAgIGRuc1pvbmUucmVtb3ZlVGFnKFwia2V5MVwiKTtcbiAgICAgIGV4cGVjdChkbnNab25lLnByb3BzLnRhZ3MpLm5vdC50b0hhdmVQcm9wZXJ0eShcImtleTFcIik7XG4gICAgICBleHBlY3QoZG5zWm9uZS5wcm9wcy50YWdzKS50b0hhdmVQcm9wZXJ0eShcImtleTJcIiwgXCJ2YWx1ZTJcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiT3V0cHV0c1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGFsbCByZXF1aXJlZCBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUuaWRPdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZG5zWm9uZS5sb2NhdGlvbk91dHB1dCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChkbnNab25lLm5hbWVPdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZG5zWm9uZS50YWdzT3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGRuc1pvbmUubmFtZVNlcnZlcnNPdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYXZlIGNvcnJlY3QgbG9naWNhbCBJRHMgZm9yIG91dHB1dHNcIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmVcIiwge1xuICAgICAgICBuYW1lOiBcImNvbnRvc28uY29tXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImdsb2JhbFwiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQ29udGFpbignXCJpZFwiJyk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQ29udGFpbignXCJsb2NhdGlvblwiJyk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQ29udGFpbignXCJuYW1lXCInKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9Db250YWluKCdcInRhZ3NcIicpO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0NvbnRhaW4oJ1wibmFtZV9zZXJ2ZXJzXCInKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJJZ25vcmUgQ2hhbmdlcyBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBhcHBseSBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXNcIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmVcIiwge1xuICAgICAgICBuYW1lOiBcImNvbnRvc28uY29tXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImdsb2JhbFwiLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCJdLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQ29udGFpbihcImlnbm9yZV9jaGFuZ2VzXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG11bHRpcGxlIGlnbm9yZSBjaGFuZ2VzIHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmUyXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvMi5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcInRhZ3NcIiwgXCJsb2NhdGlvblwiXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgICAgdGFnczogeyB0ZXN0OiBcInN5bnRoZXNpc1wiIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcblxuICAgICAgY29uc3Qgc3RhY2tDb25maWcgPSBKU09OLnBhcnNlKHN5bnRoZXNpemVkKTtcbiAgICAgIGV4cGVjdChzdGFja0NvbmZpZy5yZXNvdXJjZSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGdlbmVyYXRlIGNvcnJlY3QgcmVzb3VyY2UgdHlwZSBpbiBUZXJyYWZvcm1cIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0NvbnRhaW4oXCJNaWNyb3NvZnQuTmV0d29yay9kbnNab25lc1wiKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9Db250YWluKFwiMjAxOC0wNS0wMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgaW4gVGVycmFmb3JtIGJvZHlcIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgICAgdGFnczogeyBlbnY6IFwidGVzdFwiIH0sXG4gICAgICAgIHpvbmVUeXBlOiBcIlB1YmxpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBjb25zdCBzdGFja0NvbmZpZyA9IEpTT04ucGFyc2Uoc3ludGhlc2l6ZWQpO1xuXG4gICAgICAvLyBWZXJpZnkgdGhlIHJlc291cmNlIGV4aXN0c1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlLmF6YXBpX3Jlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICAvLyBHZXQgdGhlIHJlc291cmNlXG4gICAgICBjb25zdCByZXNvdXJjZXMgPSBPYmplY3QudmFsdWVzKHN0YWNrQ29uZmlnLnJlc291cmNlLmF6YXBpX3Jlc291cmNlKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZXMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMCk7XG4gICAgICBjb25zdCByZXNvdXJjZTogYW55ID0gcmVzb3VyY2VzWzBdO1xuXG4gICAgICAvLyBWZXJpZnkgdGFncyBhcmUgYXQgdGhlIHJlc291cmNlIGxldmVsIChub3QgaW4gYm9keSlcbiAgICAgIGV4cGVjdChyZXNvdXJjZS50YWdzKS50b0VxdWFsKHsgZW52OiBcInRlc3RcIiB9KTtcblxuICAgICAgLy8gVmVyaWZ5IGJvZHkgY29udGFpbnMgbG9jYXRpb25cbiAgICAgIGV4cGVjdChyZXNvdXJjZS5ib2R5LmxvY2F0aW9uKS50b0JlKFwiZ2xvYmFsXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlByaXZhdGUgRE5TIFpvbmUgRmVhdHVyZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBwcml2YXRlIEROUyB6b25lIHdpdGggdmlydHVhbCBuZXR3b3JrIHJlZmVyZW5jZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlByaXZhdGVEbnNab25lXCIsIHtcbiAgICAgICAgbmFtZTogXCJpbnRlcm5hbC5jb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgICAgem9uZVR5cGU6IFwiUHJpdmF0ZVwiLFxuICAgICAgICByZWdpc3RyYXRpb25WaXJ0dWFsTmV0d29ya3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWIxL3Jlc291cmNlR3JvdXBzL3JnMS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb2x1dGlvblZpcnR1YWxOZXR3b3JrczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1YjEvcmVzb3VyY2VHcm91cHMvcmcxL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldDJcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkbnNab25lLnpvbmVUeXBlKS50b0JlKFwiUHJpdmF0ZVwiKTtcbiAgICAgIGV4cGVjdChkbnNab25lLnByb3BzLnJlZ2lzdHJhdGlvblZpcnR1YWxOZXR3b3JrcykudG9IYXZlTGVuZ3RoKDEpO1xuICAgICAgZXhwZWN0KGRuc1pvbmUucHJvcHMucmVzb2x1dGlvblZpcnR1YWxOZXR3b3JrcykudG9IYXZlTGVuZ3RoKDEpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlJlc291cmNlIElkZW50aWZpY2F0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBwcm92aWRlIHJlc291cmNlIElEXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUuaWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QodHlwZW9mIGRuc1pvbmUuaWQpLnRvQmUoXCJzdHJpbmdcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBwcm92aWRlIHJlc291cmNlIG5hbWUgZnJvbSBwcm9wc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBkbnNab25lID0gbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmVcIiwge1xuICAgICAgICBuYW1lOiBcImNvbnRvc28uY29tXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImdsb2JhbFwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkbnNab25lLm5hbWUpLnRvQmUoXCJjb250b3NvLmNvbVwiKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLXpvbmUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1kbnN6b25lL3Rlc3QvZG5zLXpvbmUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7R0FPRzs7QUFFSCxpQ0FBZ0M7QUFDaEMsK0JBQStCO0FBQy9CLGtHQUE2RjtBQUM3RiwyR0FBeUc7QUFDekcsOENBQXdEO0FBQ3hELDhEQUErRTtBQUUvRSxRQUFRLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO0lBQ2hELElBQUksR0FBYyxDQUFDO0lBQ25CLElBQUksS0FBMkIsQ0FBQztJQUNoQyxJQUFJLE9BQTBCLENBQUM7SUFFL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkQsT0FBTyxHQUFHLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZDLGdDQUFnQztRQUNoQyxJQUFJLENBQUM7WUFDSCxPQUFPLENBQUMsb0JBQW9CLENBQUMsZ0NBQWEsRUFBRSx3Q0FBcUIsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsK0JBQStCO1FBQ2pDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsRUFBRSxDQUFDLGlFQUFpRSxFQUFFLEdBQUcsRUFBRTtZQUN6RSxNQUFNLEtBQUssR0FBaUI7Z0JBQzFCLElBQUksRUFBRSxhQUFhO2dCQUNuQixRQUFRLEVBQUUsUUFBUTthQUNuQixDQUFDO1lBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBTyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7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ekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDdkMsRUFBRSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtZQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGtCQUFPLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtnQkFDaEQsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUMsQ0FBQztZQUVILE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsTUFBTSxDQUFDLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7WUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBTyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBQ2hELElBQUksRUFBRSxhQUFhO2dCQUNuQixRQUFRLEVBQUUsUUFBUTthQUNuQixDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXByZWhlbnNpdmUgdGVzdHMgZm9yIHRoZSB1bmlmaWVkIERuc1pvbmUgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSB1bmlmaWVkIERuc1pvbmUgY2xhc3MgdXNpbmcgdGhlXG4gKiBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29yay4gVGVzdHMgY292ZXIgYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbixcbiAqIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZywgc2NoZW1hIHZhbGlkYXRpb24sIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uLCBhbmRcbiAqIGZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgKiBhcyBjZGt0biBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IEFwaVZlcnNpb25NYW5hZ2VyIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9hcGktdmVyc2lvbi1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBWZXJzaW9uU3VwcG9ydExldmVsIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgRG5zWm9uZSwgRG5zWm9uZVByb3BzIH0gZnJvbSBcIi4uL2xpYi9kbnMtem9uZVwiO1xuaW1wb3J0IHsgQUxMX0ROU19aT05FX1ZFUlNJT05TLCBETlNfWk9ORV9UWVBFIH0gZnJvbSBcIi4uL2xpYi9kbnMtem9uZS1zY2hlbWFzXCI7XG5cbmRlc2NyaWJlKFwiRG5zWm9uZSAtIFVuaWZpZWQgSW1wbGVtZW50YXRpb25cIiwgKCkgPT4ge1xuICBsZXQgYXBwOiBjZGt0bi5BcHA7XG4gIGxldCBzdGFjazogY2RrdG4uVGVycmFmb3JtU3RhY2s7XG4gIGxldCBtYW5hZ2VyOiBBcGlWZXJzaW9uTWFuYWdlcjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IGNka3RuLlRlcnJhZm9ybVN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gICAgbWFuYWdlciA9IEFwaVZlcnNpb25NYW5hZ2VyLmluc3RhbmNlKCk7XG5cbiAgICAvLyBFbnN1cmUgc2NoZW1hcyBhcmUgcmVnaXN0ZXJlZFxuICAgIHRyeSB7XG4gICAgICBtYW5hZ2VyLnJlZ2lzdGVyUmVzb3VyY2VUeXBlKEROU19aT05FX1RZUEUsIEFMTF9ETlNfWk9ORV9WRVJTSU9OUyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIElnbm9yZSBpZiBhbHJlYWR5IHJlZ2lzdGVyZWRcbiAgICB9XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ29uc3RydWN0b3IgYW5kIEJhc2ljIFByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBETlMgem9uZSB3aXRoIGF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEbnNab25lUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBkbnNab25lID0gbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmVcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoZG5zWm9uZSkudG9CZUluc3RhbmNlT2YoRG5zWm9uZSk7XG4gICAgICBleHBlY3QoZG5zWm9uZS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDE4LTA1LTAxXCIpO1xuICAgICAgZXhwZWN0KGRuc1pvbmUucHJvcHMpLnRvQmUocHJvcHMpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIEROUyB6b25lIHdpdGggZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEbnNab25lUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAxOC0wNS0wMVwiLFxuICAgICAgICB0YWdzOiB7IGVudmlyb25tZW50OiBcInRlc3RcIiB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlRlc3REbnNab25lXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAxOC0wNS0wMVwiKTtcbiAgICAgIGV4cGVjdChkbnNab25lLnRhZ3MpLnRvRXF1YWwoeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgcHVibGljIEROUyB6b25lIGJ5IGRlZmF1bHRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IERuc1pvbmVQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChkbnNab25lLnpvbmVUeXBlKS50b0JlKFwiUHVibGljXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHByaXZhdGUgRE5TIHpvbmUgd2hlbiBzcGVjaWZpZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IERuc1pvbmVQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJpbnRlcm5hbC5jb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgICAgem9uZVR5cGU6IFwiUHJpdmF0ZVwiLFxuICAgICAgICByZWdpc3RyYXRpb25WaXJ0dWFsTmV0d29ya3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWIxL3Jlc291cmNlR3JvdXBzL3JnMS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChkbnNab25lLnpvbmVUeXBlKS50b0JlKFwiUHJpdmF0ZVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBnbG9iYWwgbG9jYXRpb24gYnkgZGVmYXVsdFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRG5zWm9uZVByb3BzID0ge1xuICAgICAgICBuYW1lOiBcImNvbnRvc28uY29tXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBkbnNab25lID0gbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmVcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoZG5zWm9uZS5sb2NhdGlvbikudG9CZShcImdsb2JhbFwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJGcmFtZXdvcmsgSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHJlc29sdmUgbGF0ZXN0IEFQSSB2ZXJzaW9uIGF1dG9tYXRpY2FsbHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlRlc3REbnNab25lXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoZG5zWm9uZS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDE4LTA1LTAxXCIpO1xuICAgICAgZXhwZWN0KGRuc1pvbmUubGF0ZXN0VmVyc2lvbigpKS50b0JlKFwiMjAxOC0wNS0wMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHByb3ZpZGUgdmVyc2lvbiBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUudmVyc2lvbkNvbmZpZykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChkbnNab25lLnZlcnNpb25Db25maWcudmVyc2lvbikudG9CZShcIjIwMTgtMDUtMDFcIik7XG4gICAgICBleHBlY3QoZG5zWm9uZS52ZXJzaW9uQ29uZmlnLnN1cHBvcnRMZXZlbCkudG9CZShcbiAgICAgICAgVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgcHJvdmlkZSBzdXBwb3J0ZWQgdmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlRlc3REbnNab25lXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB2ZXJzaW9ucyA9IGRuc1pvbmUuc3VwcG9ydGVkVmVyc2lvbnMoKTtcbiAgICAgIGV4cGVjdCh2ZXJzaW9ucykudG9Db250YWluKFwiMjAxOC0wNS0wMVwiKTtcbiAgICAgIGV4cGVjdCh2ZXJzaW9ucy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJQdWJsaWMgTWV0aG9kc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcHJvdmlkZSBuYW1lIHNlcnZlcnMgb3V0cHV0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUubmFtZVNlcnZlcnMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QodHlwZW9mIGRuc1pvbmUubmFtZVNlcnZlcnMpLnRvQmUoXCJzdHJpbmdcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBwcm92aWRlIG1heCBudW1iZXIgb2YgcmVjb3JkIHNldHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlRlc3REbnNab25lXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoZG5zWm9uZS5tYXhOdW1iZXJPZlJlY29yZFNldHMpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBwcm92aWRlIGN1cnJlbnQgbnVtYmVyIG9mIHJlY29yZCBzZXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUubnVtYmVyT2ZSZWNvcmRTZXRzKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWxsb3cgYWRkaW5nIHRhZ3NcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlRlc3REbnNab25lXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgICAgdGFnczogeyBpbml0aWFsOiBcInRhZ1wiIH0sXG4gICAgICB9KTtcblxuICAgICAgZG5zWm9uZS5hZGRUYWcoXCJuZXdLZXlcIiwgXCJuZXdWYWx1ZVwiKTtcbiAgICAgIGV4cGVjdChkbnNab25lLnByb3BzLnRhZ3MpLnRvSGF2ZVByb3BlcnR5KFwibmV3S2V5XCIsIFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QoZG5zWm9uZS5wcm9wcy50YWdzKS50b0hhdmVQcm9wZXJ0eShcImluaXRpYWxcIiwgXCJ0YWdcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBhbGxvdyByZW1vdmluZyB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICAgIHRhZ3M6IHsga2V5MTogXCJ2YWx1ZTFcIiwga2V5MjogXCJ2YWx1ZTJcIiB9LFxuICAgICAgfSk7XG5cbiAgICAgIGRuc1pvbmUucmVtb3ZlVGFnKFwia2V5MVwiKTtcbiAgICAgIGV4cGVjdChkbnNab25lLnByb3BzLnRhZ3MpLm5vdC50b0hhdmVQcm9wZXJ0eShcImtleTFcIik7XG4gICAgICBleHBlY3QoZG5zWm9uZS5wcm9wcy50YWdzKS50b0hhdmVQcm9wZXJ0eShcImtleTJcIiwgXCJ2YWx1ZTJcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiT3V0cHV0c1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGFsbCByZXF1aXJlZCBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUuaWRPdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZG5zWm9uZS5sb2NhdGlvbk91dHB1dCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChkbnNab25lLm5hbWVPdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZG5zWm9uZS50YWdzT3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGRuc1pvbmUubmFtZVNlcnZlcnNPdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYXZlIGNvcnJlY3QgbG9naWNhbCBJRHMgZm9yIG91dHB1dHNcIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmVcIiwge1xuICAgICAgICBuYW1lOiBcImNvbnRvc28uY29tXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImdsb2JhbFwiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQ29udGFpbignXCJpZFwiJyk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQ29udGFpbignXCJsb2NhdGlvblwiJyk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQ29udGFpbignXCJuYW1lXCInKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9Db250YWluKCdcInRhZ3NcIicpO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0NvbnRhaW4oJ1wibmFtZV9zZXJ2ZXJzXCInKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJJZ25vcmUgQ2hhbmdlcyBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBhcHBseSBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXNcIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmVcIiwge1xuICAgICAgICBuYW1lOiBcImNvbnRvc28uY29tXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImdsb2JhbFwiLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCJdLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQ29udGFpbihcImlnbm9yZV9jaGFuZ2VzXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG11bHRpcGxlIGlnbm9yZSBjaGFuZ2VzIHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmUyXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvMi5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcInRhZ3NcIiwgXCJsb2NhdGlvblwiXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgICAgdGFnczogeyB0ZXN0OiBcInN5bnRoZXNpc1wiIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcblxuICAgICAgY29uc3Qgc3RhY2tDb25maWcgPSBKU09OLnBhcnNlKHN5bnRoZXNpemVkKTtcbiAgICAgIGV4cGVjdChzdGFja0NvbmZpZy5yZXNvdXJjZSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGdlbmVyYXRlIGNvcnJlY3QgcmVzb3VyY2UgdHlwZSBpbiBUZXJyYWZvcm1cIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0NvbnRhaW4oXCJNaWNyb3NvZnQuTmV0d29yay9kbnNab25lc1wiKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9Db250YWluKFwiMjAxOC0wNS0wMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgaW4gVGVycmFmb3JtIGJvZHlcIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc1pvbmUoc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJjb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgICAgdGFnczogeyBlbnY6IFwidGVzdFwiIH0sXG4gICAgICAgIHpvbmVUeXBlOiBcIlB1YmxpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBjb25zdCBzdGFja0NvbmZpZyA9IEpTT04ucGFyc2Uoc3ludGhlc2l6ZWQpO1xuXG4gICAgICAvLyBWZXJpZnkgdGhlIHJlc291cmNlIGV4aXN0c1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlLmF6YXBpX3Jlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICAvLyBHZXQgdGhlIHJlc291cmNlXG4gICAgICBjb25zdCByZXNvdXJjZXMgPSBPYmplY3QudmFsdWVzKHN0YWNrQ29uZmlnLnJlc291cmNlLmF6YXBpX3Jlc291cmNlKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZXMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMCk7XG4gICAgICBjb25zdCByZXNvdXJjZTogYW55ID0gcmVzb3VyY2VzWzBdO1xuXG4gICAgICAvLyBWZXJpZnkgdGFncyBhcmUgYXQgdGhlIHJlc291cmNlIGxldmVsIChub3QgaW4gYm9keSlcbiAgICAgIGV4cGVjdChyZXNvdXJjZS50YWdzKS50b0VxdWFsKHsgZW52OiBcInRlc3RcIiB9KTtcblxuICAgICAgLy8gVmVyaWZ5IGJvZHkgY29udGFpbnMgbG9jYXRpb25cbiAgICAgIGV4cGVjdChyZXNvdXJjZS5ib2R5LmxvY2F0aW9uKS50b0JlKFwiZ2xvYmFsXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlByaXZhdGUgRE5TIFpvbmUgRmVhdHVyZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBwcml2YXRlIEROUyB6b25lIHdpdGggdmlydHVhbCBuZXR3b3JrIHJlZmVyZW5jZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgZG5zWm9uZSA9IG5ldyBEbnNab25lKHN0YWNrLCBcIlByaXZhdGVEbnNab25lXCIsIHtcbiAgICAgICAgbmFtZTogXCJpbnRlcm5hbC5jb250b3NvLmNvbVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgICAgem9uZVR5cGU6IFwiUHJpdmF0ZVwiLFxuICAgICAgICByZWdpc3RyYXRpb25WaXJ0dWFsTmV0d29ya3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWIxL3Jlc291cmNlR3JvdXBzL3JnMS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb2x1dGlvblZpcnR1YWxOZXR3b3JrczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1YjEvcmVzb3VyY2VHcm91cHMvcmcxL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3Mvdm5ldDJcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkbnNab25lLnpvbmVUeXBlKS50b0JlKFwiUHJpdmF0ZVwiKTtcbiAgICAgIGV4cGVjdChkbnNab25lLnByb3BzLnJlZ2lzdHJhdGlvblZpcnR1YWxOZXR3b3JrcykudG9IYXZlTGVuZ3RoKDEpO1xuICAgICAgZXhwZWN0KGRuc1pvbmUucHJvcHMucmVzb2x1dGlvblZpcnR1YWxOZXR3b3JrcykudG9IYXZlTGVuZ3RoKDEpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlJlc291cmNlIElkZW50aWZpY2F0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBwcm92aWRlIHJlc291cmNlIElEXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGRuc1pvbmUgPSBuZXcgRG5zWm9uZShzdGFjaywgXCJUZXN0RG5zWm9uZVwiLCB7XG4gICAgICAgIG5hbWU6IFwiY29udG9zby5jb21cIixcbiAgICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGRuc1pvbmUuaWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QodHlwZW9mIGRuc1pvbmUuaWQpLnRvQmUoXCJzdHJpbmdcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBwcm92aWRlIHJlc291cmNlIG5hbWUgZnJvbSBwcm9wc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBkbnNab25lID0gbmV3IERuc1pvbmUoc3RhY2ssIFwiVGVzdERuc1pvbmVcIiwge1xuICAgICAgICBuYW1lOiBcImNvbnRvc28uY29tXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImdsb2JhbFwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChkbnNab25lLm5hbWUpLnRvQmUoXCJjb250b3NvLmNvbVwiKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* - Public network access controls
|
|
19
19
|
* - Workspace features configuration
|
|
20
20
|
*/
|
|
21
|
-
import * as cdktf from "
|
|
21
|
+
import * as cdktf from "cdktn";
|
|
22
22
|
import { Construct } from "constructs";
|
|
23
23
|
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
24
24
|
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
@@ -23,7 +23,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
23
23
|
* - Public network access controls
|
|
24
24
|
* - Workspace features configuration
|
|
25
25
|
*/
|
|
26
|
-
const cdktf = require("
|
|
26
|
+
const cdktf = require("cdktn");
|
|
27
27
|
const log_analytics_workspace_schemas_1 = require("./log-analytics-workspace-schemas");
|
|
28
28
|
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
29
29
|
/**
|
|
@@ -206,8 +206,8 @@ class LogAnalyticsWorkspace extends azapi_resource_1.AzapiResource {
|
|
|
206
206
|
}
|
|
207
207
|
exports.LogAnalyticsWorkspace = LogAnalyticsWorkspace;
|
|
208
208
|
_a = JSII_RTTI_SYMBOL_1;
|
|
209
|
-
LogAnalyticsWorkspace[_a] = { fqn: "@microsoft/terraform-cdk-constructs.LogAnalyticsWorkspace", version: "
|
|
209
|
+
LogAnalyticsWorkspace[_a] = { fqn: "@microsoft/terraform-cdk-constructs.LogAnalyticsWorkspace", version: "2.2.0" };
|
|
210
210
|
(() => {
|
|
211
211
|
azapi_resource_1.AzapiResource.registerSchemas(log_analytics_workspace_schemas_1.LOG_ANALYTICS_WORKSPACE_TYPE, log_analytics_workspace_schemas_1.ALL_LOG_ANALYTICS_WORKSPACE_VERSIONS);
|
|
212
212
|
})();
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuYWx5dGljcy13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbG9nYW5hbHl0aWNzd29ya3NwYWNlL2xpYi9sb2ctYW5hbHl0aWNzLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBRUgsK0JBQStCO0FBRS9CLHVGQUcyQztBQUMzQyw4RUFHbUQ7QUE2TW5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSw4QkFBYTtJQW1CdEQ7Ozs7Ozs7OztPQVNHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxzQ0FBc0M7UUFDdEMsSUFBSSxLQUFLLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyxFQUFFLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDSCxDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztZQUM5QyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRSxJQUNFLEtBQUssQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEtBQUssU0FBUztnQkFDaEQsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsRUFDekQsQ0FBQztn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UUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDakUsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLG1DQUFtQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUM7Z0JBQ2pELFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sZUFBZSxDQUFDLEtBQVU7UUFDbEMsT0FBUSxLQUFvQyxDQUFDLGVBQWUsQ0FBQztJQUMvRCxDQUFDOztBQTNLSCxzREE0S0M7OztBQTNLQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQiw4REFBNEIsRUFDNUIsc0VBQW9DLENBQ3JDLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpbXBsZW1lbnRhdGlvbiB1c2luZyBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICogdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiBtYW5hZ2VtZW50LCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5XG4gKiB0cmFuc2Zvcm1hdGlvbiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0wOS0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKiAtIDIwMjItMTAtMDEgKEFjdGl2ZSwgQmFja3dhcmQgQ29tcGF0aWJpbGl0eSlcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBGdWxsIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICogLSBDb25maWd1cmFibGUgZGF0YSByZXRlbnRpb24sIFNLVSwgYW5kIHdvcmtzcGFjZSBjYXBwaW5nXG4gKiAtIFB1YmxpYyBuZXR3b3JrIGFjY2VzcyBjb250cm9sc1xuICogLSBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9MT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9WRVJTSU9OUyxcbiAgTE9HX0FOQUxZVElDU19XT1JLU1BBQ0VfVFlQRSxcbn0gZnJvbSBcIi4vbG9nLWFuYWx5dGljcy13b3Jrc3BhY2Utc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBTS1UgY29uZmlndXJhdGlvbiBmb3IgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VTa3Uge1xuICAvKipcbiAgICogU0tVIG5hbWUgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICAgKlxuICAgKiBBdmFpbGFibGUgb3B0aW9uczpcbiAgICogLSBcIkZyZWVcIiAtIEZyZWUgdGllciAobGltaXRlZCB0byA1MDBNQi9kYXksIDcgZGF5IHJldGVudGlvbilcbiAgICogLSBcIlN0YW5kYXJkXCIgLSBTdGFuZGFyZCB0aWVyIChsZWdhY3kpXG4gICAqIC0gXCJQcmVtaXVtXCIgLSBQcmVtaXVtIHRpZXIgKGxlZ2FjeSlcbiAgICogLSBcIlBlck5vZGVcIiAtIFBlciBub2RlIHByaWNpbmcgKGxlZ2FjeSwgZm9yIE9NUyBjdXN0b21lcnMpXG4gICAqIC0gXCJQZXJHQjIwMThcIiAtIFBheS1hcy15b3UtZ28gcHJpY2luZyBiYXNlZCBvbiBkYXRhIGluZ2VzdGlvblxuICAgKiAtIFwiU3RhbmRhbG9uZVwiIC0gU3RhbmRhbG9uZSB0aWVyIChsZWdhY3kpXG4gICAqIC0gXCJDYXBhY2l0eVJlc2VydmF0aW9uXCIgLSBDb21taXRtZW50IHRpZXIgd2l0aCByZXNlcnZlZCBjYXBhY2l0eVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFwiUGVyR0IyMDE4XCJcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6XG4gICAgfCBcIkZyZWVcIlxuICAgIHwgXCJTdGFuZGFyZFwiXG4gICAgfCBcIlByZW1pdW1cIlxuICAgIHwgXCJQZXJOb2RlXCJcbiAgICB8IFwiUGVyR0IyMDE4XCJcbiAgICB8IFwiU3RhbmRhbG9uZVwiXG4gICAgfCBcIkNhcGFjaXR5UmVzZXJ2YXRpb25cIjtcblxuICAvKipcbiAgICogQ2FwYWNpdHkgcmVzZXJ2YXRpb24gbGV2ZWwgaW4gR0IgcGVyIGRheVxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBTS1UgbmFtZSBpcyBcIkNhcGFjaXR5UmVzZXJ2YXRpb25cIlxuICAgKiBWYWxpZCB2YWx1ZXM6IDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwXG4gICAqL1xuICByZWFkb25seSBjYXBhY2l0eVJlc2VydmF0aW9uTGV2ZWw/OiBudW1iZXI7XG59XG5cbi8qKlxuICogV29ya3NwYWNlIGNhcHBpbmcgY29uZmlndXJhdGlvbiBmb3IgZGFpbHkgZGF0YSBpbmdlc3Rpb24gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZyB7XG4gIC8qKlxuICAgKiBEYWlseSB2b2x1bWUgY2FwIGluIEdCXG4gICAqIEEgdmFsdWUgb2YgLTEgbWVhbnMgbm8gY2FwXG4gICAqL1xuICByZWFkb25seSBkYWlseVF1b3RhR2I6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0FuYWx5dGljc1dvcmtzcGFjZUZlYXR1cmVzIHtcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIGRhdGEgZXhwb3J0IGlzIGVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZURhdGFFeHBvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBkYXRhIHNob3VsZCBiZSBpbW1lZGlhdGVseSBwdXJnZWQgYWZ0ZXIgMzAgZGF5c1xuICAgKiBpbnN0ZWFkIG9mIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2RcbiAgICovXG4gIHJlYWRvbmx5IGltbWVkaWF0ZVB1cmdlRGF0YU9uMzBEYXlzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgbG9nIGFjY2VzcyB1c2luZyBBQURJQU0gaXMgZGlzYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVMb2NhbEF1dGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBjbHVzdGVyIHJlc291cmNlIHBlcm1pc3Npb25zIGFyZSBlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb2dBY2Nlc3NVc2luZ09ubHlSZXNvdXJjZVBlcm1pc3Npb25zPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYW5hZ2VkIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VJZGVudGl0eSB7XG4gIC8qKlxuICAgKiBUeXBlIG9mIG1hbmFnZWQgaWRlbnRpdHlcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6XG4gICAgfCBcIlN5c3RlbUFzc2lnbmVkXCJcbiAgICB8IFwiVXNlckFzc2lnbmVkXCJcbiAgICB8IFwiU3lzdGVtQXNzaWduZWQsVXNlckFzc2lnbmVkXCJcbiAgICB8IFwiTm9uZVwiO1xuXG4gIC8qKlxuICAgKiBVc2VyLWFzc2lnbmVkIGlkZW50aXR5IHJlc291cmNlIElEc1xuICAgKiBSZXF1aXJlZCB3aGVuIHR5cGUgaW5jbHVkZXMgVXNlckFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSB1c2VyQXNzaWduZWRJZGVudGl0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICpcbiAqIEV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHdpdGggTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0FuYWx5dGljc1dvcmtzcGFjZVByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIEdyb3VwIElEIHdoZXJlIHRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSBjcmVhdGVkXG4gICAqIFRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSBjcmVhdGVkIGFzIGEgY2hpbGQgb2YgdGhpcyByZXNvdXJjZSBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERhdGEgcmV0ZW50aW9uIHBlcmlvZCBpbiBkYXlzXG4gICAqXG4gICAqIFZhbHVlcyBiZXR3ZWVuIDMwIGFuZCA3MzAgYXJlIHN1cHBvcnRlZCBmb3IgcGF5LWFzLXlvdS1nbyBwcmljaW5nLlxuICAgKiBGcmVlIHRpZXIgaXMgbGltaXRlZCB0byA3IGRheXMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgMzBcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbkluRGF5cz86IG51bWJlcjtcblxuICAvKipcbiAgICogU0tVIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2VcbiAgICpcbiAgICogRGV0ZXJtaW5lcyBwcmljaW5nIHRpZXIgYW5kIGNhcGFiaWxpdGllcyBvZiB0aGUgd29ya3NwYWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHsgbmFtZTogXCJQZXJHQjIwMThcIiB9XG4gICAqL1xuICByZWFkb25seSBza3U/OiBMb2dBbmFseXRpY3NXb3Jrc3BhY2VTa3U7XG5cbiAgLyoqXG4gICAqIERhaWx5IHZvbHVtZSBjYXAgZm9yIGRhdGEgaW5nZXN0aW9uXG4gICAqXG4gICAqIFdoZW4gdGhlIGRhaWx5IGNhcCBpcyByZWFjaGVkLCBkYXRhIGluZ2VzdGlvbiBzdG9wcyB1bnRpbCB0aGUgbmV4dCBkYXkuXG4gICAqIEEgdmFsdWUgb2YgZGFpbHlRdW90YUdiOiAtMSBtZWFucyBubyBjYXAuXG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VDYXBwaW5nPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZztcblxuICAvKipcbiAgICogUHVibGljIG5ldHdvcmsgYWNjZXNzIGZvciBkYXRhIGluZ2VzdGlvblxuICAgKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGRhdGEgY2FuIGJlIGluZ2VzdGVkIG92ZXIgdGhlIHB1YmxpYyBpbnRlcm5ldC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBcIkVuYWJsZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbj86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgbmV0d29yayBhY2Nlc3MgZm9yIHF1ZXJ5aW5nIGRhdGFcbiAgICpcbiAgICogQ29udHJvbHMgd2hldGhlciBxdWVyaWVzIGNhbiBiZSBleGVjdXRlZCBvdmVyIHRoZSBwdWJsaWMgaW50ZXJuZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgXCJFbmFibGVkXCJcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JRdWVyeT86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHNwZWNpZmljIHdvcmtzcGFjZSBmZWF0dXJlcyBsaWtlIGRhdGEgZXhwb3J0LFxuICAgKiBpbW1lZGlhdGUgcHVyZ2UsIGFuZCBsb2NhbCBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZlYXR1cmVzPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlRmVhdHVyZXM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY3VzdG9tZXItbWFuYWdlZCBrZXlzIGFyZSByZXF1aXJlZCBmb3Igc2F2ZWQgc2VhcmNoZXMgYW5kIGFsZXJ0c1xuICAgKlxuICAgKiBXaGVuIGVuYWJsZWQsIGFsbCBzYXZlZCBzZWFyY2hlcyBhbmQgYWxlcnRzIG11c3QgdXNlIGN1c3RvbWVyLW1hbmFnZWQga2V5cy5cbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlQ21rRm9yUXVlcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBJRCBvZiB0aGUgZGVmYXVsdCBEYXRhIENvbGxlY3Rpb24gUnVsZVxuICAgKlxuICAgKiBBc3NvY2lhdGVzIGEgZGVmYXVsdCBEQ1Igd2l0aCB0aGUgd29ya3NwYWNlIGZvciBkYXRhIGNvbGxlY3Rpb24uXG4gICAqIE9ubHkgYXZhaWxhYmxlIGluIEFQSSB2ZXJzaW9uIDIwMjMtMDktMDEgYW5kIGxhdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hbmFnZWQgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIHdvcmtzcGFjZVxuICAgKlxuICAgKiBFbmFibGVzIG1hbmFnZWQgaWRlbnRpdHkgYXV0aGVudGljYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eT86IExvZ0FuYWx5dGljc1dvcmtzcGFjZUlkZW50aXR5O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSByZXF1ZXN0IGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VCb2R5UHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IHJldGVudGlvbkluRGF5cz86IG51bWJlcjtcbiAgcmVhZG9ubHkgc2t1PzogTG9nQW5hbHl0aWNzV29ya3NwYWNlU2t1O1xuICByZWFkb25seSB3b3Jrc3BhY2VDYXBwaW5nPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZztcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5Pzogc3RyaW5nO1xuICByZWFkb25seSBmZWF0dXJlcz86IExvZ0FuYWx5dGljc1dvcmtzcGFjZUZlYXR1cmVzO1xuICByZWFkb25seSBmb3JjZUNta0ZvclF1ZXJ5PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGJvZHkgaW50ZXJmYWNlIGZvciBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VCb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogTG9nQW5hbHl0aWNzV29ya3NwYWNlQm9keVByb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGlkZW50aXR5PzogTG9nQW5hbHl0aWNzV29ya3NwYWNlSWRlbnRpdHk7XG59XG5cbi8qKlxuICogVW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW5nbGUsIHZlcnNpb24tYXdhcmUgaW1wbGVtZW50YXRpb24gdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvblxuICogcmVzb2x1dGlvbiwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiB3aGlsZSBtYWludGFpbmluZyBmdWxsIEpTSUkgY29tcGxpYW5jZS5cbiAqXG4gKiBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpcyB0aGUgY2VudHJhbCBkZXN0aW5hdGlvbiBmb3IgbG9nIGRhdGEgZnJvbSBBenVyZSByZXNvdXJjZXMsXG4gKiBhcHBsaWNhdGlvbnMsIGFuZCBvbi1wcmVtaXNlcyBpbmZyYXN0cnVjdHVyZS4gSXQgZW5hYmxlcyBxdWVyeWluZywgYW5hbHlzaXMsIGFuZFxuICogdmlzdWFsaXphdGlvbiBvZiBsb2cgZGF0YSB1c2luZyBLdXN0byBRdWVyeSBMYW5ndWFnZSAoS1FMKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBkZWZhdWx0IHNldHRpbmdzOlxuICogY29uc3Qgd29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcIm15LXdvcmtzcGFjZVwiLCB7XG4gKiAgIG5hbWU6IFwibXktbG9nLWFuYWx5dGljc1wiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIExvZyBBbmFseXRpY3MgV29ya3NwYWNlIHdpdGggY3VzdG9tIHJldGVudGlvbiBhbmQgU0tVOlxuICogY29uc3Qgd29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcInByb2R1Y3Rpb24td29ya3NwYWNlXCIsIHtcbiAqICAgbmFtZTogXCJwcm9kdWN0aW9uLWxvZ3NcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgcmV0ZW50aW9uSW5EYXlzOiA5MCxcbiAqICAgc2t1OiB7XG4gKiAgICAgbmFtZTogXCJQZXJHQjIwMThcIlxuICogICB9LFxuICogICBwdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uOiBcIkVuYWJsZWRcIixcbiAqICAgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5OiBcIkVuYWJsZWRcIixcbiAqICAgdGFnczoge1xuICogICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBjYXBhY2l0eSByZXNlcnZhdGlvbjpcbiAqIGNvbnN0IHdvcmtzcGFjZSA9IG5ldyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UodGhpcywgXCJoaWdoLXZvbHVtZS13b3Jrc3BhY2VcIiwge1xuICogICBuYW1lOiBcImhpZ2gtdm9sdW1lLWxvZ3NcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgcmV0ZW50aW9uSW5EYXlzOiAzNjUsXG4gKiAgIHNrdToge1xuICogICAgIG5hbWU6IFwiQ2FwYWNpdHlSZXNlcnZhdGlvblwiLFxuICogICAgIGNhcGFjaXR5UmVzZXJ2YXRpb25MZXZlbDogNTAwXG4gKiAgIH0sXG4gKiAgIHdvcmtzcGFjZUNhcHBpbmc6IHtcbiAqICAgICBkYWlseVF1b3RhR2I6IDEwMFxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgTG9nQW5hbHl0aWNzV29ya3NwYWNlIGV4dGVuZHMgQXphcGlSZXNvdXJjZSB7XG4gIHN0YXRpYyB7XG4gICAgQXphcGlSZXNvdXJjZS5yZWdpc3RlclNjaGVtYXMoXG4gICAgICBMT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9UWVBFLFxuICAgICAgQUxMX0xPR19BTkFMWVRJQ1NfV09SS1NQQUNFX1ZFUlNJT05TLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoaXMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZUlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBjdXN0b21lcklkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIFRoZSBjb25zdHJ1Y3RvciBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgcmVnaXN0cmF0aW9uLFxuICAgKiB2YWxpZGF0aW9uLCBhbmQgcmVzb3VyY2UgY3JlYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHMpIHtcbiAgICAvLyBWYWxpZGF0ZSByZXRlbnRpb24gZGF5cyBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5yZXRlbnRpb25JbkRheXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHByb3BzLnJldGVudGlvbkluRGF5cyA8IDMwIHx8IHByb3BzLnJldGVudGlvbkluRGF5cyA+IDczMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZXRlbnRpb25JbkRheXMgbXVzdCBiZSBiZXR3ZWVuIDMwIGFuZCA3MzAgZGF5c1wiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBjYXBhY2l0eSByZXNlcnZhdGlvbiBsZXZlbCBpZiBDYXBhY2l0eVJlc2VydmF0aW9uIFNLVSBpcyB1c2VkXG4gICAgaWYgKHByb3BzLnNrdT8ubmFtZSA9PT0gXCJDYXBhY2l0eVJlc2VydmF0aW9uXCIpIHtcbiAgICAgIGNvbnN0IHZhbGlkTGV2ZWxzID0gWzEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwXTtcbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMuc2t1LmNhcGFjaXR5UmVzZXJ2YXRpb25MZXZlbCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICF2YWxpZExldmVscy5pbmNsdWRlcyhwcm9wcy5za3UuY2FwYWNpdHlSZXNlcnZhdGlvbkxldmVsKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgY2FwYWNpdHlSZXNlcnZhdGlvbkxldmVsIG11c3QgYmUgb25lIG9mICR7dmFsaWRMZXZlbHMuam9pbihcIiwgXCIpfSB3aGVuIHVzaW5nIENhcGFjaXR5UmVzZXJ2YXRpb24gU0tVYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcIixcbiAgICB9KTtcblxuICAgIHRoaXMubmFtZU91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJuYW1lXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm5hbWV9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBuYW1lIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy53b3Jrc3BhY2VJZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ3b3Jrc3BhY2VfaWRcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMuY3VzdG9tZXJJZH1gLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiVGhlIHVuaXF1ZSBpZGVudGlmaWVyICh3b3Jrc3BhY2UgSUQpIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jdXN0b21lcklkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImN1c3RvbWVyX2lkXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLmN1c3RvbWVySWR9YCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlRoZSBjdXN0b21lciBJRCAoc2FtZSBhcyB3b3Jrc3BhY2UgSUQpIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgbG9naWNhbCBJRHNcbiAgICB0aGlzLmlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcbiAgICB0aGlzLndvcmtzcGFjZUlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwid29ya3NwYWNlX2lkXCIpO1xuICAgIHRoaXMuY3VzdG9tZXJJZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImN1c3RvbWVyX2lkXCIpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGVmYXVsdCBBUEkgdmVyc2lvbiB0byB1c2Ugd2hlbiBubyBleHBsaWNpdCB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgKiBSZXR1cm5zIHRoZSBsYXRlc3Qgc3RhYmxlIHZlcnNpb24gYXMgdGhlIGRlZmF1bHRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjMtMDktMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBMT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqIFVzZXMgdGhlIGZyYW1ld29yaydzIHNjaGVtYSByZXNvbHV0aW9uIHRvIGdldCB0aGUgYXBwcm9wcmlhdGUgc2NoZW1hXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoaXMgcmVzb3VyY2UgdHlwZSByZXF1aXJlcyBhIGxvY2F0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZXNMb2NhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICogVHJhbnNmb3JtcyB0aGUgaW5wdXQgcHJvcGVydGllcyBpbnRvIHRoZSBKU09OIGZvcm1hdCBleHBlY3RlZCBieSBBenVyZSBSRVNUIEFQSVxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlQm9keShwcm9wczogYW55KTogYW55IHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHM7XG5cbiAgICBjb25zdCBib2R5OiBhbnkgPSB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHJldGVudGlvbkluRGF5czogdHlwZWRQcm9wcy5yZXRlbnRpb25JbkRheXMgPz8gMzAsXG4gICAgICAgIHNrdTogdHlwZWRQcm9wcy5za3UgPz8geyBuYW1lOiBcIlBlckdCMjAxOFwiIH0sXG4gICAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JJbmdlc3Rpb246XG4gICAgICAgICAgdHlwZWRQcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uID8/IFwiRW5hYmxlZFwiLFxuICAgICAgICBwdWJsaWNOZXR3b3JrQWNjZXNzRm9yUXVlcnk6XG4gICAgICAgICAgdHlwZWRQcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRm9yUXVlcnkgPz8gXCJFbmFibGVkXCIsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBBZGQgb3B0aW9uYWwgcHJvcGVydGllcyBvbmx5IGlmIHNwZWNpZmllZFxuICAgIGlmICh0eXBlZFByb3BzLndvcmtzcGFjZUNhcHBpbmcpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy53b3Jrc3BhY2VDYXBwaW5nID0gdHlwZWRQcm9wcy53b3Jrc3BhY2VDYXBwaW5nO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmZlYXR1cmVzKSB7XG4gICAgICBib2R5LnByb3BlcnRpZXMuZmVhdHVyZXMgPSB0eXBlZFByb3BzLmZlYXR1cmVzO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmZvcmNlQ21rRm9yUXVlcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYm9keS5wcm9wZXJ0aWVzLmZvcmNlQ21rRm9yUXVlcnkgPSB0eXBlZFByb3BzLmZvcmNlQ21rRm9yUXVlcnk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVkUHJvcHMuZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy5kZWZhdWx0RGF0YUNvbGxlY3Rpb25SdWxlUmVzb3VyY2VJZCA9XG4gICAgICAgIHR5cGVkUHJvcHMuZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ7XG4gICAgfVxuXG4gICAgLy8gQWRkIGlkZW50aXR5IGF0IHRoZSB0b3AgbGV2ZWwgaWYgc3BlY2lmaWVkXG4gICAgaWYgKHR5cGVkUHJvcHMuaWRlbnRpdHkpIHtcbiAgICAgIGJvZHkuaWRlbnRpdHkgPSB0eXBlZFByb3BzLmlkZW50aXR5O1xuICAgIH1cblxuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBwYXJlbnQgcmVzb3VyY2UgSUQgZm9yIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gICAqIExvZyBBbmFseXRpY3MgV29ya3NwYWNlIGlzIGEgdG9wLWxldmVsIHJlc291cmNlIHdpdGhpbiBhIHJlc291cmNlIGdyb3VwXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIFRoZSBwYXJlbnQgcmVzb3VyY2UgSUQgKHRoZSByZXNvdXJjZSBncm91cClcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChwcm9wcyBhcyBMb2dBbmFseXRpY3NXb3Jrc3BhY2VQcm9wcykucmVzb3VyY2VHcm91cElkO1xuICB9XG59XG4iXX0=
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuYWx5dGljcy13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbG9nYW5hbHl0aWNzd29ya3NwYWNlL2xpYi9sb2ctYW5hbHl0aWNzLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBRUgsK0JBQStCO0FBRS9CLHVGQUcyQztBQUMzQyw4RUFHbUQ7QUE2TW5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSw4QkFBYTtJQW1CdEQ7Ozs7Ozs7OztPQVNHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxzQ0FBc0M7UUFDdEMsSUFBSSxLQUFLLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyxFQUFFLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDSCxDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztZQUM5QyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRSxJQUNFLEtBQUssQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEtBQUssU0FBUztnQkFDaEQsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsRUFDekQsQ0FBQztn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UUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDakUsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLG1DQUFtQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUM7Z0JBQ2pELFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sZUFBZSxDQUFDLEtBQVU7UUFDbEMsT0FBUSxLQUFvQyxDQUFDLGVBQWUsQ0FBQztJQUMvRCxDQUFDOztBQTNLSCxzREE0S0M7OztBQTNLQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQiw4REFBNEIsRUFDNUIsc0VBQW9DLENBQ3JDLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpbXBsZW1lbnRhdGlvbiB1c2luZyBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICogdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiBtYW5hZ2VtZW50LCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5XG4gKiB0cmFuc2Zvcm1hdGlvbiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0wOS0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKiAtIDIwMjItMTAtMDEgKEFjdGl2ZSwgQmFja3dhcmQgQ29tcGF0aWJpbGl0eSlcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBGdWxsIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICogLSBDb25maWd1cmFibGUgZGF0YSByZXRlbnRpb24sIFNLVSwgYW5kIHdvcmtzcGFjZSBjYXBwaW5nXG4gKiAtIFB1YmxpYyBuZXR3b3JrIGFjY2VzcyBjb250cm9sc1xuICogLSBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9MT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9WRVJTSU9OUyxcbiAgTE9HX0FOQUxZVElDU19XT1JLU1BBQ0VfVFlQRSxcbn0gZnJvbSBcIi4vbG9nLWFuYWx5dGljcy13b3Jrc3BhY2Utc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBTS1UgY29uZmlndXJhdGlvbiBmb3IgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VTa3Uge1xuICAvKipcbiAgICogU0tVIG5hbWUgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICAgKlxuICAgKiBBdmFpbGFibGUgb3B0aW9uczpcbiAgICogLSBcIkZyZWVcIiAtIEZyZWUgdGllciAobGltaXRlZCB0byA1MDBNQi9kYXksIDcgZGF5IHJldGVudGlvbilcbiAgICogLSBcIlN0YW5kYXJkXCIgLSBTdGFuZGFyZCB0aWVyIChsZWdhY3kpXG4gICAqIC0gXCJQcmVtaXVtXCIgLSBQcmVtaXVtIHRpZXIgKGxlZ2FjeSlcbiAgICogLSBcIlBlck5vZGVcIiAtIFBlciBub2RlIHByaWNpbmcgKGxlZ2FjeSwgZm9yIE9NUyBjdXN0b21lcnMpXG4gICAqIC0gXCJQZXJHQjIwMThcIiAtIFBheS1hcy15b3UtZ28gcHJpY2luZyBiYXNlZCBvbiBkYXRhIGluZ2VzdGlvblxuICAgKiAtIFwiU3RhbmRhbG9uZVwiIC0gU3RhbmRhbG9uZSB0aWVyIChsZWdhY3kpXG4gICAqIC0gXCJDYXBhY2l0eVJlc2VydmF0aW9uXCIgLSBDb21taXRtZW50IHRpZXIgd2l0aCByZXNlcnZlZCBjYXBhY2l0eVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFwiUGVyR0IyMDE4XCJcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6XG4gICAgfCBcIkZyZWVcIlxuICAgIHwgXCJTdGFuZGFyZFwiXG4gICAgfCBcIlByZW1pdW1cIlxuICAgIHwgXCJQZXJOb2RlXCJcbiAgICB8IFwiUGVyR0IyMDE4XCJcbiAgICB8IFwiU3RhbmRhbG9uZVwiXG4gICAgfCBcIkNhcGFjaXR5UmVzZXJ2YXRpb25cIjtcblxuICAvKipcbiAgICogQ2FwYWNpdHkgcmVzZXJ2YXRpb24gbGV2ZWwgaW4gR0IgcGVyIGRheVxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBTS1UgbmFtZSBpcyBcIkNhcGFjaXR5UmVzZXJ2YXRpb25cIlxuICAgKiBWYWxpZCB2YWx1ZXM6IDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwXG4gICAqL1xuICByZWFkb25seSBjYXBhY2l0eVJlc2VydmF0aW9uTGV2ZWw/OiBudW1iZXI7XG59XG5cbi8qKlxuICogV29ya3NwYWNlIGNhcHBpbmcgY29uZmlndXJhdGlvbiBmb3IgZGFpbHkgZGF0YSBpbmdlc3Rpb24gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZyB7XG4gIC8qKlxuICAgKiBEYWlseSB2b2x1bWUgY2FwIGluIEdCXG4gICAqIEEgdmFsdWUgb2YgLTEgbWVhbnMgbm8gY2FwXG4gICAqL1xuICByZWFkb25seSBkYWlseVF1b3RhR2I6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0FuYWx5dGljc1dvcmtzcGFjZUZlYXR1cmVzIHtcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIGRhdGEgZXhwb3J0IGlzIGVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZURhdGFFeHBvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBkYXRhIHNob3VsZCBiZSBpbW1lZGlhdGVseSBwdXJnZWQgYWZ0ZXIgMzAgZGF5c1xuICAgKiBpbnN0ZWFkIG9mIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2RcbiAgICovXG4gIHJlYWRvbmx5IGltbWVkaWF0ZVB1cmdlRGF0YU9uMzBEYXlzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgbG9nIGFjY2VzcyB1c2luZyBBQURJQU0gaXMgZGlzYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVMb2NhbEF1dGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBjbHVzdGVyIHJlc291cmNlIHBlcm1pc3Npb25zIGFyZSBlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb2dBY2Nlc3NVc2luZ09ubHlSZXNvdXJjZVBlcm1pc3Npb25zPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYW5hZ2VkIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VJZGVudGl0eSB7XG4gIC8qKlxuICAgKiBUeXBlIG9mIG1hbmFnZWQgaWRlbnRpdHlcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6XG4gICAgfCBcIlN5c3RlbUFzc2lnbmVkXCJcbiAgICB8IFwiVXNlckFzc2lnbmVkXCJcbiAgICB8IFwiU3lzdGVtQXNzaWduZWQsVXNlckFzc2lnbmVkXCJcbiAgICB8IFwiTm9uZVwiO1xuXG4gIC8qKlxuICAgKiBVc2VyLWFzc2lnbmVkIGlkZW50aXR5IHJlc291cmNlIElEc1xuICAgKiBSZXF1aXJlZCB3aGVuIHR5cGUgaW5jbHVkZXMgVXNlckFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSB1c2VyQXNzaWduZWRJZGVudGl0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICpcbiAqIEV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHdpdGggTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0FuYWx5dGljc1dvcmtzcGFjZVByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIEdyb3VwIElEIHdoZXJlIHRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSBjcmVhdGVkXG4gICAqIFRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSBjcmVhdGVkIGFzIGEgY2hpbGQgb2YgdGhpcyByZXNvdXJjZSBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERhdGEgcmV0ZW50aW9uIHBlcmlvZCBpbiBkYXlzXG4gICAqXG4gICAqIFZhbHVlcyBiZXR3ZWVuIDMwIGFuZCA3MzAgYXJlIHN1cHBvcnRlZCBmb3IgcGF5LWFzLXlvdS1nbyBwcmljaW5nLlxuICAgKiBGcmVlIHRpZXIgaXMgbGltaXRlZCB0byA3IGRheXMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgMzBcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbkluRGF5cz86IG51bWJlcjtcblxuICAvKipcbiAgICogU0tVIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2VcbiAgICpcbiAgICogRGV0ZXJtaW5lcyBwcmljaW5nIHRpZXIgYW5kIGNhcGFiaWxpdGllcyBvZiB0aGUgd29ya3NwYWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHsgbmFtZTogXCJQZXJHQjIwMThcIiB9XG4gICAqL1xuICByZWFkb25seSBza3U/OiBMb2dBbmFseXRpY3NXb3Jrc3BhY2VTa3U7XG5cbiAgLyoqXG4gICAqIERhaWx5IHZvbHVtZSBjYXAgZm9yIGRhdGEgaW5nZXN0aW9uXG4gICAqXG4gICAqIFdoZW4gdGhlIGRhaWx5IGNhcCBpcyByZWFjaGVkLCBkYXRhIGluZ2VzdGlvbiBzdG9wcyB1bnRpbCB0aGUgbmV4dCBkYXkuXG4gICAqIEEgdmFsdWUgb2YgZGFpbHlRdW90YUdiOiAtMSBtZWFucyBubyBjYXAuXG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VDYXBwaW5nPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZztcblxuICAvKipcbiAgICogUHVibGljIG5ldHdvcmsgYWNjZXNzIGZvciBkYXRhIGluZ2VzdGlvblxuICAgKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGRhdGEgY2FuIGJlIGluZ2VzdGVkIG92ZXIgdGhlIHB1YmxpYyBpbnRlcm5ldC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBcIkVuYWJsZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbj86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgbmV0d29yayBhY2Nlc3MgZm9yIHF1ZXJ5aW5nIGRhdGFcbiAgICpcbiAgICogQ29udHJvbHMgd2hldGhlciBxdWVyaWVzIGNhbiBiZSBleGVjdXRlZCBvdmVyIHRoZSBwdWJsaWMgaW50ZXJuZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgXCJFbmFibGVkXCJcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JRdWVyeT86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHNwZWNpZmljIHdvcmtzcGFjZSBmZWF0dXJlcyBsaWtlIGRhdGEgZXhwb3J0LFxuICAgKiBpbW1lZGlhdGUgcHVyZ2UsIGFuZCBsb2NhbCBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZlYXR1cmVzPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlRmVhdHVyZXM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY3VzdG9tZXItbWFuYWdlZCBrZXlzIGFyZSByZXF1aXJlZCBmb3Igc2F2ZWQgc2VhcmNoZXMgYW5kIGFsZXJ0c1xuICAgKlxuICAgKiBXaGVuIGVuYWJsZWQsIGFsbCBzYXZlZCBzZWFyY2hlcyBhbmQgYWxlcnRzIG11c3QgdXNlIGN1c3RvbWVyLW1hbmFnZWQga2V5cy5cbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlQ21rRm9yUXVlcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBJRCBvZiB0aGUgZGVmYXVsdCBEYXRhIENvbGxlY3Rpb24gUnVsZVxuICAgKlxuICAgKiBBc3NvY2lhdGVzIGEgZGVmYXVsdCBEQ1Igd2l0aCB0aGUgd29ya3NwYWNlIGZvciBkYXRhIGNvbGxlY3Rpb24uXG4gICAqIE9ubHkgYXZhaWxhYmxlIGluIEFQSSB2ZXJzaW9uIDIwMjMtMDktMDEgYW5kIGxhdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hbmFnZWQgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIHdvcmtzcGFjZVxuICAgKlxuICAgKiBFbmFibGVzIG1hbmFnZWQgaWRlbnRpdHkgYXV0aGVudGljYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eT86IExvZ0FuYWx5dGljc1dvcmtzcGFjZUlkZW50aXR5O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSByZXF1ZXN0IGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VCb2R5UHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IHJldGVudGlvbkluRGF5cz86IG51bWJlcjtcbiAgcmVhZG9ubHkgc2t1PzogTG9nQW5hbHl0aWNzV29ya3NwYWNlU2t1O1xuICByZWFkb25seSB3b3Jrc3BhY2VDYXBwaW5nPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZztcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5Pzogc3RyaW5nO1xuICByZWFkb25seSBmZWF0dXJlcz86IExvZ0FuYWx5dGljc1dvcmtzcGFjZUZlYXR1cmVzO1xuICByZWFkb25seSBmb3JjZUNta0ZvclF1ZXJ5PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGJvZHkgaW50ZXJmYWNlIGZvciBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VCb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogTG9nQW5hbHl0aWNzV29ya3NwYWNlQm9keVByb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGlkZW50aXR5PzogTG9nQW5hbHl0aWNzV29ya3NwYWNlSWRlbnRpdHk7XG59XG5cbi8qKlxuICogVW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW5nbGUsIHZlcnNpb24tYXdhcmUgaW1wbGVtZW50YXRpb24gdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvblxuICogcmVzb2x1dGlvbiwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiB3aGlsZSBtYWludGFpbmluZyBmdWxsIEpTSUkgY29tcGxpYW5jZS5cbiAqXG4gKiBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpcyB0aGUgY2VudHJhbCBkZXN0aW5hdGlvbiBmb3IgbG9nIGRhdGEgZnJvbSBBenVyZSByZXNvdXJjZXMsXG4gKiBhcHBsaWNhdGlvbnMsIGFuZCBvbi1wcmVtaXNlcyBpbmZyYXN0cnVjdHVyZS4gSXQgZW5hYmxlcyBxdWVyeWluZywgYW5hbHlzaXMsIGFuZFxuICogdmlzdWFsaXphdGlvbiBvZiBsb2cgZGF0YSB1c2luZyBLdXN0byBRdWVyeSBMYW5ndWFnZSAoS1FMKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBkZWZhdWx0IHNldHRpbmdzOlxuICogY29uc3Qgd29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcIm15LXdvcmtzcGFjZVwiLCB7XG4gKiAgIG5hbWU6IFwibXktbG9nLWFuYWx5dGljc1wiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIExvZyBBbmFseXRpY3MgV29ya3NwYWNlIHdpdGggY3VzdG9tIHJldGVudGlvbiBhbmQgU0tVOlxuICogY29uc3Qgd29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcInByb2R1Y3Rpb24td29ya3NwYWNlXCIsIHtcbiAqICAgbmFtZTogXCJwcm9kdWN0aW9uLWxvZ3NcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgcmV0ZW50aW9uSW5EYXlzOiA5MCxcbiAqICAgc2t1OiB7XG4gKiAgICAgbmFtZTogXCJQZXJHQjIwMThcIlxuICogICB9LFxuICogICBwdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uOiBcIkVuYWJsZWRcIixcbiAqICAgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5OiBcIkVuYWJsZWRcIixcbiAqICAgdGFnczoge1xuICogICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBjYXBhY2l0eSByZXNlcnZhdGlvbjpcbiAqIGNvbnN0IHdvcmtzcGFjZSA9IG5ldyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UodGhpcywgXCJoaWdoLXZvbHVtZS13b3Jrc3BhY2VcIiwge1xuICogICBuYW1lOiBcImhpZ2gtdm9sdW1lLWxvZ3NcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgcmV0ZW50aW9uSW5EYXlzOiAzNjUsXG4gKiAgIHNrdToge1xuICogICAgIG5hbWU6IFwiQ2FwYWNpdHlSZXNlcnZhdGlvblwiLFxuICogICAgIGNhcGFjaXR5UmVzZXJ2YXRpb25MZXZlbDogNTAwXG4gKiAgIH0sXG4gKiAgIHdvcmtzcGFjZUNhcHBpbmc6IHtcbiAqICAgICBkYWlseVF1b3RhR2I6IDEwMFxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgTG9nQW5hbHl0aWNzV29ya3NwYWNlIGV4dGVuZHMgQXphcGlSZXNvdXJjZSB7XG4gIHN0YXRpYyB7XG4gICAgQXphcGlSZXNvdXJjZS5yZWdpc3RlclNjaGVtYXMoXG4gICAgICBMT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9UWVBFLFxuICAgICAgQUxMX0xPR19BTkFMWVRJQ1NfV09SS1NQQUNFX1ZFUlNJT05TLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoaXMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZUlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBjdXN0b21lcklkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIFRoZSBjb25zdHJ1Y3RvciBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgcmVnaXN0cmF0aW9uLFxuICAgKiB2YWxpZGF0aW9uLCBhbmQgcmVzb3VyY2UgY3JlYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHMpIHtcbiAgICAvLyBWYWxpZGF0ZSByZXRlbnRpb24gZGF5cyBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5yZXRlbnRpb25JbkRheXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHByb3BzLnJldGVudGlvbkluRGF5cyA8IDMwIHx8IHByb3BzLnJldGVudGlvbkluRGF5cyA+IDczMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZXRlbnRpb25JbkRheXMgbXVzdCBiZSBiZXR3ZWVuIDMwIGFuZCA3MzAgZGF5c1wiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBjYXBhY2l0eSByZXNlcnZhdGlvbiBsZXZlbCBpZiBDYXBhY2l0eVJlc2VydmF0aW9uIFNLVSBpcyB1c2VkXG4gICAgaWYgKHByb3BzLnNrdT8ubmFtZSA9PT0gXCJDYXBhY2l0eVJlc2VydmF0aW9uXCIpIHtcbiAgICAgIGNvbnN0IHZhbGlkTGV2ZWxzID0gWzEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwXTtcbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMuc2t1LmNhcGFjaXR5UmVzZXJ2YXRpb25MZXZlbCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICF2YWxpZExldmVscy5pbmNsdWRlcyhwcm9wcy5za3UuY2FwYWNpdHlSZXNlcnZhdGlvbkxldmVsKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgY2FwYWNpdHlSZXNlcnZhdGlvbkxldmVsIG11c3QgYmUgb25lIG9mICR7dmFsaWRMZXZlbHMuam9pbihcIiwgXCIpfSB3aGVuIHVzaW5nIENhcGFjaXR5UmVzZXJ2YXRpb24gU0tVYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcIixcbiAgICB9KTtcblxuICAgIHRoaXMubmFtZU91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJuYW1lXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm5hbWV9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBuYW1lIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy53b3Jrc3BhY2VJZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ3b3Jrc3BhY2VfaWRcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMuY3VzdG9tZXJJZH1gLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiVGhlIHVuaXF1ZSBpZGVudGlmaWVyICh3b3Jrc3BhY2UgSUQpIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jdXN0b21lcklkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImN1c3RvbWVyX2lkXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLmN1c3RvbWVySWR9YCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlRoZSBjdXN0b21lciBJRCAoc2FtZSBhcyB3b3Jrc3BhY2UgSUQpIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgbG9naWNhbCBJRHNcbiAgICB0aGlzLmlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcbiAgICB0aGlzLndvcmtzcGFjZUlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwid29ya3NwYWNlX2lkXCIpO1xuICAgIHRoaXMuY3VzdG9tZXJJZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImN1c3RvbWVyX2lkXCIpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGVmYXVsdCBBUEkgdmVyc2lvbiB0byB1c2Ugd2hlbiBubyBleHBsaWNpdCB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgKiBSZXR1cm5zIHRoZSBsYXRlc3Qgc3RhYmxlIHZlcnNpb24gYXMgdGhlIGRlZmF1bHRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjMtMDktMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBMT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqIFVzZXMgdGhlIGZyYW1ld29yaydzIHNjaGVtYSByZXNvbHV0aW9uIHRvIGdldCB0aGUgYXBwcm9wcmlhdGUgc2NoZW1hXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoaXMgcmVzb3VyY2UgdHlwZSByZXF1aXJlcyBhIGxvY2F0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZXNMb2NhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICogVHJhbnNmb3JtcyB0aGUgaW5wdXQgcHJvcGVydGllcyBpbnRvIHRoZSBKU09OIGZvcm1hdCBleHBlY3RlZCBieSBBenVyZSBSRVNUIEFQSVxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlQm9keShwcm9wczogYW55KTogYW55IHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHM7XG5cbiAgICBjb25zdCBib2R5OiBhbnkgPSB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHJldGVudGlvbkluRGF5czogdHlwZWRQcm9wcy5yZXRlbnRpb25JbkRheXMgPz8gMzAsXG4gICAgICAgIHNrdTogdHlwZWRQcm9wcy5za3UgPz8geyBuYW1lOiBcIlBlckdCMjAxOFwiIH0sXG4gICAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JJbmdlc3Rpb246XG4gICAgICAgICAgdHlwZWRQcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uID8/IFwiRW5hYmxlZFwiLFxuICAgICAgICBwdWJsaWNOZXR3b3JrQWNjZXNzRm9yUXVlcnk6XG4gICAgICAgICAgdHlwZWRQcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRm9yUXVlcnkgPz8gXCJFbmFibGVkXCIsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBBZGQgb3B0aW9uYWwgcHJvcGVydGllcyBvbmx5IGlmIHNwZWNpZmllZFxuICAgIGlmICh0eXBlZFByb3BzLndvcmtzcGFjZUNhcHBpbmcpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy53b3Jrc3BhY2VDYXBwaW5nID0gdHlwZWRQcm9wcy53b3Jrc3BhY2VDYXBwaW5nO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmZlYXR1cmVzKSB7XG4gICAgICBib2R5LnByb3BlcnRpZXMuZmVhdHVyZXMgPSB0eXBlZFByb3BzLmZlYXR1cmVzO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmZvcmNlQ21rRm9yUXVlcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYm9keS5wcm9wZXJ0aWVzLmZvcmNlQ21rRm9yUXVlcnkgPSB0eXBlZFByb3BzLmZvcmNlQ21rRm9yUXVlcnk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVkUHJvcHMuZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy5kZWZhdWx0RGF0YUNvbGxlY3Rpb25SdWxlUmVzb3VyY2VJZCA9XG4gICAgICAgIHR5cGVkUHJvcHMuZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ7XG4gICAgfVxuXG4gICAgLy8gQWRkIGlkZW50aXR5IGF0IHRoZSB0b3AgbGV2ZWwgaWYgc3BlY2lmaWVkXG4gICAgaWYgKHR5cGVkUHJvcHMuaWRlbnRpdHkpIHtcbiAgICAgIGJvZHkuaWRlbnRpdHkgPSB0eXBlZFByb3BzLmlkZW50aXR5O1xuICAgIH1cblxuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBwYXJlbnQgcmVzb3VyY2UgSUQgZm9yIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gICAqIExvZyBBbmFseXRpY3MgV29ya3NwYWNlIGlzIGEgdG9wLWxldmVsIHJlc291cmNlIHdpdGhpbiBhIHJlc291cmNlIGdyb3VwXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIFRoZSBwYXJlbnQgcmVzb3VyY2UgSUQgKHRoZSByZXNvdXJjZSBncm91cClcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChwcm9wcyBhcyBMb2dBbmFseXRpY3NXb3Jrc3BhY2VQcm9wcykucmVzb3VyY2VHcm91cElkO1xuICB9XG59XG4iXX0=
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* Run with: npm run integration:nostream
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
const
|
|
12
|
-
require("
|
|
11
|
+
const cdktn_1 = require("cdktn");
|
|
12
|
+
require("cdktn/lib/testing/adapters/jest");
|
|
13
13
|
const azure_resourcegroup_1 = require("../../azure-resourcegroup");
|
|
14
14
|
const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
|
|
15
15
|
const testing_1 = require("../../testing");
|
|
@@ -17,7 +17,7 @@ const log_analytics_workspace_1 = require("../lib/log-analytics-workspace");
|
|
|
17
17
|
/**
|
|
18
18
|
* Example stack demonstrating Log Analytics Workspace usage
|
|
19
19
|
*/
|
|
20
|
-
class LogAnalyticsWorkspaceExampleStack extends
|
|
20
|
+
class LogAnalyticsWorkspaceExampleStack extends cdktn_1.TerraformStack {
|
|
21
21
|
constructor(scope, id) {
|
|
22
22
|
super(scope, id);
|
|
23
23
|
// Configure AZAPI provider
|
|
@@ -58,9 +58,9 @@ class LogAnalyticsWorkspaceExampleStack extends cdktf_1.TerraformStack {
|
|
|
58
58
|
}
|
|
59
59
|
describe("Log Analytics Workspace Integration Test", () => {
|
|
60
60
|
it("should deploy, validate idempotency, and cleanup Log Analytics Workspace resources", () => {
|
|
61
|
-
const app =
|
|
61
|
+
const app = cdktn_1.Testing.app();
|
|
62
62
|
const stack = new LogAnalyticsWorkspaceExampleStack(app, "test-log-analytics-workspace");
|
|
63
|
-
const synthesized =
|
|
63
|
+
const synthesized = cdktn_1.Testing.fullSynth(stack);
|
|
64
64
|
// This will:
|
|
65
65
|
// 1. Run terraform apply to deploy resources
|
|
66
66
|
// 2. Run terraform plan to check idempotency (no changes expected)
|
|
@@ -68,4 +68,4 @@ describe("Log Analytics Workspace Integration Test", () => {
|
|
|
68
68
|
(0, testing_1.TerraformApplyCheckAndDestroy)(synthesized);
|
|
69
69
|
}, 600000); // 10 minute timeout for deployment and cleanup
|
|
70
70
|
});
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuYWx5dGljcy13b3Jrc3BhY2UuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbG9nYW5hbHl0aWNzd29ya3NwYWNlL3Rlc3QvbG9nLWFuYWx5dGljcy13b3Jrc3BhY2UuaW50ZWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7O0dBT0c7O0FBRUgsaUNBQWdEO0FBRWhELDJDQUF5QztBQUN6QyxtRUFBMEQ7QUFDMUQsa0ZBQW9GO0FBQ3BGLDJDQUE4RDtBQUM5RCw0RUFBdUU7QUFFdkU7O0dBRUc7QUFDSCxNQUFNLGlDQUFrQyxTQUFRLHNCQUFjO0lBQzVELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsMkJBQTJCO1FBQzNCLElBQUksd0JBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJDLDBCQUEwQjtRQUMxQixNQUFNLGFBQWEsR0FBRyxJQUFJLG1DQUFhLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUMxRCxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLGtCQUFrQjthQUM1QjtTQUNGLENBQUMsQ0FBQztRQUVILDJDQUEyQztRQUMzQyxJQUFJLCtDQUFxQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUNqRCxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVM7WUFDdkMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsT0FBTzthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILDJEQUEyRDtRQUMzRCxJQUFJLCtDQUFxQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUNyRCxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVM7WUFDdkMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLGVBQWUsRUFBRSxFQUFFO1lBQ25CLEdBQUcsRUFBRTtnQkFDSCxJQUFJLEVBQUUsV0FBVzthQUNsQjtZQUNELFVBQVUsRUFBRSxZQUFZO1lBQ3hCLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsV0FBVzthQUNyQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVELFFBQVEsQ0FBQywwQ0FBMEMsRUFBRSxHQUFHLEVBQUU7SUFDeEQsRUFBRSxDQUFDLG9GQUFvRixFQUFFLEdBQUcsRUFBRTtRQUM1RixNQUFNLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxpQ0FBaUMsQ0FDakQsR0FBRyxFQUNILDhCQUE4QixDQUMvQixDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFhO1FBQ2IsNkNBQTZDO1FBQzdDLG1FQUFtRTtRQUNuRSxnREFBZ0Q7UUFDaEQsSUFBQSx1Q0FBNkIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQywrQ0FBK0M7QUFDN0QsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVncmF0aW9uIHRlc3QgZm9yIEF6dXJlIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gKlxuICogVGhpcyB0ZXN0IGRlbW9uc3RyYXRlcyBiYXNpYyB1c2FnZSBvZiB0aGUgTG9nQW5hbHl0aWNzV29ya3NwYWNlIGNvbnN0cnVjdFxuICogYW5kIHZhbGlkYXRlcyBkZXBsb3ltZW50LCBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAuXG4gKlxuICogUnVuIHdpdGg6IG5wbSBydW4gaW50ZWdyYXRpb246bm9zdHJlYW1cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nLCBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCBcImNka3RuL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiLi4vLi4vYXp1cmUtcmVzb3VyY2Vncm91cFwiO1xuaW1wb3J0IHsgQXphcGlQcm92aWRlciB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9wcm92aWRlcnMtYXphcGkvcHJvdmlkZXJcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95IH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IExvZ0FuYWx5dGljc1dvcmtzcGFjZSB9IGZyb20gXCIuLi9saWIvbG9nLWFuYWx5dGljcy13b3Jrc3BhY2VcIjtcblxuLyoqXG4gKiBFeGFtcGxlIHN0YWNrIGRlbW9uc3RyYXRpbmcgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgdXNhZ2VcbiAqL1xuY2xhc3MgTG9nQW5hbHl0aWNzV29ya3NwYWNlRXhhbXBsZVN0YWNrIGV4dGVuZHMgVGVycmFmb3JtU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gQ3JlYXRlIGEgcmVzb3VyY2UgZ3JvdXBcbiAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAodGhpcywgXCJleGFtcGxlLXJnXCIsIHtcbiAgICAgIG5hbWU6IFwibGF3LWV4YW1wbGUtcmdcIixcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgdGFnczoge1xuICAgICAgICBlbnZpcm9ubWVudDogXCJleGFtcGxlXCIsXG4gICAgICAgIHB1cnBvc2U6IFwiaW50ZWdyYXRpb24tdGVzdFwiLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEV4YW1wbGUgMTogQmFzaWMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcbiAgICBuZXcgTG9nQW5hbHl0aWNzV29ya3NwYWNlKHRoaXMsIFwiYmFzaWMtd29ya3NwYWNlXCIsIHtcbiAgICAgIG5hbWU6IFwibGF3LWJhc2ljLWV4YW1wbGVcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgZXhhbXBsZTogXCJiYXNpY1wiLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEV4YW1wbGUgMjogTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBzcGVjaWZpYyB2ZXJzaW9uXG4gICAgbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcInZlcnNpb25lZC13b3Jrc3BhY2VcIiwge1xuICAgICAgbmFtZTogXCJsYXctdmVyc2lvbmVkLWV4YW1wbGVcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHJldGVudGlvbkluRGF5czogNjAsXG4gICAgICBza3U6IHtcbiAgICAgICAgbmFtZTogXCJQZXJHQjIwMThcIixcbiAgICAgIH0sXG4gICAgICBhcGlWZXJzaW9uOiBcIjIwMjMtMDktMDFcIixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgZXhhbXBsZTogXCJ2ZXJzaW9uZWRcIixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZGVzY3JpYmUoXCJMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBJbnRlZ3JhdGlvbiBUZXN0XCIsICgpID0+IHtcbiAgaXQoXCJzaG91bGQgZGVwbG95LCB2YWxpZGF0ZSBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgcmVzb3VyY2VzXCIsICgpID0+IHtcbiAgICBjb25zdCBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZUV4YW1wbGVTdGFjayhcbiAgICAgIGFwcCxcbiAgICAgIFwidGVzdC1sb2ctYW5hbHl0aWNzLXdvcmtzcGFjZVwiLFxuICAgICk7XG4gICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLmZ1bGxTeW50aChzdGFjayk7XG5cbiAgICAvLyBUaGlzIHdpbGw6XG4gICAgLy8gMS4gUnVuIHRlcnJhZm9ybSBhcHBseSB0byBkZXBsb3kgcmVzb3VyY2VzXG4gICAgLy8gMi4gUnVuIHRlcnJhZm9ybSBwbGFuIHRvIGNoZWNrIGlkZW1wb3RlbmN5IChubyBjaGFuZ2VzIGV4cGVjdGVkKVxuICAgIC8vIDMuIFJ1biB0ZXJyYWZvcm0gZGVzdHJveSB0byBjbGVhbnVwIHJlc291cmNlc1xuICAgIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95KHN5bnRoZXNpemVkKTtcbiAgfSwgNjAwMDAwKTsgLy8gMTAgbWludXRlIHRpbWVvdXQgZm9yIGRlcGxveW1lbnQgYW5kIGNsZWFudXBcbn0pO1xuIl19
|