@pwrdrvr/microapps-cdk 0.3.3-alpha.1 → 0.3.4
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 +240 -123
- package/API.md +109 -40
- package/changelog.md +1 -1
- package/lib/MicroApps.d.ts +33 -4
- package/lib/MicroApps.d.ts.map +1 -1
- package/lib/MicroApps.js +22 -16
- package/lib/MicroAppsAPIGwy.js +1 -1
- package/lib/MicroAppsCF.d.ts +19 -8
- package/lib/MicroAppsCF.d.ts.map +1 -1
- package/lib/MicroAppsCF.js +24 -21
- package/lib/MicroAppsEdgeToOrigin.d.ts +6 -0
- package/lib/MicroAppsEdgeToOrigin.d.ts.map +1 -1
- package/lib/MicroAppsEdgeToOrigin.js +11 -7
- package/lib/MicroAppsS3.d.ts +9 -0
- package/lib/MicroAppsS3.d.ts.map +1 -1
- package/lib/MicroAppsS3.js +4 -3
- package/lib/MicroAppsSvcs.d.ts +1 -1
- package/lib/MicroAppsSvcs.d.ts.map +1 -1
- package/lib/MicroAppsSvcs.js +40 -36
- package/lib/MicroAppsTable.js +1 -1
- package/lib/microapps-edge-to-origin/index.js +43 -43
- package/lib/microapps-edge-to-origin/index.js.map +2 -2
- package/package.json +1 -1
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
package/API.md
CHANGED
|
@@ -48,14 +48,6 @@ new MicroApps(scope: Construct, id: string, props?: MicroAppsProps)
|
|
|
48
48
|
|
|
49
49
|
#### Properties <a name="Properties"></a>
|
|
50
50
|
|
|
51
|
-
##### `apigwy`<sup>Required</sup> <a name="@pwrdrvr/microapps-cdk.MicroApps.apigwy"></a>
|
|
52
|
-
|
|
53
|
-
- *Type:* [`@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy`](#@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy)
|
|
54
|
-
|
|
55
|
-
{@inheritdoc IMicroAppsAPIGwy}.
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
51
|
##### `cf`<sup>Required</sup> <a name="@pwrdrvr/microapps-cdk.MicroApps.cf"></a>
|
|
60
52
|
|
|
61
53
|
- *Type:* [`@pwrdrvr/microapps-cdk.IMicroAppsCF`](#@pwrdrvr/microapps-cdk.IMicroAppsCF)
|
|
@@ -80,6 +72,14 @@ new MicroApps(scope: Construct, id: string, props?: MicroAppsProps)
|
|
|
80
72
|
|
|
81
73
|
---
|
|
82
74
|
|
|
75
|
+
##### `apigwy`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroApps.apigwy"></a>
|
|
76
|
+
|
|
77
|
+
- *Type:* [`@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy`](#@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy)
|
|
78
|
+
|
|
79
|
+
{@inheritdoc IMicroAppsAPIGwy}.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
83
|
##### `edgeToOrigin`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroApps.edgeToOrigin"></a>
|
|
84
84
|
|
|
85
85
|
- *Type:* [`@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin`](#@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin)
|
|
@@ -498,15 +498,16 @@ import { AddRoutesOptions } from '@pwrdrvr/microapps-cdk'
|
|
|
498
498
|
const addRoutesOptions: AddRoutesOptions = { ... }
|
|
499
499
|
```
|
|
500
500
|
|
|
501
|
-
##### `
|
|
501
|
+
##### `appOrigin`<sup>Required</sup> <a name="@pwrdrvr/microapps-cdk.AddRoutesOptions.appOrigin"></a>
|
|
502
502
|
|
|
503
503
|
- *Type:* [`aws-cdk-lib.aws_cloudfront.IOrigin`](#aws-cdk-lib.aws_cloudfront.IOrigin)
|
|
504
|
+
- *Default:* invalid URL (never used)
|
|
504
505
|
|
|
505
|
-
|
|
506
|
+
Default origin (invalid URL or API Gateway).
|
|
506
507
|
|
|
507
508
|
---
|
|
508
509
|
|
|
509
|
-
##### `
|
|
510
|
+
##### `appOriginRequestPolicy`<sup>Required</sup> <a name="@pwrdrvr/microapps-cdk.AddRoutesOptions.appOriginRequestPolicy"></a>
|
|
510
511
|
|
|
511
512
|
- *Type:* [`aws-cdk-lib.aws_cloudfront.IOriginRequestPolicy`](#aws-cdk-lib.aws_cloudfront.IOriginRequestPolicy)
|
|
512
513
|
|
|
@@ -533,7 +534,7 @@ CloudFront Distribution to add the Behaviors (Routes) to.
|
|
|
533
534
|
##### `createAPIPathRoute`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.AddRoutesOptions.createAPIPathRoute"></a>
|
|
534
535
|
|
|
535
536
|
- *Type:* `boolean`
|
|
536
|
-
- *Default:*
|
|
537
|
+
- *Default:* false
|
|
537
538
|
|
|
538
539
|
Create an extra Behavior (Route) for /api/ that allows API routes to have a period in them.
|
|
539
540
|
|
|
@@ -547,7 +548,7 @@ even if they have a period in the path.
|
|
|
547
548
|
##### `createNextDataPathRoute`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.AddRoutesOptions.createNextDataPathRoute"></a>
|
|
548
549
|
|
|
549
550
|
- *Type:* `boolean`
|
|
550
|
-
- *Default:*
|
|
551
|
+
- *Default:* false
|
|
551
552
|
|
|
552
553
|
Create an extra Behavior (Route) for /_next/data/ This route is used by Next.js to load data from the API Gateway on `getServerSideProps` calls. The requests can end in `.json`, which would cause them to be routed to S3 if this route is not created.
|
|
553
554
|
|
|
@@ -772,14 +773,6 @@ S3 bucket origin for deployed applications.
|
|
|
772
773
|
|
|
773
774
|
---
|
|
774
775
|
|
|
775
|
-
##### `httpApi`<sup>Required</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsCFProps.httpApi"></a>
|
|
776
|
-
|
|
777
|
-
- *Type:* [`@aws-cdk/aws-apigatewayv2-alpha.HttpApi`](#@aws-cdk/aws-apigatewayv2-alpha.HttpApi)
|
|
778
|
-
|
|
779
|
-
API Gateway v2 HTTP API for apps.
|
|
780
|
-
|
|
781
|
-
---
|
|
782
|
-
|
|
783
776
|
##### `assetNameRoot`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsCFProps.assetNameRoot"></a>
|
|
784
777
|
|
|
785
778
|
- *Type:* `string`
|
|
@@ -817,7 +810,7 @@ ACM Certificate that covers `domainNameEdge` name.
|
|
|
817
810
|
##### `createAPIPathRoute`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsCFProps.createAPIPathRoute"></a>
|
|
818
811
|
|
|
819
812
|
- *Type:* `boolean`
|
|
820
|
-
- *Default:* true
|
|
813
|
+
- *Default:* true if httpApi is provided
|
|
821
814
|
|
|
822
815
|
Create an extra Behavior (Route) for /api/ that allows API routes to have a period in them.
|
|
823
816
|
|
|
@@ -831,7 +824,7 @@ even if they have a period in the path.
|
|
|
831
824
|
##### `createNextDataPathRoute`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsCFProps.createNextDataPathRoute"></a>
|
|
832
825
|
|
|
833
826
|
- *Type:* `boolean`
|
|
834
|
-
- *Default:* true
|
|
827
|
+
- *Default:* true if httpApi is provided
|
|
835
828
|
|
|
836
829
|
Create an extra Behavior (Route) for /_next/data/ This route is used by Next.js to load data from the API Gateway on `getServerSideProps` calls. The requests can end in `.json`, which would cause them to be routed to S3 if this route is not created.
|
|
837
830
|
|
|
@@ -869,6 +862,26 @@ Configuration of the edge to origin lambda functions.
|
|
|
869
862
|
|
|
870
863
|
---
|
|
871
864
|
|
|
865
|
+
##### `httpApi`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsCFProps.httpApi"></a>
|
|
866
|
+
|
|
867
|
+
- *Type:* [`@aws-cdk/aws-apigatewayv2-alpha.HttpApi`](#@aws-cdk/aws-apigatewayv2-alpha.HttpApi)
|
|
868
|
+
|
|
869
|
+
API Gateway v2 HTTP API for apps.
|
|
870
|
+
|
|
871
|
+
---
|
|
872
|
+
|
|
873
|
+
##### `originShieldRegion`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsCFProps.originShieldRegion"></a>
|
|
874
|
+
|
|
875
|
+
- *Type:* `string`
|
|
876
|
+
- *Default:* none
|
|
877
|
+
|
|
878
|
+
Optional Origin Shield Region.
|
|
879
|
+
|
|
880
|
+
This should be the region where the DynamoDB is located so the
|
|
881
|
+
EdgeToOrigin calls have the lowest latency (~1 ms).
|
|
882
|
+
|
|
883
|
+
---
|
|
884
|
+
|
|
872
885
|
##### `r53Zone`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsCFProps.r53Zone"></a>
|
|
873
886
|
|
|
874
887
|
- *Type:* [`aws-cdk-lib.aws_route53.IHostedZone`](#aws-cdk-lib.aws_route53.IHostedZone)
|
|
@@ -983,6 +996,15 @@ Path prefix on the root of the API Gateway Stage.
|
|
|
983
996
|
|
|
984
997
|
---
|
|
985
998
|
|
|
999
|
+
##### `setupApiGatewayPermissions`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsEdgeToOriginProps.setupApiGatewayPermissions"></a>
|
|
1000
|
+
|
|
1001
|
+
- *Type:* `boolean`
|
|
1002
|
+
- *Default:* false
|
|
1003
|
+
|
|
1004
|
+
Enable invoking API Gateway from the Edge Lambda.
|
|
1005
|
+
|
|
1006
|
+
---
|
|
1007
|
+
|
|
986
1008
|
##### `signingMode`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsEdgeToOriginProps.signingMode"></a>
|
|
987
1009
|
|
|
988
1010
|
- *Type:* `string`
|
|
@@ -1080,6 +1102,15 @@ Certificate in deployed region for the API Gateway.
|
|
|
1080
1102
|
|
|
1081
1103
|
---
|
|
1082
1104
|
|
|
1105
|
+
##### `createAPIGateway`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.createAPIGateway"></a>
|
|
1106
|
+
|
|
1107
|
+
- *Type:* `boolean`
|
|
1108
|
+
- *Default:* false
|
|
1109
|
+
|
|
1110
|
+
Create API Gateway for non-edge invocation.
|
|
1111
|
+
|
|
1112
|
+
---
|
|
1113
|
+
|
|
1083
1114
|
##### `createAPIPathRoute`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.createAPIPathRoute"></a>
|
|
1084
1115
|
|
|
1085
1116
|
- *Type:* `boolean`
|
|
@@ -1094,6 +1125,20 @@ even if they have a period in the path.
|
|
|
1094
1125
|
|
|
1095
1126
|
---
|
|
1096
1127
|
|
|
1128
|
+
##### `createNextDataPathRoute`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.createNextDataPathRoute"></a>
|
|
1129
|
+
|
|
1130
|
+
- *Type:* `boolean`
|
|
1131
|
+
- *Default:* true
|
|
1132
|
+
|
|
1133
|
+
Create an extra Behavior (Route) for /_next/data/ This route is used by Next.js to load data from the API Gateway on `getServerSideProps` calls. The requests can end in `.json`, which would cause them to be routed to S3 if this route is not created.
|
|
1134
|
+
|
|
1135
|
+
When false API routes with a period in the path will get routed to S3.
|
|
1136
|
+
|
|
1137
|
+
When true API routes that contain /_next/data/ in the path will get routed to API Gateway
|
|
1138
|
+
even if they have a period in the path.
|
|
1139
|
+
|
|
1140
|
+
---
|
|
1141
|
+
|
|
1097
1142
|
##### `domainNameEdge`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.domainNameEdge"></a>
|
|
1098
1143
|
|
|
1099
1144
|
- *Type:* `string`
|
|
@@ -1125,7 +1170,19 @@ Additional edge lambda functions.
|
|
|
1125
1170
|
- *Type:* `string`
|
|
1126
1171
|
- *Default:* undefined
|
|
1127
1172
|
|
|
1128
|
-
Origin region that API Gateway will be deployed to, used for the config.yml on the Edge function to sign requests for the correct region.
|
|
1173
|
+
Origin region that API Gateway or Lambda function will be deployed to, used for the config.yml on the Edge function to sign requests for the correct region.
|
|
1174
|
+
|
|
1175
|
+
---
|
|
1176
|
+
|
|
1177
|
+
##### `originShieldRegion`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsProps.originShieldRegion"></a>
|
|
1178
|
+
|
|
1179
|
+
- *Type:* `string`
|
|
1180
|
+
- *Default:* originRegion if specified, otherwise undefined
|
|
1181
|
+
|
|
1182
|
+
Optional Origin Shield Region.
|
|
1183
|
+
|
|
1184
|
+
This should be the region where the DynamoDB is located so the
|
|
1185
|
+
EdgeToOrigin calls have the lowest latency (~1 ms).
|
|
1129
1186
|
|
|
1130
1187
|
---
|
|
1131
1188
|
|
|
@@ -1337,6 +1394,18 @@ S3 logs bucket name.
|
|
|
1337
1394
|
|
|
1338
1395
|
---
|
|
1339
1396
|
|
|
1397
|
+
##### `originShieldRegion`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsS3Props.originShieldRegion"></a>
|
|
1398
|
+
|
|
1399
|
+
- *Type:* `string`
|
|
1400
|
+
- *Default:* none
|
|
1401
|
+
|
|
1402
|
+
Optional Origin Shield Region.
|
|
1403
|
+
|
|
1404
|
+
This should be the region where the DynamoDB is located so the
|
|
1405
|
+
EdgeToOrigin calls have the lowest latency (~1 ms).
|
|
1406
|
+
|
|
1407
|
+
---
|
|
1408
|
+
|
|
1340
1409
|
##### `removalPolicy`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsS3Props.removalPolicy"></a>
|
|
1341
1410
|
|
|
1342
1411
|
- *Type:* [`aws-cdk-lib.RemovalPolicy`](#aws-cdk-lib.RemovalPolicy)
|
|
@@ -1392,14 +1461,6 @@ S3 bucket for staged applications (prior to deploy).
|
|
|
1392
1461
|
|
|
1393
1462
|
---
|
|
1394
1463
|
|
|
1395
|
-
##### `httpApi`<sup>Required</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsSvcsProps.httpApi"></a>
|
|
1396
|
-
|
|
1397
|
-
- *Type:* [`@aws-cdk/aws-apigatewayv2-alpha.HttpApi`](#@aws-cdk/aws-apigatewayv2-alpha.HttpApi)
|
|
1398
|
-
|
|
1399
|
-
API Gateway v2 HTTP for Router and app.
|
|
1400
|
-
|
|
1401
|
-
---
|
|
1402
|
-
|
|
1403
1464
|
##### `assetNameRoot`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsSvcsProps.assetNameRoot"></a>
|
|
1404
1465
|
|
|
1405
1466
|
- *Type:* `string`
|
|
@@ -1418,6 +1479,14 @@ Optional asset name suffix.
|
|
|
1418
1479
|
|
|
1419
1480
|
---
|
|
1420
1481
|
|
|
1482
|
+
##### `httpApi`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsSvcsProps.httpApi"></a>
|
|
1483
|
+
|
|
1484
|
+
- *Type:* [`@aws-cdk/aws-apigatewayv2-alpha.HttpApi`](#@aws-cdk/aws-apigatewayv2-alpha.HttpApi)
|
|
1485
|
+
|
|
1486
|
+
API Gateway v2 HTTP for Router and app.
|
|
1487
|
+
|
|
1488
|
+
---
|
|
1489
|
+
|
|
1421
1490
|
##### `removalPolicy`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.MicroAppsSvcsProps.removalPolicy"></a>
|
|
1422
1491
|
|
|
1423
1492
|
- *Type:* [`aws-cdk-lib.RemovalPolicy`](#aws-cdk-lib.RemovalPolicy)
|
|
@@ -1582,14 +1651,6 @@ Represents a MicroApps.
|
|
|
1582
1651
|
|
|
1583
1652
|
#### Properties <a name="Properties"></a>
|
|
1584
1653
|
|
|
1585
|
-
##### `apigwy`<sup>Required</sup> <a name="@pwrdrvr/microapps-cdk.IMicroApps.apigwy"></a>
|
|
1586
|
-
|
|
1587
|
-
- *Type:* [`@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy`](#@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy)
|
|
1588
|
-
|
|
1589
|
-
{@inheritdoc IMicroAppsAPIGwy}.
|
|
1590
|
-
|
|
1591
|
-
---
|
|
1592
|
-
|
|
1593
1654
|
##### `cf`<sup>Required</sup> <a name="@pwrdrvr/microapps-cdk.IMicroApps.cf"></a>
|
|
1594
1655
|
|
|
1595
1656
|
- *Type:* [`@pwrdrvr/microapps-cdk.IMicroAppsCF`](#@pwrdrvr/microapps-cdk.IMicroAppsCF)
|
|
@@ -1614,6 +1675,14 @@ Represents a MicroApps.
|
|
|
1614
1675
|
|
|
1615
1676
|
---
|
|
1616
1677
|
|
|
1678
|
+
##### `apigwy`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.IMicroApps.apigwy"></a>
|
|
1679
|
+
|
|
1680
|
+
- *Type:* [`@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy`](#@pwrdrvr/microapps-cdk.IMicroAppsAPIGwy)
|
|
1681
|
+
|
|
1682
|
+
{@inheritdoc IMicroAppsAPIGwy}.
|
|
1683
|
+
|
|
1684
|
+
---
|
|
1685
|
+
|
|
1617
1686
|
##### `edgeToOrigin`<sup>Optional</sup> <a name="@pwrdrvr/microapps-cdk.IMicroApps.edgeToOrigin"></a>
|
|
1618
1687
|
|
|
1619
1688
|
- *Type:* [`@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin`](#@pwrdrvr/microapps-cdk.IMicroAppsEdgeToOrigin)
|
package/changelog.md
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
### [0.3.
|
|
2
|
+
### [0.3.4](https://github.com/pwrdrvr/microapps-core/compare/v0.3.4-rc.2...v0.3.4) (2023-01-09)
|
package/lib/MicroApps.d.ts
CHANGED
|
@@ -162,6 +162,12 @@ export interface MicroAppsProps {
|
|
|
162
162
|
* @example dev/
|
|
163
163
|
*/
|
|
164
164
|
readonly rootPathPrefix?: string;
|
|
165
|
+
/**
|
|
166
|
+
* Create API Gateway for non-edge invocation
|
|
167
|
+
*
|
|
168
|
+
* @default false
|
|
169
|
+
*/
|
|
170
|
+
readonly createAPIGateway?: boolean;
|
|
165
171
|
/**
|
|
166
172
|
* Create an extra Behavior (Route) for /api/ that allows
|
|
167
173
|
* API routes to have a period in them.
|
|
@@ -174,6 +180,20 @@ export interface MicroAppsProps {
|
|
|
174
180
|
* @default true
|
|
175
181
|
*/
|
|
176
182
|
readonly createAPIPathRoute?: boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Create an extra Behavior (Route) for /_next/data/
|
|
185
|
+
* This route is used by Next.js to load data from the API Gateway
|
|
186
|
+
* on `getServerSideProps` calls. The requests can end in `.json`,
|
|
187
|
+
* which would cause them to be routed to S3 if this route is not created.
|
|
188
|
+
*
|
|
189
|
+
* When false API routes with a period in the path will get routed to S3.
|
|
190
|
+
*
|
|
191
|
+
* When true API routes that contain /_next/data/ in the path will get routed to API Gateway
|
|
192
|
+
* even if they have a period in the path.
|
|
193
|
+
*
|
|
194
|
+
* @default true
|
|
195
|
+
*/
|
|
196
|
+
readonly createNextDataPathRoute?: boolean;
|
|
177
197
|
/**
|
|
178
198
|
* Adds an X-Forwarded-Host-Header when calling API Gateway
|
|
179
199
|
*
|
|
@@ -208,13 +228,22 @@ export interface MicroAppsProps {
|
|
|
208
228
|
*/
|
|
209
229
|
readonly signingMode?: 'sign' | 'presign' | 'none';
|
|
210
230
|
/**
|
|
211
|
-
* Origin region that API Gateway will be deployed to, used
|
|
231
|
+
* Origin region that API Gateway or Lambda function will be deployed to, used
|
|
212
232
|
* for the config.yml on the Edge function to sign requests for
|
|
213
233
|
* the correct region
|
|
214
234
|
*
|
|
215
235
|
* @default undefined
|
|
216
236
|
*/
|
|
217
237
|
readonly originRegion?: string;
|
|
238
|
+
/**
|
|
239
|
+
* Optional Origin Shield Region
|
|
240
|
+
*
|
|
241
|
+
* This should be the region where the DynamoDB is located so the
|
|
242
|
+
* EdgeToOrigin calls have the lowest latency (~1 ms).
|
|
243
|
+
*
|
|
244
|
+
* @default originRegion if specified, otherwise undefined
|
|
245
|
+
*/
|
|
246
|
+
readonly originShieldRegion?: string;
|
|
218
247
|
/**
|
|
219
248
|
* Existing table for apps/versions/rules
|
|
220
249
|
*
|
|
@@ -254,7 +283,7 @@ export interface IMicroApps {
|
|
|
254
283
|
/** {@inheritdoc IMicroAppsSvcs} */
|
|
255
284
|
readonly svcs: IMicroAppsSvcs;
|
|
256
285
|
/** {@inheritdoc IMicroAppsAPIGwy} */
|
|
257
|
-
readonly apigwy
|
|
286
|
+
readonly apigwy?: IMicroAppsAPIGwy;
|
|
258
287
|
}
|
|
259
288
|
/**
|
|
260
289
|
* Create a new MicroApps "turnkey" construct for simple
|
|
@@ -283,8 +312,8 @@ export declare class MicroApps extends Construct implements IMicroApps {
|
|
|
283
312
|
get edgeToOrigin(): IMicroAppsEdgeToOrigin | undefined;
|
|
284
313
|
private _s3;
|
|
285
314
|
get s3(): IMicroAppsS3;
|
|
286
|
-
private _apigwy
|
|
287
|
-
get apigwy(): IMicroAppsAPIGwy;
|
|
315
|
+
private _apigwy?;
|
|
316
|
+
get apigwy(): IMicroAppsAPIGwy | undefined;
|
|
288
317
|
private _svcs;
|
|
289
318
|
get svcs(): IMicroAppsSvcs;
|
|
290
319
|
constructor(scope: Construct, id: string, props?: MicroAppsProps);
|
package/lib/MicroApps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MicroApps.d.ts","sourceRoot":"","sources":["../src/MicroApps.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MicroApps.d.ts","sourceRoot":"","sources":["../src/MicroApps.ts"],"names":[],"mappings":"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"}
|
package/lib/MicroApps.js
CHANGED
|
@@ -37,7 +37,7 @@ class MicroApps extends constructs_1.Construct {
|
|
|
37
37
|
if (props === undefined) {
|
|
38
38
|
throw new Error('props must be set');
|
|
39
39
|
}
|
|
40
|
-
const { domainNameEdge, domainNameOrigin, assetNameRoot, assetNameSuffix, r53Zone, certEdge, appEnv = 'dev', certOrigin, removalPolicy, s3PolicyBypassAROAs, s3PolicyBypassPrincipalARNs, s3StrictBucketPolicy, rootPathPrefix, createAPIPathRoute = true, addXForwardedHostHeader = true, replaceHostHeader = true, signingMode = 'sign', originRegion, table, tableNameForEdgeToOrigin, } = props;
|
|
40
|
+
const { domainNameEdge, domainNameOrigin, assetNameRoot, assetNameSuffix, r53Zone, certEdge, appEnv = 'dev', certOrigin, removalPolicy, s3PolicyBypassAROAs, s3PolicyBypassPrincipalARNs, s3StrictBucketPolicy, rootPathPrefix, createAPIGateway = false, createAPIPathRoute = true, createNextDataPathRoute = true, addXForwardedHostHeader = true, replaceHostHeader = true, signingMode = 'sign', originRegion, table, tableNameForEdgeToOrigin, originShieldRegion = originRegion, } = props;
|
|
41
41
|
this._s3 = new MicroAppsS3_1.MicroAppsS3(this, 's3', {
|
|
42
42
|
removalPolicy,
|
|
43
43
|
bucketLogsName: domainNameEdge ? `${ReverseDomain_1.reverseDomain(domainNameEdge)}-logs` : undefined,
|
|
@@ -47,20 +47,23 @@ class MicroApps extends constructs_1.Construct {
|
|
|
47
47
|
: undefined,
|
|
48
48
|
assetNameRoot,
|
|
49
49
|
assetNameSuffix,
|
|
50
|
+
originShieldRegion,
|
|
50
51
|
});
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
52
|
+
if (createAPIGateway) {
|
|
53
|
+
this._apigwy = new MicroAppsAPIGwy_1.MicroAppsAPIGwy(this, 'api', {
|
|
54
|
+
removalPolicy,
|
|
55
|
+
assetNameRoot,
|
|
56
|
+
assetNameSuffix,
|
|
57
|
+
domainNameEdge,
|
|
58
|
+
domainNameOrigin,
|
|
59
|
+
r53Zone,
|
|
60
|
+
certOrigin,
|
|
61
|
+
rootPathPrefix,
|
|
62
|
+
requireIAMAuthorization: signingMode !== 'none',
|
|
63
|
+
});
|
|
64
|
+
}
|
|
62
65
|
this._svcs = new MicroAppsSvcs_1.MicroAppsSvcs(this, 'svcs', {
|
|
63
|
-
httpApi: this.
|
|
66
|
+
...(this._apigwy ? { httpApi: this._apigwy.httpApi } : {}),
|
|
64
67
|
removalPolicy,
|
|
65
68
|
bucketApps: this._s3.bucketApps,
|
|
66
69
|
bucketAppsOAI: this._s3.bucketAppsOAI,
|
|
@@ -82,6 +85,7 @@ class MicroApps extends constructs_1.Construct {
|
|
|
82
85
|
assetNameSuffix,
|
|
83
86
|
removalPolicy,
|
|
84
87
|
addXForwardedHostHeader,
|
|
88
|
+
setupApiGatewayPermissions: createAPIGateway,
|
|
85
89
|
replaceHostHeader,
|
|
86
90
|
originRegion,
|
|
87
91
|
signingMode,
|
|
@@ -100,13 +104,15 @@ class MicroApps extends constructs_1.Construct {
|
|
|
100
104
|
assetNameSuffix,
|
|
101
105
|
domainNameEdge,
|
|
102
106
|
domainNameOrigin,
|
|
103
|
-
httpApi: this._apigwy.httpApi,
|
|
107
|
+
...(this._apigwy ? { httpApi: this._apigwy.httpApi } : {}),
|
|
104
108
|
r53Zone,
|
|
105
109
|
certEdge,
|
|
106
110
|
bucketAppsOrigin: this._s3.bucketAppsOrigin,
|
|
107
111
|
bucketLogs: this._s3.bucketLogs,
|
|
108
112
|
rootPathPrefix,
|
|
109
113
|
createAPIPathRoute,
|
|
114
|
+
createNextDataPathRoute,
|
|
115
|
+
originShieldRegion,
|
|
110
116
|
...(edgeLambdas.length ? { edgeLambdas } : {}),
|
|
111
117
|
});
|
|
112
118
|
}
|
|
@@ -128,5 +134,5 @@ class MicroApps extends constructs_1.Construct {
|
|
|
128
134
|
}
|
|
129
135
|
exports.MicroApps = MicroApps;
|
|
130
136
|
_a = JSII_RTTI_SYMBOL_1;
|
|
131
|
-
MicroApps[_a] = { fqn: "@pwrdrvr/microapps-cdk.MicroApps", version: "0.3.
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9BcHBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01pY3JvQXBwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBLDJDQUF1QztBQUN2Qyx1REFBc0U7QUFDdEUsK0NBQTBEO0FBQzFELG1FQUF3RjtBQUN4RiwrQ0FBMEQ7QUFDMUQsbURBQWdFO0FBQ2hFLHlEQUFzRDtBQW9SdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFhLFNBQVUsU0FBUSxzQkFBUztJQTBCdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjs7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3RDO1FBRUQsTUFBTSxFQUNKLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFDZixPQUFPLEVBQ1AsUUFBUSxFQUNSLE1BQU0sR0FBRyxLQUFLLEVBQ2QsVUFBVSxFQUNWLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsMkJBQTJCLEVBQzNCLG9CQUFvQixFQUNwQixjQUFjLEVBQ2Qsa0JBQWtCLEdBQUcsSUFBSSxFQUN6Qix1QkFBdUIsR0FBRyxJQUFJLEVBQzlCLGlCQUFpQixHQUFHLElBQUksRUFDeEIsV0FBVyxHQUFHLE1BQU0sRUFDcEIsWUFBWSxFQUNaLEtBQUssRUFDTCx3QkFBd0IsR0FDekIsR0FBRyxLQUFLLENBQUM7UUFFVixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUkseUJBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLGFBQWE7WUFDYixjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLDZCQUFhLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNwRixjQUFjLEVBQUUs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VyxFQUFFO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFHRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUdELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOztBQXhCSCw4QkFrSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYWNtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuaW1wb3J0ICogYXMgY2YgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgZHluYW1vZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCAqIGFzIHI1MyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElNaWNyb0FwcHNBUElHd3ksIE1pY3JvQXBwc0FQSUd3eSB9IGZyb20gJy4vTWljcm9BcHBzQVBJR3d5JztcbmltcG9ydCB7IElNaWNyb0FwcHNDRiwgTWljcm9BcHBzQ0YgfSBmcm9tICcuL01pY3JvQXBwc0NGJztcbmltcG9ydCB7IElNaWNyb0FwcHNFZGdlVG9PcmlnaW4sIE1pY3JvQXBwc0VkZ2VUb09yaWdpbiB9IGZyb20gJy4vTWljcm9BcHBzRWRnZVRvT3JpZ2luJztcbmltcG9ydCB7IElNaWNyb0FwcHNTMywgTWljcm9BcHBzUzMgfSBmcm9tICcuL01pY3JvQXBwc1MzJztcbmltcG9ydCB7IElNaWNyb0FwcHNTdmNzLCBNaWNyb0FwcHNTdmNzIH0gZnJvbSAnLi9NaWNyb0FwcHNTdmNzJztcbmltcG9ydCB7IHJldmVyc2VEb21haW4gfSBmcm9tICcuL3V0aWxzL1JldmVyc2VEb21haW4nO1xuXG4vKipcbiAqIEEgQ0RLIENvbnN0cnVjdCBmb3IgY3JlYXRpbmcgYSBNaWNyb0FwcHMgcnVudGltZSBlbnZpcm9ubWVudCB1c2VkXG4gKiB0byBob3N0IE5leHQuanMsIFJlYWN0LCBvciBhbnkgb3RoZXIgc29ydCBvZiB3ZWIgYXBwbGljYXRpb24gd2l0aFxuICogbXVsdGlwbGUgdmVyc2lvbnMgYXZhaWxhYmxlIGZvciBjb21wYXJpc29uLCBxdWljayByb2xsYmFja3MsIHF1aWNrXG4gKiByZWxlYXNlcywgYW5kIGEgY29tcGxldGUgbGFjayBvZiB1c2VyIGRpc3R1cmJhbmNlIG9uIGRlcGxveXMuXG4gKlxuICogQHJlbWFya3NcbiAqXG4gKiB7QGxpbmsgTWljcm9BcHBzfSBwcm92aWRlcyBhIHR1cm4ta2V5IGNvbnN0cnVjdCB0aGF0IGNyZWF0ZXMgYWxsXG4gKiBkZXBlbmRlbmNpZXMgd2l0aCBsaW1pdGVkIGV4cG9zdXJlIG9mIHVuZGVybHlpbmcgQVdTIFJlc291cmNlIG9wdGlvbnMuXG4gKiBUaGlzIGNvbnN0cnVjdCBpcyB0aGUgZWFzaWVzdCB0byB1c2Ugd2hlbiBleHBsb3JpbmcgTWljcm9BcHBzIGZvciB0aGVcbiAqIGZpcnN0IHRpbWUuXG4gKlxuICoge0BsaW5rIE1pY3JvQXBwc0FQSUd3eX0sIHtAbGluayBNaWNyb0FwcHNDRn0sIHtAbGluayBNaWNyb0FwcHNTM30sXG4gKiBhbmQge0BsaW5rIE1pY3JvQXBwc1N2Y3N9LCBhbmQgdGhlaXIgaGVscGVyIHN0YXRpYyBtZXRob2RzLCBjYW4gYmUgdXNlZFxuICogdG8gY3JlYXRlIEFXUyBSZXNvdXJjZXMgbW9yZSBkaXJlY3RseSwgdG8gcHJvdmlkZSB5b3VyIG93biBBV1MgUmVzb3VyY2VzXG4gKiAoZS5nLiBhbiBleGlzdGluZyBDbG91ZEZyb250IERpc3RyaWJ1dGlvbiksIGFuZCB0byBoYXZlIG1vcmUgZmxleGliaWxpdHlcbiAqIHRoYW4gdGhlIHtAbGluayBNaWNyb0FwcHN9IGNvbnN0cnVjdCBvZmZlcnMuXG4gKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKi9cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGluaXRpYWxpemUgYW4gaW5zdGFuY2Ugb2YgYE1pY3JvQXBwc2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWljcm9BcHBzUHJvcHMge1xuICAvKipcbiAgICogUmVtb3ZhbFBvbGljeSBvdmVycmlkZSBmb3IgY2hpbGQgcmVzb3VyY2VzXG4gICAqXG4gICAqIE5vdGU6IGlmIHNldCB0byBERVNUUk9ZIHRoZSBTMyBidWNrZXMgd2lsbCBoYXZlIGBhdXRvRGVsZXRlT2JqZWN0c2Agc2V0IHRvIGB0cnVlYFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHBlciByZXNvdXJjZSBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogUGFzc2VkIHRvIE5PREVfRU5WIG9mIFJvdXRlciBhbmQgRGVwbG95ZXIgTGFtYmRhIGZ1bmN0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgZGV2XG4gICAqL1xuICByZWFkb25seSBhcHBFbnY6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgYXNzZXQgbmFtZSByb290XG4gICAqXG4gICAqIEBleGFtcGxlIG1pY3JvYXBwc1xuICAgKiBAZGVmYXVsdCAtIHJlc291cmNlIG5hbWVzIGF1dG8gYXNzaWduZWRcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0TmFtZVJvb3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFzc2V0IG5hbWUgc3VmZml4XG4gICAqXG4gICAqIEBleGFtcGxlIC1kZXYtcHItMTJcbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXROYW1lU3VmZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSb3V0ZTUzIHpvbmUgaW4gd2hpY2ggdG8gY3JlYXRlIG9wdGlvbmFsIGBkb21haW5OYW1lRWRnZWAgcmVjb3JkXG4gICAqL1xuICByZWFkb25seSByNTNab25lPzogcjUzLklIb3N0ZWRab25lO1xuXG4gIC8qKlxuICAgKiBDZXJ0aWZpY2F0ZSBpbiBVUy1FYXN0LTEgZm9yIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNlcnRFZGdlPzogYWNtLklDZXJ0aWZpY2F0ZTtcblxuICAvKipcbiAgICogQ2VydGlmaWNhdGUgaW4gZGVwbG95ZWQgcmVnaW9uIGZvciB0aGUgQVBJIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSBjZXJ0T3JpZ2luPzogYWNtLklDZXJ0aWZpY2F0ZTtcblxuICAvKipcbiAgICogVXNlIGEgc3RyaWN0IFMzIEJ1Y2tldCBQb2xpY3kgdGhhdCBwcmV2ZW50cyBhcHBsaWNhdGlvbnNcbiAgICogZnJvbSByZWFkaW5nL3dyaXRpbmcvbW9kaWZ5aW5nL2RlbGV0aW5nIGZpbGVzIGluIHRoZSBTMyBCdWNrZXRcbiAgICogb3V0c2lkZSBvZiB0aGUgcGF0aCB0aGF0IGlzIHNwZWNpZmljIHRvIHRoZWlyIGFwcC92ZXJzaW9uLlxuICAgKlxuICAgKiBUaGlzIHNldHRpbmcgc2hvdWxkIGJlIHVzZWQgd2hlbiBhcHBsaWNhdGlvbnMgYXJlIGxlc3MgdGhhblxuICAgKiBmdWxseSB0cnVzdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgczNTdHJpY3RCdWNrZXRQb2xpY3k/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHdoZW4gdXNpbmcgczNTdHJpY3RCdWNrZXRQb2xpY3kgPSB0cnVlXG4gICAqXG4gICAqIElBTSBSb2xlIG9yIElBTSBVc2VyIG5hbWVzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgREVOWSBydWxlcyBvbiB0aGUgUzMgQnVja2V0IFBvbGljeS5cbiAgICpcbiAgICogUm9sZXMgdGhhdCBhcmUgQXNzdW1lZCBtdXN0IGluc3RlYWQgaGF2ZSB0aGVpciBBUk9BIGFkZGVkIHRvIGBzM1BvbGljeUJ5cGFzc0FST0FzYC5cbiAgICpcbiAgICogVHlwaWNhbGx5IGFueSBhZG1pbiByb2xlcyAvIHVzZXJzIHRoYXQgbmVlZCB0byB2aWV3IG9yIG1hbmFnZSB0aGUgUzMgQnVja2V0XG4gICAqIHdvdWxkIGJlIGFkZGVkIHRvIHRoaXMgbGlzdC5cbiAgICpcbiAgICogQGV4YW1wbGUgWydhcm46YXdzOmlhbTo6MTIzNDU2Nzg5MDEyMzpyb2xlL0FkbWluQWNjZXNzJywgJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwMTIzOnVzZXIvTXlBZG1pblVzZXInXVxuICAgKlxuICAgKiBAc2VlIHMzUG9saWN5QnlwYXNzQVJPQXNcbiAgICovXG4gIHJlYWRvbmx5IHMzUG9saWN5QnlwYXNzUHJpbmNpcGFsQVJOcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHdoZW4gdXNpbmcgczNTdHJpY3RCdWNrZXRQb2xpY3kgPSB0cnVlXG4gICAqXG4gICAqIEFST0FzIG9mIHRoZSBJQU0gUm9sZSB0byBleGNsdWRlIGZyb20gdGhlIERFTlkgcnVsZXMgb24gdGhlIFMzIEJ1Y2tldCBQb2xpY3kuXG4gICAqIFRoaXMgYWxsb3dzIHNlc3Npb25zIHRoYXQgYXNzdW1lIHRoZSBJQU0gUm9sZSB0byBiZSBleGNsdWRlZCBmcm9tIHRoZVxuICAgKiBERU5ZIHJ1bGVzIG9uIHRoZSBTMyBCdWNrZXQgUG9saWN5LlxuICAgKlxuICAgKiBUeXBpY2FsbHkgYW55IGFkbWluIHJvbGVzIC8gdXNlcnMgdGhhdCBuZWVkIHRvIHZpZXcgb3IgbWFuYWdlIHRoZSBTMyBCdWNrZXRcbiAgICogd291bGQgYmUgYWRkZWQgdG8gdGhpcyBsaXN0LlxuICAgKlxuICAgKiBSb2xlcyAvIHVzZXJzIHRoYXQgYXJlIHVzZWQgZGlyZWN0bHksIG5vdCBhc3N1bWVkLCBjYW4gYmUgYWRkZWQgdG8gYHMzUG9saWN5QnlwYXNzUm9sZU5hbWVzYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBOb3RlOiBUaGlzIEFST0EgbXVzdCBiZSBzcGVjaWZpZWQgdG8gcHJldmVudCB0aGlzIHBvbGljeSBmcm9tIGxvY2tpbmdcbiAgICogb3V0IG5vbi1yb290IHNlc3Npb25zIHRoYXQgaGF2ZSBhc3N1bWVkIHRoZSBhZG1pbiByb2xlLlxuICAgKlxuICAgKiBUaGUgbm90UHJpbmNpcGFscyB3aWxsIG9ubHkgbWF0Y2ggdGhlIHJvbGUgbmFtZSBleGFjdGx5IGFuZCB3aWxsIG5vdCBtYXRjaFxuICAgKiBhbnkgc2Vzc2lvbiB0aGF0IGhhcyBhc3N1bWVkIHRoZSByb2xlIHNpbmNlIG5vdFByaW5jaXBhbHMgZG9lcyBub3QgYWxsb3dcbiAgICogd2lsZGNhcmQgbWF0Y2hlcyBhbmQgZG9lcyBub3QgZG8gd2lsZGNhcmQgbWF0Y2hlcyBpbXBsaWNpdGx5IGVpdGhlci5cbiAgICpcbiAgICogVGhlIEFST0EgbXVzdCBiZSB1c2VkIGJlY2F1c2UgdGhlcmUgYXJlIG9ubHkgMyBQcmluY2lwYWwgdmFyaWFibGVzIGF2YWlsYWJsZTpcbiAgICogIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfdmFyaWFibGVzLmh0bWwjcHJpbmNpcGFsdGFibGVcbiAgICogIGF3czp1c2VybmFtZSwgYXdzOnVzZXJpZCwgYXdzOlByaW5jaXBhbFRhZ1xuICAgKlxuICAgKiBGb3IgYW4gYXNzdW1lZCByb2xlLCBhd3M6dXNlcm5hbWUgaXMgYmxhbmssIGF3czp1c2VyaWQgaXM6XG4gICAqICBbdW5pcXVlIGlkIEFLQSBBUk9BIGZvciBSb2xlXTpbc2Vzc2lvbiBuYW1lXVxuICAgKlxuICAgKiBUYWJsZSBvZiB1bmlxdWUgSUQgcHJlZml4ZXMgc3VjaCBhcyBBUk9BOlxuICAgKiAgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9pZGVudGlmaWVycy5odG1sI2lkZW50aWZpZXJzLXByZWZpeGVzXG4gICAqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByb2xlIGlzIHNpbXBseSBub3QgYXZhaWxhYmxlIGZvciBhbiBhc3N1bWVkIHJvbGUgYW5kLCBpZiBpdCB3YXMsXG4gICAqIGEgY29tcGxpY2F0ZWQgY29tcGFyaXNvbiB3b3VsZCBiZSByZXF1aWVyZCB0byBwcmV2ZW50IGV4Y2x1c2lvblxuICAgKiBvZiBhcHBseWluZyB0aGUgRGVueSBSdWxlIHRvIHJvbGVzIGZyb20gb3RoZXIgYWNjb3VudHMuXG4gICAqXG4gICAqIFRvIGdldCB0aGUgQVJPQSB3aXRoIHRoZSBBV1MgQ0xJOlxuICAgKiAgIGF3cyBpYW0gZ2V0LXJvbGUgLS1yb2xlLW5hbWUgUk9MRS1OQU1FXG4gICAqICAgYXdzIGlhbSBnZXQtdXNlciAt4oCTdXNlci1uYW1lIFVTRVItTkFNRVxuICAgKlxuICAgKiBAZXhhbXBsZSBbICdBUk9BMTIzNDU2Nzg5MDEyMycgXVxuICAgKlxuICAgKiBAc2VlIHMzU3RyaWN0QnVja2V0UG9saWN5XG4gICAqL1xuICByZWFkb25seSBzM1BvbGljeUJ5cGFzc0FST0FzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGN1c3RvbSBkb21haW4gbmFtZSBmb3IgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgKlxuICAgKiBAZXhhbXBsZSBhcHBzLnB3cmRydnIuY29tXG4gICAqIEBkZWZhdWx0IGF1dG8tYXNzaWduZWRcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVFZGdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gZG9tYWluIG5hbWUgZm9yIHRoZSBBUEkgR2F0ZXdheSBIVFRQdjIgQVBJLlxuICAgKlxuICAgKiBAZXhhbXBsZSBhcHBzLW9yaWdpbi5wd3JkcnZyLmNvbVxuICAgKiBAZGVmYXVsdCBhdXRvLWFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lT3JpZ2luPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHByZWZpeCBvbiB0aGUgcm9vdCBvZiB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb25cbiAgICpcbiAgICogQGV4YW1wbGUgZGV2L1xuICAgKi9cbiAgcmVhZG9ubHkgcm9vdFBhdGhQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBleHRyYSBCZWhhdmlvciAoUm91dGUpIGZvciAvYXBpLyB0aGF0IGFsbG93c1xuICAgKiBBUEkgcm91dGVzIHRvIGhhdmUgYSBwZXJpb2QgaW4gdGhlbS5cbiAgICpcbiAgICogV2hlbiBmYWxzZSBBUEkgcm91dGVzIHdpdGggYSBwZXJpb2QgaW4gdGhlIHBhdGggd2lsbCBnZXQgcm91dGVkIHRvIFMzLlxuICAgKlxuICAgKiBXaGVuIHRydWUgQVBJIHJvdXRlcyB0aGF0IGNvbnRhaW4gL2FwaS8gaW4gdGhlIHBhdGggd2lsbCBnZXQgcm91dGVkIHRvIEFQSSBHYXRld2F5XG4gICAqIGV2ZW4gaWYgdGhleSBoYXZlIGEgcGVyaW9kIGluIHRoZSBwYXRoLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBUElQYXRoUm91dGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRzIGFuIFgtRm9yd2FyZGVkLUhvc3QtSGVhZGVyIHdoZW4gY2FsbGluZyBBUEkgR2F0ZXdheVxuICAgKlxuICAgKiBDYW4gb25seSBiZSB0cnVzdGVkIGlmIGBzaWduaW5nTW9kZWAgaXMgZW5hYmxlZCwgd2hpY2ggcmVzdHJpY3RzXG4gICAqIGFjY2VzcyB0byBBUEkgR2F0ZXdheSB0byBvbmx5IElBTSBzaWduZWQgcmVxdWVzdHMuXG4gICAqXG4gICAqIE5vdGU6IGlmIHRydWUsIGNyZWF0ZXMgT3JpZ2luUmVxdWVzdCBMYW1iZGEgQCBFZGdlIGZ1bmN0aW9uIGZvciBBUEkgR2F0ZXdheSBPcmlnaW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkWEZvcndhcmRlZEhvc3RIZWFkZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBIb3N0IGhlYWRlciAod2hpY2ggd2lsbCBiZSB0aGUgRWRnZSBkb21haW4gbmFtZSkgd2l0aCB0aGUgT3JpZ2luIGRvbWFpbiBuYW1lXG4gICAqIHdoZW4gZW5hYmxlZC4gIFRoaXMgaXMgbmVjZXNzYXJ5IHdoZW4gQVBJIEdhdGV3YXkgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWRcbiAgICogd2l0aCBhIGN1c3RvbSBkb21haW4gbmFtZSB0aGF0IG1hdGNoZXMgdGhlIGV4YWN0IGRvbWFpbiBuYW1lIHVzZWQgYnkgdGhlIENsb3VkRnJvbnRcbiAgICogRGlzdHJpYnV0aW9uIEFORCB3aGVuIHRoZSBPcmlnaW5SZXF1ZXN0UG9saWN5LkhlYWRlcnNCZWhhdmlvciBpcyBzZXRcbiAgICogdG8gcGFzcyBhbGwgaGVhZGVycyB0byB0aGUgb3JpZ2luLlxuICAgKlxuICAgKiBOb3RlOiBpZiB0cnVlLCBjcmVhdGVzIE9yaWdpblJlcXVlc3QgTGFtYmRhIEAgRWRnZSBmdW5jdGlvbiBmb3IgQVBJIEdhdGV3YXkgT3JpZ2luXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxhY2VIb3N0SGVhZGVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmVxdWlyZXMgSUFNIGF1dGggb24gdGhlIEFQSSBHYXRld2F5IG9yaWdpbiBpZiBub3Qgc2V0IHRvICdub25lJy5cbiAgICpcbiAgICogJ3NpZ24nIC0gVXNlcyByZXF1ZXN0IGhlYWRlcnMgZm9yIGF1dGguXG4gICAqICdwcmVzaWduJyAtIFVzZXMgcXVlcnkgc3RyaW5nIGZvciBhdXRoLlxuICAgKlxuICAgKiBJZiBlbmFibGVkLFxuICAgKlxuICAgKiBOb3RlOiBpZiAnc2lnbicgb3IgJ3ByZXNpZ24nLCBjcmVhdGVzIE9yaWdpblJlcXVlc3QgTGFtYmRhIEAgRWRnZSBmdW5jdGlvbiBmb3IgQVBJIEdhdGV3YXkgT3JpZ2luXG4gICAqIEBkZWZhdWx0ICdzaWduJ1xuICAgKi9cbiAgcmVhZG9ubHkgc2lnbmluZ01vZGU/OiAnc2lnbicgfCAncHJlc2lnbicgfCAnbm9uZSc7XG5cbiAgLyoqXG4gICAqIE9yaWdpbiByZWdpb24gdGhhdCBBUEkgR2F0ZXdheSB3aWxsIGJlIGRlcGxveWVkIHRvLCB1c2VkXG4gICAqIGZvciB0aGUgY29uZmlnLnltbCBvbiB0aGUgRWRnZSBmdW5jdGlvbiB0byBzaWduIHJlcXVlc3RzIGZvclxuICAgKiB0aGUgY29ycmVjdCByZWdpb25cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBvcmlnaW5SZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4aXN0aW5nIHRhYmxlIGZvciBhcHBzL3ZlcnNpb25zL3J1bGVzXG4gICAqXG4gICAqIEB3YXJuaW5nIC0gSXQgaXMgKnN0cm9uZ2x5KiBzdWdnZXN0ZWQgdGhhdCBwcm9kdWN0aW9uIHN0YWNrcyBjcmVhdGVcbiAgICogdGhlaXIgb3duIER5bmFtb0RCIFRhYmxlIGFuZCBwYXNzIGl0IGludG8gdGhpcyBjb25zdHJ1Y3QsIGZvciBwcm90ZWN0aW9uXG4gICAqIGFnYWluc3QgZGF0YSBsb3NzIGR1ZSB0byBsb2dpY2FsIElEIGNoYW5nZXMsIHRoZSBhYmlsaXR5IHRvIGNvbmZpZ3VyZVxuICAgKiBQcm92aXNpb25lZCBjYXBhY2l0eSB3aXRoIEF1dG8gU2NhbGluZywgdGhlIGFiaWxpdHkgdG8gYWRkIGFkZGl0aW9uYWwgaW5kaWNlcywgZXRjLlxuICAgKlxuICAgKiBSZXF1aXJlbWVudHM6XG4gICAqIC0gSGFzaCBLZXk6IGBQS2BcbiAgICogLSBTb3J0IEtleTogYFNLYFxuICAgKlxuICAgKiBAZGVmYXVsdCBjcmVhdGVkIGJ5IGNvbnN0cnVjdFxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGU/OiBkeW5hbW9kYi5JVGFibGU7XG5cbiAgLyoqXG4gICAqIFByZS1zZXQgdGFibGUgbmFtZSBmb3IgYXBwcy92ZXJzaW9ucy9ydWxlc1xuICAgKlxuICAgKiBUaGlzIGlzIHJlcXVpcmVkIHdoZW4gdXNpbmcgdjIgcm91dGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVOYW1lRm9yRWRnZVRvT3JpZ2luPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGVkZ2UgbGFtYmRhIGZ1bmN0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZWRnZUxhbWJkYXM/OiBjZi5FZGdlTGFtYmRhW107XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIE1pY3JvQXBwc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElNaWNyb0FwcHMge1xuICAvKioge0Bpbmhlcml0ZG9jIElNaWNyb0FwcHNDRn0gKi9cbiAgcmVhZG9ubHkgY2Y6IElNaWNyb0FwcHNDRjtcblxuICAvKioge0Bpbmhlcml0ZG9jIElNaWNyb0FwcHNFZGdlVG9PcmlnaW59ICovXG4gIHJlYWRvbmx5IGVkZ2VUb09yaWdpbj86IElNaWNyb0FwcHNFZGdlVG9PcmlnaW47XG5cbiAgLyoqIHtAaW5oZXJpdGRvYyBJTWljcm9BcHBzUzN9ICovXG4gIHJlYWRvbmx5IHMzOiBJTWljcm9BcHBzUzM7XG5cbiAgLyoqIHtAaW5oZXJpdGRvYyBJTWljcm9BcHBzU3Zjc30gKi9cbiAgcmVhZG9ubHkgc3ZjczogSU1pY3JvQXBwc1N2Y3M7XG5cbiAgLyoqIHtAaW5oZXJpdGRvYyBJTWljcm9BcHBzQVBJR3d5fSAqL1xuICByZWFkb25seSBhcGlnd3k6IElNaWNyb0FwcHNBUElHd3k7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IE1pY3JvQXBwcyBcInR1cm5rZXlcIiBjb25zdHJ1Y3QgZm9yIHNpbXBsZVxuICogZGVwbG95bWVudHMgYW5kIGZvciBpbml0aWFsIGV2YXVsYXRpb24gb2YgdGhlIE1pY3JvQXBwcyBmcmFtZXdvcmsuXG4gKlxuICogVXNlIHRoaXMgY29uc3RydWN0IHRvIGNyZWF0ZSBhIFBvQyB3b3JraW5nIGVudGlyZSBzdGFjay5cbiAqXG4gKiBEbyBub3QgdXNlIHRoaXMgY29uc3RydWN0IHdoZW4gYWRkaW5nIE1pY3JvQXBwcyB0byBhbiBleGlzdGluZ1xuICogQ2xvdWRGcm9udCwgQVBJIEdhdGV3YXksIFMzIEJ1Y2tldCwgZXRjLiBvciB3aGVyZSBhY2Nlc3NcbiAqIHRvIGFsbCBmZWF0dXJlcyBvZiB0aGUgQVdTIFJlc291cmNlcyBhcmUgbmVlZGVkIChlLmcuIHRvXG4gKiBhZGQgYWRkaXRpb25hbCBCZWhhdmlvcnMgdG8gdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLCBzZXQgYXV0aG9yaXpvcnNcbiAqIG9uIEFQSSBHYXRld2F5LCBldGMuKS5cbiAqXG4gKiBAd2FybmluZyBUaGlzIGNvbnN0cnVjdCBpcyBub3QgaW50ZW5kZWQgZm9yIHByb2R1Y3Rpb24gdXNlLlxuICogSW4gYSBwcm9kdWN0aW9uIHN0YWNrIHRoZSBEeW5hbW9EQiBUYWJsZSwgQVBJIEdhdGV3YXksIFMzIEJ1Y2tldHMsXG4gKiBldGMuIHNob3VsZCBiZSBjcmVhdGVkIGluIGEgXCJkdXJhYmxlXCIgc3RhY2sgd2hlcmUgdGhlIElEcyB3aWxsIG5vdFxuICogY2hhbmdlIGFuZCB3aGVyZSBjaGFuZ2VzIHRvIHRoZSBNaWNyb0FwcHMgY29uc3RydWN0IHdpbGwgbm90XG4gKiBjYXVzZSBmYWlsdXJlcyB0byBkZXBsb3kgb3IgZGF0YSB0byBiZSBkZWxldGVkLlxuICpcbiAqICBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vcHdyZHJ2ci9taWNyb2FwcHMtY29yZS9ibG9iL21haW4vcGFja2FnZXMvY2RrL2xpYi9NaWNyb0FwcHMudHMgfCBleGFtcGxlIHVzYWdlIGluIGEgQ0RLIFN0YWNrIH1cbiAqL1xuZXhwb3J0IGNsYXNzIE1pY3JvQXBwcyBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElNaWNyb0FwcHMge1xuICBwcml2YXRlIF9jZjogTWljcm9BcHBzQ0Y7XG4gIHB1YmxpYyBnZXQgY2YoKTogSU1pY3JvQXBwc0NGIHtcbiAgICByZXR1cm4gdGhpcy5fY2Y7XG4gIH1cblxuICBwcml2YXRlIF9lZGdlVG9PcmlnaW4/OiBNaWNyb0FwcHNFZGdlVG9PcmlnaW47XG4gIHB1YmxpYyBnZXQgZWRnZVRvT3JpZ2luKCk6IElNaWNyb0FwcHNFZGdlVG9PcmlnaW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lZGdlVG9PcmlnaW47XG4gIH1cblxuICBwcml2YXRlIF9zMzogTWljcm9BcHBzUzM7XG4gIHB1YmxpYyBnZXQgczMoKTogSU1pY3JvQXBwc1MzIHtcbiAgICByZXR1cm4gdGhpcy5fczM7XG4gIH1cblxuICBwcml2YXRlIF9hcGlnd3k6IE1pY3JvQXBwc0FQSUd3eTtcbiAgcHVibGljIGdldCBhcGlnd3koKTogSU1pY3JvQXBwc0FQSUd3eSB7XG4gICAgcmV0dXJuIHRoaXMuX2FwaWd3eTtcbiAgfVxuXG4gIHByaXZhdGUgX3N2Y3M6IE1pY3JvQXBwc1N2Y3M7XG4gIHB1YmxpYyBnZXQgc3ZjcygpOiBJTWljcm9BcHBzU3ZjcyB7XG4gICAgcmV0dXJuIHRoaXMuX3N2Y3M7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IE1pY3JvQXBwc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmIChwcm9wcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb3BzIG11c3QgYmUgc2V0Jyk7XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZG9tYWluTmFtZUVkZ2UsXG4gICAgICBkb21haW5OYW1lT3JpZ2luLFxuICAgICAgYXNzZXROYW1lUm9vdCxcbiAgICAgIGFzc2V0TmFtZVN1ZmZpeCxcbiAgICAgIHI1M1pvbmUsXG4gICAgICBjZXJ0RWRnZSxcbiAgICAgIGFwcEVudiA9ICdkZXYnLFxuICAgICAgY2VydE9yaWdpbixcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICBzM1BvbGljeUJ5cGFzc0FST0FzLFxuICAgICAgczNQb2xpY3lCeXBhc3NQcmluY2lwYWxBUk5zLFxuICAgICAgczNTdHJpY3RCdWNrZXRQb2xpY3ksXG4gICAgICByb290UGF0aFByZWZpeCxcbiAgICAgIGNyZWF0ZUFQSVBhdGhSb3V0ZSA9IHRydWUsXG4gICAgICBhZGRYRm9yd2FyZGVkSG9zdEhlYWRlciA9IHRydWUsXG4gICAgICByZXBsYWNlSG9zdEhlYWRlciA9IHRydWUsXG4gICAgICBzaWduaW5nTW9kZSA9ICdzaWduJyxcbiAgICAgIG9yaWdpblJlZ2lvbixcbiAgICAgIHRhYmxlLFxuICAgICAgdGFibGVOYW1lRm9yRWRnZVRvT3JpZ2luLFxuICAgIH0gPSBwcm9wcztcblxuICAgIHRoaXMuX3MzID0gbmV3IE1pY3JvQXBwc1MzKHRoaXMsICdzMycsIHtcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICBidWNrZXRMb2dzTmFtZTogZG9tYWluTmFtZUVkZ2UgPyBgJHtyZXZlcnNlRG9tYWluKGRvbWFpbk5hbWVFZGdlKX0tbG9nc2AgOiB1bmRlZmluZWQsXG4gICAgICBidWNrZXRBcHBzTmFtZTogZG9tYWluTmFtZUVkZ2UgPyBgJHtyZXZlcnNlRG9tYWluKGRvbWFpbk5hbWVFZGdlKX1gIDogdW5kZWZpbmVkLFxuICAgICAgYnVja2V0QXBwc1N0YWdpbmdOYW1lOiBkb21haW5OYW1lRWRnZVxuICAgICAgICA/IGAke3JldmVyc2VEb21haW4oZG9tYWluTmFtZUVkZ2UpfS1zdGFnaW5nYFxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgfSk7XG4gICAgdGhpcy5fYXBpZ3d5ID0gbmV3IE1pY3JvQXBwc0FQSUd3eSh0aGlzLCAnYXBpJywge1xuICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgICBkb21haW5OYW1lRWRnZSxcbiAgICAgIGRvbWFpbk5hbWVPcmlnaW4sXG4gICAgICByNTNab25lLFxuICAgICAgY2VydE9yaWdpbixcbiAgICAgIHJvb3RQYXRoUHJlZml4LFxuICAgICAgcmVxdWlyZUlBTUF1dGhvcml6YXRpb246IHNpZ25pbmdNb2RlICE9PSAnbm9uZScsXG4gICAgfSk7XG4gICAgdGhpcy5fc3ZjcyA9IG5ldyBNaWNyb0FwcHNTdmNzKHRoaXMsICdzdmNzJywge1xuICAgICAgaHR0cEFwaTogdGhpcy5hcGlnd3kuaHR0cEFwaSxcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICBidWNrZXRBcHBzOiB0aGlzLl9zMy5idWNrZXRBcHBzLFxuICAgICAgYnVja2V0QXBwc09BSTogdGhpcy5fczMuYnVja2V0QXBwc09BSSxcbiAgICAgIGJ1Y2tldEFwcHNTdGFnaW5nOiB0aGlzLl9zMy5idWNrZXRBcHBzU3RhZ2luZyxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgICBhcHBFbnYsXG4gICAgICBzM1BvbGljeUJ5cGFzc0FST0FzLFxuICAgICAgczNQb2xpY3lCeXBhc3NQcmluY2lwYWxBUk5zLFxuICAgICAgczNTdHJpY3RCdWNrZXRQb2xpY3ksXG4gICAgICByb290UGF0aFByZWZpeCxcbiAgICAgIHJlcXVpcmVJQU1BdXRob3JpemF0aW9uOiBzaWduaW5nTW9kZSAhPT0gJ25vbmUnLFxuICAgICAgdGFibGUsXG4gICAgfSk7XG4gICAgY29uc3QgZWRnZUxhbWJkYXM6IGNmLkVkZ2VMYW1iZGFbXSA9IFtdO1xuXG4gICAgaWYgKHNpZ25pbmdNb2RlICE9PSAnbm9uZScgfHwgcmVwbGFjZUhvc3RIZWFkZXIgfHwgYWRkWEZvcndhcmRlZEhvc3RIZWFkZXIpIHtcbiAgICAgIHRoaXMuX2VkZ2VUb09yaWdpbiA9IG5ldyBNaWNyb0FwcHNFZGdlVG9PcmlnaW4odGhpcywgJ2VkZ2VUb09yaWdpbicsIHtcbiAgICAgICAgYXNzZXROYW1lUm9vdCxcbiAgICAgICAgYXNzZXROYW1lU3VmZml4LFxuICAgICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgICBhZGRYRm9yd2FyZGVkSG9zdEhlYWRlcixcbiAgICAgICAgcmVwbGFjZUhvc3RIZWFkZXIsXG4gICAgICAgIG9yaWdpblJlZ2lvbixcbiAgICAgICAgc2lnbmluZ01vZGUsXG4gICAgICAgIHJvb3RQYXRoUHJlZml4LFxuICAgICAgICB0YWJsZVJ1bGVzQXJuOiB0YWJsZU5hbWVGb3JFZGdlVG9PcmlnaW4gfHwgdGhpcy5fc3Zjcy50YWJsZS50YWJsZU5hbWUsXG4gICAgICB9KTtcblxuICAgICAgZWRnZUxhbWJkYXMucHVzaCguLi50aGlzLl9lZGdlVG9PcmlnaW4uZWRnZVRvT3JpZ2luTGFtYmRhcyk7XG4gICAgfVxuICAgIC8vIEFkZCBhbnkgZXh0cmEgbGFtYmRhc1xuICAgIGlmIChwcm9wcy5lZGdlTGFtYmRhcz8ubGVuZ3RoKSB7XG4gICAgICBlZGdlTGFtYmRhcy5wdXNoKC4uLnByb3BzLmVkZ2VMYW1iZGFzKTtcbiAgICB9XG4gICAgdGhpcy5fY2YgPSBuZXcgTWljcm9BcHBzQ0YodGhpcywgJ2NmdCcsIHtcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICBhc3NldE5hbWVSb290LFxuICAgICAgYXNzZXROYW1lU3VmZml4LFxuICAgICAgZG9tYWluTmFtZUVkZ2UsXG4gICAgICBkb21haW5OYW1lT3JpZ2luLFxuICAgICAgaHR0cEFwaTogdGhpcy5fYXBpZ3d5Lmh0dHBBcGksXG4gICAgICByNTNab25lLFxuICAgICAgY2VydEVkZ2UsXG4gICAgICBidWNrZXRBcHBzT3JpZ2luOiB0aGlzLl9zMy5idWNrZXRBcHBzT3JpZ2luLFxuICAgICAgYnVja2V0TG9nczogdGhpcy5fczMuYnVja2V0TG9ncyxcbiAgICAgIHJvb3RQYXRoUHJlZml4LFxuICAgICAgY3JlYXRlQVBJUGF0aFJvdXRlLFxuICAgICAgLi4uKGVkZ2VMYW1iZGFzLmxlbmd0aCA/IHsgZWRnZUxhbWJkYXMgfSA6IHt9KSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
137
|
+
MicroApps[_a] = { fqn: "@pwrdrvr/microapps-cdk.MicroApps", version: "0.3.4" };
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9BcHBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01pY3JvQXBwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBLDJDQUF1QztBQUN2Qyx1REFBc0U7QUFDdEUsK0NBQTBEO0FBQzFELG1FQUF3RjtBQUN4RiwrQ0FBMEQ7QUFDMUQsbURBQWdFO0FBQ2hFLHlEQUFzRDtBQW9UdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFhLFNBQVUsU0FBUSxzQkFBUztJQTBCdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjs7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3RDO1FBRUQsTUFBTSxFQUNKLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFDZixPQUFPLEVBQ1AsUUFBUSxFQUNSLE1BQU0sR0FBRyxLQUFLLEVBQ2QsVUFBVSxFQUNWLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsMkJBQTJCLEVBQzNCLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsZ0JBQWdCLEdBQUcsS0FBSyxFQUN4QixrQkFBa0IsR0FBRyxJQUFJLEVBQ3pCLHVCQUF1QixHQUFHLElBQUksRUFDOUIsdUJBQXVCLEdBQUcsSUFBSSxFQUM5QixpQkFBaUIsR0FBRyxJQUFJLEVBQ3hCLFdBQVcsR0FBRyxNQUFNLEVBQ3BCLFlBQVksRUFDWixLQUFLLEVBQ0wsd0JBQXdCLEVBQ3hCLGtCQUFrQixHQUFHLFlBQVksR0FDbEMsR0FBRyxLQUFLLENBQUM7UUFFVixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUkseUJBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLGFBQWE7WUFDYixjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FB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QyxVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVO1lBQy9CLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQy9DLENBQUMsQ0FBQztJQUNMLENBQUM7SUF4SUQsSUFBVyxFQUFFO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFHRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFHRCxJQUFXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUdELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBR0QsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7O0FBeEJILDhCQTJJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBhY20gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBjZiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0ICogYXMgcjUzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSU1pY3JvQXBwc0FQSUd3eSwgTWljcm9BcHBzQVBJR3d5IH0gZnJvbSAnLi9NaWNyb0FwcHNBUElHd3knO1xuaW1wb3J0IHsgSU1pY3JvQXBwc0NGLCBNaWNyb0FwcHNDRiB9IGZyb20gJy4vTWljcm9BcHBzQ0YnO1xuaW1wb3J0IHsgSU1pY3JvQXBwc0VkZ2VUb09yaWdpbiwgTWljcm9BcHBzRWRnZVRvT3JpZ2luIH0gZnJvbSAnLi9NaWNyb0FwcHNFZGdlVG9PcmlnaW4nO1xuaW1wb3J0IHsgSU1pY3JvQXBwc1MzLCBNaWNyb0FwcHNTMyB9IGZyb20gJy4vTWljcm9BcHBzUzMnO1xuaW1wb3J0IHsgSU1pY3JvQXBwc1N2Y3MsIE1pY3JvQXBwc1N2Y3MgfSBmcm9tICcuL01pY3JvQXBwc1N2Y3MnO1xuaW1wb3J0IHsgcmV2ZXJzZURvbWFpbiB9IGZyb20gJy4vdXRpbHMvUmV2ZXJzZURvbWFpbic7XG5cbi8qKlxuICogQSBDREsgQ29uc3RydWN0IGZvciBjcmVhdGluZyBhIE1pY3JvQXBwcyBydW50aW1lIGVudmlyb25tZW50IHVzZWRcbiAqIHRvIGhvc3QgTmV4dC5qcywgUmVhY3QsIG9yIGFueSBvdGhlciBzb3J0IG9mIHdlYiBhcHBsaWNhdGlvbiB3aXRoXG4gKiBtdWx0aXBsZSB2ZXJzaW9ucyBhdmFpbGFibGUgZm9yIGNvbXBhcmlzb24sIHF1aWNrIHJvbGxiYWNrcywgcXVpY2tcbiAqIHJlbGVhc2VzLCBhbmQgYSBjb21wbGV0ZSBsYWNrIG9mIHVzZXIgZGlzdHVyYmFuY2Ugb24gZGVwbG95cy5cbiAqXG4gKiBAcmVtYXJrc1xuICpcbiAqIHtAbGluayBNaWNyb0FwcHN9IHByb3ZpZGVzIGEgdHVybi1rZXkgY29uc3RydWN0IHRoYXQgY3JlYXRlcyBhbGxcbiAqIGRlcGVuZGVuY2llcyB3aXRoIGxpbWl0ZWQgZXhwb3N1cmUgb2YgdW5kZXJseWluZyBBV1MgUmVzb3VyY2Ugb3B0aW9ucy5cbiAqIFRoaXMgY29uc3RydWN0IGlzIHRoZSBlYXNpZXN0IHRvIHVzZSB3aGVuIGV4cGxvcmluZyBNaWNyb0FwcHMgZm9yIHRoZVxuICogZmlyc3QgdGltZS5cbiAqXG4gKiB7QGxpbmsgTWljcm9BcHBzQVBJR3d5fSwge0BsaW5rIE1pY3JvQXBwc0NGfSwge0BsaW5rIE1pY3JvQXBwc1MzfSxcbiAqIGFuZCB7QGxpbmsgTWljcm9BcHBzU3Zjc30sIGFuZCB0aGVpciBoZWxwZXIgc3RhdGljIG1ldGhvZHMsIGNhbiBiZSB1c2VkXG4gKiB0byBjcmVhdGUgQVdTIFJlc291cmNlcyBtb3JlIGRpcmVjdGx5LCB0byBwcm92aWRlIHlvdXIgb3duIEFXUyBSZXNvdXJjZXNcbiAqIChlLmcuIGFuIGV4aXN0aW5nIENsb3VkRnJvbnQgRGlzdHJpYnV0aW9uKSwgYW5kIHRvIGhhdmUgbW9yZSBmbGV4aWJpbGl0eVxuICogdGhhbiB0aGUge0BsaW5rIE1pY3JvQXBwc30gY29uc3RydWN0IG9mZmVycy5cbiAqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqL1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gaW5pdGlhbGl6ZSBhbiBpbnN0YW5jZSBvZiBgTWljcm9BcHBzYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNaWNyb0FwcHNQcm9wcyB7XG4gIC8qKlxuICAgKiBSZW1vdmFsUG9saWN5IG92ZXJyaWRlIGZvciBjaGlsZCByZXNvdXJjZXNcbiAgICpcbiAgICogTm90ZTogaWYgc2V0IHRvIERFU1RST1kgdGhlIFMzIGJ1Y2tlcyB3aWxsIGhhdmUgYGF1dG9EZWxldGVPYmplY3RzYCBzZXQgdG8gYHRydWVgXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcGVyIHJlc291cmNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xuXG4gIC8qKlxuICAgKiBQYXNzZWQgdG8gTk9ERV9FTlYgb2YgUm91dGVyIGFuZCBEZXBsb3llciBMYW1iZGEgZnVuY3Rpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBkZXZcbiAgICovXG4gIHJlYWRvbmx5IGFwcEVudjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhc3NldCBuYW1lIHJvb3RcbiAgICpcbiAgICogQGV4YW1wbGUgbWljcm9hcHBzXG4gICAqIEBkZWZhdWx0IC0gcmVzb3VyY2UgbmFtZXMgYXV0byBhc3NpZ25lZFxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXROYW1lUm9vdD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgYXNzZXQgbmFtZSBzdWZmaXhcbiAgICpcbiAgICogQGV4YW1wbGUgLWRldi1wci0xMlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICByZWFkb25seSBhc3NldE5hbWVTdWZmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJvdXRlNTMgem9uZSBpbiB3aGljaCB0byBjcmVhdGUgb3B0aW9uYWwgYGRvbWFpbk5hbWVFZGdlYCByZWNvcmRcbiAgICovXG4gIHJlYWRvbmx5IHI1M1pvbmU/OiByNTMuSUhvc3RlZFpvbmU7XG5cbiAgLyoqXG4gICAqIENlcnRpZmljYXRlIGluIFVTLUVhc3QtMSBmb3IgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2VydEVkZ2U/OiBhY20uSUNlcnRpZmljYXRlO1xuXG4gIC8qKlxuICAgKiBDZXJ0aWZpY2F0ZSBpbiBkZXBsb3llZCByZWdpb24gZm9yIHRoZSBBUEkgR2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IGNlcnRPcmlnaW4/OiBhY20uSUNlcnRpZmljYXRlO1xuXG4gIC8qKlxuICAgKiBVc2UgYSBzdHJpY3QgUzMgQnVja2V0IFBvbGljeSB0aGF0IHByZXZlbnRzIGFwcGxpY2F0aW9uc1xuICAgKiBmcm9tIHJlYWRpbmcvd3JpdGluZy9tb2RpZnlpbmcvZGVsZXRpbmcgZmlsZXMgaW4gdGhlIFMzIEJ1Y2tldFxuICAgKiBvdXRzaWRlIG9mIHRoZSBwYXRoIHRoYXQgaXMgc3BlY2lmaWMgdG8gdGhlaXIgYXBwL3ZlcnNpb24uXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBzaG91bGQgYmUgdXNlZCB3aGVuIGFwcGxpY2F0aW9ucyBhcmUgbGVzcyB0aGFuXG4gICAqIGZ1bGx5IHRydXN0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzM1N0cmljdEJ1Y2tldFBvbGljeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgd2hlbiB1c2luZyBzM1N0cmljdEJ1Y2tldFBvbGljeSA9IHRydWVcbiAgICpcbiAgICogSUFNIFJvbGUgb3IgSUFNIFVzZXIgbmFtZXMgdG8gZXhjbHVkZSBmcm9tIHRoZSBERU5ZIHJ1bGVzIG9uIHRoZSBTMyBCdWNrZXQgUG9saWN5LlxuICAgKlxuICAgKiBSb2xlcyB0aGF0IGFyZSBBc3N1bWVkIG11c3QgaW5zdGVhZCBoYXZlIHRoZWlyIEFST0EgYWRkZWQgdG8gYHMzUG9saWN5QnlwYXNzQVJPQXNgLlxuICAgKlxuICAgKiBUeXBpY2FsbHkgYW55IGFkbWluIHJvbGVzIC8gdXNlcnMgdGhhdCBuZWVkIHRvIHZpZXcgb3IgbWFuYWdlIHRoZSBTMyBCdWNrZXRcbiAgICogd291bGQgYmUgYWRkZWQgdG8gdGhpcyBsaXN0LlxuICAgKlxuICAgKiBAZXhhbXBsZSBbJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwMTIzOnJvbGUvQWRtaW5BY2Nlc3MnLCAnYXJuOmF3czppYW06OjEyMzQ1Njc4OTAxMjM6dXNlci9NeUFkbWluVXNlciddXG4gICAqXG4gICAqIEBzZWUgczNQb2xpY3lCeXBhc3NBUk9Bc1xuICAgKi9cbiAgcmVhZG9ubHkgczNQb2xpY3lCeXBhc3NQcmluY2lwYWxBUk5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgd2hlbiB1c2luZyBzM1N0cmljdEJ1Y2tldFBvbGljeSA9IHRydWVcbiAgICpcbiAgICogQVJPQXMgb2YgdGhlIElBTSBSb2xlIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgREVOWSBydWxlcyBvbiB0aGUgUzMgQnVja2V0IFBvbGljeS5cbiAgICogVGhpcyBhbGxvd3Mgc2Vzc2lvbnMgdGhhdCBhc3N1bWUgdGhlIElBTSBSb2xlIHRvIGJlIGV4Y2x1ZGVkIGZyb20gdGhlXG4gICAqIERFTlkgcnVsZXMgb24gdGhlIFMzIEJ1Y2tldCBQb2xpY3kuXG4gICAqXG4gICAqIFR5cGljYWxseSBhbnkgYWRtaW4gcm9sZXMgLyB1c2VycyB0aGF0IG5lZWQgdG8gdmlldyBvciBtYW5hZ2UgdGhlIFMzIEJ1Y2tldFxuICAgKiB3b3VsZCBiZSBhZGRlZCB0byB0aGlzIGxpc3QuXG4gICAqXG4gICAqIFJvbGVzIC8gdXNlcnMgdGhhdCBhcmUgdXNlZCBkaXJlY3RseSwgbm90IGFzc3VtZWQsIGNhbiBiZSBhZGRlZCB0byBgczNQb2xpY3lCeXBhc3NSb2xlTmFtZXNgIGluc3RlYWQuXG4gICAqXG4gICAqIE5vdGU6IFRoaXMgQVJPQSBtdXN0IGJlIHNwZWNpZmllZCB0byBwcmV2ZW50IHRoaXMgcG9saWN5IGZyb20gbG9ja2luZ1xuICAgKiBvdXQgbm9uLXJvb3Qgc2Vzc2lvbnMgdGhhdCBoYXZlIGFzc3VtZWQgdGhlIGFkbWluIHJvbGUuXG4gICAqXG4gICAqIFRoZSBub3RQcmluY2lwYWxzIHdpbGwgb25seSBtYXRjaCB0aGUgcm9sZSBuYW1lIGV4YWN0bHkgYW5kIHdpbGwgbm90IG1hdGNoXG4gICAqIGFueSBzZXNzaW9uIHRoYXQgaGFzIGFzc3VtZWQgdGhlIHJvbGUgc2luY2Ugbm90UHJpbmNpcGFscyBkb2VzIG5vdCBhbGxvd1xuICAgKiB3aWxkY2FyZCBtYXRjaGVzIGFuZCBkb2VzIG5vdCBkbyB3aWxkY2FyZCBtYXRjaGVzIGltcGxpY2l0bHkgZWl0aGVyLlxuICAgKlxuICAgKiBUaGUgQVJPQSBtdXN0IGJlIHVzZWQgYmVjYXVzZSB0aGVyZSBhcmUgb25seSAzIFByaW5jaXBhbCB2YXJpYWJsZXMgYXZhaWxhYmxlOlxuICAgKiAgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc192YXJpYWJsZXMuaHRtbCNwcmluY2lwYWx0YWJsZVxuICAgKiAgYXdzOnVzZXJuYW1lLCBhd3M6dXNlcmlkLCBhd3M6UHJpbmNpcGFsVGFnXG4gICAqXG4gICAqIEZvciBhbiBhc3N1bWVkIHJvbGUsIGF3czp1c2VybmFtZSBpcyBibGFuaywgYXdzOnVzZXJpZCBpczpcbiAgICogIFt1bmlxdWUgaWQgQUtBIEFST0EgZm9yIFJvbGVdOltzZXNzaW9uIG5hbWVdXG4gICAqXG4gICAqIFRhYmxlIG9mIHVuaXF1ZSBJRCBwcmVmaXhlcyBzdWNoIGFzIEFST0E6XG4gICAqICBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX2lkZW50aWZpZXJzLmh0bWwjaWRlbnRpZmllcnMtcHJlZml4ZXNcbiAgICpcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJvbGUgaXMgc2ltcGx5IG5vdCBhdmFpbGFibGUgZm9yIGFuIGFzc3VtZWQgcm9sZSBhbmQsIGlmIGl0IHdhcyxcbiAgICogYSBjb21wbGljYXRlZCBjb21wYXJpc29uIHdvdWxkIGJlIHJlcXVpZXJkIHRvIHByZXZlbnQgZXhjbHVzaW9uXG4gICAqIG9mIGFwcGx5aW5nIHRoZSBEZW55IFJ1bGUgdG8gcm9sZXMgZnJvbSBvdGhlciBhY2NvdW50cy5cbiAgICpcbiAgICogVG8gZ2V0IHRoZSBBUk9BIHdpdGggdGhlIEFXUyBDTEk6XG4gICAqICAgYXdzIGlhbSBnZXQtcm9sZSAtLXJvbGUtbmFtZSBST0xFLU5BTUVcbiAgICogICBhd3MgaWFtIGdldC11c2VyIC3igJN1c2VyLW5hbWUgVVNFUi1OQU1FXG4gICAqXG4gICAqIEBleGFtcGxlIFsgJ0FST0ExMjM0NTY3ODkwMTIzJyBdXG4gICAqXG4gICAqIEBzZWUgczNTdHJpY3RCdWNrZXRQb2xpY3lcbiAgICovXG4gIHJlYWRvbmx5IHMzUG9saWN5QnlwYXNzQVJPQXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIGRvbWFpbiBuYW1lIGZvciB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gICAqXG4gICAqIEBleGFtcGxlIGFwcHMucHdyZHJ2ci5jb21cbiAgICogQGRlZmF1bHQgYXV0by1hc3NpZ25lZFxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZUVkZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGN1c3RvbSBkb21haW4gbmFtZSBmb3IgdGhlIEFQSSBHYXRld2F5IEhUVFB2MiBBUEkuXG4gICAqXG4gICAqIEBleGFtcGxlIGFwcHMtb3JpZ2luLnB3cmRydnIuY29tXG4gICAqIEBkZWZhdWx0IGF1dG8tYXNzaWduZWRcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVPcmlnaW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggcHJlZml4IG9uIHRoZSByb290IG9mIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvblxuICAgKlxuICAgKiBAZXhhbXBsZSBkZXYvXG4gICAqL1xuICByZWFkb25seSByb290UGF0aFByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlIEFQSSBHYXRld2F5IGZvciBub24tZWRnZSBpbnZvY2F0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBUElHYXRld2F5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGV4dHJhIEJlaGF2aW9yIChSb3V0ZSkgZm9yIC9hcGkvIHRoYXQgYWxsb3dzXG4gICAqIEFQSSByb3V0ZXMgdG8gaGF2ZSBhIHBlcmlvZCBpbiB0aGVtLlxuICAgKlxuICAgKiBXaGVuIGZhbHNlIEFQSSByb3V0ZXMgd2l0aCBhIHBlcmlvZCBpbiB0aGUgcGF0aCB3aWxsIGdldCByb3V0ZWQgdG8gUzMuXG4gICAqXG4gICAqIFdoZW4gdHJ1ZSBBUEkgcm91dGVzIHRoYXQgY29udGFpbiAvYXBpLyBpbiB0aGUgcGF0aCB3aWxsIGdldCByb3V0ZWQgdG8gQVBJIEdhdGV3YXlcbiAgICogZXZlbiBpZiB0aGV5IGhhdmUgYSBwZXJpb2QgaW4gdGhlIHBhdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUFQSVBhdGhSb3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBleHRyYSBCZWhhdmlvciAoUm91dGUpIGZvciAvX25leHQvZGF0YS9cbiAgICogVGhpcyByb3V0ZSBpcyB1c2VkIGJ5IE5leHQuanMgdG8gbG9hZCBkYXRhIGZyb20gdGhlIEFQSSBHYXRld2F5XG4gICAqIG9uIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgIGNhbGxzLiAgVGhlIHJlcXVlc3RzIGNhbiBlbmQgaW4gYC5qc29uYCxcbiAgICogd2hpY2ggd291bGQgY2F1c2UgdGhlbSB0byBiZSByb3V0ZWQgdG8gUzMgaWYgdGhpcyByb3V0ZSBpcyBub3QgY3JlYXRlZC5cbiAgICpcbiAgICogV2hlbiBmYWxzZSBBUEkgcm91dGVzIHdpdGggYSBwZXJpb2QgaW4gdGhlIHBhdGggd2lsbCBnZXQgcm91dGVkIHRvIFMzLlxuICAgKlxuICAgKiBXaGVuIHRydWUgQVBJIHJvdXRlcyB0aGF0IGNvbnRhaW4gL19uZXh0L2RhdGEvIGluIHRoZSBwYXRoIHdpbGwgZ2V0IHJvdXRlZCB0byBBUEkgR2F0ZXdheVxuICAgKiBldmVuIGlmIHRoZXkgaGF2ZSBhIHBlcmlvZCBpbiB0aGUgcGF0aC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlTmV4dERhdGFQYXRoUm91dGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRzIGFuIFgtRm9yd2FyZGVkLUhvc3QtSGVhZGVyIHdoZW4gY2FsbGluZyBBUEkgR2F0ZXdheVxuICAgKlxuICAgKiBDYW4gb25seSBiZSB0cnVzdGVkIGlmIGBzaWduaW5nTW9kZWAgaXMgZW5hYmxlZCwgd2hpY2ggcmVzdHJpY3RzXG4gICAqIGFjY2VzcyB0byBBUEkgR2F0ZXdheSB0byBvbmx5IElBTSBzaWduZWQgcmVxdWVzdHMuXG4gICAqXG4gICAqIE5vdGU6IGlmIHRydWUsIGNyZWF0ZXMgT3JpZ2luUmVxdWVzdCBMYW1iZGEgQCBFZGdlIGZ1bmN0aW9uIGZvciBBUEkgR2F0ZXdheSBPcmlnaW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkWEZvcndhcmRlZEhvc3RIZWFkZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBIb3N0IGhlYWRlciAod2hpY2ggd2lsbCBiZSB0aGUgRWRnZSBkb21haW4gbmFtZSkgd2l0aCB0aGUgT3JpZ2luIGRvbWFpbiBuYW1lXG4gICAqIHdoZW4gZW5hYmxlZC4gIFRoaXMgaXMgbmVjZXNzYXJ5IHdoZW4gQVBJIEdhdGV3YXkgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWRcbiAgICogd2l0aCBhIGN1c3RvbSBkb21haW4gbmFtZSB0aGF0IG1hdGNoZXMgdGhlIGV4YWN0IGRvbWFpbiBuYW1lIHVzZWQgYnkgdGhlIENsb3VkRnJvbnRcbiAgICogRGlzdHJpYnV0aW9uIEFORCB3aGVuIHRoZSBPcmlnaW5SZXF1ZXN0UG9saWN5LkhlYWRlcnNCZWhhdmlvciBpcyBzZXRcbiAgICogdG8gcGFzcyBhbGwgaGVhZGVycyB0byB0aGUgb3JpZ2luLlxuICAgKlxuICAgKiBOb3RlOiBpZiB0cnVlLCBjcmVhdGVzIE9yaWdpblJlcXVlc3QgTGFtYmRhIEAgRWRnZSBmdW5jdGlvbiBmb3IgQVBJIEdhdGV3YXkgT3JpZ2luXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxhY2VIb3N0SGVhZGVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmVxdWlyZXMgSUFNIGF1dGggb24gdGhlIEFQSSBHYXRld2F5IG9yaWdpbiBpZiBub3Qgc2V0IHRvICdub25lJy5cbiAgICpcbiAgICogJ3NpZ24nIC0gVXNlcyByZXF1ZXN0IGhlYWRlcnMgZm9yIGF1dGguXG4gICAqICdwcmVzaWduJyAtIFVzZXMgcXVlcnkgc3RyaW5nIGZvciBhdXRoLlxuICAgKlxuICAgKiBJZiBlbmFibGVkLFxuICAgKlxuICAgKiBOb3RlOiBpZiAnc2lnbicgb3IgJ3ByZXNpZ24nLCBjcmVhdGVzIE9yaWdpblJlcXVlc3QgTGFtYmRhIEAgRWRnZSBmdW5jdGlvbiBmb3IgQVBJIEdhdGV3YXkgT3JpZ2luXG4gICAqIEBkZWZhdWx0ICdzaWduJ1xuICAgKi9cbiAgcmVhZG9ubHkgc2lnbmluZ01vZGU/OiAnc2lnbicgfCAncHJlc2lnbicgfCAnbm9uZSc7XG5cbiAgLyoqXG4gICAqIE9yaWdpbiByZWdpb24gdGhhdCBBUEkgR2F0ZXdheSBvciBMYW1iZGEgZnVuY3Rpb24gd2lsbCBiZSBkZXBsb3llZCB0bywgdXNlZFxuICAgKiBmb3IgdGhlIGNvbmZpZy55bWwgb24gdGhlIEVkZ2UgZnVuY3Rpb24gdG8gc2lnbiByZXF1ZXN0cyBmb3JcbiAgICogdGhlIGNvcnJlY3QgcmVnaW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luUmVnaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBPcmlnaW4gU2hpZWxkIFJlZ2lvblxuICAgKlxuICAgKiBUaGlzIHNob3VsZCBiZSB0aGUgcmVnaW9uIHdoZXJlIHRoZSBEeW5hbW9EQiBpcyBsb2NhdGVkIHNvIHRoZVxuICAgKiBFZGdlVG9PcmlnaW4gY2FsbHMgaGF2ZSB0aGUgbG93ZXN0IGxhdGVuY3kgKH4xIG1zKS5cbiAgICpcbiAgICogQGRlZmF1bHQgb3JpZ2luUmVnaW9uIGlmIHNwZWNpZmllZCwgb3RoZXJ3aXNlIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luU2hpZWxkUmVnaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeGlzdGluZyB0YWJsZSBmb3IgYXBwcy92ZXJzaW9ucy9ydWxlc1xuICAgKlxuICAgKiBAd2FybmluZyAtIEl0IGlzICpzdHJvbmdseSogc3VnZ2VzdGVkIHRoYXQgcHJvZHVjdGlvbiBzdGFja3MgY3JlYXRlXG4gICAqIHRoZWlyIG93biBEeW5hbW9EQiBUYWJsZSBhbmQgcGFzcyBpdCBpbnRvIHRoaXMgY29uc3RydWN0LCBmb3IgcHJvdGVjdGlvblxuICAgKiBhZ2FpbnN0IGRhdGEgbG9zcyBkdWUgdG8gbG9naWNhbCBJRCBjaGFuZ2VzLCB0aGUgYWJpbGl0eSB0byBjb25maWd1cmVcbiAgICogUHJvdmlzaW9uZWQgY2FwYWNpdHkgd2l0aCBBdXRvIFNjYWxpbmcsIHRoZSBhYmlsaXR5IHRvIGFkZCBhZGRpdGlvbmFsIGluZGljZXMsIGV0Yy5cbiAgICpcbiAgICogUmVxdWlyZW1lbnRzOlxuICAgKiAtIEhhc2ggS2V5OiBgUEtgXG4gICAqIC0gU29ydCBLZXk6IGBTS2BcbiAgICpcbiAgICogQGRlZmF1bHQgY3JlYXRlZCBieSBjb25zdHJ1Y3RcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlPzogZHluYW1vZGIuSVRhYmxlO1xuXG4gIC8qKlxuICAgKiBQcmUtc2V0IHRhYmxlIG5hbWUgZm9yIGFwcHMvdmVyc2lvbnMvcnVsZXNcbiAgICpcbiAgICogVGhpcyBpcyByZXF1aXJlZCB3aGVuIHVzaW5nIHYyIHJvdXRpbmdcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZUZvckVkZ2VUb09yaWdpbj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBlZGdlIGxhbWJkYSBmdW5jdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGVkZ2VMYW1iZGFzPzogY2YuRWRnZUxhbWJkYVtdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBNaWNyb0FwcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTWljcm9BcHBzIHtcbiAgLyoqIHtAaW5oZXJpdGRvYyBJTWljcm9BcHBzQ0Z9ICovXG4gIHJlYWRvbmx5IGNmOiBJTWljcm9BcHBzQ0Y7XG5cbiAgLyoqIHtAaW5oZXJpdGRvYyBJTWljcm9BcHBzRWRnZVRvT3JpZ2lufSAqL1xuICByZWFkb25seSBlZGdlVG9PcmlnaW4/OiBJTWljcm9BcHBzRWRnZVRvT3JpZ2luO1xuXG4gIC8qKiB7QGluaGVyaXRkb2MgSU1pY3JvQXBwc1MzfSAqL1xuICByZWFkb25seSBzMzogSU1pY3JvQXBwc1MzO1xuXG4gIC8qKiB7QGluaGVyaXRkb2MgSU1pY3JvQXBwc1N2Y3N9ICovXG4gIHJlYWRvbmx5IHN2Y3M6IElNaWNyb0FwcHNTdmNzO1xuXG4gIC8qKiB7QGluaGVyaXRkb2MgSU1pY3JvQXBwc0FQSUd3eX0gKi9cbiAgcmVhZG9ubHkgYXBpZ3d5PzogSU1pY3JvQXBwc0FQSUd3eTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgTWljcm9BcHBzIFwidHVybmtleVwiIGNvbnN0cnVjdCBmb3Igc2ltcGxlXG4gKiBkZXBsb3ltZW50cyBhbmQgZm9yIGluaXRpYWwgZXZhdWxhdGlvbiBvZiB0aGUgTWljcm9BcHBzIGZyYW1ld29yay5cbiAqXG4gKiBVc2UgdGhpcyBjb25zdHJ1Y3QgdG8gY3JlYXRlIGEgUG9DIHdvcmtpbmcgZW50aXJlIHN0YWNrLlxuICpcbiAqIERvIG5vdCB1c2UgdGhpcyBjb25zdHJ1Y3Qgd2hlbiBhZGRpbmcgTWljcm9BcHBzIHRvIGFuIGV4aXN0aW5nXG4gKiBDbG91ZEZyb250LCBBUEkgR2F0ZXdheSwgUzMgQnVja2V0LCBldGMuIG9yIHdoZXJlIGFjY2Vzc1xuICogdG8gYWxsIGZlYXR1cmVzIG9mIHRoZSBBV1MgUmVzb3VyY2VzIGFyZSBuZWVkZWQgKGUuZy4gdG9cbiAqIGFkZCBhZGRpdGlvbmFsIEJlaGF2aW9ycyB0byB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24sIHNldCBhdXRob3Jpem9yc1xuICogb24gQVBJIEdhdGV3YXksIGV0Yy4pLlxuICpcbiAqIEB3YXJuaW5nIFRoaXMgY29uc3RydWN0IGlzIG5vdCBpbnRlbmRlZCBmb3IgcHJvZHVjdGlvbiB1c2UuXG4gKiBJbiBhIHByb2R1Y3Rpb24gc3RhY2sgdGhlIER5bmFtb0RCIFRhYmxlLCBBUEkgR2F0ZXdheSwgUzMgQnVja2V0cyxcbiAqIGV0Yy4gc2hvdWxkIGJlIGNyZWF0ZWQgaW4gYSBcImR1cmFibGVcIiBzdGFjayB3aGVyZSB0aGUgSURzIHdpbGwgbm90XG4gKiBjaGFuZ2UgYW5kIHdoZXJlIGNoYW5nZXMgdG8gdGhlIE1pY3JvQXBwcyBjb25zdHJ1Y3Qgd2lsbCBub3RcbiAqIGNhdXNlIGZhaWx1cmVzIHRvIGRlcGxveSBvciBkYXRhIHRvIGJlIGRlbGV0ZWQuXG4gKlxuICogIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9wd3JkcnZyL21pY3JvYXBwcy1jb3JlL2Jsb2IvbWFpbi9wYWNrYWdlcy9jZGsvbGliL01pY3JvQXBwcy50cyB8IGV4YW1wbGUgdXNhZ2UgaW4gYSBDREsgU3RhY2sgfVxuICovXG5leHBvcnQgY2xhc3MgTWljcm9BcHBzIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSU1pY3JvQXBwcyB7XG4gIHByaXZhdGUgX2NmOiBNaWNyb0FwcHNDRjtcbiAgcHVibGljIGdldCBjZigpOiBJTWljcm9BcHBzQ0Yge1xuICAgIHJldHVybiB0aGlzLl9jZjtcbiAgfVxuXG4gIHByaXZhdGUgX2VkZ2VUb09yaWdpbj86IE1pY3JvQXBwc0VkZ2VUb09yaWdpbjtcbiAgcHVibGljIGdldCBlZGdlVG9PcmlnaW4oKTogSU1pY3JvQXBwc0VkZ2VUb09yaWdpbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2VkZ2VUb09yaWdpbjtcbiAgfVxuXG4gIHByaXZhdGUgX3MzOiBNaWNyb0FwcHNTMztcbiAgcHVibGljIGdldCBzMygpOiBJTWljcm9BcHBzUzMge1xuICAgIHJldHVybiB0aGlzLl9zMztcbiAgfVxuXG4gIHByaXZhdGUgX2FwaWd3eT86IE1pY3JvQXBwc0FQSUd3eTtcbiAgcHVibGljIGdldCBhcGlnd3koKTogSU1pY3JvQXBwc0FQSUd3eSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2FwaWd3eTtcbiAgfVxuXG4gIHByaXZhdGUgX3N2Y3M6IE1pY3JvQXBwc1N2Y3M7XG4gIHB1YmxpYyBnZXQgc3ZjcygpOiBJTWljcm9BcHBzU3ZjcyB7XG4gICAgcmV0dXJuIHRoaXMuX3N2Y3M7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IE1pY3JvQXBwc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmIChwcm9wcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb3BzIG11c3QgYmUgc2V0Jyk7XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZG9tYWluTmFtZUVkZ2UsXG4gICAgICBkb21haW5OYW1lT3JpZ2luLFxuICAgICAgYXNzZXROYW1lUm9vdCxcbiAgICAgIGFzc2V0TmFtZVN1ZmZpeCxcbiAgICAgIHI1M1pvbmUsXG4gICAgICBjZXJ0RWRnZSxcbiAgICAgIGFwcEVudiA9ICdkZXYnLFxuICAgICAgY2VydE9yaWdpbixcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICBzM1BvbGljeUJ5cGFzc0FST0FzLFxuICAgICAgczNQb2xpY3lCeXBhc3NQcmluY2lwYWxBUk5zLFxuICAgICAgczNTdHJpY3RCdWNrZXRQb2xpY3ksXG4gICAgICByb290UGF0aFByZWZpeCxcbiAgICAgIGNyZWF0ZUFQSUdhdGV3YXkgPSBmYWxzZSxcbiAgICAgIGNyZWF0ZUFQSVBhdGhSb3V0ZSA9IHRydWUsXG4gICAgICBjcmVhdGVOZXh0RGF0YVBhdGhSb3V0ZSA9IHRydWUsXG4gICAgICBhZGRYRm9yd2FyZGVkSG9zdEhlYWRlciA9IHRydWUsXG4gICAgICByZXBsYWNlSG9zdEhlYWRlciA9IHRydWUsXG4gICAgICBzaWduaW5nTW9kZSA9ICdzaWduJyxcbiAgICAgIG9yaWdpblJlZ2lvbixcbiAgICAgIHRhYmxlLFxuICAgICAgdGFibGVOYW1lRm9yRWRnZVRvT3JpZ2luLFxuICAgICAgb3JpZ2luU2hpZWxkUmVnaW9uID0gb3JpZ2luUmVnaW9uLFxuICAgIH0gPSBwcm9wcztcblxuICAgIHRoaXMuX3MzID0gbmV3IE1pY3JvQXBwc1MzKHRoaXMsICdzMycsIHtcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICBidWNrZXRMb2dzTmFtZTogZG9tYWluTmFtZUVkZ2UgPyBgJHtyZXZlcnNlRG9tYWluKGRvbWFpbk5hbWVFZGdlKX0tbG9nc2AgOiB1bmRlZmluZWQsXG4gICAgICBidWNrZXRBcHBzTmFtZTogZG9tYWluTmFtZUVkZ2UgPyBgJHtyZXZlcnNlRG9tYWluKGRvbWFpbk5hbWVFZGdlKX1gIDogdW5kZWZpbmVkLFxuICAgICAgYnVja2V0QXBwc1N0YWdpbmdOYW1lOiBkb21haW5OYW1lRWRnZVxuICAgICAgICA/IGAke3JldmVyc2VEb21haW4oZG9tYWluTmFtZUVkZ2UpfS1zdGFnaW5nYFxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgICBvcmlnaW5TaGllbGRSZWdpb24sXG4gICAgfSk7XG4gICAgaWYgKGNyZWF0ZUFQSUdhdGV3YXkpIHtcbiAgICAgIHRoaXMuX2FwaWd3eSA9IG5ldyBNaWNyb0FwcHNBUElHd3kodGhpcywgJ2FwaScsIHtcbiAgICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgICAgYXNzZXROYW1lUm9vdCxcbiAgICAgICAgYXNzZXROYW1lU3VmZml4LFxuICAgICAgICBkb21haW5OYW1lRWRnZSxcbiAgICAgICAgZG9tYWluTmFtZU9yaWdpbixcbiAgICAgICAgcjUzWm9uZSxcbiAgICAgICAgY2VydE9yaWdpbixcbiAgICAgICAgcm9vdFBhdGhQcmVmaXgsXG4gICAgICAgIHJlcXVpcmVJQU1BdXRob3JpemF0aW9uOiBzaWduaW5nTW9kZSAhPT0gJ25vbmUnLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuX3N2Y3MgPSBuZXcgTWljcm9BcHBzU3Zjcyh0aGlzLCAnc3ZjcycsIHtcbiAgICAgIC4uLih0aGlzLl9hcGlnd3kgPyB7IGh0dHBBcGk6IHRoaXMuX2FwaWd3eS5odHRwQXBpIH0gOiB7fSksXG4gICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgYnVja2V0QXBwczogdGhpcy5fczMuYnVja2V0QXBwcyxcbiAgICAgIGJ1Y2tldEFwcHNPQUk6IHRoaXMuX3MzLmJ1Y2tldEFwcHNPQUksXG4gICAgICBidWNrZXRBcHBzU3RhZ2luZzogdGhpcy5fczMuYnVja2V0QXBwc1N0YWdpbmcsXG4gICAgICBhc3NldE5hbWVSb290LFxuICAgICAgYXNzZXROYW1lU3VmZml4LFxuICAgICAgYXBwRW52LFxuICAgICAgczNQb2xpY3lCeXBhc3NBUk9BcyxcbiAgICAgIHMzUG9saWN5QnlwYXNzUHJpbmNpcGFsQVJOcyxcbiAgICAgIHMzU3RyaWN0QnVja2V0UG9saWN5LFxuICAgICAgcm9vdFBhdGhQcmVmaXgsXG4gICAgICByZXF1aXJlSUFNQXV0aG9yaXphdGlvbjogc2lnbmluZ01vZGUgIT09ICdub25lJyxcbiAgICAgIHRhYmxlLFxuICAgIH0pO1xuICAgIGNvbnN0IGVkZ2VMYW1iZGFzOiBjZi5FZGdlTGFtYmRhW10gPSBbXTtcblxuICAgIGlmIChzaWduaW5nTW9kZSAhPT0gJ25vbmUnIHx8IHJlcGxhY2VIb3N0SGVhZGVyIHx8IGFkZFhGb3J3YXJkZWRIb3N0SGVhZGVyKSB7XG4gICAgICB0aGlzLl9lZGdlVG9PcmlnaW4gPSBuZXcgTWljcm9BcHBzRWRnZVRvT3JpZ2luKHRoaXMsICdlZGdlVG9PcmlnaW4nLCB7XG4gICAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICAgIGFzc2V0TmFtZVN1ZmZpeCxcbiAgICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgICAgYWRkWEZvcndhcmRlZEhvc3RIZWFkZXIsXG4gICAgICAgIHNldHVwQXBpR2F0ZXdheVBlcm1pc3Npb25zOiBjcmVhdGVBUElHYXRld2F5LFxuICAgICAgICByZXBsYWNlSG9zdEhlYWRlcixcbiAgICAgICAgb3JpZ2luUmVnaW9uLFxuICAgICAgICBzaWduaW5nTW9kZSxcbiAgICAgICAgcm9vdFBhdGhQcmVmaXgsXG4gICAgICAgIHRhYmxlUnVsZXNBcm46IHRhYmxlTmFtZUZvckVkZ2VUb09yaWdpbiB8fCB0aGlzLl9zdmNzLnRhYmxlLnRhYmxlTmFtZSxcbiAgICAgIH0pO1xuXG4gICAgICBlZGdlTGFtYmRhcy5wdXNoKC4uLnRoaXMuX2VkZ2VUb09yaWdpbi5lZGdlVG9PcmlnaW5MYW1iZGFzKTtcbiAgICB9XG4gICAgLy8gQWRkIGFueSBleHRyYSBsYW1iZGFzXG4gICAgaWYgKHByb3BzLmVkZ2VMYW1iZGFzPy5sZW5ndGgpIHtcbiAgICAgIGVkZ2VMYW1iZGFzLnB1c2goLi4ucHJvcHMuZWRnZUxhbWJkYXMpO1xuICAgIH1cbiAgICB0aGlzLl9jZiA9IG5ldyBNaWNyb0FwcHNDRih0aGlzLCAnY2Z0Jywge1xuICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgIGFzc2V0TmFtZVJvb3QsXG4gICAgICBhc3NldE5hbWVTdWZmaXgsXG4gICAgICBkb21haW5OYW1lRWRnZSxcbiAgICAgIGRvbWFpbk5hbWVPcmlnaW4sXG4gICAgICAuLi4odGhpcy5fYXBpZ3d5ID8geyBodHRwQXBpOiB0aGlzLl9hcGlnd3kuaHR0cEFwaSB9IDoge30pLFxuICAgICAgcjUzWm9uZSxcbiAgICAgIGNlcnRFZGdlLFxuICAgICAgYnVja2V0QXBwc09yaWdpbjogdGhpcy5fczMuYnVja2V0QXBwc09yaWdpbixcbiAgICAgIGJ1Y2tldExvZ3M6IHRoaXMuX3MzLmJ1Y2tldExvZ3MsXG4gICAgICByb290UGF0aFByZWZpeCxcbiAgICAgIGNyZWF0ZUFQSVBhdGhSb3V0ZSxcbiAgICAgIGNyZWF0ZU5leHREYXRhUGF0aFJvdXRlLFxuICAgICAgb3JpZ2luU2hpZWxkUmVnaW9uLFxuICAgICAgLi4uKGVkZ2VMYW1iZGFzLmxlbmd0aCA/IHsgZWRnZUxhbWJkYXMgfSA6IHt9KSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/lib/MicroAppsAPIGwy.js
CHANGED
|
@@ -167,5 +167,5 @@ class MicroAppsAPIGwy extends constructs_1.Construct {
|
|
|
167
167
|
}
|
|
168
168
|
exports.MicroAppsAPIGwy = MicroAppsAPIGwy;
|
|
169
169
|
_a = JSII_RTTI_SYMBOL_1;
|
|
170
|
-
MicroAppsAPIGwy[_a] = { fqn: "@pwrdrvr/microapps-cdk.MicroAppsAPIGwy", version: "0.3.
|
|
170
|
+
MicroAppsAPIGwy[_a] = { fqn: "@pwrdrvr/microapps-cdk.MicroAppsAPIGwy", version: "0.3.4" };
|
|
171
171
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9BcHBzQVBJR3d5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01pY3JvQXBwc0FQSUd3eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUEwRDtBQUMxRCwwRUFBMEU7QUFDMUUsNkNBQXlEO0FBR3pELDJDQUEyQztBQUMzQyw2Q0FBNkM7QUFDN0MsK0NBQStDO0FBQy9DLDhEQUE4RDtBQUM5RCwyQ0FBdUM7QUEyRnZDOzs7R0FHRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQVc1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM5QztRQUVELElBQ0UsQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsY0FBYyxLQUFLLFNBQVMsQ0FBQztZQUNuRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFDLEVBQ25FO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1NBQzlGO1FBRUQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQzFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztTQUMzRTtRQUVELElBQ0UsQ0FBQyxLQUFLLENBQUMsY0FBYyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQztZQUN0RSxDQUFDLEtBQUssQ0FBQyxjQUFjLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLEVBQ3RF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LENBQUMsNEJBQTRCLENBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLEVBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQ3hDLENBQ0Y7YUFDRixDQUFDLENBQUM7WUFDSCxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUU7Z0JBQy9CLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNoRDtTQUNGO0lBQ0gsQ0FBQztJQTVMRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFHRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O0FBVEgsMENBK0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXBpZ3d5IGZyb20gJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5djItYWxwaGEnO1xuaW1wb3J0ICogYXMgYXBpZ3d5QXV0aCBmcm9tICdAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheXYyLWF1dGhvcml6ZXJzLWFscGhhJztcbmltcG9ydCB7IFJlbW92YWxQb2xpY3ksIFN0YWNrLCBUYWdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYXBpZ3d5Y2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5djInO1xuaW1wb3J0ICogYXMgYWNtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyByNTMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnO1xuaW1wb3J0ICogYXMgcjUzdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gaW5pdGlhbGl6ZSBhbiBpbnN0YW5jZSBvZiBgTWljcm9BcHBzQVBJR3d5YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNaWNyb0FwcHNBUElHd3lQcm9wcyB7XG4gIC8qKlxuICAgKiBSZW1vdmFsUG9saWN5IG92ZXJyaWRlIGZvciBjaGlsZCByZXNvdXJjZXNcbiAgICpcbiAgICogTm90ZTogaWYgc2V0IHRvIERFU1RST1kgdGhlIFMzIGJ1Y2tlcyB3aWxsIGhhdmUgYGF1dG9EZWxldGVPYmplY3RzYCBzZXQgdG8gYHRydWVgXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcGVyIHJlc291cmNlIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xuXG4gIC8qKlxuICAgKiBDbG91ZEZyb250IGVkZ2UgZG9tYWluIG5hbWVcbiAgICpcbiAgICogQGV4YW1wbGUgYXBwcy5wd3JkcnZyLmNvbVxuICAgKiBAZGVmYXVsdCBhdXRvLWFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lRWRnZT86IHN0cmluZztcblxuICAvKipcbiAgICogQVBJIEdhdGV3YXkgb3JpZ2luIGRvbWFpbiBuYW1lXG4gICAqXG4gICAqIEBleGFtcGxlIGFwcHMtb3JpZ2luLnB3cmRydnIuY29tXG4gICAqIEBkZWZhdWx0IGF1dG8tYXNzaWduZWRcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVPcmlnaW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFzc2V0IG5hbWUgcm9vdFxuICAgKlxuICAgKiBAZXhhbXBsZSBtaWNyb2FwcHNcbiAgICogQGRlZmF1bHQgLSByZXNvdXJjZSBuYW1lcyBhdXRvIGFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSBhc3NldE5hbWVSb290Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhc3NldCBuYW1lIHN1ZmZpeFxuICAgKlxuICAgKiBAZXhhbXBsZSAtZGV2LXByLTEyXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0TmFtZVN1ZmZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgbG9jYWwgcmVnaW9uIEFDTSBjZXJ0aWZpY2F0ZSB0byB1c2UgZm9yIEFQSSBHYXRld2F5XG4gICAqIE5vdGU6IHJlcXVpcmVkIHdoZW4gdXNpbmcgYSBjdXN0b20gZG9tYWluXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNlcnRPcmlnaW4/OiBhY20uSUNlcnRpZmljYXRlO1xuXG4gIC8qKlxuICAgKiBSb3V0ZTUzIHpvbmUgaW4gd2hpY2ggdG8gY3JlYXRlIG9wdGlvbmFsIGBkb21haW5OYW1lRWRnZWAgcmVjb3JkXG4gICAqL1xuICByZWFkb25seSByNTNab25lPzogcjUzLklIb3N0ZWRab25lO1xuXG4gIC8qKlxuICAgKiBQYXRoIHByZWZpeCBvbiB0aGUgcm9vdCBvZiB0aGUgQVBJIEdhdGV3YXkgU3RhZ2VcbiAgICpcbiAgICogQGV4YW1wbGUgZGV2L1xuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICByZWFkb25seSByb290UGF0aFByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVxdWlyZSBJQU0gYXV0aCBvbiBBUEkgR2F0ZXdheVxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlSUFNQXV0aG9yaXphdGlvbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIE1pY3JvQXBwcyBBUEkgR2F0ZXdheVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElNaWNyb0FwcHNBUElHd3kge1xuICAvKipcbiAgICogRG9tYWluIE5hbWUgYXBwbGllZCB0byBBUEkgR2F0ZXdheSBvcmlnaW5cbiAgICovXG4gIHJlYWRvbmx5IGRuQXBwc09yaWdpbj86IGFwaWd3eS5JRG9tYWluTmFtZTtcblxuICAvKipcbiAgICogQVBJIEdhdGV3YXlcbiAgICovXG4gIHJlYWRvbmx5IGh0dHBBcGk6IGFwaWd3eS5IdHRwQXBpO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBNaWNyb0FwcHMgQVBJIEdhdGV3YXkgSFRUUCBBUEkgZW5kcG9pbnQsIG9wdGlvbmFsbHlcbiAqIHJlcXVpcmluZyBJQU0gYXV0aG9yaXphdGlvblxuICovXG5leHBvcnQgY2xhc3MgTWljcm9BcHBzQVBJR3d5IGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSU1pY3JvQXBwc0FQSUd3eSB7XG4gIHByaXZhdGUgX2RuQXBwc09yaWdpbjogYXBpZ3d5LkRvbWFpbk5hbWUgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBnZXQgZG5BcHBzT3JpZ2luKCk6IGFwaWd3eS5JRG9tYWluTmFtZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2RuQXBwc09yaWdpbjtcbiAgfVxuXG4gIHByaXZhdGUgX2h0dHBBcGk6IGFwaWd3eS5IdHRwQXBpO1xuICBwdWJsaWMgZ2V0IGh0dHBBcGkoKTogYXBpZ3d5Lkh0dHBBcGkge1xuICAgIHJldHVybiB0aGlzLl9odHRwQXBpO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1pY3JvQXBwc0FQSUd3eVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmIChwcm9wcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb3BzIGNhbm5vdCBiZSB1bmRlZmluZWQnKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAocHJvcHMucjUzWm9uZSA9PT0gdW5kZWZpbmVkICYmIHByb3BzLmRvbWFpbk5hbWVFZGdlICE9PSB1bmRlZmluZWQpIHx8XG4gICAgICAocHJvcHMucjUzWm9uZSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmRvbWFpbk5hbWVFZGdlID09PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lmIGVpdGhlciBvZiByNTNab25lIG9yIGRvbWFpbk5hbWVFZGdlIGFyZSBzZXQgdGhlbiB0aGUgb3RoZXIgbXVzdCBiZSBzZXQnKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZG9tYWluTmFtZU9yaWdpbiAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmNlcnRPcmlnaW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJZiBkb21haW5OYW1lT3JpZ2luIGlzIHNldCB0aGVuIGNlcnRPcmlnaW4gbXVzdCBiZSBzZXQnKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAocHJvcHMuZG9tYWluTmFtZUVkZ2UgPT09IHVuZGVmaW5lZCAmJiBwcm9wcy5jZXJ0T3JpZ2luICE9PSB1bmRlZmluZWQpIHx8XG4gICAgICAocHJvcHMuZG9tYWluTmFtZUVkZ2UgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5jZXJ0T3JpZ2luID09PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdJZiBlaXRoZXIgb2YgZG9tYWluTmFtZUVkZ2Ugb3IgY2VydE9yaWdpbiBhcmUgc2V0IHRoZW4gdGhlIG90aGVyIG11c3QgYmUgc2V0JyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgcjUzWm9uZSxcbiAgICAgIGRvbWFpbk5hbWVFZGdlLFxuICAgICAgZG9tYWluTmFtZU9yaWdpbixcbiAgICAgIGNlcnRPcmlnaW4sXG4gICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgYXNzZXROYW1lUm9vdCxcbiAgICAgIGFzc2V0TmFtZVN1ZmZpeCxcbiAgICAgIHJvb3RQYXRoUHJlZml4LFxuICAgICAgcmVxdWlyZUlBTUF1dGhvcml6YXRpb24gPSB0cnVlLFxuICAgIH0gPSBwcm9wcztcblxuICAgIC8vIEFQSSBHYXRld2F5IHVzZXMgdGhlIGBpZGAgc3RyaW5nIGFzIHRoZSBnYXRld2F5IG5hbWUgd2l0aG91dFxuICAgIC8vIGFueSByYW5kb21pemF0aW9uLi4uIHdlIGhhdmUgdG8gbWFrZSBzdXJlIHRoZSBuYW1lIGlzIHVuaXF1ZS1pc2hcbiAgICBjb25zdCBhcGlnYXRld2F5TmFtZSA9IGFzc2V0TmFtZVJvb3RcbiAgICAgID8gYCR7YXNzZXROYW1lUm9vdH0ke2Fzc2V0TmFtZVN1ZmZpeH1gXG4gICAgICA6IGAke1N0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX0tbWljcm9hcHBzYDtcblxuICAgIC8vXG4gICAgLy8gQVBJR2F0ZXdheSBkb21haW4gbmFtZXMgZm9yIENsb3VkRnJvbnQgYW5kIG9yaWdpblxuICAgIC8vXG4gICAgdGhpcy5faHR0cEFwaSA9IG5ldyBhcGlnd3kuSHR0cEFwaSh0aGlzLCAnZ3d5Jywge1xuICAgICAgYXBpTmFtZTogYXBpZ2F0ZXdheU5hbWUsXG4gICAgICBjcmVhdGVEZWZhdWx0U3RhZ2U6IGZhbHNlLFxuICAgICAgZGVmYXVsdEF1dGhvcml6ZXI6IHJlcXVpcmVJQU1BdXRob3JpemF0aW9uID8gbmV3IGFwaWd3eUF1dGguSHR0cElhbUF1dGhvcml6ZXIoKSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBpZiAocmVtb3ZhbFBvbGljeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9odHRwQXBpLmFwcGx5UmVtb3ZhbFBvbGljeShyZW1vdmFsUG9saWN5KTtcbiAgICB9XG4gICAgLy8gVGhpcyBhbGxvd3MgdGhlIExhbWJkYSBAIEVkZ2UgZnVuY3Rpb24gdG8gZXhlY3V0ZSB0aGlzIGFwaVxuICAgIFRhZ3Mub2YodGhpcy5faHR0cEFwaSkuYWRkKCdtaWNyb2FwcC1tYW5hZ2VkJywgJ3RydWUnKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgc3RhZ2VcbiAgICBjb25zdCBzdGFnZSA9IG5ldyBhcGlnd3kuSHR0cFN0YWdlKHRoaXMsICdzdGFnZScsIHtcbiAgICAgIGh0dHBBcGk6IHRoaXMuX2h0dHBBcGksXG4gICAgICBhdXRvRGVwbG95OiB0cnVlLFxuICAgICAgLy8gSWYgcm9vdFBhdGhQcmVmaXggaXMgbm90IGRlZmluZWQgdGhpcyB3aWxsIGJlIHRoZSAkZGVmYXVsdCBzdGFnZVxuICAgICAgc3RhZ2VOYW1lOiByb290UGF0aFByZWZpeCxcbiAgICB9KTtcbiAgICAvLyBUaGlzIGFsbG93cyB0aGUgTGFtYmRhIEAgRWRnZSBmdW5jdGlvbiB0byBleGVjdXRlIHRoaXMgYXBpXG4gICAgVGFncy5vZihzdGFnZSkuYWRkKCdtaWNyb2FwcC1tYW5hZ2VkJywgJ3RydWUnKTtcblxuICAgIGlmIChkb21haW5OYW1lRWRnZSAhPT0gdW5kZWZpbmVkICYmIGNlcnRPcmlnaW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gQ3JlYXRlIEN1c3RvbSBEb21haW5zIGZvciBBUEkgR2F0ZXdheVxuICAgICAgY29uc3QgZG5BcHBzRWRnZSA9IG5ldyBhcGlnd3kuRG9tYWluTmFtZSh0aGlzLCAnbWljcm9hcHBzLWFwcHMtZWRnZS1kbicsIHtcbiAgICAgICAgZG9tYWluTmFtZTogZG9tYWluTmFtZUVkZ2UsXG4gICAgICAgIGNlcnRpZmljYXRlOiBjZXJ0T3JpZ2luLFxuICAgICAgfSk7XG4gICAgICBpZiAocmVtb3ZhbFBvbGljeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRuQXBwc0VkZ2UuYXBwbHlSZW1vdmFsUG9saWN5KHJlbW92YWxQb2xpY3kpO1xuICAgICAgfVxuXG4gICAgICAvLyBDcmVhdGUgdGhlIGVkZ2UgZG9tYWluIG5hbWUgbWFwcGluZyBmb3IgdGhlIEFQSVxuICAgICAgY29uc3QgYXBpTWFwcGluZyA9IG5ldyBhcGlnd3kuQXBpTWFwcGluZyh0aGlzLCAnbWFwcGluZycsIHtcbiAgICAgICAgYXBpOiB0aGlzLl9odHRwQXBpLFxuICAgICAgICBkb21haW5OYW1lOiBkbkFwcHNFZGdlLFxuICAgICAgICBzdGFnZSxcbiAgICAgIH0pO1xuICAgICAgLy8gMjAyMi0wMS0xNiAtIENESyBpcyBzdGlsbCBnZW5lcmF0aW5nIENsb3VkRm9ybWF0aW9uIHdpdGggbm8gZGVwZW5kZW5jeVxuICAgICAgLy8gYmV0d2VlbiB0aGUgUjUzIFJlY29yZFNldCBhbmQgdGhlIE1hcHBpbmdcbiAgICAgIGFwaU1hcHBpbmcubm9kZS5hZGREZXBlbmRlbmN5KGRuQXBwc0VkZ2UpO1xuICAgIH1cblxuICAgIGlmIChkb21haW5OYW1lT3JpZ2luICE9PSB1bmRlZmluZWQgJiYgY2VydE9yaWdpbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9kbkFwcHNPcmlnaW4gPSBuZXcgYXBpZ3d5LkRvbWFpbk5hbWUodGhpcywgJ29yaWdpbi1kbicsIHtcbiAgICAgICAgZG9tYWluTmFtZTogZG9tYWluTmFtZU9yaWdpbixcbiAgICAgICAgY2VydGlmaWNhdGU6IGNlcnRPcmlnaW4sXG4gICAgICB9KTtcbiAgICAgIGlmIChyZW1vdmFsUG9saWN5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fZG5BcHBzT3JpZ2luLmFwcGx5UmVtb3ZhbFBvbGljeShyZW1vdmFsUG9saWN5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbmFibGUgYWNjZXNzIGxvZ3Mgb24gQVBJIEdhdGV3YXlcbiAgICBjb25zdCBhcGlBY2Nlc3NMb2dzID0gbmV3IGxvZ3MuTG9nR3JvdXAodGhpcywgJ2xvZ3MnLCB7XG4gICAgICBsb2dHcm91cE5hbWU6IGFwaWdhdGV3YXlOYW1lXG4gICAgICAgID8gYC9hd3MvYXBpZ3d5LyR7YXBpZ2F0ZXdheU5hbWV9YFxuICAgICAgICA6IGAvYXdzL2FwaWd3eS8ke3RoaXMuaHR0cEFwaS5odHRwQXBpTmFtZX1gLFxuICAgICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuVFdPX1dFRUtTLFxuICAgIH0pO1xuICAgIGlmIChyZW1vdmFsUG9saWN5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFwaUFjY2Vzc0xvZ3MuYXBwbHlSZW1vdmFsUG9saWN5KHJlbW92YWxQb2xpY3kpO1xuICAgIH1cbiAgICBjb25zdCBjZm5TdGFnZSA9IHN0YWdlLm5vZGUuZGVmYXVsdENoaWxkIGFzIGFwaWd3eWNmbi5DZm5TdGFnZTtcbiAgICBjZm5TdGFnZS5hY2Nlc3NMb2dTZXR0aW5ncyA9IHtcbiAgICAgIGRlc3RpbmF0aW9uQXJuOiBhcGlBY2Nlc3NMb2dzLmxvZ0dyb3VwQXJuLFxuICAgICAgZm9ybWF0OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHJlcXVlc3RJZDogJyRjb250ZXh0LnJlcXVlc3RJZCcsXG4gICAgICAgIHVzZXJBZ2VudDogJyRjb250ZXh0LmlkZW50aXR5LnVzZXJBZ2VudCcsXG4gICAgICAgIHNvdXJjZUlwOiAnJGNvbnRleHQuaWRlbnRpdHkuc291cmNlSXAnLFxuICAgICAgICByZXF1ZXN0VGltZTogJyRjb250ZXh0LnJlcXVlc3RUaW1lJyxcbiAgICAgICAgcmVxdWVzdFRpbWVFcG9jaDogJyRjb250ZXh0LnJlcXVlc3RUaW1lRXBvY2gnLFxuICAgICAgICBodHRwTWV0aG9kOiAnJGNvbnRleHQuaHR0cE1ldGhvZCcsXG4gICAgICAgIHBhdGg6ICckY29udGV4dC5wYXRoJyxcbiAgICAgICAgc3RhdHVzOiAnJGNvbnRleHQuc3RhdHVzJyxcbiAgICAgICAgcHJvdG9jb2w6ICckY29udGV4dC5wcm90b2NvbCcsXG4gICAgICAgIHJlc3BvbnNlTGVuZ3RoOiAnJGNvbnRleHQucmVzcG9uc2VMZW5ndGgnLFxuICAgICAgICBkb21haW5OYW1lOiAnJGNvbnRleHQuZG9tYWluTmFtZScsXG4gICAgICAgIGF1dGhvcml6ZXJFcnJvcjogJyRjb250ZXh0LmF1dGhvcml6ZXIuZXJyb3InLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIC8vIENyZWF0ZSBhIGxvZ2dpbmcgcm9sZVxuICAgIC8vIFRpcHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTExMDBcbiAgICBjb25zdCBhcGlHd3lMb2dSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdsb2dzLXJvbGUnLCB7XG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFxuICAgICAgICAgICdzZXJ2aWNlLXJvbGUvQW1hem9uQVBJR2F0ZXdheVB1c2hUb0Nsb3VkV2F0Y2hMb2dzJyxcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnYXBpZ2F0ZXdheS5hbWF6b25hd3MuY29tJyksXG4gICAgfSk7XG4gICAgYXBpQWNjZXNzTG9ncy5ncmFudFdyaXRlKGFwaUd3eUxvZ1JvbGUpO1xuXG4gICAgLy9cbiAgICAvLyBMZXQgQVBJIEdhdGV3YXkgYWNjZXB0IHJlcXVlc3RzIHVzaW5nIGRvbWFpbk5hbWVPcmlnaW5cbiAgICAvLyBUaGF0IGlzIHRoZSBvcmlnaW4gVVJJIHRoYXQgQ2xvdWRGcm9udCB1c2VzIGZvciB0aGlzIGdhdGV3YXkuXG4gICAgLy8gVGhlIGdhdGV3YXkgd2lsbCByZWZ1c2UgdGhlIHRyYWZmaWMgaWYgaXQgZG9lc24ndCBoYXZlIHRoZVxuICAgIC8vIGRvbWFpbiBuYW1lIHJlZ2lzdGVyZWQuXG4gICAgLy9cbiAgICBpZiAodGhpcy5fZG5BcHBzT3JpZ2luICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG1hcHBpbmdBcHBzQXBpcyA9IG5ldyBhcGlnd3kuQXBpTWFwcGluZyh0aGlzLCAnYXBpLW1hcC1vcmlnaW4nLCB7XG4gICAgICAgIGFwaTogdGhpcy5faHR0cEFwaSxcbiAgICAgICAgZG9tYWluTmFtZTogdGhpcy5fZG5BcHBzT3JpZ2luLFxuICAgICAgICBzdGFnZSxcbiAgICAgIH0pO1xuICAgICAgLy8gMjAyMi0wMS0xNiAtIENESyBpcyBzdGlsbCBnZW5lcmF0aW5nIENsb3VkRm9ybWF0aW9uIHdpdGggbm8gZGVwZW5kZW5jeVxuICAgICAgLy8gYmV0d2VlbiB0aGUgUjUzIFJlY29yZFNldCBhbmQgdGhlIE1hcHBpbmdcbiAgICAgIG1hcHBpbmdBcHBzQXBpcy5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5fZG5BcHBzT3JpZ2luKTtcbiAgICAgIGlmIChyZW1vdmFsUG9saWN5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbWFwcGluZ0FwcHNBcGlzLmFwcGx5UmVtb3ZhbFBvbGljeShyZW1vdmFsUG9saWN5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIENyZWF0ZSB0aGUgb3JpZ2luIG5hbWUgZm9yIEFQSSBHYXRld2F5XG4gICAgLy9cbiAgICBpZiAocjUzWm9uZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX2RuQXBwc09yaWdpbikge1xuICAgICAgY29uc3QgcnJBcHBzT3JpZ2luID0gbmV3IHI1My5BUmVjb3JkKHRoaXMsICdvcmlnaW4tYXJlY29yZCcsIHtcbiAgICAgICAgem9uZTogcjUzWm9uZSxcbiAgICAgICAgcmVjb3JkTmFtZTogZG9tYWluTmFtZU9yaWdpbixcbiAgICAgICAgdGFyZ2V0OiByNTMuUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhcbiAgICAgICAgICBuZXcgcjUzdGFyZ2V0cy5BcGlHYXRld2F5djJEb21haW5Qcm9wZXJ0aWVzKFxuICAgICAgICAgICAgdGhpcy5fZG5BcHBzT3JpZ2luLnJlZ2lvbmFsRG9tYWluTmFtZSxcbiAgICAgICAgICAgIHRoaXMuX2RuQXBwc09yaWdpbi5yZWdpb25hbEhvc3RlZFpvbmVJZCxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgfSk7XG4gICAgICBpZiAocmVtb3ZhbFBvbGljeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJyQXBwc09yaWdpbi5hcHBseVJlbW92YWxQb2xpY3kocmVtb3ZhbFBvbGljeSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|