@microsoft/terraform-cdk-constructs 1.8.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 +48328 -33656
- package/API.md +56123 -38995
- 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/index.d.ts +6 -0
- package/lib/azure-loganalyticsworkspace/index.js +23 -0
- package/lib/azure-loganalyticsworkspace/lib/index.d.ts +5 -0
- package/lib/azure-loganalyticsworkspace/lib/index.js +22 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.d.ts +51 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.js +255 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +301 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +213 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +9 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +71 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.d.ts +8 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +504 -0
- 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/index.d.ts +14 -0
- package/lib/azure-networkwatcher/index.js +31 -0
- package/lib/azure-networkwatcher/lib/index.d.ts +5 -0
- package/lib/azure-networkwatcher/lib/index.js +22 -0
- package/lib/azure-networkwatcher/lib/network-watcher-schemas.d.ts +47 -0
- package/lib/azure-networkwatcher/lib/network-watcher-schemas.js +167 -0
- package/lib/azure-networkwatcher/lib/network-watcher.d.ts +181 -0
- package/lib/azure-networkwatcher/lib/network-watcher.js +187 -0
- package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +12 -0
- package/lib/azure-networkwatcher/test/network-watcher.integ.js +84 -0
- package/lib/azure-networkwatcher/test/network-watcher.spec.d.ts +8 -0
- package/lib/azure-networkwatcher/test/network-watcher.spec.js +312 -0
- 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/index.d.ts +10 -0
- package/lib/azure-policysetdefinition/index.js +27 -0
- package/lib/azure-policysetdefinition/lib/index.d.ts +5 -0
- package/lib/azure-policysetdefinition/lib/index.js +22 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.d.ts +50 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.js +255 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +426 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition.js +255 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +9 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +56 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.d.ts +8 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +745 -0
- 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-schemas.js +2 -2
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +9 -7
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +13 -10
- 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 +119 -11
- 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 +12 -0
- package/lib/index.js +14 -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
|
* property transformation, and 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 resource_group_1 = require("../lib/resource-group");
|
|
@@ -19,8 +19,8 @@ describe("ResourceGroup - 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 Resource Group schemas are registered
|
|
26
26
|
try {
|
|
@@ -227,10 +227,10 @@ describe("ResourceGroup - Unified Implementation", () => {
|
|
|
227
227
|
name: "test-rg-outputs",
|
|
228
228
|
location: "eastus",
|
|
229
229
|
});
|
|
230
|
-
expect(resourceGroup.idOutput).toBeInstanceOf(
|
|
231
|
-
expect(resourceGroup.locationOutput).toBeInstanceOf(
|
|
232
|
-
expect(resourceGroup.nameOutput).toBeInstanceOf(
|
|
233
|
-
expect(resourceGroup.tagsOutput).toBeInstanceOf(
|
|
230
|
+
expect(resourceGroup.idOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
231
|
+
expect(resourceGroup.locationOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
232
|
+
expect(resourceGroup.nameOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
233
|
+
expect(resourceGroup.tagsOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
234
234
|
});
|
|
235
235
|
});
|
|
236
236
|
describe("Public Methods and Properties", () => {
|
|
@@ -443,13 +443,13 @@ describe("ResourceGroup - Unified Implementation", () => {
|
|
|
443
443
|
location: "eastus",
|
|
444
444
|
tags: { test: "synthesis" },
|
|
445
445
|
});
|
|
446
|
-
const synthesized =
|
|
446
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
447
447
|
expect(synthesized).toBeDefined();
|
|
448
448
|
const stackConfig = JSON.parse(synthesized);
|
|
449
449
|
expect(stackConfig.resource).toBeDefined();
|
|
450
450
|
});
|
|
451
451
|
it("should work in complex CDK constructs", () => {
|
|
452
|
-
class ComplexConstruct extends
|
|
452
|
+
class ComplexConstruct extends cdktn.TerraformStack {
|
|
453
453
|
constructor(scope, id) {
|
|
454
454
|
super(scope, id);
|
|
455
455
|
// Create multiple resource groups
|
|
@@ -465,10 +465,10 @@ describe("ResourceGroup - Unified Implementation", () => {
|
|
|
465
465
|
tags: { tier: "secondary" },
|
|
466
466
|
});
|
|
467
467
|
// Create outputs that reference the resource groups
|
|
468
|
-
new
|
|
468
|
+
new cdktn.TerraformOutput(this, "PrimaryRGId", {
|
|
469
469
|
value: rg1.id,
|
|
470
470
|
});
|
|
471
|
-
new
|
|
471
|
+
new cdktn.TerraformOutput(this, "SecondaryRGId", {
|
|
472
472
|
value: rg2.id,
|
|
473
473
|
});
|
|
474
474
|
}
|
|
@@ -489,7 +489,7 @@ describe("ResourceGroup - Unified Implementation", () => {
|
|
|
489
489
|
});
|
|
490
490
|
expect(rg1.resolvedApiVersion).toBe("2025-03-01");
|
|
491
491
|
expect(rg2.resolvedApiVersion).toBe("2025-01-01");
|
|
492
|
-
const synthesized =
|
|
492
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
493
493
|
expect(synthesized).toBeDefined();
|
|
494
494
|
});
|
|
495
495
|
});
|
|
@@ -545,4 +545,4 @@ describe("ResourceGroup - Unified Implementation", () => {
|
|
|
545
545
|
});
|
|
546
546
|
});
|
|
547
547
|
});
|
|
548
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1yZXNvdXJjZWdyb3VwL3Rlc3QvcmVzb3VyY2UtZ3JvdXAuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7R0FPRzs7QUFFSCxpQ0FBZ0M7QUFDaEMsK0JBQStCO0FBQy9CLGtHQUE2RjtBQUM3RiwyR0FBeUc7QUFDekcsMERBQTBFO0FBQzFFLDBFQUd1QztBQUV2QyxRQUFRLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO0lBQ3RELElBQUksR0FBYyxDQUFDO0lBQ25CLElBQUksS0FBMkIsQ0FBQztJQUNoQyxJQUFJLE9BQTBCLENBQUM7SUFFL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkQsT0FBTyxHQUFHLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZDLCtDQUErQztRQUMvQyxJQUFJLENBQUM7WUFDSCxPQUFPLENBQUMsb0JBQW9CLENBQzFCLDRDQUFtQixFQUNuQixvREFBMkIsQ0FDNUIsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsK0JBQStCO1FBQ2pDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsRUFBRSxDQUFDLHVFQUF1RSxFQUFFLEdBQUcsRUFBRTtZQUMvRSxNQUFNLEtBQUssR0FBdUI7Z0JBQ2hDLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUM7WUFFRixNQUFNLGFBQWEsR0FBRyxJQUFJLDhCQUFhLENBQ3JDLEtBQUssRUFDTCxtQkFB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RUFBRSxFQUFFO2dCQUM3QixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLDhCQUFhLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29tcHJlaGVuc2l2ZSB0ZXN0cyBmb3IgdGhlIHVuaWZpZWQgUmVzb3VyY2VHcm91cCBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgdGVzdCBzdWl0ZSB2YWxpZGF0ZXMgdGhlIHVuaWZpZWQgUmVzb3VyY2VHcm91cCBjbGFzcyB0aGF0IHJlcGxhY2VzIGFsbFxuICogdmVyc2lvbi1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgdXNpbmcgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrLlxuICogVGVzdHMgY292ZXIgYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbiwgZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nLCBzY2hlbWEgdmFsaWRhdGlvbixcbiAqIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uLCBhbmQgZnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQXBpVmVyc2lvbk1hbmFnZXIgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2FwaS12ZXJzaW9uLW1hbmFnZXJcIjtcbmltcG9ydCB7IFZlcnNpb25TdXBwb3J0TGV2ZWwgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwLCBSZXNvdXJjZUdyb3VwUHJvcHMgfSBmcm9tIFwiLi4vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQge1xuICBBTExfUkVTT1VSQ0VfR1JPVVBfVkVSU0lPTlMsXG4gIFJFU09VUkNFX0dST1VQX1RZUEUsXG59IGZyb20gXCIuLi9saWIvcmVzb3VyY2UtZ3JvdXAtc2NoZW1hc1wiO1xuXG5kZXNjcmliZShcIlJlc291cmNlR3JvdXAgLSBVbmlmaWVkIEltcGxlbWVudGF0aW9uXCIsICgpID0+IHtcbiAgbGV0IGFwcDogY2RrdGYuQXBwO1xuICBsZXQgc3RhY2s6IGNka3RmLlRlcnJhZm9ybVN0YWNrO1xuICBsZXQgbWFuYWdlcjogQXBpVmVyc2lvbk1hbmFnZXI7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBzdGFjayA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1TdGFjayhhcHAsIFwiVGVzdFN0YWNrXCIpO1xuICAgIG1hbmFnZXIgPSBBcGlWZXJzaW9uTWFuYWdlci5pbnN0YW5jZSgpO1xuXG4gICAgLy8gRW5zdXJlIFJlc291cmNlIEdyb3VwIHNjaGVtYXMgYXJlIHJlZ2lzdGVyZWRcbiAgICB0cnkge1xuICAgICAgbWFuYWdlci5yZWdpc3RlclJlc291cmNlVHlwZShcbiAgICAgICAgUkVTT1VSQ0VfR1JPVVBfVFlQRSxcbiAgICAgICAgQUxMX1JFU09VUkNFX0dST1VQX1ZFUlNJT05TLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSWdub3JlIGlmIGFscmVhZHkgcmVnaXN0ZXJlZFxuICAgIH1cbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDb25zdHJ1Y3RvciBhbmQgQmFzaWMgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHJlc291cmNlIGdyb3VwIHdpdGggYXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFJlc291cmNlR3JvdXBQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0UmVzb3VyY2VHcm91cFwiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwKS50b0JlSW5zdGFuY2VPZihSZXNvdXJjZUdyb3VwKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjUtMDMtMDFcIik7IC8vIExhdGVzdCB2ZXJzaW9uXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5uYW1lKS50b0JlKFwidGVzdC1yZ1wiKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLmxvY2F0aW9uKS50b0JlKFwiZWFzdHVzXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHJlc291cmNlIGdyb3VwIHdpdGggZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBSZXNvdXJjZUdyb3VwUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZy1waW5uZWRcIixcbiAgICAgICAgbG9jYXRpb246IFwid2VzdHVzXCIsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyNC0xMS0wMVwiLCAvLyBQaW4gdG8gc3BlY2lmaWMgdmVyc2lvblxuICAgICAgICB0YWdzOiB7IGVudmlyb25tZW50OiBcInRlc3RcIiB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0UmVzb3VyY2VHcm91cFwiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjQtMTEtMDFcIik7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC50YWdzKS50b0VxdWFsKHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHJlc291cmNlIGdyb3VwIHdpdGggYWxsIG9wdGlvbmFsIHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFJlc291cmNlR3JvdXBQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnLWZ1bGxcIixcbiAgICAgICAgbG9jYXRpb246IFwiY2VudHJhbHVzXCIsXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgICAgcHJvamVjdDogXCJjZGt0Zi1jb25zdHJ1Y3RzXCIsXG4gICAgICAgICAgb3duZXI6IFwidGVhbUBjb21wYW55LmNvbVwiLFxuICAgICAgICB9LFxuICAgICAgICBtYW5hZ2VkQnk6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvbWFuYWdlbWVudC1yZ1wiLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCIsIFwibWFuYWdlZEJ5XCJdLFxuICAgICAgICBlbmFibGVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICBlbmFibGVNaWdyYXRpb25BbmFseXNpczogdHJ1ZSxcbiAgICAgICAgZW5hYmxlVHJhbnNmb3JtYXRpb246IHRydWUsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RSZXNvdXJjZUdyb3VwXCIsXG4gICAgICAgIHByb3BzLFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAucHJvcHMudGFncykudG9FcXVhbChwcm9wcy50YWdzKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnByb3BzLm1hbmFnZWRCeSkudG9CZShwcm9wcy5tYW5hZ2VkQnkpO1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAucHJvcHMuaWdub3JlQ2hhbmdlcykudG9FcXVhbChwcm9wcy5pZ25vcmVDaGFuZ2VzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBkZWZhdWx0IG5hbWUgd2hlbiBuYW1lIGlzIG5vdCBwcm92aWRlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUmVzb3VyY2VHcm91cFByb3BzID0ge1xuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiVGVzdFJlc291cmNlR3JvdXBcIixcbiAgICAgICAgcHJvcHMsXG4gICAgICApO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5uYW1lKS50b0JlKFwiVGVzdFJlc291cmNlR3JvdXBcIik7IC8vIFNob3VsZCB1c2UgY29uc3RydWN0IGlkXG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCByZXF1aXJlIGxvY2F0aW9uIHRvIGJlIHByb3ZpZGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBSZXNvdXJjZUdyb3VwUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwgcHJvcHMpO1xuICAgICAgfSkudG9UaHJvdyhcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBNaWNyb3NvZnQuUmVzb3VyY2VzL3Jlc291cmNlR3JvdXBzXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkZyYW1ld29yayBJbnRlZ3JhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcmVzb2x2ZSBsYXRlc3QgQVBJIHZlcnNpb24gYXV0b21hdGljYWxseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNS0wMy0wMVwiKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLmxhdGVzdFZlcnNpb24oKSkudG9CZShcIjIwMjUtMDMtMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IGFsbCByZWdpc3RlcmVkIEFQSSB2ZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3VwcG9ydGVkVmVyc2lvbnMgPSByZXNvdXJjZUdyb3VwLnN1cHBvcnRlZFZlcnNpb25zKCk7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjQtMTEtMDFcIik7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjUtMDEtMDFcIik7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjUtMDMtMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB2YWxpZGF0ZSB2ZXJzaW9uIHN1cHBvcnRcIiwgKCkgPT4ge1xuICAgICAgLy8gVmFsaWQgdmVyc2lvblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVmFsaWRWZXJzaW9uXCIsIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjUtMDEtMDFcIixcbiAgICAgICAgfSk7XG4gICAgICB9KS5ub3QudG9UaHJvdygpO1xuXG4gICAgICAvLyBJbnZhbGlkIHZlcnNpb25cbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkludmFsaWRWZXJzaW9uXCIsIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjYtMDEtMDFcIixcbiAgICAgICAgfSk7XG4gICAgICB9KS50b1Rocm93KFwiVW5zdXBwb3J0ZWQgQVBJIHZlcnNpb24gJzIwMjYtMDEtMDEnXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgbG9hZCBjb3JyZWN0IHNjaGVtYSBmb3IgcmVzb2x2ZWQgdmVyc2lvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyNC0xMS0wMVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnNjaGVtYSkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnNjaGVtYS5yZXNvdXJjZVR5cGUpLnRvQmUoUkVTT1VSQ0VfR1JPVVBfVFlQRSk7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5zY2hlbWEudmVyc2lvbikudG9CZShcIjIwMjQtMTEtMDFcIik7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5zY2hlbWEucHJvcGVydGllcykudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGxvYWQgdmVyc2lvbiBjb25maWd1cmF0aW9uIGNvcnJlY3RseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAudmVyc2lvbkNvbmZpZykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnZlcnNpb25Db25maWcudmVyc2lvbikudG9CZShcIjIwMjUtMDMtMDFcIik7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC52ZXJzaW9uQ29uZmlnLnN1cHBvcnRMZXZlbCkudG9CZShcbiAgICAgICAgVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlByb3BlcnR5IFZhbGlkYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHZhbGlkYXRlIHByb3BlcnRpZXMgd2hlbiB2YWxpZGF0aW9uIGlzIGVuYWJsZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFJlc291cmNlR3JvdXBQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBlbmFibGVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwgcHJvcHMpO1xuICAgICAgfSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgdmFsaWRhdGlvbiByZXN1bHRzIGZvciB2YWxpZCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwidmFsaWQtbmFtZVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC52YWxpZGF0aW9uUmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAudmFsaWRhdGlvblJlc3VsdCEudmFsaWQpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC52YWxpZGF0aW9uUmVzdWx0IS5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHNraXAgdmFsaWRhdGlvbiB3aGVuIGRpc2FibGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXApLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiTWlncmF0aW9uIEFuYWx5c2lzXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBwZXJmb3JtIG1pZ3JhdGlvbiBhbmFseXNpcyBiZXR3ZWVuIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTExLTAxXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYW5hbHlzaXMgPSByZXNvdXJjZUdyb3VwLmFuYWx5emVNaWdyYXRpb25UbyhcIjIwMjUtMDMtMDFcIik7XG5cbiAgICAgIGV4cGVjdChhbmFseXNpcykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChhbmFseXNpcy5mcm9tVmVyc2lvbikudG9CZShcIjIwMjQtMTEtMDFcIik7XG4gICAgICBleHBlY3QoYW5hbHlzaXMudG9WZXJzaW9uKS50b0JlKFwiMjAyNS0wMy0wMVwiKTtcbiAgICAgIGV4cGVjdChhbmFseXNpcy5jb21wYXRpYmxlKS50b0JlKHRydWUpOyAvLyBSZXNvdXJjZSBHcm91cCB2ZXJzaW9ucyBhcmUgY29tcGF0aWJsZVxuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgc2tpcCBtaWdyYXRpb24gYW5hbHlzaXMgd2hlbiBkaXNhYmxlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGVuYWJsZU1pZ3JhdGlvbkFuYWx5c2lzOiBmYWxzZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5taWdyYXRpb25BbmFseXNpcykudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlJlc291cmNlIENyZWF0aW9uIGFuZCBCb2R5XCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgY29ycmVjdCByZXNvdXJjZSBib2R5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSxcbiAgICAgICAgbWFuYWdlZEJ5OiBcIi9zdWJzY3JpcHRpb25zL3Rlc3QvcmVzb3VyY2VHcm91cHMvbWdtdFwiLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRlc3QgdGhlIGNyZWF0ZVJlc291cmNlQm9keSBtZXRob2QgaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBmcmFtZXdvcmtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAucHJvcHMudGFncykudG9FcXVhbCh7IGVudmlyb25tZW50OiBcInRlc3RcIiB9KTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnByb3BzLm1hbmFnZWRCeSkudG9CZShcbiAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3Jlc291cmNlR3JvdXBzL21nbXRcIixcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgbWluaW1hbCByZXNvdXJjZSBjcmVhdGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiTWluaW1hbFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcIm1pbmltYWwtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXApLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5uYW1lKS50b0JlKFwibWluaW1hbC1yZ1wiKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLmxvY2F0aW9uKS50b0JlKFwiZWFzdHVzXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZy1vdXRwdXRzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLmlkT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAubG9jYXRpb25PdXRwdXQpLnRvQmVJbnN0YW5jZU9mKFxuICAgICAgICBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQsXG4gICAgICApO1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAubmFtZU91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnRhZ3NPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RmLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiUHVibGljIE1ldGhvZHMgYW5kIFByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgIGxldCByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgY29ycmVjdCBpZCBmb3JtYXRcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAuaWQpLnRvTWF0Y2goL15cXCRcXHsuKlxcLmlkXFx9JC8pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGF2ZSByZXNvdXJjZUlkIHByb3BlcnR5IG1hdGNoaW5nIGlkXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnJlc291cmNlSWQpLnRvQmUocmVzb3VyY2VHcm91cC5pZCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBleHRyYWN0IHN1YnNjcmlwdGlvbiBJRCBmcm9tIHJlc291cmNlIElEXCIsICgpID0+IHtcbiAgICAgIC8vIFRoZSBpZCBwcm9wZXJ0eSBpcyBub3cgYSBnZXR0ZXIgdGhhdCBkZXJpdmVzIGZyb20gdGVycmFmb3JtUmVzb3VyY2VcbiAgICAgIC8vIFdlIGNhbiB2ZXJpZnkgdGhlIGlkIGZvcm1hdCBpcyBjb3JyZWN0XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5pZCkudG9NYXRjaCgvXlxcJFxcey4qXFwuaWRcXH0kLyk7XG5cbiAgICAgIC8vIFRoZSBzdWJzY3JpcHRpb25JZCBnZXR0ZXIgYXR0ZW1wdHMgdG8gcGFyc2UgdGhlIGlkIHN0cmluZ1xuICAgICAgLy8gSW4gdGVzdCBjb250ZXh0IHdpdGggVGVycmFmb3JtIGludGVycG9sYXRpb24sIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3JcbiAgICAgIC8vIHdoaWNoIGlzIGV4cGVjdGVkIGJlaGF2aW9yLiBJbiByZWFsIGRlcGxveW1lbnQsIGlkIHdvdWxkIGJlIGEgcmVzb2x2ZWQgQXp1cmUgcmVzb3VyY2UgSURcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIHJlc291cmNlR3JvdXAuc3Vic2NyaXB0aW9uSWQ7XG4gICAgICB9KS50b1Rocm93KFwiVW5hYmxlIHRvIGV4dHJhY3Qgc3Vic2NyaXB0aW9uIElEIGZyb20gUmVzb3VyY2UgR3JvdXAgSURcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IHRhZyBtYW5hZ2VtZW50XCIsICgpID0+IHtcbiAgICAgIC8vIFRlc3QgYWRkVGFnXG4gICAgICByZXNvdXJjZUdyb3VwLmFkZFRhZyhcIm5ld1RhZ1wiLCBcIm5ld1ZhbHVlXCIpO1xuICAgICAgLy8gVGFncyBzaG91bGQgbm93IGJlIGFjY2Vzc2libGUgdmlhIHRoZSB0YWdzIGdldHRlclxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAudGFncy5uZXdUYWcpLnRvQmUoXCJuZXdWYWx1ZVwiKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnRhZ3MuZW52aXJvbm1lbnQpLnRvQmUoXCJ0ZXN0XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWRkIHRhZ3Mgd2hlbiBubyB0YWdzIGV4aXN0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnTm9UYWdzID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiTm9UYWdzUkdcIiwge1xuICAgICAgICBuYW1lOiBcIm5vLXRhZ3MtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgcmdOb1RhZ3MuYWRkVGFnKFwiZmlyc3RUYWdcIiwgXCJmaXJzdFZhbHVlXCIpO1xuICAgICAgZXhwZWN0KHJnTm9UYWdzLnRhZ3MuZmlyc3RUYWcpLnRvQmUoXCJmaXJzdFZhbHVlXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklnbm9yZSBDaGFuZ2VzIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGFwcGx5IGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiSWdub3JlQ2hhbmdlc1JHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCIsIFwibG9jYXRpb25cIl0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXApLnRvQmVJbnN0YW5jZU9mKFJlc291cmNlR3JvdXApO1xuICAgICAgLy8gVGhlIGlnbm9yZV9jaGFuZ2VzIHNob3VsZCBiZSBhcHBsaWVkIHRvIHRoZSB1bmRlcmx5aW5nIHRlcnJhZm9ybSByZXNvdXJjZVxuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgZmlsdGVyIG91dCBpbnZhbGlkIGlnbm9yZSBjaGFuZ2VzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJGaWx0ZXJlZElnbm9yZVJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCIsIFwibWFuYWdlZEJ5XCIsIFwibG9jYXRpb25cIl0sIC8vIG1hbmFnZWRCeSBzaG91bGQgYmUgZmlsdGVyZWRcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cCkudG9CZUluc3RhbmNlT2YoUmVzb3VyY2VHcm91cCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgZW1wdHkgaWdub3JlIGNoYW5nZXMgYXJyYXlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkVtcHR5SWdub3JlUkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwKS50b0JlSW5zdGFuY2VPZihSZXNvdXJjZUdyb3VwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJWZXJzaW9uIENvbXBhdGliaWxpdHlcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHdvcmsgd2l0aCBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2ZXJzaW9ucyA9IFtcIjIwMjQtMTEtMDFcIiwgXCIyMDI1LTAxLTAxXCIsIFwiMjAyNS0wMy0wMVwiXTtcblxuICAgICAgdmVyc2lvbnMuZm9yRWFjaCgodmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoXG4gICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgYFJHLSR7dmVyc2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYHRlc3QtcmctJHt2ZXJzaW9ufWAsXG4gICAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICAgIGFwaVZlcnNpb246IHZlcnNpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUodmVyc2lvbik7XG4gICAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnNjaGVtYS52ZXJzaW9uKS50b0JlKHZlcnNpb24pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgc2NoZW1hIGRpZmZlcmVuY2VzIGFjcm9zcyB2ZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgICAvLyBBbGwgUmVzb3VyY2UgR3JvdXAgdmVyc2lvbnMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgY29yZSBzY2hlbWFcbiAgICAgIGNvbnN0IHZlcnNpb25zID0gW1wiMjAyNC0xMS0wMVwiLCBcIjIwMjUtMDEtMDFcIiwgXCIyMDI1LTAzLTAxXCJdO1xuXG4gICAgICB2ZXJzaW9ucy5mb3JFYWNoKCh2ZXJzaW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgICBgU2NoZW1hLSR7dmVyc2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYHNjaGVtYS10ZXN0LSR7dmVyc2lvbn1gLFxuICAgICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgICBhcGlWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAuc2NoZW1hLnByb3BlcnRpZXMubG9jYXRpb24pLnRvQmVEZWZpbmVkKCk7XG4gICAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnNjaGVtYS5wcm9wZXJ0aWVzLnRhZ3MpLnRvQmVEZWZpbmVkKCk7XG4gICAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnNjaGVtYS5wcm9wZXJ0aWVzLm1hbmFnZWRCeSkudG9CZURlZmluZWQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkJhY2t3YXJkIENvbXBhdGliaWxpdHlcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCBvcmlnaW5hbCBHcm91cFByb3BzIGludGVyZmFjZVwiLCAoKSA9PiB7XG4gICAgICAvLyBUZXN0IHVzaW5nIHRoZSBkZXByZWNhdGVkIEdyb3VwIGV4cG9ydFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICAgIGNvbnN0IHsgR3JvdXAgfSA9IHJlcXVpcmUoXCIuLi9saWIvcmVzb3VyY2UtZ3JvdXBcIik7XG5cbiAgICAgIGNvbnN0IGdyb3VwID0gbmV3IEdyb3VwKHN0YWNrLCBcIkJhY2t3YXJkQ29tcGF0R3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcImNvbXBhdC10ZXN0XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICB0YWdzOiB7IGNvbXBhdGliaWxpdHk6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGdyb3VwKS50b0JlSW5zdGFuY2VPZihSZXNvdXJjZUdyb3VwKTtcbiAgICAgIGV4cGVjdChncm91cC5uYW1lKS50b0JlKFwiY29tcGF0LXRlc3RcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB3b3JrIHdpdGggZXhpc3RpbmcgUmVzb3VyY2VHcm91cCBwYXR0ZXJuc1wiLCAoKSA9PiB7XG4gICAgICAvLyBUZXN0IHBhdHRlcm5zIHRoYXQgd291bGQgaGF2ZSB3b3JrZWQgd2l0aCB2ZXJzaW9uLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkV4aXN0aW5nUGF0dGVyblwiLCB7XG4gICAgICAgIG5hbWU6IFwiZXhpc3RpbmctcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwid2VzdHVzMlwiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIGNvc3Q6IFwiY2VudGVyMVwiLFxuICAgICAgICB9LFxuICAgICAgICBtYW5hZ2VkQnk6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvbWFuYWdlbWVudFwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnByb3BzLnRhZ3MpLnRvRXF1YWwoe1xuICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgIGNvc3Q6IFwiY2VudGVyMVwiLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiRXJyb3IgSGFuZGxpbmdcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBpbnZhbGlkIEFQSSB2ZXJzaW9ucyBncmFjZWZ1bGx5XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkludmFsaWRBUElcIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIGFwaVZlcnNpb246IFwiaW52YWxpZC12ZXJzaW9uXCIsXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdyhcIlVuc3VwcG9ydGVkIEFQSSB2ZXJzaW9uICdpbnZhbGlkLXZlcnNpb24nXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIHZhbGlkYXRpb24gZXJyb3JzIHdoZW4gdmFsaWRhdGlvbiBpcyBlbmFibGVkXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlZhbGlkYXRpb25FcnJvclwiLCB7XG4gICAgICAgICAgbmFtZTogXCJcIiwgLy8gSW52YWxpZCBlbXB0eSBuYW1lXG4gICAgICAgICAgbG9jYXRpb246IFwiXCIsIC8vIEludmFsaWQgZW1wdHkgbG9jYXRpb25cbiAgICAgICAgICBlbmFibGVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pLnRvVGhyb3coXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3Vwc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBzY2hlbWEgcmVnaXN0cmF0aW9uIGVycm9ycyBncmFjZWZ1bGx5XCIsICgpID0+IHtcbiAgICAgIC8vIFRoZSBSZXNvdXJjZUdyb3VwIGNvbnN0cnVjdG9yIHNob3VsZCBoYW5kbGUgYWxyZWFkeS1yZWdpc3RlcmVkIHNjaGVtYXNcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlNjaGVtYVRlc3RcIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICB9KTtcbiAgICAgIH0pLm5vdC50b1Rocm93KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSlNJSSBDb21wbGlhbmNlXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBoYXZlIEpTSUktY29tcGxpYW50IGNvbnN0cnVjdG9yXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkpzaWlUZXN0XCIsIHtcbiAgICAgICAgICBuYW1lOiBcImpzaWktdGVzdFwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICB9KTtcbiAgICAgIH0pLm5vdC50b1Rocm93KCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYXZlIEpTSUktY29tcGxpYW50IHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkpzaWlQcm9wc1wiLCB7XG4gICAgICAgIG5hbWU6IFwianNpaS1wcm9wc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QodHlwZW9mIHJlc291cmNlR3JvdXAuaWQpLnRvQmUoXCJzdHJpbmdcIik7XG4gICAgICBleHBlY3QodHlwZW9mIHJlc291cmNlR3JvdXAubmFtZSkudG9CZShcInN0cmluZ1wiKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgcmVzb3VyY2VHcm91cC5sb2NhdGlvbikudG9CZShcInN0cmluZ1wiKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgcmVzb3VyY2VHcm91cC50YWdzKS50b0JlKFwib2JqZWN0XCIpO1xuICAgICAgZXhwZWN0KHR5cGVvZiByZXNvdXJjZUdyb3VwLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcInN0cmluZ1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgSlNJSS1jb21wbGlhbnQgbWV0aG9kc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiSnNpaU1ldGhvZHNcIiwge1xuICAgICAgICBuYW1lOiBcImpzaWktbWV0aG9kc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QodHlwZW9mIHJlc291cmNlR3JvdXAuYWRkVGFnKS50b0JlKFwiZnVuY3Rpb25cIik7XG4gICAgICBleHBlY3QodHlwZW9mIHJlc291cmNlR3JvdXAubGF0ZXN0VmVyc2lvbikudG9CZShcImZ1bmN0aW9uXCIpO1xuICAgICAgZXhwZWN0KHR5cGVvZiByZXNvdXJjZUdyb3VwLnN1cHBvcnRlZFZlcnNpb25zKS50b0JlKFwiZnVuY3Rpb25cIik7XG4gICAgICBleHBlY3QodHlwZW9mIHJlc291cmNlR3JvdXAuYW5hbHl6ZU1pZ3JhdGlvblRvKS50b0JlKFwiZnVuY3Rpb25cIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzZXJpYWxpemUgY29tcGxleCBvYmplY3RzIGNvcnJlY3RseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiSnNpaVNlcmlhbGl6YXRpb25cIiwge1xuICAgICAgICBuYW1lOiBcImpzaWktc2VyaWFsaXphdGlvblwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGNvbXBsZXg6IFwidmFsdWVcIixcbiAgICAgICAgICBuZXN0ZWQ6IFwiZGF0YVwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFNob3VsZCBiZSBhYmxlIHRvIHNlcmlhbGl6ZSB2YWxpZGF0aW9uIHJlc3VsdHNcbiAgICAgIGV4cGVjdCgoKSA9PlxuICAgICAgICBKU09OLnN0cmluZ2lmeShyZXNvdXJjZUdyb3VwLnZhbGlkYXRpb25SZXN1bHQpLFxuICAgICAgKS5ub3QudG9UaHJvdygpO1xuXG4gICAgICAvLyBTaG91bGQgYmUgYWJsZSB0byBzZXJpYWxpemUgc2NoZW1hXG4gICAgICBleHBlY3QoKCkgPT4gSlNPTi5zdHJpbmdpZnkocmVzb3VyY2VHcm91cC5zY2hlbWEpKS5ub3QudG9UaHJvdygpO1xuXG4gICAgICAvLyBTaG91bGQgYmUgYWJsZSB0byBzZXJpYWxpemUgdmVyc2lvbiBjb25maWdcbiAgICAgIGV4cGVjdCgoKSA9PiBKU09OLnN0cmluZ2lmeShyZXNvdXJjZUdyb3VwLnZlcnNpb25Db25maWcpKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJzeW50aC10ZXN0XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICB0YWdzOiB7IHRlc3Q6IFwic3ludGhlc2lzXCIgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICBjb25zdCBzdGFja0NvbmZpZyA9IEpTT04ucGFyc2Uoc3ludGhlc2l6ZWQpO1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgd29yayBpbiBjb21wbGV4IENESyBjb25zdHJ1Y3RzXCIsICgpID0+IHtcbiAgICAgIGNsYXNzIENvbXBsZXhDb25zdHJ1Y3QgZXh0ZW5kcyBjZGt0Zi5UZXJyYWZvcm1TdGFjayB7XG4gICAgICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGt0Zi5BcHAsIGlkOiBzdHJpbmcpIHtcbiAgICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgICAgICAgLy8gQ3JlYXRlIG11bHRpcGxlIHJlc291cmNlIGdyb3Vwc1xuICAgICAgICAgIGNvbnN0IHJnMSA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsIFwiUHJpbWFyeVJHXCIsIHtcbiAgICAgICAgICAgIG5hbWU6IFwicHJpbWFyeS1yZ1wiLFxuICAgICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgICB0YWdzOiB7IHRpZXI6IFwicHJpbWFyeVwiIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCByZzIgPSBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcIlNlY29uZGFyeVJHXCIsIHtcbiAgICAgICAgICAgIG5hbWU6IFwic2Vjb25kYXJ5LXJnXCIsXG4gICAgICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgICAgIGFwaVZlcnNpb246IFwiMjAyNC0xMS0wMVwiLFxuICAgICAgICAgICAgdGFnczogeyB0aWVyOiBcInNlY29uZGFyeVwiIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICAvLyBDcmVhdGUgb3V0cHV0cyB0aGF0IHJlZmVyZW5jZSB0aGUgcmVzb3VyY2UgZ3JvdXBzXG4gICAgICAgICAgbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIlByaW1hcnlSR0lkXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiByZzEuaWQsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiU2Vjb25kYXJ5UkdJZFwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogcmcyLmlkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBDb21wbGV4Q29uc3RydWN0KGFwcCwgXCJDb21wbGV4U3RhY2tcIik7XG4gICAgICB9KS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG11bHRpcGxlIHJlc291cmNlIGdyb3VwcyBpbiB0aGUgc2FtZSBzdGFja1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZzEgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJSZXNvdXJjZUdyb3VwMVwiLCB7XG4gICAgICAgIG5hbWU6IFwicmctMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZzIgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJSZXNvdXJjZUdyb3VwMlwiLCB7XG4gICAgICAgIG5hbWU6IFwicmctMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI1LTAxLTAxXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJnMS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI1LTAzLTAxXCIpO1xuICAgICAgZXhwZWN0KHJnMi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI1LTAxLTAxXCIpO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlBlcmZvcm1hbmNlIGFuZCBDb2RlIFJlZHVjdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcmVkdWNlIGNvZGUgY29tcGxleGl0eSBjb21wYXJlZCB0byB2ZXJzaW9uLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1wiLCAoKSA9PiB7XG4gICAgICAvLyBUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gaXMgc2ltcGxlclxuICAgICAgLy8gdGhhbiBtYWludGFpbmluZyBzZXBhcmF0ZSB2ZXJzaW9uLXNwZWNpZmljIGNsYXNzZXNcblxuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgICAgLy8gQ3JlYXRlIG11bHRpcGxlIHJlc291cmNlIGdyb3VwcyB3aXRoIGRpZmZlcmVudCB2ZXJzaW9uc1xuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cHM6IFJlc291cmNlR3JvdXBbXSA9IFtdO1xuICAgICAgY29uc3QgdmVyc2lvbnMgPSBbXCIyMDI0LTExLTAxXCIsIFwiMjAyNS0wMS0wMVwiLCBcIjIwMjUtMDMtMDFcIl07XG5cbiAgICAgIHZlcnNpb25zLmZvckVhY2goKHZlcnNpb24sIGluZGV4KSA9PiB7XG4gICAgICAgIHJlc291cmNlR3JvdXBzLnB1c2goXG4gICAgICAgICAgbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIGBQZXJmb3JtYW5jZVRlc3Qke2luZGV4fWAsIHtcbiAgICAgICAgICAgIG5hbWU6IGBwZXJmLXRlc3QtJHtpbmRleH1gLFxuICAgICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgICBhcGlWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGVuZFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cHMpLnRvSGF2ZUxlbmd0aCgzKTtcbiAgICAgIGV4cGVjdChlbmRUaW1lIC0gc3RhcnRUaW1lKS50b0JlTGVzc1RoYW4oMTAwMCk7IC8vIFNob3VsZCBiZSBmYXN0XG5cbiAgICAgIC8vIFZlcmlmeSBhbGwgaW5zdGFuY2VzIGFyZSBjcmVhdGVkIGNvcnJlY3RseVxuICAgICAgcmVzb3VyY2VHcm91cHMuZm9yRWFjaCgocmcsIGluZGV4KSA9PiB7XG4gICAgICAgIGV4cGVjdChyZykudG9CZUluc3RhbmNlT2YoUmVzb3VyY2VHcm91cCk7XG4gICAgICAgIGV4cGVjdChyZy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUodmVyc2lvbnNbaW5kZXhdKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgY29kZSByZWR1Y3Rpb24gY2xhaW1zXCIsICgpID0+IHtcbiAgICAgIC8vIFRoaXMgdGVzdCBkZW1vbnN0cmF0ZXMgdGhhdCBhIHNpbmdsZSBjbGFzcyByZXBsYWNlcyBtdWx0aXBsZSB2ZXJzaW9uLXNwZWNpZmljIGNsYXNzZXNcbiAgICAgIC8vIFByZXZpb3VzIGltcGxlbWVudGF0aW9uIHdvdWxkIGhhdmUgcmVxdWlyZWQ6XG4gICAgICAvLyAtIFJlc291cmNlR3JvdXAyMDI0XzExXzAxIGNsYXNzXG4gICAgICAvLyAtIFJlc291cmNlR3JvdXAyMDI1XzAxXzAxIGNsYXNzXG4gICAgICAvLyAtIFJlc291cmNlR3JvdXAyMDI1XzAzXzAxIGNsYXNzXG4gICAgICAvLyAtIFNlcGFyYXRlIHRlc3QgZmlsZXMgZm9yIGVhY2hcbiAgICAgIC8vIC0gU2VwYXJhdGUgc2NoZW1hIGRlZmluaXRpb25zXG5cbiAgICAgIC8vIE5vdyB3ZSBoYXZlOlxuICAgICAgLy8gLSBTaW5nbGUgUmVzb3VyY2VHcm91cCBjbGFzc1xuICAgICAgLy8gLSBTaW5nbGUgdGVzdCBmaWxlXG4gICAgICAvLyAtIFVuaWZpZWQgc2NoZW1hIG1hbmFnZW1lbnRcblxuICAgICAgY29uc3QgdW5pZmllZENsYXNzID0gUmVzb3VyY2VHcm91cDtcbiAgICAgIGV4cGVjdCh1bmlmaWVkQ2xhc3MpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QodHlwZW9mIHVuaWZpZWRDbGFzcykudG9CZShcImZ1bmN0aW9uXCIpO1xuXG4gICAgICAvLyBDYW4gaGFuZGxlIGFsbCB2ZXJzaW9ucyB3aXRoIHRoZSBzYW1lIGludGVyZmFjZVxuICAgICAgY29uc3QgYWxsVmVyc2lvblRlc3RzID0gW1wiMjAyNC0xMS0wMVwiLCBcIjIwMjUtMDEtMDFcIiwgXCIyMDI1LTAzLTAxXCJdLm1hcChcbiAgICAgICAgKHZlcnNpb24sIGluZGV4KSA9PlxuICAgICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBgQ29kZVJlZHVjdGlvbiR7aW5kZXh9YCwge1xuICAgICAgICAgICAgbmFtZTogYGNvZGUtcmVkdWN0aW9uLSR7aW5kZXh9YCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgICAgYXBpVmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChhbGxWZXJzaW9uVGVzdHMpLnRvSGF2ZUxlbmd0aCgzKTtcbiAgICAgIGFsbFZlcnNpb25UZXN0cy5mb3JFYWNoKChyZykgPT4ge1xuICAgICAgICBleHBlY3QocmcpLnRvQmVJbnN0YW5jZU9mKFJlc291cmNlR3JvdXApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
548
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1yZXNvdXJjZWdyb3VwL3Rlc3QvcmVzb3VyY2UtZ3JvdXAuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7R0FPRzs7QUFFSCxpQ0FBZ0M7QUFDaEMsK0JBQStCO0FBQy9CLGtHQUE2RjtBQUM3RiwyR0FBeUc7QUFDekcsMERBQTBFO0FBQzFFLDBFQUd1QztBQUV2QyxRQUFRLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO0lBQ3RELElBQUksR0FBYyxDQUFDO0lBQ25CLElBQUksS0FBMkIsQ0FBQztJQUNoQyxJQUFJLE9BQTBCLENBQUM7SUFFL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEIsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkQsT0FBTyxHQUFHLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZDLCtDQUErQztRQUMvQyxJQUFJLENBQUM7WUFDSCxPQUFPLENBQUMsb0JBQW9CLENBQzFCLDRDQUFtQixFQUNuQixvREFBMkIsQ0FDNUIsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsK0JBQStCO1FBQ2pDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsRUFBRSxDQUFDLHVFQUF1RSxFQUFFLEdBQUcsRUFBRTtZQUMvRSxNQUFNLEtBQUssR0FBdUI7Z0JBQ2hDLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUM7WUFFRixNQUFNLGFBQWEsR0FBRyxJQUFJLDhCQUFhLENBQ3JDLEtBQUssRUFDTCxtQkFB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RUFBRSxFQUFFO2dCQUM3QixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLDhCQUFhLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29tcHJlaGVuc2l2ZSB0ZXN0cyBmb3IgdGhlIHVuaWZpZWQgUmVzb3VyY2VHcm91cCBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgdGVzdCBzdWl0ZSB2YWxpZGF0ZXMgdGhlIHVuaWZpZWQgUmVzb3VyY2VHcm91cCBjbGFzcyB0aGF0IHJlcGxhY2VzIGFsbFxuICogdmVyc2lvbi1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgdXNpbmcgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrLlxuICogVGVzdHMgY292ZXIgYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbiwgZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nLCBzY2hlbWEgdmFsaWRhdGlvbixcbiAqIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uLCBhbmQgZnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCAqIGFzIGNka3RuIGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQXBpVmVyc2lvbk1hbmFnZXIgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2FwaS12ZXJzaW9uLW1hbmFnZXJcIjtcbmltcG9ydCB7IFZlcnNpb25TdXBwb3J0TGV2ZWwgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwLCBSZXNvdXJjZUdyb3VwUHJvcHMgfSBmcm9tIFwiLi4vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQge1xuICBBTExfUkVTT1VSQ0VfR1JPVVBfVkVSU0lPTlMsXG4gIFJFU09VUkNFX0dST1VQX1RZUEUsXG59IGZyb20gXCIuLi9saWIvcmVzb3VyY2UtZ3JvdXAtc2NoZW1hc1wiO1xuXG5kZXNjcmliZShcIlJlc291cmNlR3JvdXAgLSBVbmlmaWVkIEltcGxlbWVudGF0aW9uXCIsICgpID0+IHtcbiAgbGV0IGFwcDogY2RrdG4uQXBwO1xuICBsZXQgc3RhY2s6IGNka3RuLlRlcnJhZm9ybVN0YWNrO1xuICBsZXQgbWFuYWdlcjogQXBpVmVyc2lvbk1hbmFnZXI7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBzdGFjayA9IG5ldyBjZGt0bi5UZXJyYWZvcm1TdGFjayhhcHAsIFwiVGVzdFN0YWNrXCIpO1xuICAgIG1hbmFnZXIgPSBBcGlWZXJzaW9uTWFuYWdlci5pbnN0YW5jZSgpO1xuXG4gICAgLy8gRW5zdXJlIFJlc291cmNlIEdyb3VwIHNjaGVtYXMgYXJlIHJlZ2lzdGVyZWRcbiAgICB0cnkge1xuICAgICAgbWFuYWdlci5yZWdpc3RlclJlc291cmNlVHlwZShcbiAgICAgICAgUkVTT1VSQ0VfR1JPVVBfVFlQRSxcbiAgICAgICAgQUxMX1JFU09VUkNFX0dST1VQX1ZFUlNJT05TLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSWdub3JlIGlmIGFscmVhZHkgcmVnaXN0ZXJlZFxuICAgIH1cbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDb25zdHJ1Y3RvciBhbmQgQmFzaWMgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHJlc291cmNlIGdyb3VwIHdpdGggYXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFJlc291cmNlR3JvdXBQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0UmVzb3VyY2VHcm91cFwiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwKS50b0JlSW5zdGFuY2VPZihSZXNvdXJjZUdyb3VwKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjUtMDMtMDFcIik7IC8vIExhdGVzdCB2ZXJzaW9uXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5uYW1lKS50b0JlKFwidGVzdC1yZ1wiKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLmxvY2F0aW9uKS50b0JlKFwiZWFzdHVzXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHJlc291cmNlIGdyb3VwIHdpdGggZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBSZXNvdXJjZUdyb3VwUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZy1waW5uZWRcIixcbiAgICAgICAgbG9jYXRpb246IFwid2VzdHVzXCIsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyNC0xMS0wMVwiLCAvLyBQaW4gdG8gc3BlY2lmaWMgdmVyc2lvblxuICAgICAgICB0YWdzOiB7IGVudmlyb25tZW50OiBcInRlc3RcIiB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0UmVzb3VyY2VHcm91cFwiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjQtMTEtMDFcIik7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC50YWdzKS50b0VxdWFsKHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHJlc291cmNlIGdyb3VwIHdpdGggYWxsIG9wdGlvbmFsIHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFJlc291cmNlR3JvdXBQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnLWZ1bGxcIixcbiAgICAgICAgbG9jYXRpb246IFwiY2VudHJhbHVzXCIsXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgICAgcHJvamVjdDogXCJjZGt0Zi1jb25zdHJ1Y3RzXCIsXG4gICAgICAgICAgb3duZXI6IFwidGVhbUBjb21wYW55LmNvbVwiLFxuICAgICAgICB9LFxuICAgICAgICBtYW5hZ2VkQnk6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvbWFuYWdlbWVudC1yZ1wiLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCIsIFwibWFuYWdlZEJ5XCJdLFxuICAgICAgICBlbmFibGVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICBlbmFibGVNaWdyYXRpb25BbmFseXNpczogdHJ1ZSxcbiAgICAgICAgZW5hYmxlVHJhbnNmb3JtYXRpb246IHRydWUsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RSZXNvdXJjZUdyb3VwXCIsXG4gICAgICAgIHByb3BzLFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAucHJvcHMudGFncykudG9FcXVhbChwcm9wcy50YWdzKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnByb3BzLm1hbmFnZWRCeSkudG9CZShwcm9wcy5tYW5hZ2VkQnkpO1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAucHJvcHMuaWdub3JlQ2hhbmdlcykudG9FcXVhbChwcm9wcy5pZ25vcmVDaGFuZ2VzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBkZWZhdWx0IG5hbWUgd2hlbiBuYW1lIGlzIG5vdCBwcm92aWRlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUmVzb3VyY2VHcm91cFByb3BzID0ge1xuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiVGVzdFJlc291cmNlR3JvdXBcIixcbiAgICAgICAgcHJvcHMsXG4gICAgICApO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5uYW1lKS50b0JlKFwiVGVzdFJlc291cmNlR3JvdXBcIik7IC8vIFNob3VsZCB1c2UgY29uc3RydWN0IGlkXG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCByZXF1aXJlIGxvY2F0aW9uIHRvIGJlIHByb3ZpZGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBSZXNvdXJjZUdyb3VwUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwgcHJvcHMpO1xuICAgICAgfSkudG9UaHJvdyhcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBNaWNyb3NvZnQuUmVzb3VyY2VzL3Jlc291cmNlR3JvdXBzXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkZyYW1ld29yayBJbnRlZ3JhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcmVzb2x2ZSBsYXRlc3QgQVBJIHZlcnNpb24gYXV0b21hdGljYWxseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNS0wMy0wMVwiKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLmxhdGVzdFZlcnNpb24oKSkudG9CZShcIjIwMjUtMDMtMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IGFsbCByZWdpc3RlcmVkIEFQSSB2ZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3VwcG9ydGVkVmVyc2lvbnMgPSByZXNvdXJjZUdyb3VwLnN1cHBvcnRlZFZlcnNpb25zKCk7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjQtMTEtMDFcIik7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjUtMDEtMDFcIik7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjUtMDMtMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB2YWxpZGF0ZSB2ZXJzaW9uIHN1cHBvcnRcIiwgKCkgPT4ge1xuICAgICAgLy8gVmFsaWQgdmVyc2lvblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVmFsaWRWZXJzaW9uXCIsIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjUtMDEtMDFcIixcbiAgICAgICAgfSk7XG4gICAgICB9KS5ub3QudG9UaHJvdygpO1xuXG4gICAgICAvLyBJbnZhbGlkIHZlcnNpb25cbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkludmFsaWRWZXJzaW9uXCIsIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjYtMDEtMDFcIixcbiAgICAgICAgfSk7XG4gICAgICB9KS50b1Rocm93KFwiVW5zdXBwb3J0ZWQgQVBJIHZlcnNpb24gJzIwMjYtMDEtMDEnXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgbG9hZCBjb3JyZWN0IHNjaGVtYSBmb3IgcmVzb2x2ZWQgdmVyc2lvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyNC0xMS0wMVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnNjaGVtYSkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnNjaGVtYS5yZXNvdXJjZVR5cGUpLnRvQmUoUkVTT1VSQ0VfR1JPVVBfVFlQRSk7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5zY2hlbWEudmVyc2lvbikudG9CZShcIjIwMjQtMTEtMDFcIik7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5zY2hlbWEucHJvcGVydGllcykudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGxvYWQgdmVyc2lvbiBjb25maWd1cmF0aW9uIGNvcnJlY3RseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAudmVyc2lvbkNvbmZpZykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnZlcnNpb25Db25maWcudmVyc2lvbikudG9CZShcIjIwMjUtMDMtMDFcIik7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC52ZXJzaW9uQ29uZmlnLnN1cHBvcnRMZXZlbCkudG9CZShcbiAgICAgICAgVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlByb3BlcnR5IFZhbGlkYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHZhbGlkYXRlIHByb3BlcnRpZXMgd2hlbiB2YWxpZGF0aW9uIGlzIGVuYWJsZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFJlc291cmNlR3JvdXBQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBlbmFibGVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwgcHJvcHMpO1xuICAgICAgfSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgdmFsaWRhdGlvbiByZXN1bHRzIGZvciB2YWxpZCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwidmFsaWQtbmFtZVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC52YWxpZGF0aW9uUmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAudmFsaWRhdGlvblJlc3VsdCEudmFsaWQpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC52YWxpZGF0aW9uUmVzdWx0IS5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHNraXAgdmFsaWRhdGlvbiB3aGVuIGRpc2FibGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXApLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiTWlncmF0aW9uIEFuYWx5c2lzXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBwZXJmb3JtIG1pZ3JhdGlvbiBhbmFseXNpcyBiZXR3ZWVuIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTExLTAxXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYW5hbHlzaXMgPSByZXNvdXJjZUdyb3VwLmFuYWx5emVNaWdyYXRpb25UbyhcIjIwMjUtMDMtMDFcIik7XG5cbiAgICAgIGV4cGVjdChhbmFseXNpcykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChhbmFseXNpcy5mcm9tVmVyc2lvbikudG9CZShcIjIwMjQtMTEtMDFcIik7XG4gICAgICBleHBlY3QoYW5hbHlzaXMudG9WZXJzaW9uKS50b0JlKFwiMjAyNS0wMy0wMVwiKTtcbiAgICAgIGV4cGVjdChhbmFseXNpcy5jb21wYXRpYmxlKS50b0JlKHRydWUpOyAvLyBSZXNvdXJjZSBHcm91cCB2ZXJzaW9ucyBhcmUgY29tcGF0aWJsZVxuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgc2tpcCBtaWdyYXRpb24gYW5hbHlzaXMgd2hlbiBkaXNhYmxlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGVuYWJsZU1pZ3JhdGlvbkFuYWx5c2lzOiBmYWxzZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5taWdyYXRpb25BbmFseXNpcykudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlJlc291cmNlIENyZWF0aW9uIGFuZCBCb2R5XCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgY29ycmVjdCByZXNvdXJjZSBib2R5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSxcbiAgICAgICAgbWFuYWdlZEJ5OiBcIi9zdWJzY3JpcHRpb25zL3Rlc3QvcmVzb3VyY2VHcm91cHMvbWdtdFwiLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRlc3QgdGhlIGNyZWF0ZVJlc291cmNlQm9keSBtZXRob2QgaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBmcmFtZXdvcmtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAucHJvcHMudGFncykudG9FcXVhbCh7IGVudmlyb25tZW50OiBcInRlc3RcIiB9KTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnByb3BzLm1hbmFnZWRCeSkudG9CZShcbiAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3Jlc291cmNlR3JvdXBzL21nbXRcIixcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgbWluaW1hbCByZXNvdXJjZSBjcmVhdGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiTWluaW1hbFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcIm1pbmltYWwtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXApLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5uYW1lKS50b0JlKFwibWluaW1hbC1yZ1wiKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLmxvY2F0aW9uKS50b0JlKFwiZWFzdHVzXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZy1vdXRwdXRzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLmlkT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAubG9jYXRpb25PdXRwdXQpLnRvQmVJbnN0YW5jZU9mKFxuICAgICAgICBjZGt0bi5UZXJyYWZvcm1PdXRwdXQsXG4gICAgICApO1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAubmFtZU91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnRhZ3NPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RuLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiUHVibGljIE1ldGhvZHMgYW5kIFByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgIGxldCByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJlc291cmNlR3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgY29ycmVjdCBpZCBmb3JtYXRcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAuaWQpLnRvTWF0Y2goL15cXCRcXHsuKlxcLmlkXFx9JC8pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGF2ZSByZXNvdXJjZUlkIHByb3BlcnR5IG1hdGNoaW5nIGlkXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnJlc291cmNlSWQpLnRvQmUocmVzb3VyY2VHcm91cC5pZCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBleHRyYWN0IHN1YnNjcmlwdGlvbiBJRCBmcm9tIHJlc291cmNlIElEXCIsICgpID0+IHtcbiAgICAgIC8vIFRoZSBpZCBwcm9wZXJ0eSBpcyBub3cgYSBnZXR0ZXIgdGhhdCBkZXJpdmVzIGZyb20gdGVycmFmb3JtUmVzb3VyY2VcbiAgICAgIC8vIFdlIGNhbiB2ZXJpZnkgdGhlIGlkIGZvcm1hdCBpcyBjb3JyZWN0XG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5pZCkudG9NYXRjaCgvXlxcJFxcey4qXFwuaWRcXH0kLyk7XG5cbiAgICAgIC8vIFRoZSBzdWJzY3JpcHRpb25JZCBnZXR0ZXIgYXR0ZW1wdHMgdG8gcGFyc2UgdGhlIGlkIHN0cmluZ1xuICAgICAgLy8gSW4gdGVzdCBjb250ZXh0IHdpdGggVGVycmFmb3JtIGludGVycG9sYXRpb24sIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3JcbiAgICAgIC8vIHdoaWNoIGlzIGV4cGVjdGVkIGJlaGF2aW9yLiBJbiByZWFsIGRlcGxveW1lbnQsIGlkIHdvdWxkIGJlIGEgcmVzb2x2ZWQgQXp1cmUgcmVzb3VyY2UgSURcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIHJlc291cmNlR3JvdXAuc3Vic2NyaXB0aW9uSWQ7XG4gICAgICB9KS50b1Rocm93KFwiVW5hYmxlIHRvIGV4dHJhY3Qgc3Vic2NyaXB0aW9uIElEIGZyb20gUmVzb3VyY2UgR3JvdXAgSURcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IHRhZyBtYW5hZ2VtZW50XCIsICgpID0+IHtcbiAgICAgIC8vIFRlc3QgYWRkVGFnXG4gICAgICByZXNvdXJjZUdyb3VwLmFkZFRhZyhcIm5ld1RhZ1wiLCBcIm5ld1ZhbHVlXCIpO1xuICAgICAgLy8gVGFncyBzaG91bGQgbm93IGJlIGFjY2Vzc2libGUgdmlhIHRoZSB0YWdzIGdldHRlclxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAudGFncy5uZXdUYWcpLnRvQmUoXCJuZXdWYWx1ZVwiKTtcbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnRhZ3MuZW52aXJvbm1lbnQpLnRvQmUoXCJ0ZXN0XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWRkIHRhZ3Mgd2hlbiBubyB0YWdzIGV4aXN0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnTm9UYWdzID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiTm9UYWdzUkdcIiwge1xuICAgICAgICBuYW1lOiBcIm5vLXRhZ3MtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgcmdOb1RhZ3MuYWRkVGFnKFwiZmlyc3RUYWdcIiwgXCJmaXJzdFZhbHVlXCIpO1xuICAgICAgZXhwZWN0KHJnTm9UYWdzLnRhZ3MuZmlyc3RUYWcpLnRvQmUoXCJmaXJzdFZhbHVlXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklnbm9yZSBDaGFuZ2VzIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGFwcGx5IGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiSWdub3JlQ2hhbmdlc1JHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCIsIFwibG9jYXRpb25cIl0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXApLnRvQmVJbnN0YW5jZU9mKFJlc291cmNlR3JvdXApO1xuICAgICAgLy8gVGhlIGlnbm9yZV9jaGFuZ2VzIHNob3VsZCBiZSBhcHBsaWVkIHRvIHRoZSB1bmRlcmx5aW5nIHRlcnJhZm9ybSByZXNvdXJjZVxuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgZmlsdGVyIG91dCBpbnZhbGlkIGlnbm9yZSBjaGFuZ2VzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJGaWx0ZXJlZElnbm9yZVJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCIsIFwibWFuYWdlZEJ5XCIsIFwibG9jYXRpb25cIl0sIC8vIG1hbmFnZWRCeSBzaG91bGQgYmUgZmlsdGVyZWRcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cCkudG9CZUluc3RhbmNlT2YoUmVzb3VyY2VHcm91cCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgZW1wdHkgaWdub3JlIGNoYW5nZXMgYXJyYXlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkVtcHR5SWdub3JlUkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwKS50b0JlSW5zdGFuY2VPZihSZXNvdXJjZUdyb3VwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJWZXJzaW9uIENvbXBhdGliaWxpdHlcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHdvcmsgd2l0aCBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCB2ZXJzaW9ucyA9IFtcIjIwMjQtMTEtMDFcIiwgXCIyMDI1LTAxLTAxXCIsIFwiMjAyNS0wMy0wMVwiXTtcblxuICAgICAgdmVyc2lvbnMuZm9yRWFjaCgodmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoXG4gICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgYFJHLSR7dmVyc2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYHRlc3QtcmctJHt2ZXJzaW9ufWAsXG4gICAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICAgIGFwaVZlcnNpb246IHZlcnNpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3QocmVzb3VyY2VHcm91cC5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUodmVyc2lvbik7XG4gICAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnNjaGVtYS52ZXJzaW9uKS50b0JlKHZlcnNpb24pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgc2NoZW1hIGRpZmZlcmVuY2VzIGFjcm9zcyB2ZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgICAvLyBBbGwgUmVzb3VyY2UgR3JvdXAgdmVyc2lvbnMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgY29yZSBzY2hlbWFcbiAgICAgIGNvbnN0IHZlcnNpb25zID0gW1wiMjAyNC0xMS0wMVwiLCBcIjIwMjUtMDEtMDFcIiwgXCIyMDI1LTAzLTAxXCJdO1xuXG4gICAgICB2ZXJzaW9ucy5mb3JFYWNoKCh2ZXJzaW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgICBgU2NoZW1hLSR7dmVyc2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYHNjaGVtYS10ZXN0LSR7dmVyc2lvbn1gLFxuICAgICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgICBhcGlWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgZXhwZWN0KHJlc291cmNlR3JvdXAuc2NoZW1hLnByb3BlcnRpZXMubG9jYXRpb24pLnRvQmVEZWZpbmVkKCk7XG4gICAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnNjaGVtYS5wcm9wZXJ0aWVzLnRhZ3MpLnRvQmVEZWZpbmVkKCk7XG4gICAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnNjaGVtYS5wcm9wZXJ0aWVzLm1hbmFnZWRCeSkudG9CZURlZmluZWQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkJhY2t3YXJkIENvbXBhdGliaWxpdHlcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCBvcmlnaW5hbCBHcm91cFByb3BzIGludGVyZmFjZVwiLCAoKSA9PiB7XG4gICAgICAvLyBUZXN0IHVzaW5nIHRoZSBkZXByZWNhdGVkIEdyb3VwIGV4cG9ydFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICAgIGNvbnN0IHsgR3JvdXAgfSA9IHJlcXVpcmUoXCIuLi9saWIvcmVzb3VyY2UtZ3JvdXBcIik7XG5cbiAgICAgIGNvbnN0IGdyb3VwID0gbmV3IEdyb3VwKHN0YWNrLCBcIkJhY2t3YXJkQ29tcGF0R3JvdXBcIiwge1xuICAgICAgICBuYW1lOiBcImNvbXBhdC10ZXN0XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICB0YWdzOiB7IGNvbXBhdGliaWxpdHk6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGdyb3VwKS50b0JlSW5zdGFuY2VPZihSZXNvdXJjZUdyb3VwKTtcbiAgICAgIGV4cGVjdChncm91cC5uYW1lKS50b0JlKFwiY29tcGF0LXRlc3RcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB3b3JrIHdpdGggZXhpc3RpbmcgUmVzb3VyY2VHcm91cCBwYXR0ZXJuc1wiLCAoKSA9PiB7XG4gICAgICAvLyBUZXN0IHBhdHRlcm5zIHRoYXQgd291bGQgaGF2ZSB3b3JrZWQgd2l0aCB2ZXJzaW9uLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkV4aXN0aW5nUGF0dGVyblwiLCB7XG4gICAgICAgIG5hbWU6IFwiZXhpc3RpbmctcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwid2VzdHVzMlwiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIGNvc3Q6IFwiY2VudGVyMVwiLFxuICAgICAgICB9LFxuICAgICAgICBtYW5hZ2VkQnk6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvbWFuYWdlbWVudFwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXNvdXJjZUdyb3VwLnByb3BzLnRhZ3MpLnRvRXF1YWwoe1xuICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgIGNvc3Q6IFwiY2VudGVyMVwiLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiRXJyb3IgSGFuZGxpbmdcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBpbnZhbGlkIEFQSSB2ZXJzaW9ucyBncmFjZWZ1bGx5XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkludmFsaWRBUElcIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIGFwaVZlcnNpb246IFwiaW52YWxpZC12ZXJzaW9uXCIsXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdyhcIlVuc3VwcG9ydGVkIEFQSSB2ZXJzaW9uICdpbnZhbGlkLXZlcnNpb24nXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIHZhbGlkYXRpb24gZXJyb3JzIHdoZW4gdmFsaWRhdGlvbiBpcyBlbmFibGVkXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlZhbGlkYXRpb25FcnJvclwiLCB7XG4gICAgICAgICAgbmFtZTogXCJcIiwgLy8gSW52YWxpZCBlbXB0eSBuYW1lXG4gICAgICAgICAgbG9jYXRpb246IFwiXCIsIC8vIEludmFsaWQgZW1wdHkgbG9jYXRpb25cbiAgICAgICAgICBlbmFibGVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pLnRvVGhyb3coXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3Vwc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBzY2hlbWEgcmVnaXN0cmF0aW9uIGVycm9ycyBncmFjZWZ1bGx5XCIsICgpID0+IHtcbiAgICAgIC8vIFRoZSBSZXNvdXJjZUdyb3VwIGNvbnN0cnVjdG9yIHNob3VsZCBoYW5kbGUgYWxyZWFkeS1yZWdpc3RlcmVkIHNjaGVtYXNcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlNjaGVtYVRlc3RcIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICB9KTtcbiAgICAgIH0pLm5vdC50b1Rocm93KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSlNJSSBDb21wbGlhbmNlXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBoYXZlIEpTSUktY29tcGxpYW50IGNvbnN0cnVjdG9yXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkpzaWlUZXN0XCIsIHtcbiAgICAgICAgICBuYW1lOiBcImpzaWktdGVzdFwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICB9KTtcbiAgICAgIH0pLm5vdC50b1Rocm93KCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYXZlIEpTSUktY29tcGxpYW50IHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIkpzaWlQcm9wc1wiLCB7XG4gICAgICAgIG5hbWU6IFwianNpaS1wcm9wc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QodHlwZW9mIHJlc291cmNlR3JvdXAuaWQpLnRvQmUoXCJzdHJpbmdcIik7XG4gICAgICBleHBlY3QodHlwZW9mIHJlc291cmNlR3JvdXAubmFtZSkudG9CZShcInN0cmluZ1wiKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgcmVzb3VyY2VHcm91cC5sb2NhdGlvbikudG9CZShcInN0cmluZ1wiKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgcmVzb3VyY2VHcm91cC50YWdzKS50b0JlKFwib2JqZWN0XCIpO1xuICAgICAgZXhwZWN0KHR5cGVvZiByZXNvdXJjZUdyb3VwLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcInN0cmluZ1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgSlNJSS1jb21wbGlhbnQgbWV0aG9kc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiSnNpaU1ldGhvZHNcIiwge1xuICAgICAgICBuYW1lOiBcImpzaWktbWV0aG9kc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QodHlwZW9mIHJlc291cmNlR3JvdXAuYWRkVGFnKS50b0JlKFwiZnVuY3Rpb25cIik7XG4gICAgICBleHBlY3QodHlwZW9mIHJlc291cmNlR3JvdXAubGF0ZXN0VmVyc2lvbikudG9CZShcImZ1bmN0aW9uXCIpO1xuICAgICAgZXhwZWN0KHR5cGVvZiByZXNvdXJjZUdyb3VwLnN1cHBvcnRlZFZlcnNpb25zKS50b0JlKFwiZnVuY3Rpb25cIik7XG4gICAgICBleHBlY3QodHlwZW9mIHJlc291cmNlR3JvdXAuYW5hbHl6ZU1pZ3JhdGlvblRvKS50b0JlKFwiZnVuY3Rpb25cIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzZXJpYWxpemUgY29tcGxleCBvYmplY3RzIGNvcnJlY3RseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiSnNpaVNlcmlhbGl6YXRpb25cIiwge1xuICAgICAgICBuYW1lOiBcImpzaWktc2VyaWFsaXphdGlvblwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGNvbXBsZXg6IFwidmFsdWVcIixcbiAgICAgICAgICBuZXN0ZWQ6IFwiZGF0YVwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFNob3VsZCBiZSBhYmxlIHRvIHNlcmlhbGl6ZSB2YWxpZGF0aW9uIHJlc3VsdHNcbiAgICAgIGV4cGVjdCgoKSA9PlxuICAgICAgICBKU09OLnN0cmluZ2lmeShyZXNvdXJjZUdyb3VwLnZhbGlkYXRpb25SZXN1bHQpLFxuICAgICAgKS5ub3QudG9UaHJvdygpO1xuXG4gICAgICAvLyBTaG91bGQgYmUgYWJsZSB0byBzZXJpYWxpemUgc2NoZW1hXG4gICAgICBleHBlY3QoKCkgPT4gSlNPTi5zdHJpbmdpZnkocmVzb3VyY2VHcm91cC5zY2hlbWEpKS5ub3QudG9UaHJvdygpO1xuXG4gICAgICAvLyBTaG91bGQgYmUgYWJsZSB0byBzZXJpYWxpemUgdmVyc2lvbiBjb25maWdcbiAgICAgIGV4cGVjdCgoKSA9PiBKU09OLnN0cmluZ2lmeShyZXNvdXJjZUdyb3VwLnZlcnNpb25Db25maWcpKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJzeW50aC10ZXN0XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICB0YWdzOiB7IHRlc3Q6IFwic3ludGhlc2lzXCIgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICBjb25zdCBzdGFja0NvbmZpZyA9IEpTT04ucGFyc2Uoc3ludGhlc2l6ZWQpO1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgd29yayBpbiBjb21wbGV4IENESyBjb25zdHJ1Y3RzXCIsICgpID0+IHtcbiAgICAgIGNsYXNzIENvbXBsZXhDb25zdHJ1Y3QgZXh0ZW5kcyBjZGt0bi5UZXJyYWZvcm1TdGFjayB7XG4gICAgICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGt0bi5BcHAsIGlkOiBzdHJpbmcpIHtcbiAgICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgICAgICAgLy8gQ3JlYXRlIG11bHRpcGxlIHJlc291cmNlIGdyb3Vwc1xuICAgICAgICAgIGNvbnN0IHJnMSA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsIFwiUHJpbWFyeVJHXCIsIHtcbiAgICAgICAgICAgIG5hbWU6IFwicHJpbWFyeS1yZ1wiLFxuICAgICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgICB0YWdzOiB7IHRpZXI6IFwicHJpbWFyeVwiIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCByZzIgPSBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcIlNlY29uZGFyeVJHXCIsIHtcbiAgICAgICAgICAgIG5hbWU6IFwic2Vjb25kYXJ5LXJnXCIsXG4gICAgICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgICAgIGFwaVZlcnNpb246IFwiMjAyNC0xMS0wMVwiLFxuICAgICAgICAgICAgdGFnczogeyB0aWVyOiBcInNlY29uZGFyeVwiIH0sXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICAvLyBDcmVhdGUgb3V0cHV0cyB0aGF0IHJlZmVyZW5jZSB0aGUgcmVzb3VyY2UgZ3JvdXBzXG4gICAgICAgICAgbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIlByaW1hcnlSR0lkXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiByZzEuaWQsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBuZXcgY2RrdG4uVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiU2Vjb25kYXJ5UkdJZFwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogcmcyLmlkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBDb21wbGV4Q29uc3RydWN0KGFwcCwgXCJDb21wbGV4U3RhY2tcIik7XG4gICAgICB9KS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG11bHRpcGxlIHJlc291cmNlIGdyb3VwcyBpbiB0aGUgc2FtZSBzdGFja1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZzEgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJSZXNvdXJjZUdyb3VwMVwiLCB7XG4gICAgICAgIG5hbWU6IFwicmctMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZzIgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJSZXNvdXJjZUdyb3VwMlwiLCB7XG4gICAgICAgIG5hbWU6IFwicmctMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI1LTAxLTAxXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJnMS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI1LTAzLTAxXCIpO1xuICAgICAgZXhwZWN0KHJnMi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI1LTAxLTAxXCIpO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlBlcmZvcm1hbmNlIGFuZCBDb2RlIFJlZHVjdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcmVkdWNlIGNvZGUgY29tcGxleGl0eSBjb21wYXJlZCB0byB2ZXJzaW9uLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1wiLCAoKSA9PiB7XG4gICAgICAvLyBUaGlzIHRlc3QgdmFsaWRhdGVzIHRoYXQgdGhlIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gaXMgc2ltcGxlclxuICAgICAgLy8gdGhhbiBtYWludGFpbmluZyBzZXBhcmF0ZSB2ZXJzaW9uLXNwZWNpZmljIGNsYXNzZXNcblxuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgICAgLy8gQ3JlYXRlIG11bHRpcGxlIHJlc291cmNlIGdyb3VwcyB3aXRoIGRpZmZlcmVudCB2ZXJzaW9uc1xuICAgICAgY29uc3QgcmVzb3VyY2VHcm91cHM6IFJlc291cmNlR3JvdXBbXSA9IFtdO1xuICAgICAgY29uc3QgdmVyc2lvbnMgPSBbXCIyMDI0LTExLTAxXCIsIFwiMjAyNS0wMS0wMVwiLCBcIjIwMjUtMDMtMDFcIl07XG5cbiAgICAgIHZlcnNpb25zLmZvckVhY2goKHZlcnNpb24sIGluZGV4KSA9PiB7XG4gICAgICAgIHJlc291cmNlR3JvdXBzLnB1c2goXG4gICAgICAgICAgbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIGBQZXJmb3JtYW5jZVRlc3Qke2luZGV4fWAsIHtcbiAgICAgICAgICAgIG5hbWU6IGBwZXJmLXRlc3QtJHtpbmRleH1gLFxuICAgICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgICBhcGlWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGVuZFRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgICBleHBlY3QocmVzb3VyY2VHcm91cHMpLnRvSGF2ZUxlbmd0aCgzKTtcbiAgICAgIGV4cGVjdChlbmRUaW1lIC0gc3RhcnRUaW1lKS50b0JlTGVzc1RoYW4oMTAwMCk7IC8vIFNob3VsZCBiZSBmYXN0XG5cbiAgICAgIC8vIFZlcmlmeSBhbGwgaW5zdGFuY2VzIGFyZSBjcmVhdGVkIGNvcnJlY3RseVxuICAgICAgcmVzb3VyY2VHcm91cHMuZm9yRWFjaCgocmcsIGluZGV4KSA9PiB7XG4gICAgICAgIGV4cGVjdChyZykudG9CZUluc3RhbmNlT2YoUmVzb3VyY2VHcm91cCk7XG4gICAgICAgIGV4cGVjdChyZy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUodmVyc2lvbnNbaW5kZXhdKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgY29kZSByZWR1Y3Rpb24gY2xhaW1zXCIsICgpID0+IHtcbiAgICAgIC8vIFRoaXMgdGVzdCBkZW1vbnN0cmF0ZXMgdGhhdCBhIHNpbmdsZSBjbGFzcyByZXBsYWNlcyBtdWx0aXBsZSB2ZXJzaW9uLXNwZWNpZmljIGNsYXNzZXNcbiAgICAgIC8vIFByZXZpb3VzIGltcGxlbWVudGF0aW9uIHdvdWxkIGhhdmUgcmVxdWlyZWQ6XG4gICAgICAvLyAtIFJlc291cmNlR3JvdXAyMDI0XzExXzAxIGNsYXNzXG4gICAgICAvLyAtIFJlc291cmNlR3JvdXAyMDI1XzAxXzAxIGNsYXNzXG4gICAgICAvLyAtIFJlc291cmNlR3JvdXAyMDI1XzAzXzAxIGNsYXNzXG4gICAgICAvLyAtIFNlcGFyYXRlIHRlc3QgZmlsZXMgZm9yIGVhY2hcbiAgICAgIC8vIC0gU2VwYXJhdGUgc2NoZW1hIGRlZmluaXRpb25zXG5cbiAgICAgIC8vIE5vdyB3ZSBoYXZlOlxuICAgICAgLy8gLSBTaW5nbGUgUmVzb3VyY2VHcm91cCBjbGFzc1xuICAgICAgLy8gLSBTaW5nbGUgdGVzdCBmaWxlXG4gICAgICAvLyAtIFVuaWZpZWQgc2NoZW1hIG1hbmFnZW1lbnRcblxuICAgICAgY29uc3QgdW5pZmllZENsYXNzID0gUmVzb3VyY2VHcm91cDtcbiAgICAgIGV4cGVjdCh1bmlmaWVkQ2xhc3MpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QodHlwZW9mIHVuaWZpZWRDbGFzcykudG9CZShcImZ1bmN0aW9uXCIpO1xuXG4gICAgICAvLyBDYW4gaGFuZGxlIGFsbCB2ZXJzaW9ucyB3aXRoIHRoZSBzYW1lIGludGVyZmFjZVxuICAgICAgY29uc3QgYWxsVmVyc2lvblRlc3RzID0gW1wiMjAyNC0xMS0wMVwiLCBcIjIwMjUtMDEtMDFcIiwgXCIyMDI1LTAzLTAxXCJdLm1hcChcbiAgICAgICAgKHZlcnNpb24sIGluZGV4KSA9PlxuICAgICAgICAgIG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBgQ29kZVJlZHVjdGlvbiR7aW5kZXh9YCwge1xuICAgICAgICAgICAgbmFtZTogYGNvZGUtcmVkdWN0aW9uLSR7aW5kZXh9YCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgICAgYXBpVmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChhbGxWZXJzaW9uVGVzdHMpLnRvSGF2ZUxlbmd0aCgzKTtcbiAgICAgIGFsbFZlcnNpb25UZXN0cy5mb3JFYWNoKChyZykgPT4ge1xuICAgICAgICBleHBlY3QocmcpLnRvQmVJbnN0YW5jZU9mKFJlc291cmNlR3JvdXApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* - Assignment at management group, subscription, resource group, or resource scope
|
|
19
19
|
* - JSII compliance for multi-language support
|
|
20
20
|
*/
|
|
21
|
-
import * as
|
|
21
|
+
import * as cdktn 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";
|
|
@@ -226,8 +226,8 @@ export declare class RoleAssignment extends AzapiResource {
|
|
|
226
226
|
* The input properties for this Role Assignment instance
|
|
227
227
|
*/
|
|
228
228
|
readonly props: RoleAssignmentProps;
|
|
229
|
-
readonly idOutput:
|
|
230
|
-
readonly nameOutput:
|
|
229
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
230
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
231
231
|
/**
|
|
232
232
|
* Creates a new Azure Role Assignment using the VersionedAzapiResource framework
|
|
233
233
|
*
|
|
@@ -24,7 +24,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
24
24
|
* - JSII compliance for multi-language support
|
|
25
25
|
*/
|
|
26
26
|
const crypto_1 = require("crypto");
|
|
27
|
-
const
|
|
27
|
+
const cdktn = require("cdktn");
|
|
28
28
|
const role_assignment_schemas_1 = require("./role-assignment-schemas");
|
|
29
29
|
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
30
30
|
/**
|
|
@@ -111,11 +111,11 @@ class RoleAssignment extends azapi_resource_1.AzapiResource {
|
|
|
111
111
|
this.props = props;
|
|
112
112
|
// Extract properties from the AZAPI resource outputs using Terraform interpolation
|
|
113
113
|
// Create Terraform outputs for easy access and referencing from other resources
|
|
114
|
-
this.idOutput = new
|
|
114
|
+
this.idOutput = new cdktn.TerraformOutput(this, "id", {
|
|
115
115
|
value: this.id,
|
|
116
116
|
description: "The ID of the Role Assignment",
|
|
117
117
|
});
|
|
118
|
-
this.nameOutput = new
|
|
118
|
+
this.nameOutput = new cdktn.TerraformOutput(this, "name", {
|
|
119
119
|
value: `\${${this.terraformResource.fqn}.name}`,
|
|
120
120
|
description: "The name of the Role Assignment",
|
|
121
121
|
});
|
|
@@ -262,8 +262,8 @@ class RoleAssignment extends azapi_resource_1.AzapiResource {
|
|
|
262
262
|
}
|
|
263
263
|
exports.RoleAssignment = RoleAssignment;
|
|
264
264
|
_a = JSII_RTTI_SYMBOL_1;
|
|
265
|
-
RoleAssignment[_a] = { fqn: "@microsoft/terraform-cdk-constructs.RoleAssignment", version: "
|
|
265
|
+
RoleAssignment[_a] = { fqn: "@microsoft/terraform-cdk-constructs.RoleAssignment", version: "2.2.0" };
|
|
266
266
|
(() => {
|
|
267
267
|
azapi_resource_1.AzapiResource.registerSchemas(role_assignment_schemas_1.ROLE_ASSIGNMENT_TYPE, role_assignment_schemas_1.ALL_ROLE_ASSIGNMENT_VERSIONS);
|
|
268
268
|
})();
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1hc3NpZ25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXJvbGVhc3NpZ25tZW50L2xpYi9yb2xlLWFzc2lnbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUVILG1DQUFvQztBQUNwQywrQkFBK0I7QUFFL0IsdUVBR21DO0FBQ25DLDhFQUdtRDtBQThKbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2REc7QUFDSCxNQUFhLGNBQWUsU0FBUSw4QkFBYTtJQWlCL0Msb0JBQW9CO0lBRXBCOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsb0VBQW9FO1FBQ3BFLHlFQUF5RTtRQUN6RSxxRUFBcUU7UUFDckUsNkRBQTZEO1FBQzdELE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDekQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsZ0JBQXVDLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixtRkFBbUY7UUFFbkYsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDcEQsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2QsV0FBVyxFQUFFLCtCQUErQjtTQUM3QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3hELEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFFB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SCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLHlCQUF5QjtJQUN6QixnRkFBZ0Y7SUFFaEY7OztPQUdHO0lBQ0ssbUJBQW1CO1FBQ3pCLCtFQUErRTtRQUMvRSwrRUFBK0U7UUFDL0UsTUFBTSxhQUFhLEdBQUc7WUFDcEIsa0NBQWtDO1lBQ2xDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7U0FDcEMsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1lBQzlDLGNBQWMsRUFBRSxhQUFhO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBcE5ILHdDQXFOQzs7O0FBcE5DO0lBQ0UsOEJBQWEsQ0FBQyxlQUFlLENBQzNCLDhDQUFvQixFQUNwQixzREFBNEIsQ0FDN0IsQ0FBQztBQUNKLENBQUMsR0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlmaWVkIEF6dXJlIFJvbGUgQXNzaWdubWVudCBpbXBsZW1lbnRhdGlvbiB1c2luZyBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBtYW5hZ2luZyBBenVyZSBSb2xlIEFzc2lnbm1lbnRzXG4gKiB1c2luZyB0aGUgQVpBUEkgcHJvdmlkZXIuIFJvbGUgYXNzaWdubWVudHMgZ3JhbnQgc3BlY2lmaWMgcGVybWlzc2lvbnMgKHJvbGVzKSB0byBzZWN1cml0eVxuICogcHJpbmNpcGFscyAodXNlcnMsIGdyb3Vwcywgc2VydmljZSBwcmluY2lwYWxzLCBtYW5hZ2VkIGlkZW50aXRpZXMpIGF0IGEgcGFydGljdWxhciBzY29wZS5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDIyLTA0LTAxIChBY3RpdmUsIExhdGVzdClcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBTdXBwb3J0IGZvciBhbGwgcHJpbmNpcGFsIHR5cGVzIChVc2VyLCBHcm91cCwgU2VydmljZVByaW5jaXBhbCwgRm9yZWlnbkdyb3VwLCBEZXZpY2UpXG4gKiAtIENvbmRpdGlvbmFsIHJvbGUgYXNzaWdubWVudHMgdXNpbmcgQUJBQyAoQXR0cmlidXRlLUJhc2VkIEFjY2VzcyBDb250cm9sKVxuICogLSBEZWxlZ2F0ZWQgbWFuYWdlZCBpZGVudGl0eSBzdXBwb3J0IGZvciBncm91cCBhc3NpZ25tZW50c1xuICogLSBBc3NpZ25tZW50IGF0IG1hbmFnZW1lbnQgZ3JvdXAsIHN1YnNjcmlwdGlvbiwgcmVzb3VyY2UgZ3JvdXAsIG9yIHJlc291cmNlIHNjb3BlXG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBTExfUk9MRV9BU1NJR05NRU5UX1ZFUlNJT05TLFxuICBST0xFX0FTU0lHTk1FTlRfVFlQRSxcbn0gZnJvbSBcIi4vcm9sZS1hc3NpZ25tZW50LXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIHVuaWZpZWQgQXp1cmUgUm9sZSBBc3NpZ25tZW50XG4gKlxuICogRXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMgd2l0aCBSb2xlIEFzc2lnbm1lbnQgc3BlY2lmaWMgcHJvcGVydGllcy5cbiAqXG4gKiAqKk5vdGUgb24gdGhlIGBuYW1lYCBwcm9wZXJ0eToqKiBXaGlsZSB0aGlzIGludGVyZmFjZSBpbmhlcml0cyB0aGUgYG5hbWVgIHByb3BlcnR5XG4gKiBmcm9tIEF6YXBpUmVzb3VyY2VQcm9wcywgaXQgaXMgbm90IHVzZWQgZm9yIHJvbGUgYXNzaWdubWVudHMuIEF6dXJlIHJvbGUgYXNzaWdubWVudHNcbiAqIHJlcXVpcmUgR1VJRCBmb3JtYXQgbmFtZXMsIHdoaWNoIGFyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUgY29uc3RydWN0LlxuICogQW55IHVzZXItcHJvdmlkZWQgbmFtZSB2YWx1ZSB3aWxsIGJlIGlnbm9yZWQgaW4gZmF2b3Igb2YgQXp1cmUncyBkZXRlcm1pbmlzdGljXG4gKiBHVUlEIGdlbmVyYXRpb24gYmFzZWQgb24gdGhlIGRlcGxveW1lbnQgY29udGV4dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb2xlQXNzaWdubWVudFByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSByb2xlIGRlZmluaXRpb24gSUQgdG8gYXNzaWduXG4gICAqIFRoaXMgY2FuIGJlIGEgYnVpbHQtaW4gb3IgY3VzdG9tIHJvbGUgZGVmaW5pdGlvblxuICAgKiBSZXF1aXJlZCBwcm9wZXJ0eVxuICAgKlxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMC9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZURlZmluaXRpb25zL2FjZGQ3MmE3LTMzODUtNDhlZi1iZDQyLWY2MDZmYmE4MWFlN1wiIChSZWFkZXIpXG4gICAqIEBleGFtcGxlIFwiL3Byb3ZpZGVycy9NaWNyb3NvZnQuQXV0aG9yaXphdGlvbi9yb2xlRGVmaW5pdGlvbnMvYjI0OTg4YWMtNjE4MC00MmEwLWFiODgtMjBmNzM4MmRkMjRjXCIgKENvbnRyaWJ1dG9yKVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZURlZmluaXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIElEIChvYmplY3QgSUQpIHRvIHdoaWNoIHRoZSByb2xlIGlzIGFzc2lnbmVkXG4gICAqIFRoaXMgY2FuIGJlIGEgdXNlciwgZ3JvdXAsIHNlcnZpY2UgcHJpbmNpcGFsLCBvciBtYW5hZ2VkIGlkZW50aXR5XG4gICAqIFJlcXVpcmVkIHByb3BlcnR5XG4gICAqXG4gICAqIEBleGFtcGxlIFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCJcbiAgICovXG4gIHJlYWRvbmx5IHByaW5jaXBhbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzY29wZSBhdCB3aGljaCB0aGUgcm9sZSBhc3NpZ25tZW50IGlzIGFwcGxpZWRcbiAgICogQ2FuIGJlIGEgbWFuYWdlbWVudCBncm91cCwgc3Vic2NyaXB0aW9uLCByZXNvdXJjZSBncm91cCwgb3IgcmVzb3VyY2VcbiAgICogUmVxdWlyZWQgcHJvcGVydHlcbiAgICpcbiAgICogQGV4YW1wbGUgXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5NYW5hZ2VtZW50L21hbmFnZW1lbnRHcm91cHMvbXktbWdcIlxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiXG4gICAqIEBleGFtcGxlIFwiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwL3Jlc291cmNlR3JvdXBzL3JnLW5hbWVcIlxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMC9yZXNvdXJjZUdyb3Vwcy9yZy1uYW1lL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvc3RvcmFnZS1uYW1lXCJcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHByaW5jaXBhbFxuICAgKiBTcGVjaWZpZXMgd2hhdCBraW5kIG9mIGlkZW50aXR5IGlzIGJlaW5nIGFzc2lnbmVkIHRoZSByb2xlXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAoQXp1cmUgd2lsbCBhdXRvLWRldGVjdClcbiAgICogQGV4YW1wbGUgXCJVc2VyXCIgLSBBbiBBenVyZSBBRCB1c2VyXG4gICAqIEBleGFtcGxlIFwiR3JvdXBcIiAtIEFuIEF6dXJlIEFEIGdyb3VwXG4gICAqIEBleGFtcGxlIFwiU2VydmljZVByaW5jaXBhbFwiIC0gQSBzZXJ2aWNlIHByaW5jaXBhbCAoYXBwbGljYXRpb24pXG4gICAqIEBleGFtcGxlIFwiRm9yZWlnbkdyb3VwXCIgLSBBIGdyb3VwIGZyb20gZXh0ZXJuYWwgZGlyZWN0b3J5XG4gICAqIEBleGFtcGxlIFwiRGV2aWNlXCIgLSBBIGRldmljZSBpZGVudGl0eVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpbmNpcGFsVHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvbGUgYXNzaWdubWVudCBkZXNjcmlwdGlvblxuICAgKiBQcm92aWRlcyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlIGFzc2lnbm1lbnQgd2FzIG1hZGVcbiAgICpcbiAgICogQGV4YW1wbGUgXCJHcmFudHMgcmVhZCBhY2Nlc3MgdG8gbW9uaXRvcmluZyB0ZWFtIGZvciByZXNvdXJjZSBkaWFnbm9zdGljc1wiXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbmRpdGlvbnMgb24gdGhlIHJvbGUgYXNzaWdubWVudFxuICAgKiBMaW1pdHMgdGhlIHJlc291cmNlcyBpdCBhcHBsaWVzIHRvIHVzaW5nIEFCQUMgZXhwcmVzc2lvbnNcbiAgICogUmVxdWlyZXMgY29uZGl0aW9uVmVyc2lvbiB0byBiZSBzZXQgd2hlbiB1c2VkXG4gICAqXG4gICAqIEBleGFtcGxlIFwiQFJlc291cmNlW01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9ibG9iU2VydmljZXMvY29udGFpbmVyczpuYW1lXSBTdHJpbmdFcXVhbHMgJ2xvZ3MnXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUgY29uZGl0aW9uIHN5bnRheFxuICAgKiBSZXF1aXJlZCB3aGVuIGNvbmRpdGlvbiBpcyBzcGVjaWZpZWRcbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBleGFtcGxlIFwiMi4wXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvblZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWxlZ2F0ZWQgQXp1cmUgUmVzb3VyY2UgSWQgd2hpY2ggY29udGFpbnMgYSBNYW5hZ2VkIElkZW50aXR5XG4gICAqIEFwcGxpY2FibGUgb25seSB3aGVuIHRoZSBwcmluY2lwYWxUeXBlIGlzIEdyb3VwXG4gICAqIFVzZWQgZm9yIHNjZW5hcmlvcyB3aGVyZSBhIGdyb3VwIGFzc2lnbm1lbnQgc2hvdWxkIHVzZSBhIHNwZWNpZmljIG1hbmFnZWQgaWRlbnRpdHlcbiAgICpcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5NYW5hZ2VkSWRlbnRpdHkvdXNlckFzc2lnbmVkSWRlbnRpdGllcy9pZGVudGl0eVwiXG4gICAqL1xuICByZWFkb25seSBkZWxlZ2F0ZWRNYW5hZ2VkSWRlbnRpdHlSZXNvdXJjZUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZWN5Y2xlIHJ1bGVzIHRvIGlnbm9yZSBjaGFuZ2VzXG4gICAqIEBleGFtcGxlIFtcImRlc2NyaXB0aW9uXCJdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVDaGFuZ2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBpbnRlcmZhY2UgZm9yIEF6dXJlIFJvbGUgQXNzaWdubWVudFxuICogVGhpcyBpcyByZXF1aXJlZCBmb3IgSlNJSSBjb21wbGlhbmNlIHRvIHN1cHBvcnQgbXVsdGktbGFuZ3VhZ2UgY29kZSBnZW5lcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9sZUFzc2lnbm1lbnRQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSByb2xlIGRlZmluaXRpb24gSURcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVEZWZpbml0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpbmNpcGFsSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNjb3BlIG9mIHRoZSByb2xlIGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHByaW5jaXBhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpbmNpcGFsVHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvbGUgYXNzaWdubWVudCBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25kaXRpb25zIG9uIHRoZSByb2xlIGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUgY29uZGl0aW9uIHN5bnRheFxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlbGVnYXRlZCBtYW5hZ2VkIGlkZW50aXR5IHJlc291cmNlIElEXG4gICAqL1xuICByZWFkb25seSBkZWxlZ2F0ZWRNYW5hZ2VkSWRlbnRpdHlSZXNvdXJjZUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgUm9sZSBBc3NpZ25tZW50IEFQSSBjYWxsc1xuICogVGhpcyBtYXRjaGVzIHRoZSBBenVyZSBSRVNUIEFQSSBzY2hlbWEgZm9yIHJvbGUgYXNzaWdubWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb2xlQXNzaWdubWVudEJvZHkge1xuICAvKipcbiAgICogVGhlIHByb3BlcnRpZXMgb2YgdGhlIHJvbGUgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllczogUm9sZUFzc2lnbm1lbnRQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFVuaWZpZWQgQXp1cmUgUm9sZSBBc3NpZ25tZW50IGltcGxlbWVudGF0aW9uXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHNpbmdsZSwgdmVyc2lvbi1hd2FyZSBpbXBsZW1lbnRhdGlvbiBmb3IgbWFuYWdpbmcgQXp1cmVcbiAqIFJvbGUgQXNzaWdubWVudHMuIEl0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uIHJlc29sdXRpb24sIHNjaGVtYSB2YWxpZGF0aW9uLFxuICogYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqICoqSW1wb3J0YW50IE5vdGVzOioqXG4gKiAtIFJvbGUgYXNzaWdubWVudHMgYXJlIHNjb3BlZCByZXNvdXJjZXMgZGVwbG95ZWQgYXQgbWFuYWdlbWVudCBncm91cCwgc3Vic2NyaXB0aW9uLFxuICogICByZXNvdXJjZSBncm91cCwgb3IgcmVzb3VyY2UgbGV2ZWwuIFRoZXkgZG8gbm90IGhhdmUgYSBsb2NhdGlvbiBwcm9wZXJ0eSBhcyB0aGV5XG4gKiAgIGFyZSBub3QgcmVnaW9uLXNwZWNpZmljLlxuICogLSBUaGUgYG5hbWVgIHByb3BlcnR5IChpbmhlcml0ZWQgZnJvbSBBemFwaVJlc291cmNlUHJvcHMpIGlzIG5vdCB1c2VkLiBBenVyZSBhdXRvbWF0aWNhbGx5XG4gKiAgIGdlbmVyYXRlcyBhIGRldGVybWluaXN0aWMgR1VJRCBmb3Igcm9sZSBhc3NpZ25tZW50IG5hbWVzIGJhc2VkIG9uIHRoZSBkZXBsb3ltZW50IGNvbnRleHQuXG4gKiAgIFRoaXMgZW5zdXJlcyBpZGVtcG90ZW50IGRlcGxveW1lbnRzIHdpdGhvdXQgZHVwbGljYXRlIHJvbGUgYXNzaWdubWVudHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIEJhc2ljIHJvbGUgYXNzaWdubWVudCAtIEFzc2lnbiBSZWFkZXIgcm9sZSB0byBhIHVzZXIgYXQgc3Vic2NyaXB0aW9uIHNjb3BlXG4gKlxuICogY29uc3QgYXNzaWdubWVudCA9IG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCBcInJlYWRlci1hc3NpZ25tZW50XCIsIHtcbiAqICAgcm9sZURlZmluaXRpb25JZDogXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5BdXRob3JpemF0aW9uL3JvbGVEZWZpbml0aW9ucy9hY2RkNzJhNy0zMzg1LTQ4ZWYtYmQ0Mi1mNjA2ZmJhODFhZTdcIixcbiAqICAgcHJpbmNpcGFsSWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gKiAgIHNjb3BlOiBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxuICogICBwcmluY2lwYWxUeXBlOiBcIlVzZXJcIixcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiBSZXNvdXJjZSBncm91cCBzY29wZWQgYXNzaWdubWVudCAtIEFzc2lnbiBDb250cmlidXRvciB0byBhIHNlcnZpY2UgcHJpbmNpcGFsXG4gKlxuICogY29uc3QgYXNzaWdubWVudCA9IG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCBcImNvbnRyaWJ1dG9yLWFzc2lnbm1lbnRcIiwge1xuICogICByb2xlRGVmaW5pdGlvbklkOiBcIi9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZURlZmluaXRpb25zL2IyNDk4OGFjLTYxODAtNDJhMC1hYjg4LTIwZjczODJkZDI0Y1wiLFxuICogICBwcmluY2lwYWxJZDogc2VydmljZVByaW5jaXBhbC5vYmplY3RJZCxcbiAqICAgc2NvcGU6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIHByaW5jaXBhbFR5cGU6IFwiU2VydmljZVByaW5jaXBhbFwiLFxuICogICBkZXNjcmlwdGlvbjogXCJHcmFudHMgY29udHJpYnV0b3IgYWNjZXNzIHRvIHRoZSBkZXBsb3ltZW50IHNlcnZpY2UgcHJpbmNpcGFsXCIsXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogQ29uZGl0aW9uYWwgYXNzaWdubWVudCB3aXRoIEFCQUMgLSBMaW1pdCBhY2Nlc3MgdG8gc3BlY2lmaWMgc3RvcmFnZSBjb250YWluZXJzXG4gKlxuICogY29uc3QgYXNzaWdubWVudCA9IG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCBcImNvbmRpdGlvbmFsLWFzc2lnbm1lbnRcIiwge1xuICogICByb2xlRGVmaW5pdGlvbklkOiBzdG9yYWdlUm9sZS5pZCxcbiAqICAgcHJpbmNpcGFsSWQ6IHVzZXIub2JqZWN0SWQsXG4gKiAgIHNjb3BlOiBzdG9yYWdlQWNjb3VudC5pZCxcbiAqICAgcHJpbmNpcGFsVHlwZTogXCJVc2VyXCIsXG4gKiAgIGNvbmRpdGlvbjogXCJAUmVzb3VyY2VbTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL2Jsb2JTZXJ2aWNlcy9jb250YWluZXJzOm5hbWVdIFN0cmluZ0VxdWFscyAnbG9ncydcIixcbiAqICAgY29uZGl0aW9uVmVyc2lvbjogXCIyLjBcIixcbiAqICAgZGVzY3JpcHRpb246IFwiR3JhbnRzIGFjY2VzcyBvbmx5IHRvIHRoZSBsb2dzIGNvbnRhaW5lclwiLFxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIE1hbmFnZW1lbnQgZ3JvdXAgc2NvcGVkIGFzc2lnbm1lbnQgLSBBc3NpZ24gUmVhZGVyIHJvbGUgYXQgbWFuYWdlbWVudCBncm91cCBsZXZlbFxuICpcbiAqIGNvbnN0IG1nQXNzaWdubWVudCA9IG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCBcIm1nLWFzc2lnbm1lbnRcIiwge1xuICogICByb2xlRGVmaW5pdGlvbklkOiBcIi9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZURlZmluaXRpb25zL2FjZGQ3MmE3LTMzODUtNDhlZi1iZDQyLWY2MDZmYmE4MWFlN1wiLFxuICogICBwcmluY2lwYWxJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAqICAgc2NvcGU6IFwiL3Byb3ZpZGVycy9NaWNyb3NvZnQuTWFuYWdlbWVudC9tYW5hZ2VtZW50R3JvdXBzL215LW1nXCIsXG4gKiAgIHByaW5jaXBhbFR5cGU6IFwiR3JvdXBcIixcbiAqICAgZGVzY3JpcHRpb246IFwiR3JhbnRzIHJlYWQgYWNjZXNzIGFjcm9zcyB0aGUgZW50aXJlIG1hbmFnZW1lbnQgZ3JvdXAgaGllcmFyY2h5XCIsXG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgUm9sZUFzc2lnbm1lbnQgZXh0ZW5kcyBBemFwaVJlc291cmNlIHtcbiAgc3RhdGljIHtcbiAgICBBemFwaVJlc291cmNlLnJlZ2lzdGVyU2NoZW1hcyhcbiAgICAgIFJPTEVfQVNTSUdOTUVOVF9UWVBFLFxuICAgICAgQUxMX1JPTEVfQVNTSUdOTUVOVF9WRVJTSU9OUyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBwcm9wZXJ0aWVzIGZvciB0aGlzIFJvbGUgQXNzaWdubWVudCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBSb2xlQXNzaWdubWVudFByb3BzO1xuXG4gIC8vIE91dHB1dCBwcm9wZXJ0aWVzIGZvciBlYXN5IGFjY2VzcyBhbmQgcmVmZXJlbmNpbmdcbiAgcHVibGljIHJlYWRvbmx5IGlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBBenVyZSBSb2xlIEFzc2lnbm1lbnQgdXNpbmcgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIFRoZSBjb25zdHJ1Y3RvciBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgcmVnaXN0cmF0aW9uLFxuICAgKiB2YWxpZGF0aW9uLCBhbmQgcmVzb3VyY2UgY3JlYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIFJvbGUgQXNzaWdubWVudFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvbGVBc3NpZ25tZW50UHJvcHMpIHtcbiAgICAvLyBBenVyZSBSb2xlIEFzc2lnbm1lbnRzIGRvIG5vdCBzdXBwb3J0IHRhZ3MgYXQgdGhlIHJlc291cmNlIGxldmVsLlxuICAgIC8vIFdlIG11c3Qgc3RyaXAgdGFncyBmcm9tIHByb3BzIGJlZm9yZSBwYXNzaW5nIHRvIHRoZSBwYXJlbnQgY29uc3RydWN0b3JcbiAgICAvLyB0byBwcmV2ZW50IHRoZSBBWkFQSSBwcm92aWRlciBmcm9tIGluY2x1ZGluZyB0YWdzIGluIHRoZSByZXNvdXJjZS5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY29uc3QgeyB0YWdzOiBfdW51c2VkVGFncywgLi4ucHJvcHNXaXRob3V0VGFncyB9ID0gcHJvcHM7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wc1dpdGhvdXRUYWdzIGFzIFJvbGVBc3NpZ25tZW50UHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgLy8gRXh0cmFjdCBwcm9wZXJ0aWVzIGZyb20gdGhlIEFaQVBJIHJlc291cmNlIG91dHB1dHMgdXNpbmcgVGVycmFmb3JtIGludGVycG9sYXRpb25cblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgUm9sZSBBc3NpZ25tZW50XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5uYW1lfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgUm9sZSBBc3NpZ25tZW50XCIsXG4gICAgfSk7XG5cbiAgICAvLyBPdmVycmlkZSBsb2dpY2FsIElEcyB0byBtYXRjaCBvcmlnaW5hbCBuYW1pbmcgY29udmVudGlvblxuICAgIHRoaXMuaWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuXG4gICAgLy8gQXBwbHkgaWdub3JlIGNoYW5nZXMgaWYgc3BlY2lmaWVkXG4gICAgdGhpcy5fYXBwbHlJZ25vcmVDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBSRVFVSVJFRCBBQlNUUkFDVCBNRVRIT0RTIEZST00gQXphcGlSZXNvdXJjZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkZWZhdWx0IEFQSSB2ZXJzaW9uIHRvIHVzZSB3aGVuIG5vIGV4cGxpY2l0IHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAqIFJldHVybnMgdGhlIG1vc3QgcmVjZW50IHN0YWJsZSB2ZXJzaW9uIGFzIHRoZSBkZWZhdWx0XG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCIyMDIyLTA0LTAxXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXp1cmUgcmVzb3VyY2UgdHlwZSBmb3IgUm9sZSBBc3NpZ25tZW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBST0xFX0FTU0lHTk1FTlRfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKiBVc2VzIHRoZSBmcmFtZXdvcmsncyBzY2hlbWEgcmVzb2x1dGlvbiB0byBnZXQgdGhlIGFwcHJvcHJpYXRlIHNjaGVtYVxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICogVHJhbnNmb3JtcyB0aGUgaW5wdXQgcHJvcGVydGllcyBpbnRvIHRoZSBKU09OIGZvcm1hdCBleHBlY3RlZCBieSBBenVyZSBSRVNUIEFQSVxuICAgKlxuICAgKiBOb3RlOiBSb2xlIGFzc2lnbm1lbnRzIGRvIG5vdCBoYXZlIGEgbG9jYXRpb24gcHJvcGVydHkgYXMgdGhleSBhcmVcbiAgICogc2NvcGVkIHJlc291cmNlcyAobWFuYWdlbWVudCBncm91cCwgc3Vic2NyaXB0aW9uLCByZXNvdXJjZSBncm91cCwgb3IgcmVzb3VyY2UgbGV2ZWwpLlxuICAgKiBUaGUgc2NvcGUgcHJvcGVydHkgaXMgTk9UIGluY2x1ZGVkIGluIHRoZSBib2R5IGFzIGl0J3MgcmVhZC1vbmx5IGFuZFxuICAgKiBhdXRvbWF0aWNhbGx5IGRlcml2ZWQgZnJvbSB0aGUgcGFyZW50SWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBSb2xlQXNzaWdubWVudFByb3BzO1xuICAgIHJldHVybiB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHJvbGVEZWZpbml0aW9uSWQ6IHR5cGVkUHJvcHMucm9sZURlZmluaXRpb25JZCxcbiAgICAgICAgcHJpbmNpcGFsSWQ6IHR5cGVkUHJvcHMucHJpbmNpcGFsSWQsXG4gICAgICAgIC8vIE5vdGU6IHNjb3BlIGlzIE5PVCBpbmNsdWRlZCBoZXJlIC0gaXQncyByZWFkLW9ubHkgYW5kIGRlcml2ZWQgZnJvbSBwYXJlbnRJZFxuICAgICAgICBwcmluY2lwYWxUeXBlOiB0eXBlZFByb3BzLnByaW5jaXBhbFR5cGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0eXBlZFByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBjb25kaXRpb246IHR5cGVkUHJvcHMuY29uZGl0aW9uLFxuICAgICAgICBjb25kaXRpb25WZXJzaW9uOiB0eXBlZFByb3BzLmNvbmRpdGlvblZlcnNpb24sXG4gICAgICAgIGRlbGVnYXRlZE1hbmFnZWRJZGVudGl0eVJlc291cmNlSWQ6XG4gICAgICAgICAgdHlwZWRQcm9wcy5kZWxlZ2F0ZWRNYW5hZ2VkSWRlbnRpdHlSZXNvdXJjZUlkLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgbmFtZSByZXNvbHV0aW9uIHRvIGdlbmVyYXRlIGRldGVybWluaXN0aWMgR1VJRHMgZm9yIHJvbGUgYXNzaWdubWVudHNcbiAgICpcbiAgICogUm9sZSBhc3NpZ25tZW50cyByZXF1aXJlIEdVSUQgZm9ybWF0IElEcy4gVGhpcyBpbXBsZW1lbnRhdGlvbiBnZW5lcmF0ZXMgYSBkZXRlcm1pbmlzdGljXG4gICAqIFVVSUQgYmFzZWQgb24gdGhlIHJvbGUgYXNzaWdubWVudCdzIGtleSBwcm9wZXJ0aWVzIHRvIGVuc3VyZTpcbiAgICogLSBTYW1lIEdVSUQgaXMgZ2VuZXJhdGVkIG9uIHJlLWRlcGxveW1lbnRzIHdpdGggc2FtZSBwYXJhbWV0ZXJzXG4gICAqIC0gSWRlbXBvdGVudCBkZXBsb3ltZW50cyAobm8gZHVwbGljYXRlIHJvbGUgYXNzaWdubWVudHMpXG4gICAqIC0gQ29uc2lzdGVudCBiZWhhdmlvciBhY3Jvc3MgZGVwbG95bWVudCBydW5zXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZU5hbWUocHJvcHM6IEF6YXBpUmVzb3VyY2VQcm9wcyk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIFJvbGVBc3NpZ25tZW50UHJvcHM7XG5cbiAgICAvLyBDcmVhdGUgYSBkZXRlcm1pbmlzdGljIGhhc2ggZnJvbSBrZXkgcm9sZSBhc3NpZ25tZW50IHByb3BlcnRpZXNcbiAgICBjb25zdCBoYXNoSW5wdXQgPSBbXG4gICAgICB0eXBlZFByb3BzLnNjb3BlLFxuICAgICAgdHlwZWRQcm9wcy5yb2xlRGVmaW5pdGlvbklkLFxuICAgICAgdHlwZWRQcm9wcy5wcmluY2lwYWxJZCxcbiAgICBdLmpvaW4oXCJ8XCIpO1xuXG4gICAgY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKGhhc2hJbnB1dCkuZGlnZXN0KFwiaGV4XCIpO1xuXG4gICAgLy8gQ29udmVydCBoYXNoIHRvIFVVSUQgZm9ybWF0ICg4LTQtNC00LTEyKVxuICAgIHJldHVybiBbXG4gICAgICBoYXNoLnN1YnN0cmluZygwLCA4KSxcbiAgICAgIGhhc2guc3Vic3RyaW5nKDgsIDEyKSxcbiAgICAgIGhhc2guc3Vic3RyaW5nKDEyLCAxNiksXG4gICAgICBoYXNoLnN1YnN0cmluZygxNiwgMjApLFxuICAgICAgaGFzaC5zdWJzdHJpbmcoMjAsIDMyKSxcbiAgICBdLmpvaW4oXCItXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBwYXJlbnQgSUQgcmVzb2x1dGlvbiB0byB1c2UgdGhlIHNjb3BlIGZyb20gcHJvcHNcbiAgICogUm9sZSBhc3NpZ25tZW50cyBhcmUgc2NvcGVkIHJlc291cmNlcyB3aGVyZSB0aGUgc2NvcGUgSVMgdGhlIHBhcmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmVQYXJlbnRJZChwcm9wczogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgUm9sZUFzc2lnbm1lbnRQcm9wcztcbiAgICByZXR1cm4gdHlwZWRQcm9wcy5zY29wZTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBST0xFIEFTU0lHTk1FTlQgT1BFUkFUSU9OU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZ1bGwgcmVzb3VyY2UgaWRlbnRpZmllciBmb3IgdXNlIGluIG90aGVyIEF6dXJlIHJlc291cmNlc1xuICAgKiBBbGlhcyBmb3IgdGhlIGlkIHByb3BlcnR5XG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJvbGUgZGVmaW5pdGlvbiBJRCB0aGlzIGFzc2lnbm1lbnQgcmVmZXJlbmNlc1xuICAgKi9cbiAgcHVibGljIGdldCByb2xlRGVmaW5pdGlvbklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucm9sZURlZmluaXRpb25JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByaW5jaXBhbCBJRCB0aGF0IHdhcyBncmFudGVkIHRoaXMgcm9sZVxuICAgKi9cbiAgcHVibGljIGdldCBwcmluY2lwYWxJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnByaW5jaXBhbElkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2NvcGUgb2YgdGhpcyByb2xlIGFzc2lnbm1lbnRcbiAgICovXG4gIHB1YmxpYyBnZXQgYXNzaWdubWVudFNjb3BlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2NvcGU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcmluY2lwYWwgdHlwZVxuICAgKi9cbiAgcHVibGljIGdldCBwcmluY2lwYWxUeXBlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucHJpbmNpcGFsVHlwZTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEUgSEVMUEVSIE1FVEhPRFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBwbGllcyBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXMgaWYgc3BlY2lmaWVkIGluIHByb3BzXG4gICAqIEFsd2F5cyBpbmNsdWRlcyBib2R5LnByb3BlcnRpZXMucm9sZURlZmluaXRpb25JZCB0byBoYW5kbGUgQXp1cmUgQVBJIGZvcm1hdCBub3JtYWxpemF0aW9uXG4gICAqL1xuICBwcml2YXRlIF9hcHBseUlnbm9yZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgLy8gQWx3YXlzIGlnbm9yZSByb2xlRGVmaW5pdGlvbklkIGZvcm1hdCBjaGFuZ2VzIGR1ZSB0byBBenVyZSBBUEkgbm9ybWFsaXphdGlvblxuICAgIC8vIEF6dXJlIHJldHVybnMgc3Vic2NyaXB0aW9uLXF1YWxpZmllZCBmb3JtYXQgYnV0IGFjY2VwdHMgbm9uLXF1YWxpZmllZCBmb3JtYXRcbiAgICBjb25zdCBpZ25vcmVDaGFuZ2VzID0gW1xuICAgICAgXCJib2R5LnByb3BlcnRpZXMucm9sZURlZmluaXRpb25JZFwiLFxuICAgICAgLi4uKHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyB8fCBbXSksXG4gICAgXTtcblxuICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2UuYWRkT3ZlcnJpZGUoXCJsaWZlY3ljbGVcIiwge1xuICAgICAgaWdub3JlX2NoYW5nZXM6IGlnbm9yZUNoYW5nZXMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1hc3NpZ25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXJvbGVhc3NpZ25tZW50L2xpYi9yb2xlLWFzc2lnbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUVILG1DQUFvQztBQUNwQywrQkFBK0I7QUFFL0IsdUVBR21DO0FBQ25DLDhFQUdtRDtBQThKbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2REc7QUFDSCxNQUFhLGNBQWUsU0FBUSw4QkFBYTtJQWlCL0Msb0JBQW9CO0lBRXBCOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsb0VBQW9FO1FBQ3BFLHlFQUF5RTtRQUN6RSxxRUFBcUU7UUFDckUsNkRBQTZEO1FBQzdELE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDekQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsZ0JBQXVDLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixtRkFBbUY7UUFFbkYsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDcEQsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2QsV0FBVyxFQUFFLCtCQUErQjtTQUM3QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3hELEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFFB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SCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLHlCQUF5QjtJQUN6QixnRkFBZ0Y7SUFFaEY7OztPQUdHO0lBQ0ssbUJBQW1CO1FBQ3pCLCtFQUErRTtRQUMvRSwrRUFBK0U7UUFDL0UsTUFBTSxhQUFhLEdBQUc7WUFDcEIsa0NBQWtDO1lBQ2xDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7U0FDcEMsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1lBQzlDLGNBQWMsRUFBRSxhQUFhO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBcE5ILHdDQXFOQzs7O0FBcE5DO0lBQ0UsOEJBQWEsQ0FBQyxlQUFlLENBQzNCLDhDQUFvQixFQUNwQixzREFBNEIsQ0FDN0IsQ0FBQztBQUNKLENBQUMsR0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlmaWVkIEF6dXJlIFJvbGUgQXNzaWdubWVudCBpbXBsZW1lbnRhdGlvbiB1c2luZyBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBtYW5hZ2luZyBBenVyZSBSb2xlIEFzc2lnbm1lbnRzXG4gKiB1c2luZyB0aGUgQVpBUEkgcHJvdmlkZXIuIFJvbGUgYXNzaWdubWVudHMgZ3JhbnQgc3BlY2lmaWMgcGVybWlzc2lvbnMgKHJvbGVzKSB0byBzZWN1cml0eVxuICogcHJpbmNpcGFscyAodXNlcnMsIGdyb3Vwcywgc2VydmljZSBwcmluY2lwYWxzLCBtYW5hZ2VkIGlkZW50aXRpZXMpIGF0IGEgcGFydGljdWxhciBzY29wZS5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDIyLTA0LTAxIChBY3RpdmUsIExhdGVzdClcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBTdXBwb3J0IGZvciBhbGwgcHJpbmNpcGFsIHR5cGVzIChVc2VyLCBHcm91cCwgU2VydmljZVByaW5jaXBhbCwgRm9yZWlnbkdyb3VwLCBEZXZpY2UpXG4gKiAtIENvbmRpdGlvbmFsIHJvbGUgYXNzaWdubWVudHMgdXNpbmcgQUJBQyAoQXR0cmlidXRlLUJhc2VkIEFjY2VzcyBDb250cm9sKVxuICogLSBEZWxlZ2F0ZWQgbWFuYWdlZCBpZGVudGl0eSBzdXBwb3J0IGZvciBncm91cCBhc3NpZ25tZW50c1xuICogLSBBc3NpZ25tZW50IGF0IG1hbmFnZW1lbnQgZ3JvdXAsIHN1YnNjcmlwdGlvbiwgcmVzb3VyY2UgZ3JvdXAsIG9yIHJlc291cmNlIHNjb3BlXG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgKiBhcyBjZGt0biBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBTExfUk9MRV9BU1NJR05NRU5UX1ZFUlNJT05TLFxuICBST0xFX0FTU0lHTk1FTlRfVFlQRSxcbn0gZnJvbSBcIi4vcm9sZS1hc3NpZ25tZW50LXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIHVuaWZpZWQgQXp1cmUgUm9sZSBBc3NpZ25tZW50XG4gKlxuICogRXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMgd2l0aCBSb2xlIEFzc2lnbm1lbnQgc3BlY2lmaWMgcHJvcGVydGllcy5cbiAqXG4gKiAqKk5vdGUgb24gdGhlIGBuYW1lYCBwcm9wZXJ0eToqKiBXaGlsZSB0aGlzIGludGVyZmFjZSBpbmhlcml0cyB0aGUgYG5hbWVgIHByb3BlcnR5XG4gKiBmcm9tIEF6YXBpUmVzb3VyY2VQcm9wcywgaXQgaXMgbm90IHVzZWQgZm9yIHJvbGUgYXNzaWdubWVudHMuIEF6dXJlIHJvbGUgYXNzaWdubWVudHNcbiAqIHJlcXVpcmUgR1VJRCBmb3JtYXQgbmFtZXMsIHdoaWNoIGFyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUgY29uc3RydWN0LlxuICogQW55IHVzZXItcHJvdmlkZWQgbmFtZSB2YWx1ZSB3aWxsIGJlIGlnbm9yZWQgaW4gZmF2b3Igb2YgQXp1cmUncyBkZXRlcm1pbmlzdGljXG4gKiBHVUlEIGdlbmVyYXRpb24gYmFzZWQgb24gdGhlIGRlcGxveW1lbnQgY29udGV4dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb2xlQXNzaWdubWVudFByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSByb2xlIGRlZmluaXRpb24gSUQgdG8gYXNzaWduXG4gICAqIFRoaXMgY2FuIGJlIGEgYnVpbHQtaW4gb3IgY3VzdG9tIHJvbGUgZGVmaW5pdGlvblxuICAgKiBSZXF1aXJlZCBwcm9wZXJ0eVxuICAgKlxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMC9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZURlZmluaXRpb25zL2FjZGQ3MmE3LTMzODUtNDhlZi1iZDQyLWY2MDZmYmE4MWFlN1wiIChSZWFkZXIpXG4gICAqIEBleGFtcGxlIFwiL3Byb3ZpZGVycy9NaWNyb3NvZnQuQXV0aG9yaXphdGlvbi9yb2xlRGVmaW5pdGlvbnMvYjI0OTg4YWMtNjE4MC00MmEwLWFiODgtMjBmNzM4MmRkMjRjXCIgKENvbnRyaWJ1dG9yKVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZURlZmluaXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIElEIChvYmplY3QgSUQpIHRvIHdoaWNoIHRoZSByb2xlIGlzIGFzc2lnbmVkXG4gICAqIFRoaXMgY2FuIGJlIGEgdXNlciwgZ3JvdXAsIHNlcnZpY2UgcHJpbmNpcGFsLCBvciBtYW5hZ2VkIGlkZW50aXR5XG4gICAqIFJlcXVpcmVkIHByb3BlcnR5XG4gICAqXG4gICAqIEBleGFtcGxlIFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCJcbiAgICovXG4gIHJlYWRvbmx5IHByaW5jaXBhbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzY29wZSBhdCB3aGljaCB0aGUgcm9sZSBhc3NpZ25tZW50IGlzIGFwcGxpZWRcbiAgICogQ2FuIGJlIGEgbWFuYWdlbWVudCBncm91cCwgc3Vic2NyaXB0aW9uLCByZXNvdXJjZSBncm91cCwgb3IgcmVzb3VyY2VcbiAgICogUmVxdWlyZWQgcHJvcGVydHlcbiAgICpcbiAgICogQGV4YW1wbGUgXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5NYW5hZ2VtZW50L21hbmFnZW1lbnRHcm91cHMvbXktbWdcIlxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiXG4gICAqIEBleGFtcGxlIFwiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwL3Jlc291cmNlR3JvdXBzL3JnLW5hbWVcIlxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMC9yZXNvdXJjZUdyb3Vwcy9yZy1uYW1lL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvc3RvcmFnZS1uYW1lXCJcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHByaW5jaXBhbFxuICAgKiBTcGVjaWZpZXMgd2hhdCBraW5kIG9mIGlkZW50aXR5IGlzIGJlaW5nIGFzc2lnbmVkIHRoZSByb2xlXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAoQXp1cmUgd2lsbCBhdXRvLWRldGVjdClcbiAgICogQGV4YW1wbGUgXCJVc2VyXCIgLSBBbiBBenVyZSBBRCB1c2VyXG4gICAqIEBleGFtcGxlIFwiR3JvdXBcIiAtIEFuIEF6dXJlIEFEIGdyb3VwXG4gICAqIEBleGFtcGxlIFwiU2VydmljZVByaW5jaXBhbFwiIC0gQSBzZXJ2aWNlIHByaW5jaXBhbCAoYXBwbGljYXRpb24pXG4gICAqIEBleGFtcGxlIFwiRm9yZWlnbkdyb3VwXCIgLSBBIGdyb3VwIGZyb20gZXh0ZXJuYWwgZGlyZWN0b3J5XG4gICAqIEBleGFtcGxlIFwiRGV2aWNlXCIgLSBBIGRldmljZSBpZGVudGl0eVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpbmNpcGFsVHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvbGUgYXNzaWdubWVudCBkZXNjcmlwdGlvblxuICAgKiBQcm92aWRlcyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlIGFzc2lnbm1lbnQgd2FzIG1hZGVcbiAgICpcbiAgICogQGV4YW1wbGUgXCJHcmFudHMgcmVhZCBhY2Nlc3MgdG8gbW9uaXRvcmluZyB0ZWFtIGZvciByZXNvdXJjZSBkaWFnbm9zdGljc1wiXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbmRpdGlvbnMgb24gdGhlIHJvbGUgYXNzaWdubWVudFxuICAgKiBMaW1pdHMgdGhlIHJlc291cmNlcyBpdCBhcHBsaWVzIHRvIHVzaW5nIEFCQUMgZXhwcmVzc2lvbnNcbiAgICogUmVxdWlyZXMgY29uZGl0aW9uVmVyc2lvbiB0byBiZSBzZXQgd2hlbiB1c2VkXG4gICAqXG4gICAqIEBleGFtcGxlIFwiQFJlc291cmNlW01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9ibG9iU2VydmljZXMvY29udGFpbmVyczpuYW1lXSBTdHJpbmdFcXVhbHMgJ2xvZ3MnXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUgY29uZGl0aW9uIHN5bnRheFxuICAgKiBSZXF1aXJlZCB3aGVuIGNvbmRpdGlvbiBpcyBzcGVjaWZpZWRcbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBleGFtcGxlIFwiMi4wXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvblZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWxlZ2F0ZWQgQXp1cmUgUmVzb3VyY2UgSWQgd2hpY2ggY29udGFpbnMgYSBNYW5hZ2VkIElkZW50aXR5XG4gICAqIEFwcGxpY2FibGUgb25seSB3aGVuIHRoZSBwcmluY2lwYWxUeXBlIGlzIEdyb3VwXG4gICAqIFVzZWQgZm9yIHNjZW5hcmlvcyB3aGVyZSBhIGdyb3VwIGFzc2lnbm1lbnQgc2hvdWxkIHVzZSBhIHNwZWNpZmljIG1hbmFnZWQgaWRlbnRpdHlcbiAgICpcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5NYW5hZ2VkSWRlbnRpdHkvdXNlckFzc2lnbmVkSWRlbnRpdGllcy9pZGVudGl0eVwiXG4gICAqL1xuICByZWFkb25seSBkZWxlZ2F0ZWRNYW5hZ2VkSWRlbnRpdHlSZXNvdXJjZUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZWN5Y2xlIHJ1bGVzIHRvIGlnbm9yZSBjaGFuZ2VzXG4gICAqIEBleGFtcGxlIFtcImRlc2NyaXB0aW9uXCJdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVDaGFuZ2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBpbnRlcmZhY2UgZm9yIEF6dXJlIFJvbGUgQXNzaWdubWVudFxuICogVGhpcyBpcyByZXF1aXJlZCBmb3IgSlNJSSBjb21wbGlhbmNlIHRvIHN1cHBvcnQgbXVsdGktbGFuZ3VhZ2UgY29kZSBnZW5lcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9sZUFzc2lnbm1lbnRQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSByb2xlIGRlZmluaXRpb24gSURcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVEZWZpbml0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpbmNpcGFsSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNjb3BlIG9mIHRoZSByb2xlIGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHByaW5jaXBhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpbmNpcGFsVHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvbGUgYXNzaWdubWVudCBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25kaXRpb25zIG9uIHRoZSByb2xlIGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUgY29uZGl0aW9uIHN5bnRheFxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlbGVnYXRlZCBtYW5hZ2VkIGlkZW50aXR5IHJlc291cmNlIElEXG4gICAqL1xuICByZWFkb25seSBkZWxlZ2F0ZWRNYW5hZ2VkSWRlbnRpdHlSZXNvdXJjZUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgUm9sZSBBc3NpZ25tZW50IEFQSSBjYWxsc1xuICogVGhpcyBtYXRjaGVzIHRoZSBBenVyZSBSRVNUIEFQSSBzY2hlbWEgZm9yIHJvbGUgYXNzaWdubWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb2xlQXNzaWdubWVudEJvZHkge1xuICAvKipcbiAgICogVGhlIHByb3BlcnRpZXMgb2YgdGhlIHJvbGUgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllczogUm9sZUFzc2lnbm1lbnRQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFVuaWZpZWQgQXp1cmUgUm9sZSBBc3NpZ25tZW50IGltcGxlbWVudGF0aW9uXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHNpbmdsZSwgdmVyc2lvbi1hd2FyZSBpbXBsZW1lbnRhdGlvbiBmb3IgbWFuYWdpbmcgQXp1cmVcbiAqIFJvbGUgQXNzaWdubWVudHMuIEl0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uIHJlc29sdXRpb24sIHNjaGVtYSB2YWxpZGF0aW9uLFxuICogYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqICoqSW1wb3J0YW50IE5vdGVzOioqXG4gKiAtIFJvbGUgYXNzaWdubWVudHMgYXJlIHNjb3BlZCByZXNvdXJjZXMgZGVwbG95ZWQgYXQgbWFuYWdlbWVudCBncm91cCwgc3Vic2NyaXB0aW9uLFxuICogICByZXNvdXJjZSBncm91cCwgb3IgcmVzb3VyY2UgbGV2ZWwuIFRoZXkgZG8gbm90IGhhdmUgYSBsb2NhdGlvbiBwcm9wZXJ0eSBhcyB0aGV5XG4gKiAgIGFyZSBub3QgcmVnaW9uLXNwZWNpZmljLlxuICogLSBUaGUgYG5hbWVgIHByb3BlcnR5IChpbmhlcml0ZWQgZnJvbSBBemFwaVJlc291cmNlUHJvcHMpIGlzIG5vdCB1c2VkLiBBenVyZSBhdXRvbWF0aWNhbGx5XG4gKiAgIGdlbmVyYXRlcyBhIGRldGVybWluaXN0aWMgR1VJRCBmb3Igcm9sZSBhc3NpZ25tZW50IG5hbWVzIGJhc2VkIG9uIHRoZSBkZXBsb3ltZW50IGNvbnRleHQuXG4gKiAgIFRoaXMgZW5zdXJlcyBpZGVtcG90ZW50IGRlcGxveW1lbnRzIHdpdGhvdXQgZHVwbGljYXRlIHJvbGUgYXNzaWdubWVudHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIEJhc2ljIHJvbGUgYXNzaWdubWVudCAtIEFzc2lnbiBSZWFkZXIgcm9sZSB0byBhIHVzZXIgYXQgc3Vic2NyaXB0aW9uIHNjb3BlXG4gKlxuICogY29uc3QgYXNzaWdubWVudCA9IG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCBcInJlYWRlci1hc3NpZ25tZW50XCIsIHtcbiAqICAgcm9sZURlZmluaXRpb25JZDogXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5BdXRob3JpemF0aW9uL3JvbGVEZWZpbml0aW9ucy9hY2RkNzJhNy0zMzg1LTQ4ZWYtYmQ0Mi1mNjA2ZmJhODFhZTdcIixcbiAqICAgcHJpbmNpcGFsSWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gKiAgIHNjb3BlOiBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxuICogICBwcmluY2lwYWxUeXBlOiBcIlVzZXJcIixcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiBSZXNvdXJjZSBncm91cCBzY29wZWQgYXNzaWdubWVudCAtIEFzc2lnbiBDb250cmlidXRvciB0byBhIHNlcnZpY2UgcHJpbmNpcGFsXG4gKlxuICogY29uc3QgYXNzaWdubWVudCA9IG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCBcImNvbnRyaWJ1dG9yLWFzc2lnbm1lbnRcIiwge1xuICogICByb2xlRGVmaW5pdGlvbklkOiBcIi9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZURlZmluaXRpb25zL2IyNDk4OGFjLTYxODAtNDJhMC1hYjg4LTIwZjczODJkZDI0Y1wiLFxuICogICBwcmluY2lwYWxJZDogc2VydmljZVByaW5jaXBhbC5vYmplY3RJZCxcbiAqICAgc2NvcGU6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIHByaW5jaXBhbFR5cGU6IFwiU2VydmljZVByaW5jaXBhbFwiLFxuICogICBkZXNjcmlwdGlvbjogXCJHcmFudHMgY29udHJpYnV0b3IgYWNjZXNzIHRvIHRoZSBkZXBsb3ltZW50IHNlcnZpY2UgcHJpbmNpcGFsXCIsXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogQ29uZGl0aW9uYWwgYXNzaWdubWVudCB3aXRoIEFCQUMgLSBMaW1pdCBhY2Nlc3MgdG8gc3BlY2lmaWMgc3RvcmFnZSBjb250YWluZXJzXG4gKlxuICogY29uc3QgYXNzaWdubWVudCA9IG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCBcImNvbmRpdGlvbmFsLWFzc2lnbm1lbnRcIiwge1xuICogICByb2xlRGVmaW5pdGlvbklkOiBzdG9yYWdlUm9sZS5pZCxcbiAqICAgcHJpbmNpcGFsSWQ6IHVzZXIub2JqZWN0SWQsXG4gKiAgIHNjb3BlOiBzdG9yYWdlQWNjb3VudC5pZCxcbiAqICAgcHJpbmNpcGFsVHlwZTogXCJVc2VyXCIsXG4gKiAgIGNvbmRpdGlvbjogXCJAUmVzb3VyY2VbTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL2Jsb2JTZXJ2aWNlcy9jb250YWluZXJzOm5hbWVdIFN0cmluZ0VxdWFscyAnbG9ncydcIixcbiAqICAgY29uZGl0aW9uVmVyc2lvbjogXCIyLjBcIixcbiAqICAgZGVzY3JpcHRpb246IFwiR3JhbnRzIGFjY2VzcyBvbmx5IHRvIHRoZSBsb2dzIGNvbnRhaW5lclwiLFxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIE1hbmFnZW1lbnQgZ3JvdXAgc2NvcGVkIGFzc2lnbm1lbnQgLSBBc3NpZ24gUmVhZGVyIHJvbGUgYXQgbWFuYWdlbWVudCBncm91cCBsZXZlbFxuICpcbiAqIGNvbnN0IG1nQXNzaWdubWVudCA9IG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCBcIm1nLWFzc2lnbm1lbnRcIiwge1xuICogICByb2xlRGVmaW5pdGlvbklkOiBcIi9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZURlZmluaXRpb25zL2FjZGQ3MmE3LTMzODUtNDhlZi1iZDQyLWY2MDZmYmE4MWFlN1wiLFxuICogICBwcmluY2lwYWxJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAqICAgc2NvcGU6IFwiL3Byb3ZpZGVycy9NaWNyb3NvZnQuTWFuYWdlbWVudC9tYW5hZ2VtZW50R3JvdXBzL215LW1nXCIsXG4gKiAgIHByaW5jaXBhbFR5cGU6IFwiR3JvdXBcIixcbiAqICAgZGVzY3JpcHRpb246IFwiR3JhbnRzIHJlYWQgYWNjZXNzIGFjcm9zcyB0aGUgZW50aXJlIG1hbmFnZW1lbnQgZ3JvdXAgaGllcmFyY2h5XCIsXG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgUm9sZUFzc2lnbm1lbnQgZXh0ZW5kcyBBemFwaVJlc291cmNlIHtcbiAgc3RhdGljIHtcbiAgICBBemFwaVJlc291cmNlLnJlZ2lzdGVyU2NoZW1hcyhcbiAgICAgIFJPTEVfQVNTSUdOTUVOVF9UWVBFLFxuICAgICAgQUxMX1JPTEVfQVNTSUdOTUVOVF9WRVJTSU9OUyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBwcm9wZXJ0aWVzIGZvciB0aGlzIFJvbGUgQXNzaWdubWVudCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBSb2xlQXNzaWdubWVudFByb3BzO1xuXG4gIC8vIE91dHB1dCBwcm9wZXJ0aWVzIGZvciBlYXN5IGFjY2VzcyBhbmQgcmVmZXJlbmNpbmdcbiAgcHVibGljIHJlYWRvbmx5IGlkT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBBenVyZSBSb2xlIEFzc2lnbm1lbnQgdXNpbmcgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIFRoZSBjb25zdHJ1Y3RvciBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgcmVnaXN0cmF0aW9uLFxuICAgKiB2YWxpZGF0aW9uLCBhbmQgcmVzb3VyY2UgY3JlYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIFJvbGUgQXNzaWdubWVudFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvbGVBc3NpZ25tZW50UHJvcHMpIHtcbiAgICAvLyBBenVyZSBSb2xlIEFzc2lnbm1lbnRzIGRvIG5vdCBzdXBwb3J0IHRhZ3MgYXQgdGhlIHJlc291cmNlIGxldmVsLlxuICAgIC8vIFdlIG11c3Qgc3RyaXAgdGFncyBmcm9tIHByb3BzIGJlZm9yZSBwYXNzaW5nIHRvIHRoZSBwYXJlbnQgY29uc3RydWN0b3JcbiAgICAvLyB0byBwcmV2ZW50IHRoZSBBWkFQSSBwcm92aWRlciBmcm9tIGluY2x1ZGluZyB0YWdzIGluIHRoZSByZXNvdXJjZS5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY29uc3QgeyB0YWdzOiBfdW51c2VkVGFncywgLi4ucHJvcHNXaXRob3V0VGFncyB9ID0gcHJvcHM7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wc1dpdGhvdXRUYWdzIGFzIFJvbGVBc3NpZ25tZW50UHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgLy8gRXh0cmFjdCBwcm9wZXJ0aWVzIGZyb20gdGhlIEFaQVBJIHJlc291cmNlIG91dHB1dHMgdXNpbmcgVGVycmFmb3JtIGludGVycG9sYXRpb25cblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0bi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgUm9sZSBBc3NpZ25tZW50XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdG4uVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5uYW1lfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgUm9sZSBBc3NpZ25tZW50XCIsXG4gICAgfSk7XG5cbiAgICAvLyBPdmVycmlkZSBsb2dpY2FsIElEcyB0byBtYXRjaCBvcmlnaW5hbCBuYW1pbmcgY29udmVudGlvblxuICAgIHRoaXMuaWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuXG4gICAgLy8gQXBwbHkgaWdub3JlIGNoYW5nZXMgaWYgc3BlY2lmaWVkXG4gICAgdGhpcy5fYXBwbHlJZ25vcmVDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBSRVFVSVJFRCBBQlNUUkFDVCBNRVRIT0RTIEZST00gQXphcGlSZXNvdXJjZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkZWZhdWx0IEFQSSB2ZXJzaW9uIHRvIHVzZSB3aGVuIG5vIGV4cGxpY2l0IHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAqIFJldHVybnMgdGhlIG1vc3QgcmVjZW50IHN0YWJsZSB2ZXJzaW9uIGFzIHRoZSBkZWZhdWx0XG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCIyMDIyLTA0LTAxXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXp1cmUgcmVzb3VyY2UgdHlwZSBmb3IgUm9sZSBBc3NpZ25tZW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBST0xFX0FTU0lHTk1FTlRfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKiBVc2VzIHRoZSBmcmFtZXdvcmsncyBzY2hlbWEgcmVzb2x1dGlvbiB0byBnZXQgdGhlIGFwcHJvcHJpYXRlIHNjaGVtYVxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICogVHJhbnNmb3JtcyB0aGUgaW5wdXQgcHJvcGVydGllcyBpbnRvIHRoZSBKU09OIGZvcm1hdCBleHBlY3RlZCBieSBBenVyZSBSRVNUIEFQSVxuICAgKlxuICAgKiBOb3RlOiBSb2xlIGFzc2lnbm1lbnRzIGRvIG5vdCBoYXZlIGEgbG9jYXRpb24gcHJvcGVydHkgYXMgdGhleSBhcmVcbiAgICogc2NvcGVkIHJlc291cmNlcyAobWFuYWdlbWVudCBncm91cCwgc3Vic2NyaXB0aW9uLCByZXNvdXJjZSBncm91cCwgb3IgcmVzb3VyY2UgbGV2ZWwpLlxuICAgKiBUaGUgc2NvcGUgcHJvcGVydHkgaXMgTk9UIGluY2x1ZGVkIGluIHRoZSBib2R5IGFzIGl0J3MgcmVhZC1vbmx5IGFuZFxuICAgKiBhdXRvbWF0aWNhbGx5IGRlcml2ZWQgZnJvbSB0aGUgcGFyZW50SWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBSb2xlQXNzaWdubWVudFByb3BzO1xuICAgIHJldHVybiB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHJvbGVEZWZpbml0aW9uSWQ6IHR5cGVkUHJvcHMucm9sZURlZmluaXRpb25JZCxcbiAgICAgICAgcHJpbmNpcGFsSWQ6IHR5cGVkUHJvcHMucHJpbmNpcGFsSWQsXG4gICAgICAgIC8vIE5vdGU6IHNjb3BlIGlzIE5PVCBpbmNsdWRlZCBoZXJlIC0gaXQncyByZWFkLW9ubHkgYW5kIGRlcml2ZWQgZnJvbSBwYXJlbnRJZFxuICAgICAgICBwcmluY2lwYWxUeXBlOiB0eXBlZFByb3BzLnByaW5jaXBhbFR5cGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0eXBlZFByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBjb25kaXRpb246IHR5cGVkUHJvcHMuY29uZGl0aW9uLFxuICAgICAgICBjb25kaXRpb25WZXJzaW9uOiB0eXBlZFByb3BzLmNvbmRpdGlvblZlcnNpb24sXG4gICAgICAgIGRlbGVnYXRlZE1hbmFnZWRJZGVudGl0eVJlc291cmNlSWQ6XG4gICAgICAgICAgdHlwZWRQcm9wcy5kZWxlZ2F0ZWRNYW5hZ2VkSWRlbnRpdHlSZXNvdXJjZUlkLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgbmFtZSByZXNvbHV0aW9uIHRvIGdlbmVyYXRlIGRldGVybWluaXN0aWMgR1VJRHMgZm9yIHJvbGUgYXNzaWdubWVudHNcbiAgICpcbiAgICogUm9sZSBhc3NpZ25tZW50cyByZXF1aXJlIEdVSUQgZm9ybWF0IElEcy4gVGhpcyBpbXBsZW1lbnRhdGlvbiBnZW5lcmF0ZXMgYSBkZXRlcm1pbmlzdGljXG4gICAqIFVVSUQgYmFzZWQgb24gdGhlIHJvbGUgYXNzaWdubWVudCdzIGtleSBwcm9wZXJ0aWVzIHRvIGVuc3VyZTpcbiAgICogLSBTYW1lIEdVSUQgaXMgZ2VuZXJhdGVkIG9uIHJlLWRlcGxveW1lbnRzIHdpdGggc2FtZSBwYXJhbWV0ZXJzXG4gICAqIC0gSWRlbXBvdGVudCBkZXBsb3ltZW50cyAobm8gZHVwbGljYXRlIHJvbGUgYXNzaWdubWVudHMpXG4gICAqIC0gQ29uc2lzdGVudCBiZWhhdmlvciBhY3Jvc3MgZGVwbG95bWVudCBydW5zXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZU5hbWUocHJvcHM6IEF6YXBpUmVzb3VyY2VQcm9wcyk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIFJvbGVBc3NpZ25tZW50UHJvcHM7XG5cbiAgICAvLyBDcmVhdGUgYSBkZXRlcm1pbmlzdGljIGhhc2ggZnJvbSBrZXkgcm9sZSBhc3NpZ25tZW50IHByb3BlcnRpZXNcbiAgICBjb25zdCBoYXNoSW5wdXQgPSBbXG4gICAgICB0eXBlZFByb3BzLnNjb3BlLFxuICAgICAgdHlwZWRQcm9wcy5yb2xlRGVmaW5pdGlvbklkLFxuICAgICAgdHlwZWRQcm9wcy5wcmluY2lwYWxJZCxcbiAgICBdLmpvaW4oXCJ8XCIpO1xuXG4gICAgY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKGhhc2hJbnB1dCkuZGlnZXN0KFwiaGV4XCIpO1xuXG4gICAgLy8gQ29udmVydCBoYXNoIHRvIFVVSUQgZm9ybWF0ICg4LTQtNC00LTEyKVxuICAgIHJldHVybiBbXG4gICAgICBoYXNoLnN1YnN0cmluZygwLCA4KSxcbiAgICAgIGhhc2guc3Vic3RyaW5nKDgsIDEyKSxcbiAgICAgIGhhc2guc3Vic3RyaW5nKDEyLCAxNiksXG4gICAgICBoYXNoLnN1YnN0cmluZygxNiwgMjApLFxuICAgICAgaGFzaC5zdWJzdHJpbmcoMjAsIDMyKSxcbiAgICBdLmpvaW4oXCItXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBwYXJlbnQgSUQgcmVzb2x1dGlvbiB0byB1c2UgdGhlIHNjb3BlIGZyb20gcHJvcHNcbiAgICogUm9sZSBhc3NpZ25tZW50cyBhcmUgc2NvcGVkIHJlc291cmNlcyB3aGVyZSB0aGUgc2NvcGUgSVMgdGhlIHBhcmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmVQYXJlbnRJZChwcm9wczogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgUm9sZUFzc2lnbm1lbnRQcm9wcztcbiAgICByZXR1cm4gdHlwZWRQcm9wcy5zY29wZTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBST0xFIEFTU0lHTk1FTlQgT1BFUkFUSU9OU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZ1bGwgcmVzb3VyY2UgaWRlbnRpZmllciBmb3IgdXNlIGluIG90aGVyIEF6dXJlIHJlc291cmNlc1xuICAgKiBBbGlhcyBmb3IgdGhlIGlkIHByb3BlcnR5XG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJvbGUgZGVmaW5pdGlvbiBJRCB0aGlzIGFzc2lnbm1lbnQgcmVmZXJlbmNlc1xuICAgKi9cbiAgcHVibGljIGdldCByb2xlRGVmaW5pdGlvbklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucm9sZURlZmluaXRpb25JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByaW5jaXBhbCBJRCB0aGF0IHdhcyBncmFudGVkIHRoaXMgcm9sZVxuICAgKi9cbiAgcHVibGljIGdldCBwcmluY2lwYWxJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnByaW5jaXBhbElkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2NvcGUgb2YgdGhpcyByb2xlIGFzc2lnbm1lbnRcbiAgICovXG4gIHB1YmxpYyBnZXQgYXNzaWdubWVudFNjb3BlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2NvcGU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcmluY2lwYWwgdHlwZVxuICAgKi9cbiAgcHVibGljIGdldCBwcmluY2lwYWxUeXBlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucHJpbmNpcGFsVHlwZTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEUgSEVMUEVSIE1FVEhPRFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBwbGllcyBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXMgaWYgc3BlY2lmaWVkIGluIHByb3BzXG4gICAqIEFsd2F5cyBpbmNsdWRlcyBib2R5LnByb3BlcnRpZXMucm9sZURlZmluaXRpb25JZCB0byBoYW5kbGUgQXp1cmUgQVBJIGZvcm1hdCBub3JtYWxpemF0aW9uXG4gICAqL1xuICBwcml2YXRlIF9hcHBseUlnbm9yZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgLy8gQWx3YXlzIGlnbm9yZSByb2xlRGVmaW5pdGlvbklkIGZvcm1hdCBjaGFuZ2VzIGR1ZSB0byBBenVyZSBBUEkgbm9ybWFsaXphdGlvblxuICAgIC8vIEF6dXJlIHJldHVybnMgc3Vic2NyaXB0aW9uLXF1YWxpZmllZCBmb3JtYXQgYnV0IGFjY2VwdHMgbm9uLXF1YWxpZmllZCBmb3JtYXRcbiAgICBjb25zdCBpZ25vcmVDaGFuZ2VzID0gW1xuICAgICAgXCJib2R5LnByb3BlcnRpZXMucm9sZURlZmluaXRpb25JZFwiLFxuICAgICAgLi4uKHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyB8fCBbXSksXG4gICAgXTtcblxuICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2UuYWRkT3ZlcnJpZGUoXCJsaWZlY3ljbGVcIiwge1xuICAgICAgaWdub3JlX2NoYW5nZXM6IGlnbm9yZUNoYW5nZXMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
* Run with: npm run integration:nostream
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
const
|
|
15
|
-
require("
|
|
14
|
+
const cdktn_1 = require("cdktn");
|
|
15
|
+
require("cdktn/lib/testing/adapters/jest");
|
|
16
16
|
const child_process_1 = require("child_process");
|
|
17
17
|
const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
|
|
18
18
|
const testing_1 = require("../../testing");
|
|
@@ -88,9 +88,9 @@ class RoleAssignmentExampleStack extends testing_1.BaseTestStack {
|
|
|
88
88
|
}
|
|
89
89
|
describe("Role Assignment Integration Test", () => {
|
|
90
90
|
it("should deploy, validate idempotency, and cleanup role assignment resources", () => {
|
|
91
|
-
const app =
|
|
91
|
+
const app = cdktn_1.Testing.app();
|
|
92
92
|
const stack = new RoleAssignmentExampleStack(app, "test-role-assignment");
|
|
93
|
-
const synthesized =
|
|
93
|
+
const synthesized = cdktn_1.Testing.fullSynth(stack);
|
|
94
94
|
// This will:
|
|
95
95
|
// 1. Run terraform apply to deploy resources (role assignments)
|
|
96
96
|
// 2. Run terraform plan to check idempotency (no changes expected)
|
|
@@ -98,4 +98,4 @@ describe("Role Assignment Integration Test", () => {
|
|
|
98
98
|
(0, testing_1.TerraformApplyCheckAndDestroy)(synthesized, { verifyCleanup: true });
|
|
99
99
|
}, 600000); // 10 minute timeout for deployment and cleanup
|
|
100
100
|
});
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1hc3NpZ25tZW50LmludGVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXJvbGVhc3NpZ25tZW50L3Rlc3Qvcm9sZS1hc3NpZ25tZW50LmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHOztBQUVILGlDQUFnQztBQUVoQywyQ0FBeUM7QUFDekMsaURBQXlDO0FBQ3pDLGtGQUFvRjtBQUNwRiwyQ0FBNkU7QUFDN0UseURBQTZEO0FBQzdELDREQUF3RDtBQUV4RCx3REFBd0Q7QUFDeEQsTUFBTSxZQUFZLEdBQUcsSUFBSSwwQkFBZSxDQUFDLDZCQUE2QixFQUFFO0lBQ3RFLFdBQVcsRUFBRSxDQUFDO0NBQ2YsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLDBCQUEyQixTQUFRLHVCQUFhO0lBQ3BELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsY0FBYyxFQUFFO2dCQUNkLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVztnQkFDckMsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxhQUFhLEVBQUUsWUFBWSxDQUFDLGFBQWE7YUFDMUM7U0FDRixDQUFDLENBQUM7UUFFSCwyQkFBMkI7UUFDM0IsSUFBSSx3QkFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckMsNkVBQTZFO1FBQzdFLElBQUksY0FBc0IsQ0FBQztRQUMzQixJQUFJLENBQUM7WUFDSCxjQUFjO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CO29CQUMvQixJQUFBLHdCQUFRLEVBQUMsbUNBQW1DLEVBQUU7d0JBQzVDLFFBQVEsRUFBRSxPQUFPO3FCQUNsQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxLQUFLLENBQ2IsdUlBQXVJLENBQ3hJLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsY0FBYyxFQUFFLENBQUM7UUFFN0QsMEVBQTBFO1FBQzFFLHNFQUFzRTtRQUN0RSxNQUFNLFdBQVcsR0FDZixPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQjtZQUNqQyxzQ0FBc0MsQ0FBQztRQUV6QyxxQ0FBcUM7UUFDckMsTUFBTSxZQUFZLEdBQ2hCLHlGQUF5RixDQUFDO1FBQzVGLE1BQU0saUJBQWlCLEdBQ3JCLHlGQUF5RixDQUFDO1FBRTVGLHNEQUFzRDtRQUN0RCxnRkFBZ0Y7UUFDaEYsSUFBSSxnQ0FBYyxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUM1QyxnQkFBZ0IsRUFBRSxZQUFZO1lBQzlCLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsYUFBYSxFQUFFLGtCQUFrQjtZQUNqQyxXQUFXLEVBQUUsZ0RBQWdEO1lBQzdELElBQUksRUFBRTtnQkFDSixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixJQUFJLEVBQUUsUUFBUTthQUNmO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsNEVBQTRFO1FBQzVFLGdGQUFnRjtRQUNoRixJQUFJLGdDQUFjLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQ2pELGdCQUFnQixFQUFFLGlCQUFpQjtZQUNuQyxXQUFXLEVBQUUsV0FBVztZQUN4QixLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLGFBQWEsRUFBRSxrQkFBa0I7WUFDakMsV0FBVyxFQUNULDJHQUEyRztZQUM3RyxJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsSUFBSSxFQUFFLGFBQWE7YUFDcEI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxRQUFRLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO0lBQ2hELEVBQUUsQ0FBQyw0RUFBNEUsRUFBRSxHQUFHLEVBQUU7UUFDcEYsTUFBTSxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksMEJBQTBCLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDMUUsTUFBTSxXQUFXLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFhO1FBQ2IsZ0VBQWdFO1FBQ2hFLG1FQUFtRTtRQUNuRSxnREFBZ0Q7UUFDaEQsSUFBQSx1Q0FBNkIsRUFBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQywrQ0FBK0M7QUFDN0QsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVncmF0aW9uIHRlc3QgZm9yIEF6dXJlIFJvbGUgQXNzaWdubWVudFxuICpcbiAqIFRoaXMgdGVzdCBkZW1vbnN0cmF0ZXMgYmFzaWMgdXNhZ2Ugb2YgdGhlIFJvbGVBc3NpZ25tZW50IGNvbnN0cnVjdFxuICogYW5kIHZhbGlkYXRlcyBkZXBsb3ltZW50LCBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAuXG4gKlxuICogVGhlIHRlc3QgYXNzaWducyBidWlsdC1pbiBSZWFkZXIgcm9sZSB0byBhIHRlc3QgcHJpbmNpcGFsXG4gKiBhdCBzdWJzY3JpcHRpb24gc2NvcGUuXG4gKlxuICogUnVuIHdpdGg6IG5wbSBydW4gaW50ZWdyYXRpb246bm9zdHJlYW1cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IFwiY2RrdG4vbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgQXphcGlQcm92aWRlciB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9wcm92aWRlcnMtYXphcGkvcHJvdmlkZXJcIjtcbmltcG9ydCB7IEJhc2VUZXN0U3RhY2ssIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95IH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IFRlc3RSdW5NZXRhZGF0YSB9IGZyb20gXCIuLi8uLi90ZXN0aW5nL2xpYi9tZXRhZGF0YVwiO1xuaW1wb3J0IHsgUm9sZUFzc2lnbm1lbnQgfSBmcm9tIFwiLi4vbGliL3JvbGUtYXNzaWdubWVudFwiO1xuXG4vLyBHZW5lcmF0ZSB1bmlxdWUgdGVzdCBydW4gbWV0YWRhdGEgZm9yIHRoaXMgdGVzdCBzdWl0ZVxuY29uc3QgdGVzdE1ldGFkYXRhID0gbmV3IFRlc3RSdW5NZXRhZGF0YShcInJvbGUtYXNzaWdubWVudC1pbnRlZ3JhdGlvblwiLCB7XG4gIG1heEFnZUhvdXJzOiA0LFxufSk7XG5cbi8qKlxuICogRXhhbXBsZSBzdGFjayBkZW1vbnN0cmF0aW5nIFJvbGUgQXNzaWdubWVudCB1c2FnZVxuICovXG5jbGFzcyBSb2xlQXNzaWdubWVudEV4YW1wbGVTdGFjayBleHRlbmRzIEJhc2VUZXN0U3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0ZXN0UnVuT3B0aW9uczoge1xuICAgICAgICBtYXhBZ2VIb3VyczogdGVzdE1ldGFkYXRhLm1heEFnZUhvdXJzLFxuICAgICAgICBhdXRvQ2xlYW51cDogdGVzdE1ldGFkYXRhLmF1dG9DbGVhbnVwLFxuICAgICAgICBjbGVhbnVwUG9saWN5OiB0ZXN0TWV0YWRhdGEuY2xlYW51cFBvbGljeSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBDb25maWd1cmUgQVpBUEkgcHJvdmlkZXJcbiAgICBuZXcgQXphcGlQcm92aWRlcih0aGlzLCBcImF6YXBpXCIsIHt9KTtcblxuICAgIC8vIEdldCB0aGUgc3Vic2NyaXB0aW9uIElEIGR5bmFtaWNhbGx5IGZyb20gQXp1cmUgQ0xJIG9yIGVudmlyb25tZW50IHZhcmlhYmxlXG4gICAgbGV0IHN1YnNjcmlwdGlvbklkOiBzdHJpbmc7XG4gICAgdHJ5IHtcbiAgICAgIHN1YnNjcmlwdGlvbklkID1cbiAgICAgICAgcHJvY2Vzcy5lbnYuQVJNX1NVQlNDUklQVElPTl9JRCB8fFxuICAgICAgICBleGVjU3luYyhcImF6IGFjY291bnQgc2hvdyAtLXF1ZXJ5IGlkIC1vIHRzdlwiLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgfSkudHJpbSgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiRmFpbGVkIHRvIGdldCBBenVyZSBzdWJzY3JpcHRpb24gSUQuIFBsZWFzZSBlbnN1cmUgeW91IGFyZSBsb2dnZWQgaW4gd2l0aCAnYXogbG9naW4nIG9yIHNldCBBUk1fU1VCU0NSSVBUSU9OX0lEIGVudmlyb25tZW50IHZhcmlhYmxlLlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uU2NvcGUgPSBgL3N1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb25JZH1gO1xuXG4gICAgLy8gR2V0IHRlc3QgcHJpbmNpcGFsIElEIGZyb20gZW52aXJvbm1lbnQgKHJlcXVpcmVkIGZvciBpbnRlZ3JhdGlvbiB0ZXN0cylcbiAgICAvLyBUaGlzIHNob3VsZCBiZSB0aGUgT2JqZWN0IElEIG9mIGEgdXNlciwgZ3JvdXAsIG9yIHNlcnZpY2UgcHJpbmNpcGFsXG4gICAgY29uc3QgcHJpbmNpcGFsSWQgPVxuICAgICAgcHJvY2Vzcy5lbnYuQVJNX1RFU1RfUFJJTkNJUEFMX0lEIHx8XG4gICAgICBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMVwiO1xuXG4gICAgLy8gQnVpbHQtaW4gQXp1cmUgcm9sZSBkZWZpbml0aW9uIElEc1xuICAgIGNvbnN0IHJlYWRlclJvbGVJZCA9XG4gICAgICBcIi9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcm9sZURlZmluaXRpb25zL2FjZGQ3MmE3LTMzODUtNDhlZi1iZDQyLWY2MDZmYmE4MWFlN1wiO1xuICAgIGNvbnN0IGNvbnRyaWJ1dG9yUm9sZUlkID1cbiAgICAgIFwiL3Byb3ZpZGVycy9NaWNyb3NvZnQuQXV0aG9yaXphdGlvbi9yb2xlRGVmaW5pdGlvbnMvYjI0OTg4YWMtNjE4MC00MmEwLWFiODgtMjBmNzM4MmRkMjRjXCI7XG5cbiAgICAvLyBFeGFtcGxlIDE6IEFzc2lnbiBSZWFkZXIgcm9sZSBhdCBzdWJzY3JpcHRpb24gc2NvcGVcbiAgICAvLyBOb3RlOiBuYW1lIGlzIG5vdCBuZWVkZWQgLSBBenVyZSBnZW5lcmF0ZXMgYSBkZXRlcm1pbmlzdGljIEdVSUQgYXV0b21hdGljYWxseVxuICAgIG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCBcInJlYWRlci1hc3NpZ25tZW50XCIsIHtcbiAgICAgIHJvbGVEZWZpbml0aW9uSWQ6IHJlYWRlclJvbGVJZCxcbiAgICAgIHByaW5jaXBhbElkOiBwcmluY2lwYWxJZCxcbiAgICAgIHNjb3BlOiBzdWJzY3JpcHRpb25TY29wZSxcbiAgICAgIHByaW5jaXBhbFR5cGU6IFwiU2VydmljZVByaW5jaXBhbFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUmVhZGVyIHJvbGUgYXNzaWdubWVudCBmb3IgaW50ZWdyYXRpb24gdGVzdGluZ1wiLFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgICAgZXhhbXBsZTogXCJiYXNpY1wiLFxuICAgICAgICByb2xlOiBcInJlYWRlclwiLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEV4YW1wbGUgMjogQXNzaWduIENvbnRyaWJ1dG9yIHJvbGUgYXQgc3Vic2NyaXB0aW9uIHNjb3BlIHdpdGggZGVzY3JpcHRpb25cbiAgICAvLyBOb3RlOiBuYW1lIGlzIG5vdCBuZWVkZWQgLSBBenVyZSBnZW5lcmF0ZXMgYSBkZXRlcm1pbmlzdGljIEdVSUQgYXV0b21hdGljYWxseVxuICAgIG5ldyBSb2xlQXNzaWdubWVudCh0aGlzLCBcImNvbnRyaWJ1dG9yLWFzc2lnbm1lbnRcIiwge1xuICAgICAgcm9sZURlZmluaXRpb25JZDogY29udHJpYnV0b3JSb2xlSWQsXG4gICAgICBwcmluY2lwYWxJZDogcHJpbmNpcGFsSWQsXG4gICAgICBzY29wZTogc3Vic2NyaXB0aW9uU2NvcGUsXG4gICAgICBwcmluY2lwYWxUeXBlOiBcIlNlcnZpY2VQcmluY2lwYWxcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkNvbnRyaWJ1dG9yIHJvbGUgYXNzaWdubWVudCBmb3IgaW50ZWdyYXRpb24gdGVzdGluZyAtIGFsbG93cyByZXNvdXJjZSBtYW5hZ2VtZW50IGJ1dCBub3Qgcm9sZSBhc3NpZ25tZW50c1wiLFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgICAgZXhhbXBsZTogXCJhZHZhbmNlZFwiLFxuICAgICAgICByb2xlOiBcImNvbnRyaWJ1dG9yXCIsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmRlc2NyaWJlKFwiUm9sZSBBc3NpZ25tZW50IEludGVncmF0aW9uIFRlc3RcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBkZXBsb3ksIHZhbGlkYXRlIGlkZW1wb3RlbmN5LCBhbmQgY2xlYW51cCByb2xlIGFzc2lnbm1lbnQgcmVzb3VyY2VzXCIsICgpID0+IHtcbiAgICBjb25zdCBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IFJvbGVBc3NpZ25tZW50RXhhbXBsZVN0YWNrKGFwcCwgXCJ0ZXN0LXJvbGUtYXNzaWdubWVudFwiKTtcbiAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3RpbmcuZnVsbFN5bnRoKHN0YWNrKTtcblxuICAgIC8vIFRoaXMgd2lsbDpcbiAgICAvLyAxLiBSdW4gdGVycmFmb3JtIGFwcGx5IHRvIGRlcGxveSByZXNvdXJjZXMgKHJvbGUgYXNzaWdubWVudHMpXG4gICAgLy8gMi4gUnVuIHRlcnJhZm9ybSBwbGFuIHRvIGNoZWNrIGlkZW1wb3RlbmN5IChubyBjaGFuZ2VzIGV4cGVjdGVkKVxuICAgIC8vIDMuIFJ1biB0ZXJyYWZvcm0gZGVzdHJveSB0byBjbGVhbnVwIHJlc291cmNlc1xuICAgIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95KHN5bnRoZXNpemVkLCB7IHZlcmlmeUNsZWFudXA6IHRydWUgfSk7XG4gIH0sIDYwMDAwMCk7IC8vIDEwIG1pbnV0ZSB0aW1lb3V0IGZvciBkZXBsb3ltZW50IGFuZCBjbGVhbnVwXG59KTtcbiJdfQ==
|