@pipeline-builder/api-core 5.2.6 → 5.2.8
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/lib/constants/ai-providers.js +1 -1
- package/lib/constants/http-status.js +1 -1
- package/lib/constants/index.js +1 -1
- package/lib/constants/time.js +1 -1
- package/lib/errors/app-errors.js +1 -1
- package/lib/errors/index.js +1 -1
- package/lib/helpers/access-helpers.d.ts +19 -0
- package/lib/helpers/access-helpers.js +24 -4
- package/lib/helpers/content-disposition.js +1 -1
- package/lib/helpers/crud-helpers.js +1 -1
- package/lib/helpers/index.d.ts +1 -1
- package/lib/helpers/index.js +2 -2
- package/lib/helpers/org-hierarchy-http.js +1 -1
- package/lib/helpers/org-hierarchy.js +1 -1
- package/lib/helpers/restore-helpers.js +1 -1
- package/lib/helpers/sse-helpers.js +13 -2
- package/lib/helpers/support-calendar.js +1 -1
- package/lib/index.js +1 -1
- package/lib/middleware/ask-provenance.js +1 -1
- package/lib/middleware/assurance.js +1 -1
- package/lib/middleware/auth.js +3 -2
- package/lib/middleware/client-version.d.ts +45 -0
- package/lib/middleware/client-version.js +97 -0
- package/lib/middleware/deferred-quota-check.js +1 -1
- package/lib/middleware/ecosystem-guard.js +1 -1
- package/lib/middleware/index.d.ts +1 -0
- package/lib/middleware/index.js +2 -1
- package/lib/middleware/jwt-verify.js +1 -1
- package/lib/middleware/mongo-sanitize.js +1 -1
- package/lib/middleware/on-behalf.js +1 -1
- package/lib/middleware/permission-gates.js +1 -1
- package/lib/middleware/quota-exempt-routes.js +1 -1
- package/lib/middleware/revocation.js +1 -1
- package/lib/middleware/route-table.js +16 -1
- package/lib/middleware/service-tokens.js +1 -1
- package/lib/middleware/step-up.js +1 -1
- package/lib/middleware/system-org.d.ts +18 -5
- package/lib/middleware/system-org.js +19 -6
- package/lib/openapi/extend-zod.js +1 -1
- package/lib/openapi/index.js +1 -1
- package/lib/openapi/registry.js +1 -1
- package/lib/openapi/routes/ask-routes.js +1 -1
- package/lib/openapi/routes/billing-routes.js +1 -1
- package/lib/openapi/routes/image-registry-routes.js +1 -1
- package/lib/openapi/routes/index.js +1 -1
- package/lib/openapi/routes/message-routes.js +1 -1
- package/lib/openapi/routes/pipeline-routes.js +1 -1
- package/lib/openapi/routes/pipeline-template-routes.js +1 -1
- package/lib/openapi/routes/plugin-routes.js +1 -1
- package/lib/openapi/routes/quota-routes.js +1 -1
- package/lib/openapi/schema-registry.js +1 -1
- package/lib/routes/health.js +1 -1
- package/lib/routes/index.js +1 -1
- package/lib/services/ai-call-weight.js +1 -1
- package/lib/services/alert-delivery.js +1 -1
- package/lib/services/api-key-exchange.d.ts +4 -2
- package/lib/services/api-key-exchange.js +15 -8
- package/lib/services/audit-context.d.ts +3 -0
- package/lib/services/audit-context.js +2 -1
- package/lib/services/audit-spool.js +1 -1
- package/lib/services/cache-service.js +1 -1
- package/lib/services/circuit-breaker.js +1 -1
- package/lib/services/compliance-client.js +1 -1
- package/lib/services/compliance-event-subscriber.js +1 -1
- package/lib/services/durable-event-bus.js +1 -1
- package/lib/services/ecosystem-notify-client.d.ts +7 -1
- package/lib/services/ecosystem-notify-client.js +9 -3
- package/lib/services/entity-events.js +1 -1
- package/lib/services/env-redis.js +1 -1
- package/lib/services/http-client.js +19 -3
- package/lib/services/index.d.ts +1 -1
- package/lib/services/index.js +2 -2
- package/lib/services/jwks-cache.js +1 -1
- package/lib/services/leader-lock.js +1 -1
- package/lib/services/notification-channels.js +1 -1
- package/lib/services/org-ai-client.js +1 -1
- package/lib/services/pagerduty-inbound.js +1 -1
- package/lib/services/pagerduty.js +1 -1
- package/lib/services/quota-increment-batcher.js +1 -1
- package/lib/services/quota.js +1 -1
- package/lib/services/remote-audit-client.js +1 -1
- package/lib/services/retry-forever.js +1 -1
- package/lib/services/retry-strategy.js +1 -1
- package/lib/services/s3-client.js +1 -1
- package/lib/services/scheduler.js +1 -1
- package/lib/services/service-boot.js +1 -1
- package/lib/services/service-keys.js +2 -2
- package/lib/services/sse-ticket-store.js +1 -1
- package/lib/services/system-notification.js +1 -1
- package/lib/services/token-revocation.js +1 -1
- package/lib/services/version-vuln-policy.d.ts +11 -0
- package/lib/services/version-vuln-policy.js +33 -7
- package/lib/types/ai-catalog.js +1 -1
- package/lib/types/ask-proposals.d.ts +23 -0
- package/lib/types/ask-proposals.js +29 -1
- package/lib/types/audit-events.js +1 -1
- package/lib/types/build-catalog.d.ts +65 -0
- package/lib/types/build-catalog.js +95 -1
- package/lib/types/catalog-metadata.js +1 -1
- package/lib/types/common.js +1 -1
- package/lib/types/compliance-exemption.js +1 -1
- package/lib/types/ecosystem-notifications.d.ts +9 -0
- package/lib/types/ecosystem-notifications.js +15 -6
- package/lib/types/ecosystem.d.ts +1 -6
- package/lib/types/ecosystem.js +18 -5
- package/lib/types/error-codes.d.ts +3 -0
- package/lib/types/error-codes.js +6 -1
- package/lib/types/feature-flags.d.ts +17 -1
- package/lib/types/feature-flags.js +1 -1
- package/lib/types/http.js +1 -1
- package/lib/types/index.d.ts +3 -3
- package/lib/types/index.js +4 -4
- package/lib/types/metadata-keys.js +1 -1
- package/lib/types/permissions.d.ts +60 -13
- package/lib/types/permissions.js +63 -14
- package/lib/types/pipeline-template.js +1 -1
- package/lib/types/pipeline.js +1 -1
- package/lib/types/plugin-catalog.js +1 -1
- package/lib/types/plugin-health.js +1 -1
- package/lib/types/plugin-scan.d.ts +69 -0
- package/lib/types/plugin-scan.js +77 -1
- package/lib/types/quota-catalog.js +15 -2
- package/lib/types/quota-tiers.d.ts +27 -160
- package/lib/types/quota-tiers.js +47 -255
- package/lib/types/remote-audit-actions.d.ts +1 -1
- package/lib/types/remote-audit-actions.js +9 -1
- package/lib/types/reserved-tags.js +1 -1
- package/lib/types/tier-limits.d.ts +210 -0
- package/lib/types/tier-limits.js +254 -0
- package/lib/types/usage-projection.js +1 -1
- package/lib/types/visibility.js +1 -1
- package/lib/types/wire-vocabulary.d.ts +7 -0
- package/lib/types/wire-vocabulary.js +7 -1
- package/lib/utils/alias-resolver.js +1 -1
- package/lib/utils/api-key.js +1 -1
- package/lib/utils/audit.js +1 -1
- package/lib/utils/aws-scrub.js +1 -1
- package/lib/utils/compliance-attributes.js +1 -1
- package/lib/utils/concurrency-gate.d.ts +98 -0
- package/lib/utils/concurrency-gate.js +110 -0
- package/lib/utils/concurrency.js +1 -1
- package/lib/utils/crash-handlers.js +1 -1
- package/lib/utils/date.js +1 -1
- package/lib/utils/dsse.js +1 -1
- package/lib/utils/env.d.ts +11 -0
- package/lib/utils/env.js +14 -1
- package/lib/utils/headers.js +1 -1
- package/lib/utils/identity.js +1 -1
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +3 -1
- package/lib/utils/jwk.js +2 -2
- package/lib/utils/logger.js +1 -1
- package/lib/utils/metric-emitter.js +1 -1
- package/lib/utils/object.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/plugin-compliance.d.ts +9 -1
- package/lib/utils/plugin-compliance.js +1 -1
- package/lib/utils/proof-of-work.js +1 -1
- package/lib/utils/response.js +1 -1
- package/lib/utils/retention.js +1 -1
- package/lib/utils/safe-require.js +1 -1
- package/lib/utils/secret-encryption.js +1 -1
- package/lib/utils/secret-rotation.js +1 -1
- package/lib/utils/secure-compare.js +1 -1
- package/lib/utils/semver.d.ts +18 -0
- package/lib/utils/semver.js +120 -0
- package/lib/utils/sensitive-patterns.js +1 -1
- package/lib/utils/service-registry.js +1 -1
- package/lib/utils/ssrf.js +1 -1
- package/lib/validation/ai-schemas.js +1 -1
- package/lib/validation/common-schemas.js +1 -1
- package/lib/validation/dockerfile-static.js +1 -1
- package/lib/validation/index.d.ts +1 -1
- package/lib/validation/index.js +2 -2
- package/lib/validation/message-schemas.d.ts +73 -0
- package/lib/validation/message-schemas.js +63 -2
- package/lib/validation/middleware.js +1 -1
- package/lib/validation/pipeline-schemas.js +1 -1
- package/lib/validation/pipeline-template-schemas.js +1 -1
- package/lib/validation/plugin-base-images.js +1 -1
- package/lib/validation/plugin-catalog-detect.js +1 -1
- package/lib/validation/plugin-catalog-metadata.js +1 -1
- package/lib/validation/plugin-heuristics.js +1 -1
- package/lib/validation/plugin-lint.js +1 -1
- package/lib/validation/plugin-name-confusable.js +1 -1
- package/lib/validation/plugin-schemas.js +1 -1
- package/lib/validation/plugin-spec-schema.js +1 -1
- package/lib/validation/plugin-template-contract.js +1 -1
- package/package.json +11 -4
package/lib/types/error-codes.js
CHANGED
|
@@ -89,6 +89,10 @@ export var ErrorCode;
|
|
|
89
89
|
ErrorCode["TEMPLATE_CONTRACT_VIOLATION"] = "TEMPLATE_CONTRACT_VIOLATION";
|
|
90
90
|
ErrorCode["TEMPLATE_SIZE_EXCEEDED"] = "TEMPLATE_SIZE_EXCEEDED";
|
|
91
91
|
ErrorCode["TEMPLATE_VALIDATION_FAILED"] = "TEMPLATE_VALIDATION_FAILED";
|
|
92
|
+
// Client too old (426)
|
|
93
|
+
/** The pipeline-manager CLI is older than the platform's
|
|
94
|
+
* `PIPELINE_MANAGER_MIN_VERSION`; the fix is `pipeline-manager --upgrade`. */
|
|
95
|
+
ErrorCode["CLIENT_UPGRADE_REQUIRED"] = "CLIENT_UPGRADE_REQUIRED";
|
|
92
96
|
// Quota/Rate limit errors (429)
|
|
93
97
|
ErrorCode["QUOTA_EXCEEDED"] = "QUOTA_EXCEEDED";
|
|
94
98
|
/** The caller's per-member share of the org's `aiCalls` (org setting
|
|
@@ -226,6 +230,7 @@ export const ErrorCodeStatus = {
|
|
|
226
230
|
[ErrorCode.TEMPLATE_CONTRACT_VIOLATION]: 400,
|
|
227
231
|
[ErrorCode.TEMPLATE_SIZE_EXCEEDED]: 400,
|
|
228
232
|
[ErrorCode.TEMPLATE_VALIDATION_FAILED]: 400,
|
|
233
|
+
[ErrorCode.CLIENT_UPGRADE_REQUIRED]: 426,
|
|
229
234
|
[ErrorCode.QUOTA_EXCEEDED]: 429,
|
|
230
235
|
[ErrorCode.AI_MEMBER_SHARE_EXCEEDED]: 429,
|
|
231
236
|
[ErrorCode.AI_TOKEN_BUDGET_EXCEEDED]: 429,
|
|
@@ -272,4 +277,4 @@ export const ErrorCodeStatus = {
|
|
|
272
277
|
export function getStatusForErrorCode(code) {
|
|
273
278
|
return ErrorCodeStatus[code] ?? 500;
|
|
274
279
|
}
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZXJyb3ItY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFOLElBQVksU0EwTFg7QUExTEQsV0FBWSxTQUFTO0lBQ25CLDhCQUE4QjtJQUM5QiwwQ0FBNkIsQ0FBQTtJQUM3Qiw0Q0FBK0IsQ0FBQTtJQUMvQiw0Q0FBK0IsQ0FBQTtJQUMvQiw0Q0FBK0IsQ0FBQTtJQUMvQiw0Q0FBK0IsQ0FBQTtJQUMvQjs7O3VEQUdtRDtJQUNuRCwwQ0FBNkIsQ0FBQTtJQUM3Qjs4RUFDMEU7SUFDMUUsZ0RBQW1DLENBQUE7SUFFbkMsNkJBQTZCO0lBQzdCLGtFQUFxRCxDQUFBO0lBQ3JEO3dFQUNvRTtJQUNwRSw4REFBaUQsQ0FBQTtJQUNqRDtvRUFDZ0U7SUFDaEUsZ0VBQW1ELENBQUE7SUFDbkQ7a0VBQzhEO0lBQzlELGdFQUFtRCxDQUFBO0lBQ25EOztvRkFFZ0Y7SUFDaEYsd0RBQTJDLENBQUE7SUFDM0M7d0VBQ29FO0lBQ3BFLGtFQUFxRCxDQUFBO0lBQ3JEOzJCQUN1QjtJQUN2Qix3RUFBMkQsQ0FBQTtJQUMzRCxvREFBb0Q7SUFDcEQsd0RBQTJDLENBQUE7SUFDM0M7Z0ZBQzRFO0lBQzVFLHdDQUEyQixDQUFBO0lBQzNCLHdGQUF3RjtJQUN4RixzRUFBeUQsQ0FBQTtJQUN6RDt5REFDcUQ7SUFDckQsZ0VBQW1ELENBQUE7SUFDbkQ7MkRBQ3VEO0lBQ3ZELDREQUErQyxDQUFBO0lBQy9DOzsyQ0FFdUM7SUFDdkMsMERBQTZDLENBQUE7SUFDN0MsMENBQTZCLENBQUE7SUFDN0IsMERBQTZDLENBQUE7SUFFN0MseUJBQXlCO0lBQ3pCLG9DQUF1QixDQUFBO0lBQ3ZCLDRDQUErQixDQUFBO0lBQy9COzsyREFFdUQ7SUFDdkQsd0RBQTJDLENBQUE7SUFDM0M7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LENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUc7SUFDL0IsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRztJQUNoQyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUc7SUFDcEMsQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsRUFBRSxHQUFHO0NBQ2hELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUFlO0lBQ25ELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogU3RhbmRhcmRpemVkIGVycm9yIGNvZGVzIHVzZWQgYWNyb3NzIGFsbCBBUEkgbWljcm9zZXJ2aWNlcy5cbiAqIFVzZSB0aGVzZSBjb2RlcyBpbiBlcnJvciByZXNwb25zZXMgZm9yIGNvbnNpc3RlbnQgY2xpZW50IGhhbmRsaW5nLlxuICpcbiAqIEVhY2ggSFRUUCBzdGF0dXMgY2F0ZWdvcnkgaGFzIG9uZSBwcmltYXJ5IGNvZGUuIFVzZSB0aGUgYGRldGFpbHNgXG4gKiBmaWVsZCBpbiBlcnJvciByZXNwb25zZXMgZm9yIHN1Yi10eXBlIGluZm9ybWF0aW9uIChlLmcuIHdoaWNoIHF1b3RhXG4gKiB3YXMgZXhjZWVkZWQsIHdoaWNoIGZpZWxkIGZhaWxlZCB2YWxpZGF0aW9uKS5cbiAqL1xuZXhwb3J0IGVudW0gRXJyb3JDb2RlIHtcbiAgLy8gQXV0aGVudGljYXRpb24gZXJyb3JzICg0MDEpXG4gIFVOQVVUSE9SSVpFRCA9ICdVTkFVVEhPUklaRUQnLFxuICBUT0tFTl9FWFBJUkVEID0gJ1RPS0VOX0VYUElSRUQnLFxuICBUT0tFTl9JTlZBTElEID0gJ1RPS0VOX0lOVkFMSUQnLFxuICBUT0tFTl9NSVNTSU5HID0gJ1RPS0VOX01JU1NJTkcnLFxuICBUT0tFTl9SRVZPS0VEID0gJ1RPS0VOX1JFVk9LRUQnLFxuICAvKiogVGhlIHNlc3Npb24gaXMgbm90IE1GQS1ncmFkZSAoYGFhbGAgYmVsb3cgdGhlIHJvdXRlJ3MgYG1pbkFzc3VyYW5jZWApLlxuICAgKiAgVGhlIGNsaWVudCBzZW5kcyB0aGUgcGVyc29uIHRvIGVucm9sIC8gc2lnbiBpbiBhZ2FpbiB3aXRoIGEgc2Vjb25kXG4gICAqICBmYWN0b3Ig4oCUIGl0IG11c3QgTk9UIHNpZ24gdGhlbSBvdXQgb3IgcmV0cnkgYSB0b2tlbiByZWZyZXNoLCBzaW5jZSBhXG4gICAqICByZWZyZXNoIGNhbiBuZXZlciByYWlzZSB0aGUgYXNzdXJhbmNlIGxldmVsLiAqL1xuICBNRkFfUkVRVUlSRUQgPSAnTUZBX1JFUVVJUkVEJyxcbiAgLyoqIFRoZSBzZXNzaW9uIGlzIE1GQS1ncmFkZSBidXQgaXRzIGBhdXRoX3RpbWVgIGlzIG9sZGVyIHRoYW4gdGhlIHJvdXRlJ3NcbiAgICogIGBtYXhBZ2VgIOKAlCB0aGUgcGVyc29uIG11c3QgYXV0aGVudGljYXRlIGFnYWluIChub3QgbWVyZWx5IHJlZnJlc2gpLiAqL1xuICBSRUFVVEhfUkVRVUlSRUQgPSAnUkVBVVRIX1JFUVVJUkVEJyxcblxuICAvLyBBdXRob3JpemF0aW9uIGVycm9ycyAoNDAzKVxuICBJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlMgPSAnSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TJyxcbiAgLyoqIEEgbWFjaGluZSBjcmVkZW50aWFsIChzZXJ2aWNlIHByaW5jaXBhbCwgb3JnIHNlcnZpY2UgYWNjb3VudCwgb3IgYW5cbiAgICogIGV4Y2hhbmdlZCBhY2Nlc3Mga2V5KSByZWFjaGVkIGEgcm91dGUgdGhhdCByZXF1aXJlcyBhIHBlcnNvbi4gKi9cbiAgSFVNQU5fU0VTU0lPTl9SRVFVSVJFRCA9ICdIVU1BTl9TRVNTSU9OX1JFUVVJUkVEJyxcbiAgLyoqIEEgYm9vdHN0cmFwLWFkbWluIGVucm9sbWVudCBzZXNzaW9uIChgbWZhRW5yb2xsbWVudFBlbmRpbmdgKSByZWFjaGVkIGFcbiAgICogIHJvdXRlIG91dHNpZGUgdGhlIGVucm9sbWVudCAvIHNpZ24tb3V0IC8gc2V0dXAgYWxsb3dsaXN0LiAqL1xuICBNRkFfRU5ST0xMTUVOVF9SRVFVSVJFRCA9ICdNRkFfRU5ST0xMTUVOVF9SRVFVSVJFRCcsXG4gIC8qKiBBIHJlYWQtb25seSBpbXBlcnNvbmF0aW9uIHRva2VuIChgaW1wZXJzb25hdGlvblJlYWRPbmx5YCkgYXR0ZW1wdGVkIGFcbiAgICogIHN0YXRlLWNoYW5naW5nIHJlcXVlc3QgKGFueXRoaW5nIGJ1dCBHRVQvSEVBRC9PUFRJT05TKS4gKi9cbiAgSU1QRVJTT05BVElPTl9SRUFEX09OTFkgPSAnSU1QRVJTT05BVElPTl9SRUFEX09OTFknLFxuICAvKiogQSBwbHVnaW4tZWNvc3lzdGVtIGdvdmVybmFuY2Ugcm91dGUgKGRvY3MvcnVuYm9va3MvZWNvc3lzdGVtLW1vZGVyYXRpb24ubWQpXG4gICAqICB3YXMgY2FsbGVkIGZyb20gYW4gYWN0aXZlIG9yZyBvdGhlciB0aGFuIHRoZSBzeXN0ZW0gb3JnIOKAlCBhIHRva2VuIG1pbnRlZCBpblxuICAgKiAgYSB0ZW5hbnQgb3JnIGlzIHJlZnVzZWQgZXZlbiBmb3IgdGhlIHNhbWUgdXNlci4gU3dpdGNoIHRvIHRoZSBzeXN0ZW0gb3JnLiAqL1xuICBTWVNURU1fT1JHX1JFUVVJUkVEID0gJ1NZU1RFTV9PUkdfUkVRVUlSRUQnLFxuICAvKiogVGhlIHB1Ymxpc2hlciBoYXNuJ3QgYWNjZXB0ZWQgdGhlIENVUlJFTlQgcHVibGlzaGVyIHRlcm1zIHZlcnNpb24sIHNvIGl0XG4gICAqICBjYW4ndCBzdWJtaXQgbmV3IHJlcXVlc3RzIChleGlzdGluZyBsaXN0aW5ncyBhcmUgdW5hZmZlY3RlZCkuICovXG4gIFBVQkxJU0hFUl9URVJNU19SRVFVSVJFRCA9ICdQVUJMSVNIRVJfVEVSTVNfUkVRVUlSRUQnLFxuICAvKiogUHVibGlzaGluZyBpcyBkb25lIGZyb20gdGhlIFJPT1Qgb3JnOyBhIHRlYW0gb3JnIGNhbid0IG93biBhIHB1Ymxpc2hlciBvclxuICAgKiAgc3VibWl0IHJlcXVlc3RzLiAqL1xuICBQVUJMSVNIRVJfUk9PVF9PUkdfUkVRVUlSRUQgPSAnUFVCTElTSEVSX1JPT1RfT1JHX1JFUVVJUkVEJyxcbiAgLyoqIFRoZSBwdWJsaXNoZXIgaXMgc3VzcGVuZGVkIGJ5IHRoZSBzeXN0ZW0gb3JnLiAqL1xuICBQVUJMSVNIRVJfU1VTUEVOREVEID0gJ1BVQkxJU0hFUl9TVVNQRU5ERUQnLFxuICAvKiogVGhlIG9yZ2FuaXphdGlvbidzIGFkbWluaXN0cmF0b3JzIHN3aXRjaGVkIEFJIGZlYXR1cmVzIG9mZiAoYGFpRW5hYmxlZDogZmFsc2VgXG4gICAqICBvbiB0aGUgb3JnJ3MgQUkgY29uZmlndXJhdGlvbikuIEV2ZXJ5IEFJIGVudHJ5IHBvaW50IHJlZnVzZXMgd2l0aCBpdC4gKi9cbiAgQUlfRElTQUJMRUQgPSAnQUlfRElTQUJMRUQnLFxuICAvKiogVGVuYW50IHB1Ymxpc2hpbmcgaXMgc3dpdGNoZWQgb2ZmIG9uIHRoaXMgaW5zdGFuY2UgKGBQTFVHSU5fUFVCTElTSElOR19FTkFCTEVEYCkuICovXG4gIFBMVUdJTl9QVUJMSVNISU5HX0RJU0FCTEVEID0gJ1BMVUdJTl9QVUJMSVNISU5HX0RJU0FCTEVEJyxcbiAgLyoqIFJldmlldyB3cml0ZXMgYXJlIHN3aXRjaGVkIG9mZiBvbiB0aGlzIGluc3RhbmNlIChgUExVR0lOX1JFVklFV1NfRU5BQkxFRGApOlxuICAgKiAgcmV2aWV3cyBzdGF5IHJlYWRhYmxlLCBub3RoaW5nIG5ldyBpcyB3cml0dGVuLiAqL1xuICBQTFVHSU5fUkVWSUVXU19ESVNBQkxFRCA9ICdQTFVHSU5fUkVWSUVXU19ESVNBQkxFRCcsXG4gIC8qKiBBIG1lbWJlciBvZiB0aGUgcHVibGlzaGVyJ3Mgb3duIG9yZ2FuaXphdGlvbiB0cmllZCB0byByZXZpZXcgKG9yIHZvdGUgb24gYVxuICAgKiAgcmV2aWV3IG9mKSBvbmUgb2YgaXRzIGxpc3RpbmdzIChzZWxmLXByb21vdGlvbikuICovXG4gIFJFVklFV19TRUxGX1BST01PVElPTiA9ICdSRVZJRVdfU0VMRl9QUk9NT1RJT04nLFxuICAvKiogU2VwYXJhdGlvbiBvZiBkdXRpZXM6IHRoZSBjYWxsZXIgbWF5IG5vdCBkZWNpZGUgdGhpcyByZXF1ZXN0IOKAlFxuICAgKiAgaXQgY2FtZSBmcm9tIGFuIG9yZyB0aGV5IGJlbG9uZyB0bywgdGhleSB1cGxvYWRlZCB0aGUgdmVyc2lvbiwgb3IgdGhleVxuICAgKiAgZ2F2ZSB0aGUgZmlyc3Qgb2YgdHdvIGFwcHJvdmFscy4gKi9cbiAgU0VQQVJBVElPTl9PRl9EVVRJRVMgPSAnU0VQQVJBVElPTl9PRl9EVVRJRVMnLFxuICBPUkdfTUlTTUFUQ0ggPSAnT1JHX01JU01BVENIJyxcbiAgQ09NUExJQU5DRV9WSU9MQVRJT04gPSAnQ09NUExJQU5DRV9WSU9MQVRJT04nLFxuXG4gIC8vIE5vdCBmb3VuZCBlcnJvcnMgKDQwNClcbiAgTk9UX0ZPVU5EID0gJ05PVF9GT1VORCcsXG4gIE9SR19OT1RfRk9VTkQgPSAnT1JHX05PVF9GT1VORCcsXG4gIC8qKiBUaGUgZW1haWwgZ2l2ZW4gdG8gXCJhZGQgbWVtYmVyXCIgaGFzIG5vIGFjY291bnQuIERpc3RpbmN0IGZyb20gTk9UX0ZPVU5EXG4gICAqICBiZWNhdXNlIGl0IGlzIEFDVElPTkFCTEU6IHRoZSBjYWxsZXIncyBpbnRlbnQgaXMgc2F0aXNmaWFibGUgYnkgc2VuZGluZyBhblxuICAgKiAgaW52aXRhdGlvbiwgYW5kIGEgYmFyZSA0MDQgbmFtZWQgbm8gd2F5IGZvcndhcmQuICovXG4gIFVTRVJfTk9UX1JFR0lTVEVSRUQgPSAnVVNFUl9OT1RfUkVHSVNURVJFRCcsXG4gIC8qKiBUaGUgYW5vbnltb3VzIHBsdWdpbiBzdWJtaXNzaW9uIEFQSSBpcyBvZmYgb24gdGhpcyBpbnN0YW5jZVxuICAgKiAgKGBBTk9OWU1PVVNfU1VCTUlTU0lPTlNfRU5BQkxFRGAsIG9yIG91dGJvdW5kIGVtYWlsIGlzbid0IGNvbmZpZ3VyZWQpIOKAlFxuICAgKiAgYW5zd2VyZWQgYXMgYSBwbGFpbiA0MDQgKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiAqL1xuICBTVUJNSVNTSU9OU19ESVNBQkxFRCA9ICdTVUJNSVNTSU9OU19ESVNBQkxFRCcsXG5cbiAgLy8gVmFsaWRhdGlvbiBlcnJvcnMgKDQwMClcbiAgVkFMSURBVElPTl9FUlJPUiA9ICdWQUxJREFUSU9OX0VSUk9SJyxcbiAgTUlTU0lOR19SRVFVSVJFRF9GSUVMRCA9ICdNSVNTSU5HX1JFUVVJUkVEX0ZJRUxEJyxcbiAgLyoqIEEgcHJvb2Ytb2Ytd29yayBhbnN3ZXIgaXMgbWlzc2luZywgbWFsZm9ybWVkLCBleHBpcmVkLCB0b28gZWFzeSwgd3JvbmcsXG4gICAqICBvciB3YXMgYWxyZWFkeSB1c2VkIChhbm9ueW1vdXMgc3VibWlzc2lvbnMpLiAqL1xuICBQUk9PRl9PRl9XT1JLX0lOVkFMSUQgPSAnUFJPT0ZfT0ZfV09SS19JTlZBTElEJyxcbiAgVEVNUExBVEVfVU5LTk9XTl9QQVRIID0gJ1RFTVBMQVRFX1VOS05PV05fUEFUSCcsXG4gIFRFTVBMQVRFX0NZQ0xFID0gJ1RFTVBMQVRFX0NZQ0xFJyxcbiAgVEVNUExBVEVfUEFSU0VfRVJST1IgPSAnVEVNUExBVEVfUEFSU0VfRVJST1InLFxuICBURU1QTEFURV9UWVBFX01JU01BVENIID0gJ1RFTVBMQVRFX1RZUEVfTUlTTUFUQ0gnLFxuICBURU1QTEFURV9TRUNSRVRTX1JFU0VSVkVEID0gJ1RFTVBMQVRFX1NFQ1JFVFNfUkVTRVJWRUQnLFxuICBURU1QTEFURV9DT05UUkFDVF9WSU9MQVRJT04gPSAnVEVNUExBVEVfQ09OVFJBQ1RfVklPTEFUSU9OJyxcbiAgVEVNUExBVEVfU0laRV9FWENFRURFRCA9ICdURU1QTEFURV9TSVpFX0VYQ0VFREVEJyxcbiAgVEVNUExBVEVfVkFMSURBVElPTl9GQUlMRUQgPSAnVEVNUExBVEVfVkFMSURBVElPTl9GQUlMRUQnLFxuXG4gIC8vIFF1b3RhL1JhdGUgbGltaXQgZXJyb3JzICg0MjkpXG4gIFFVT1RBX0VYQ0VFREVEID0gJ1FVT1RBX0VYQ0VFREVEJyxcbiAgLyoqIFRoZSBjYWxsZXIncyBwZXItbWVtYmVyIHNoYXJlIG9mIHRoZSBvcmcncyBgYWlDYWxsc2AgKG9yZyBzZXR0aW5nXG4gICAqICBgYWlDYWxsc1Blck1lbWJlclBjdGApIGlzIHNwZW50IGZvciB0aGlzIHBlcmlvZCDigJQgdGhlIG9yZyBpdHNlbGYgbWF5IGhhdmUgaGVhZHJvb20uICovXG4gIEFJX01FTUJFUl9TSEFSRV9FWENFRURFRCA9ICdBSV9NRU1CRVJfU0hBUkVfRVhDRUVERUQnLFxuICAvKiogVGhlIG9yZydzIHBlci1wZXJpb2QgQUkgdG9rZW4gYnVkZ2V0IChvcmcgc2V0dGluZyBgYWlUb2tlbkJ1ZGdldGApIGlzIHNwZW50LiAqL1xuICBBSV9UT0tFTl9CVURHRVRfRVhDRUVERUQgPSAnQUlfVE9LRU5fQlVER0VUX0VYQ0VFREVEJyxcbiAgUkFURV9MSU1JVF9FWENFRURFRCA9ICdSQVRFX0xJTUlUX0VYQ0VFREVEJyxcbiAgLyoqIEFuIGFub255bW91cyBzdWJtaXR0ZXIgKHBlciB2ZXJpZmllZCBlbWFpbCwgb3IgcGVyIGNsaWVudCBJUCkgaXMgYXQgdGhlXG4gICAqICByb2xsaW5nIDI0LWhvdXIgc3VibWlzc2lvbiBjYXAuICovXG4gIFNVQk1JU1NJT05fTElNSVQgPSAnU1VCTUlTU0lPTl9MSU1JVCcsXG5cbiAgLy8gUGF5bG9hZCBlcnJvcnMgKDQxMylcbiAgUEFZTE9BRF9UT09fTEFSR0UgPSAnUEFZTE9BRF9UT09fTEFSR0UnLFxuXG4gIC8vIENvbmZsaWN0IGVycm9ycyAoNDA5KVxuICBDT05GTElDVCA9ICdDT05GTElDVCcsXG4gIERVUExJQ0FURV9FTlRSWSA9ICdEVVBMSUNBVEVfRU5UUlknLFxuICBTQ0FOX0NPTkZMSUNUID0gJ1NDQU5fQ09ORkxJQ1QnLFxuICAvKiogQSBwbHVnaW4gaW1hZ2UncyBjb3NpZ24gc2lnbmF0dXJlIChvciBpdHMgc2lnbmVkIFNCT00gYXR0ZXN0YXRpb24pIGRpZFxuICAgKiAgbm90IHZlcmlmeSBhZ2FpbnN0IHRoZSBwbGF0Zm9ybSdzIHBsdWdpbi1zaWduaW5nIGtleSDigJQgdGhlIHJlZ2lzdHJ5XG4gICAqICBjb250ZW50IG5vIGxvbmdlciBtYXRjaGVzIHdoYXQgdGhlIHBsYXRmb3JtIGJ1aWx0IGFuZCBzaWduZWQuICovXG4gIElNQUdFX1ZFUklGSUNBVElPTl9GQUlMRUQgPSAnSU1BR0VfVkVSSUZJQ0FUSU9OX0ZBSUxFRCcsXG4gIC8qKiBUaGUgcGx1Z2luIHZlcnNpb24gaXMgaW1tdXRhYmxlIOKAlCBhIHB1Ymxpc2ggcmVxdWVzdCByZWZlcmVuY2VzIGl0XG4gICAqICAoYGZyb3plbl9hdGAgc2V0KSBvciBpdCBpcyBwdWJsaXNoZWQgdG8gYSBsaXN0aW5nIOKAlCBzbyBpdCBjYW4gYmUgbmVpdGhlclxuICAgKiAgcmUtdXBsb2FkZWQsIGVkaXRlZCBub3IgZGVsZXRlZCAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuICovXG4gIFBMVUdJTl9WRVJTSU9OX0ZST1pFTiA9ICdQTFVHSU5fVkVSU0lPTl9GUk9aRU4nLFxuICAvKiogVGhlIHBsdWdpbiB2ZXJzaW9uIGlzIHJlZmVyZW5jZWQgYnkgb25lIG9mIHRoZSBvcmcncyBwaXBlbGluZXMsIG9yIHB1Ymxpc2hlZFxuICAgKiAgdG8gYW4gZWNvc3lzdGVtIGxpc3Rpbmc7IGRlbGV0aW5nIGl0IG5lZWRzIGA/Zm9yY2U9dHJ1ZWAgcGx1cyBhIHN0ZXAtdXAuICovXG4gIFBMVUdJTl9WRVJTSU9OX0lOX1VTRSA9ICdQTFVHSU5fVkVSU0lPTl9JTl9VU0UnLFxuICAvKiogQSBmcmVlemUgbmFtZWQgYW4gaW1hZ2UgZGlnZXN0IHRoYXQgaXMgbm90IHRoZSB2ZXJzaW9uJ3Mgc3RvcmVkIGRpZ2VzdFxuICAgKiAgKGZhaWwgY2xvc2VkOiB3aGF0IHdhcyByZXF1ZXN0ZWQgaXMgbm90IHdoYXQgd291bGQgYmUgcHVibGlzaGVkKS4gKi9cbiAgUExVR0lOX0RJR0VTVF9NSVNNQVRDSCA9ICdQTFVHSU5fRElHRVNUX01JU01BVENIJyxcbiAgLyoqIEEgcHVibGlzaCByZXF1ZXN0IG5lZWRzIHRoZSBvcmcncyBwdWJsaXNoZXIgcHJvZmlsZSwgd2hpY2ggZG9lc24ndCBleGlzdFxuICAgKiAgeWV0IChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gQ2xhaW0gYSBoYW5kbGUgZmlyc3QuICovXG4gIFBVQkxJU0hFUl9SRVFVSVJFRCA9ICdQVUJMSVNIRVJfUkVRVUlSRUQnLFxuICAvKiogVGhlIHJlcXVlc3RlZCBwdWJsaXNoZXIgaGFuZGxlIGlzIHJlc2VydmVkIChPZmZpY2lhbC9WZXJpZmllZFxuICAgKiAgcmVzZXJ2YXRpb25zLCBjb25mdXNhYmxlcykuIFN1Ym1pdCBhIGBjbGFpbWAgcmVxdWVzdCBpbnN0ZWFkLiAqL1xuICBQVUJMSVNIRVJfSEFORExFX1JFU0VSVkVEID0gJ1BVQkxJU0hFUl9IQU5ETEVfUkVTRVJWRUQnLFxuICAvKiogQSBwdWJsaXNoIHJlcXVlc3QgZmFpbGVkIGEgc3VibWl0IGdhdGUgKHB1YmxpYyB2aXNpYmlsaXR5LCBTUERYIGxpY2Vuc2UsXG4gICAqICBSRUFETUUsIHNpZ25hdHVyZSwgc2NhbiwgdnVsbmVyYWJpbGl0eSBnYXRlIOKApik7IGBkZXRhaWxzLmdhdGVzYCBsaXN0cyB0aGVtLiAqL1xuICBQVUJMSVNIX0dBVEVfRkFJTEVEID0gJ1BVQkxJU0hfR0FURV9GQUlMRUQnLFxuICAvKiogQSBWZXJpZmllZC1wdWJsaXNoZXIgYXBwbGljYXRpb24gKG9yIGl0cyBkZWNpc2lvbikgZnJvbSBhbiBvcmcgd2hvc2UgcGxhblxuICAgKiAgbGFja3MgdGhlIGB2ZXJpZmllZF9wdWJsaXNoZXJgIGZlYXR1cmUgKFRlYW0rLCBkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gKi9cbiAgVkVSSUZJRURfUExBTl9SRVFVSVJFRCA9ICdWRVJJRklFRF9QTEFOX1JFUVVJUkVEJyxcbiAgLyoqIEEgVmVyaWZpZWQtcHVibGlzaGVyIGFwcGxpY2F0aW9uIGZyb20gYW4gb3JnIHdpdGggbm8gRE5TLXZlcmlmaWVkIGRvbWFpbi4gKi9cbiAgVkVSSUZJRURfRE9NQUlOX1JFUVVJUkVEID0gJ1ZFUklGSUVEX0RPTUFJTl9SRVFVSVJFRCcsXG4gIC8qKiBBIFZlcmlmaWVkLXB1Ymxpc2hlciBhcHBsaWNhdGlvbiBmcm9tIGFuIG9yZyB3aG9zZSBvd25lciBoYXMgbm8gc2Vjb25kXG4gICAqICBmYWN0b3IgKHBhc3NrZXkgb3IgYXV0aGVudGljYXRvciBhcHApLiAqL1xuICBWRVJJRklFRF9PV05FUl9NRkFfUkVRVUlSRUQgPSAnVkVSSUZJRURfT1dORVJfTUZBX1JFUVVJUkVEJyxcbiAgLyoqIEEgcGx1Z2luIHJlZmVyZW5jZSBuYW1lcyBhbiBlY29zeXN0ZW0gbGlzdGluZyB0aGUgb3JnIGhhc24ndCBpbnN0YWxsZWQgKG9yXG4gICAqICB3aG9zZSBpbnN0YWxsIGlzIHBlbmRpbmcsIGRlbmllZCwgb3IgZG9lc24ndCBjb3ZlciB0aGUgdmVyc2lvbiBhc2tlZCBmb3I7XG4gICAqICBgZGV0YWlscy5yZWFzb25gKSDigJQgZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCAqL1xuICBQTFVHSU5fTk9UX0lOU1RBTExFRCA9ICdQTFVHSU5fTk9UX0lOU1RBTExFRCcsXG4gIC8qKiBUaGUgb3JnJ3MgY29uc3VtcHRpb24gcG9saWN5IHJlZnVzZXMgdGhlIGxpc3Rpbmc6IGl0cyB0aWVyIGlzbid0IGFsbG93ZWQsXG4gICAqICB0aGUgbGlzdGluZyBpcyBibG9ja2VkLCBvciBhbiBhZHZpc29yeSBibG9ja3MgdGhlIHZlcnNpb24gKGBkZXRhaWxzLnJlYXNvbmApLiAqL1xuICBQTFVHSU5fQkxPQ0tFRF9CWV9QT0xJQ1kgPSAnUExVR0lOX0JMT0NLRURfQllfUE9MSUNZJyxcbiAgLyoqIFRoZSBsaXN0aW5nIG9yIHZlcnNpb24gY2FuJ3QgYmUgdXNlZDogeWFua2VkLCBzdXNwZW5kZWQsIG9yIHBhdXNlZCBmb3IgbmV3XG4gICAqICBpbnN0YWxscyAoYGRldGFpbHMucmVhc29uYCkuICovXG4gIFBMVUdJTl9VTkFWQUlMQUJMRSA9ICdQTFVHSU5fVU5BVkFJTEFCTEUnLFxuICAvKiogQW4gYXV0by1jcmVhdGVkIHBsYWNlaG9sZGVyIHBsdWdpbiBjYW4ndCB0YWtlIHRoZSBuYW1lIG9mIGEgbGlzdGVkIHBsdWdpblxuICAgKiDigJQgaW5zdGFsbCB0aGUgbGlzdGluZyBpbnN0ZWFkLiAqL1xuICBQTFVHSU5fTkFNRV9MSVNURUQgPSAnUExVR0lOX05BTUVfTElTVEVEJyxcbiAgLyoqIEFuIGFub255bW91cyBzdWJtaXNzaW9uIG5hbWVzIGEgY29tbXVuaXR5IGxpc3RpbmcgYW5vdGhlciBzdWJtaXR0ZXIgb3ducyxcbiAgICogIGEgcmVzZXJ2ZWQgbmFtZSwgYW4gT2ZmaWNpYWwvVmVyaWZpZWQgbGlzdGluZydzIG5hbWUsIG9yIG9uZSBjb25mdXNhYmxlXG4gICAqICB3aXRoIGEgdG9wIGxpc3Rpbmc7IGBkZXRhaWxzLnJlYXNvbmAgc2F5cyB3aGljaC4gKi9cbiAgTkFNRV9UQUtFTiA9ICdOQU1FX1RBS0VOJyxcbiAgLyoqIEFuIFVOUVVBTElGSUVEIHJlZmVyZW5jZSBuYW1lcyBhIHBsdWdpbiB0aGUgb3JnIERFTEVURUQ6IHJlZnVzZWQgcmF0aGVyXG4gICAqICB0aGFuIHNpbGVudGx5IGZhbGxpbmcgdGhyb3VnaCB0byBhIHNhbWUtbmFtZWQgbGlzdGluZywgd2hpY2ggd291bGQgc3dhcCB0aGVcbiAgICogIGltYWdlIGEgcGlwZWxpbmUgcnVucyB3aXRob3V0IGFueW9uZSBjaG9vc2luZyBpdCAoYGRldGFpbHMuc3RhdGU6ICdkZWxldGVkJ2ApLiAqL1xuICBQTFVHSU5fREVMRVRFRCA9ICdQTFVHSU5fREVMRVRFRCcsXG5cbiAgLy8gUGx1Z2luIGJ1aWxkIG91dGNvbWVzICg0MjIpIOKAlCB0ZXJtaW5hbCBidWlsZCBmYWlsdXJlcywgcmVwb3J0ZWQgb24gdGhlIGJ1aWxkXG4gIC8vIHN0cmVhbSBhbmQgaW4gdGhlIGJ1aWxkJ3MgZmFpbHVyZSByZWNvcmQsIG5ldmVyIGFuc3dlcmVkIG9uIGEgcmVxdWVzdC5cbiAgLyoqIFRoZSBidWlsdCBpbWFnZSBjb3VsZCBub3QgYmUgdnVsbmVyYWJpbGl0eS1zY2FubmVkIGFmdGVyIGV2ZXJ5IHJldHJ5LCBzb1xuICAgKiAgbm90aGluZyB3YXMgcGVyc2lzdGVkIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gKi9cbiAgSU1BR0VfU0NBTl9VTkFWQUlMQUJMRSA9ICdJTUFHRV9TQ0FOX1VOQVZBSUxBQkxFJyxcbiAgLyoqIFRoZSBidWlsdCBpbWFnZSBoYXMgbW9yZSBmaXhhYmxlIENyaXRpY2FsIGZpbmRpbmdzIHRoYW4gdGhlIHBsYXRmb3JtXG4gICAqICBmbG9vciBgUExVR0lOX1ZVTE5fTUFYX0ZJTkRJTkdTYDsgdGhlIG1lc3NhZ2UgbGlzdHMgdGhlbSB3aXRoIHRoZWlyIGZpeGVzLiAqL1xuICBQTFVHSU5fVlVMTl9HQVRFID0gJ1BMVUdJTl9WVUxOX0dBVEUnLFxuICAvKiogQW4gdXBsb2FkIHdob3NlIE5BTUUgd291bGQgb3ZlcnJpZGUgYSBsaXN0aW5nIG9yIHRoZSBwYXJlbnQgb3JnJ3MgcGx1Z2luLFxuICAgKiAgcmVmdXNlZCBiZWNhdXNlIHRoZSBjb25zdW1wdGlvbiBwb2xpY3kgc2F5cyBgc2hhZG93aW5nOiBkZW55YC4gKi9cbiAgUExVR0lOX05BTUVfU0hBRE9XUyA9ICdQTFVHSU5fTkFNRV9TSEFET1dTJyxcblxuICAvLyBCaWxsaW5nIGVycm9yc1xuICBQQVlNRU5UX01FVEhPRF9SRVFVSVJFRCA9ICdQQVlNRU5UX01FVEhPRF9SRVFVSVJFRCcsIC8vIDQwMlxuICBESVNDT1VOVF9DRUlMSU5HX0VYQ0VFREVEID0gJ0RJU0NPVU5UX0NFSUxJTkdfRVhDRUVERUQnLCAvLyA0MDBcbiAgRElTQ09VTlRfTk9UX0ZPVU5EID0gJ0RJU0NPVU5UX05PVF9GT1VORCcsIC8vIDQwNFxuICBESVNDT1VOVF9JTkFDVElWRSA9ICdESVNDT1VOVF9JTkFDVElWRScsIC8vIDQwOVxuICBQTEFOX09WRVJfQ0FQID0gJ1BMQU5fT1ZFUl9DQVAnLCAvLyA0MDlcbiAgQURET05fT1ZFUl9DQVAgPSAnQURET05fT1ZFUl9DQVAnLCAvLyA0MDlcblxuICAvLyBTZXJ2ZXIgZXJyb3JzICg1MDApXG4gIElOVEVSTkFMX0VSUk9SID0gJ0lOVEVSTkFMX0VSUk9SJyxcbiAgREFUQUJBU0VfRVJST1IgPSAnREFUQUJBU0VfRVJST1InLFxuXG4gIC8vIE5vdCBpbXBsZW1lbnRlZCAoNTAxKSDigJQgdGhlIGNvbmZpZ3VyZWQgcHJvdmlkZXIgaGFzIG5vIHN1Y2ggY2FwYWJpbGl0eVxuICBOT1RfSU1QTEVNRU5URUQgPSAnTk9UX0lNUExFTUVOVEVEJyxcblxuICAvLyBTZXJ2aWNlIHVuYXZhaWxhYmxlICg1MDMpXG4gIFNFUlZJQ0VfVU5BVkFJTEFCTEUgPSAnU0VSVklDRV9VTkFWQUlMQUJMRScsXG4gIENPTVBMSUFOQ0VfU0VSVklDRV9VTkFWQUlMQUJMRSA9ICdDT01QTElBTkNFX1NFUlZJQ0VfVU5BVkFJTEFCTEUnLFxufVxuXG4vKipcbiAqIE1hcHMgZXJyb3IgY29kZXMgdG8gdGhlaXIgZGVmYXVsdCBIVFRQIHN0YXR1cyBjb2Rlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEVycm9yQ29kZVN0YXR1czogUmVjb3JkPEVycm9yQ29kZSwgbnVtYmVyPiA9IHtcbiAgW0Vycm9yQ29kZS5VTkFVVEhPUklaRURdOiA0MDEsXG4gIFtFcnJvckNvZGUuVE9LRU5fRVhQSVJFRF06IDQwMSxcbiAgW0Vycm9yQ29kZS5UT0tFTl9JTlZBTElEXTogNDAxLFxuICBbRXJyb3JDb2RlLlRPS0VOX01JU1NJTkddOiA0MDEsXG4gIFtFcnJvckNvZGUuVE9LRU5fUkVWT0tFRF06IDQwMSxcbiAgW0Vycm9yQ29kZS5NRkFfUkVRVUlSRURdOiA0MDEsXG4gIFtFcnJvckNvZGUuUkVBVVRIX1JFUVVJUkVEXTogNDAxLFxuICBbRXJyb3JDb2RlLklOU1VGRklDSUVOVF9QRVJNSVNTSU9OU106IDQwMyxcbiAgW0Vycm9yQ29kZS5TWVNURU1fT1JHX1JFUVVJUkVEXTogNDAzLFxuICBbRXJyb3JDb2RlLlBVQkxJU0hFUl9URVJNU19SRVFVSVJFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QVUJMSVNIRVJfUk9PVF9PUkdfUkVRVUlSRURdOiA0MDMsXG4gIFtFcnJvckNvZGUuUFVCTElTSEVSX1NVU1BFTkRFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fUFVCTElTSElOR19ESVNBQkxFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5BSV9ESVNBQkxFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fUkVWSUVXU19ESVNBQkxFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5SRVZJRVdfU0VMRl9QUk9NT1RJT05dOiA0MDMsXG4gIFtFcnJvckNvZGUuU0VQQVJBVElPTl9PRl9EVVRJRVNdOiA0MDMsXG4gIFtFcnJvckNvZGUuSFVNQU5fU0VTU0lPTl9SRVFVSVJFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5NRkFfRU5ST0xMTUVOVF9SRVFVSVJFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5JTVBFUlNPTkFUSU9OX1JFQURfT05MWV06IDQwMyxcbiAgW0Vycm9yQ29kZS5PUkdfTUlTTUFUQ0hdOiA0MDMsXG4gIFtFcnJvckNvZGUuQ09NUExJQU5DRV9WSU9MQVRJT05dOiA0MDMsXG4gIFtFcnJvckNvZGUuTk9UX0ZPVU5EXTogNDA0LFxuICBbRXJyb3JDb2RlLk9SR19OT1RfRk9VTkRdOiA0MDQsXG4gIFtFcnJvckNvZGUuVVNFUl9OT1RfUkVHSVNURVJFRF06IDQwNCxcbiAgW0Vycm9yQ29kZS5TVUJNSVNTSU9OU19ESVNBQkxFRF06IDQwNCxcbiAgW0Vycm9yQ29kZS5WQUxJREFUSU9OX0VSUk9SXTogNDAwLFxuICBbRXJyb3JDb2RlLk1JU1NJTkdfUkVRVUlSRURfRklFTERdOiA0MDAsXG4gIFtFcnJvckNvZGUuUFJPT0ZfT0ZfV09SS19JTlZBTElEXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1VOS05PV05fUEFUSF06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9DWUNMRV06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9QQVJTRV9FUlJPUl06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9UWVBFX01JU01BVENIXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1NFQ1JFVFNfUkVTRVJWRURdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfQ09OVFJBQ1RfVklPTEFUSU9OXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1NJWkVfRVhDRUVERURdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfVkFMSURBVElPTl9GQUlMRURdOiA0MDAsXG4gIFtFcnJvckNvZGUuUVVPVEFfRVhDRUVERURdOiA0MjksXG4gIFtFcnJvckNvZGUuQUlfTUVNQkVSX1NIQVJFX0VYQ0VFREVEXTogNDI5LFxuICBbRXJyb3JDb2RlLkFJX1RPS0VOX0JVREdFVF9FWENFRURFRF06IDQyOSxcbiAgW0Vycm9yQ29kZS5SQVRFX0xJTUlUX0VYQ0VFREVEXTogNDI5LFxuICBbRXJyb3JDb2RlLlNVQk1JU1NJT05fTElNSVRdOiA0MjksXG4gIFtFcnJvckNvZGUuUEFZTE9BRF9UT09fTEFSR0VdOiA0MTMsXG4gIFtFcnJvckNvZGUuQ09ORkxJQ1RdOiA0MDksXG4gIFtFcnJvckNvZGUuRFVQTElDQVRFX0VOVFJZXTogNDA5LFxuICBbRXJyb3JDb2RlLlNDQU5fQ09ORkxJQ1RdOiA0MDksXG4gIFtFcnJvckNvZGUuSU1BR0VfVkVSSUZJQ0FUSU9OX0ZBSUxFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fVkVSU0lPTl9GUk9aRU5dOiA0MDksXG4gIFtFcnJvckNvZGUuUExVR0lOX1ZFUlNJT05fSU5fVVNFXTogNDA5LFxuICBbRXJyb3JDb2RlLlBMVUdJTl9ESUdFU1RfTUlTTUFUQ0hdOiA0MDksXG4gIFtFcnJvckNvZGUuUFVCTElTSEVSX1JFUVVJUkVEXTogNDA5LFxuICBbRXJyb3JDb2RlLlBVQkxJU0hFUl9IQU5ETEVfUkVTRVJWRURdOiA0MDksXG4gIFtFcnJvckNvZGUuUFVCTElTSF9HQVRFX0ZBSUxFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5WRVJJRklFRF9QTEFOX1JFUVVJUkVEXTogNDAzLFxuICBbRXJyb3JDb2RlLlZFUklGSUVEX0RPTUFJTl9SRVFVSVJFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5WRVJJRklFRF9PV05FUl9NRkFfUkVRVUlSRURdOiA0MDksXG4gIFtFcnJvckNvZGUuUExVR0lOX05PVF9JTlNUQUxMRURdOiA0MDMsXG4gIFtFcnJvckNvZGUuUExVR0lOX0JMT0NLRURfQllfUE9MSUNZXTogNDAzLFxuICBbRXJyb3JDb2RlLlBMVUdJTl9VTkFWQUlMQUJMRV06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fTkFNRV9MSVNURURdOiA0MDksXG4gIFtFcnJvckNvZGUuTkFNRV9UQUtFTl06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fREVMRVRFRF06IDQxMCxcbiAgW0Vycm9yQ29kZS5JTUFHRV9TQ0FOX1VOQVZBSUxBQkxFXTogNDIyLFxuICBbRXJyb3JDb2RlLlBMVUdJTl9WVUxOX0dBVEVdOiA0MjIsXG4gIFtFcnJvckNvZGUuUExVR0lOX05BTUVfU0hBRE9XU106IDQwOSxcbiAgW0Vycm9yQ29kZS5QQVlNRU5UX01FVEhPRF9SRVFVSVJFRF06IDQwMixcbiAgW0Vycm9yQ29kZS5ESVNDT1VOVF9DRUlMSU5HX0VYQ0VFREVEXTogNDAwLFxuICBbRXJyb3JDb2RlLkRJU0NPVU5UX05PVF9GT1VORF06IDQwNCxcbiAgW0Vycm9yQ29kZS5ESVNDT1VOVF9JTkFDVElWRV06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTEFOX09WRVJfQ0FQXTogNDA5LFxuICBbRXJyb3JDb2RlLkFERE9OX09WRVJfQ0FQXTogNDA5LFxuICBbRXJyb3JDb2RlLklOVEVSTkFMX0VSUk9SXTogNTAwLFxuICBbRXJyb3JDb2RlLkRBVEFCQVNFX0VSUk9SXTogNTAwLFxuICBbRXJyb3JDb2RlLk5PVF9JTVBMRU1FTlRFRF06IDUwMSxcbiAgW0Vycm9yQ29kZS5TRVJWSUNFX1VOQVZBSUxBQkxFXTogNTAzLFxuICBbRXJyb3JDb2RlLkNPTVBMSUFOQ0VfU0VSVklDRV9VTkFWQUlMQUJMRV06IDUwMyxcbn07XG5cbi8qKlxuICogR2V0IHRoZSBIVFRQIHN0YXR1cyBjb2RlIGZvciBhbiBlcnJvciBjb2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHVzRm9yRXJyb3JDb2RlKGNvZGU6IEVycm9yQ29kZSk6IG51bWJlciB7XG4gIHJldHVybiBFcnJvckNvZGVTdGF0dXNbY29kZV0gPz8gNTAwO1xufVxuIl19
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItY29kZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9lcnJvci1jb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQU4sSUFBWSxTQStMWDtBQS9MRCxXQUFZLFNBQVM7SUFDbkIsOEJBQThCO0lBQzlCLDBDQUE2QixDQUFBO0lBQzdCLDRDQUErQixDQUFBO0lBQy9CLDRDQUErQixDQUFBO0lBQy9CLDRDQUErQixDQUFBO0lBQy9CLDRDQUErQixDQUFBO0lBQy9COzs7dURBR21EO0lBQ25ELDBDQUE2QixDQUFBO0lBQzdCOzhFQUMwRTtJQUMxRSxnREFBbUMsQ0FBQTtJQUVuQyw2QkFBNkI7SUFDN0Isa0VBQXFELENBQUE7SUFDckQ7d0VBQ29FO0lBQ3BFLDhEQUFpRCxDQUFBO0lBQ2pEO29FQUNnRTtJQUNoRSxnRUFBbUQsQ0FBQTtJQUNuRDtrRUFDOEQ7SUFDOUQsZ0VBQW1ELENBQUE7SUFDbkQ7O29GQUVnRjtJQUNoRix3REFBMkMsQ0FBQTtJQUMzQzt3RUFDb0U7SUFDcEUsa0VBQXFELENBQUE7SUFDckQ7MkJBQ3VCO0lBQ3ZCLHdFQUEyRCxDQUFBO0lBQzNELG9EQUFvRDtJQUNwRCx3REFBMkMsQ0FBQTtJQUMzQztnRkFDNEU7SUFDNUUsd0NBQTJCLENBQUE7SUFDM0Isd0ZBQXdGO0lBQ3hGLHNFQUF5RCxDQUFBO0lBQ3pEO3lEQUNxRDtJQUNyRCxnRUFBbUQsQ0FBQTtJQUNuRDsyREFDdUQ7SUFDdkQsNERBQStDLENBQUE7SUFDL0M7OzJDQUV1QztJQUN2QywwREFBNkMsQ0FBQTtJQUM3QywwQ0FBNkIsQ0FBQTtJQUM3QiwwREFBNkMsQ0FBQTtJQUU3Qyx5QkFBeUI7SUFDekIsb0NBQXVCLENBQUE7SUFDdkIsNENBQStCLENBQUE7SUFDL0I7OzJEQUV1RDtJQUN2RCx3REFBMkMsQ0FBQTtJQUMzQzs7K0RBRTJEO0lBQzNELDBEQUE2QyxDQUFBO0lBRTdDLDBCQUEwQjtJQUMxQixrREFBcUMsQ0FBQTtJQUNyQyw4REFBaUQsQ0FBQTtJQUNqRDt1REFDbUQ7SUFDbkQsNERBQStDLENBQUE7SUFDL0MsNERBQStDLENBQUE7SUFDL0MsOENBQWlDLENBQUE7SUFDakMsMERBQTZDLENBQUE7SUFDN0MsOERBQWlELENBQUE7SUFDakQsb0VBQXVELENBQUE7SUFDdkQsd0VBQTJELENBQUE7SUFDM0QsOERBQWlELENBQUE7SUFDakQsc0VBQXlELENBQUE7SUFFekQsdUJBQXVCO0lBQ3ZCO21GQUMrRTtJQUMvRSxnRUFBbUQsQ0FBQTtJQUVuRCxnQ0FBZ0M7SUFDaEMsOENBQWlDLENBQUE7SUFDakM7OEZBQzBGO0lBQzFGLGtFQUFxRCxDQUFBO0lBQ3JELG1GQUFtRjtJQUNuRixrRUFBcUQsQ0FBQTtJQUNyRCx3REFBMkMsQ0FBQTtJQUMzQzswQ0FDc0M7SUFDdEMsa0RBQXFDLENBQUE7SUFFckMsdUJBQXVCO0lBQ3ZCLG9EQUF1QyxDQUFBO0lBRXZDLHdCQUF3QjtJQUN4QixrQ0FBcUIsQ0FBQTtJQUNyQixnREFBbUMsQ0FBQTtJQUNuQyw0Q0FBK0IsQ0FBQTtJQUMvQjs7d0VBRW9FO0lBQ3BFLG9FQUF1RCxDQUFBO0lBQ3ZEOzt1RUFFbUU7SUFDbkUsNERBQStDLENBQUE7SUFDL0M7bUZBQytFO0lBQy9FLDREQUErQyxDQUFBO0lBQy9DOzRFQUN3RTtJQUN4RSw4REFBaUQsQ0FBQTtJQUNqRDtpRUFDNkQ7SUFDN0Qsc0RBQXlDLENBQUE7SUFDekM7d0VBQ29FO0lBQ3BFLG9FQUF1RCxDQUFBO0lBQ3ZEO3NGQUNrRjtJQUNsRix3REFBMkMsQ0FBQTtJQUMzQztxRkFDaUY7SUFDakYsOERBQWlELENBQUE7SUFDakQsZ0ZBQWdGO0lBQ2hGLGtFQUFxRCxDQUFBO0lBQ3JEO2lEQUM2QztJQUM3Qyx3RUFBMkQsQ0FBQTtJQUMzRDs7d0RBRW9EO0lBQ3BELDBEQUE2QyxDQUFBO0lBQzdDO3dGQUNvRjtJQUNwRixrRUFBcUQsQ0FBQTtJQUNyRDt1Q0FDbUM7SUFDbkMsc0RBQXlDLENBQUE7SUFDekM7d0NBQ29DO0lBQ3BDLHNEQUF5QyxDQUFBO0lBQ3pDOzsyREFFdUQ7SUFDdkQsc0NBQXlCLENBQUE7SUFDekI7O3lGQUVxRjtJQUNyRiw4Q0FBaUMsQ0FBQTtJQUVqQywrRUFBK0U7SUFDL0UseUVBQXlFO0lBQ3pFOzZEQUN5RDtJQUN6RCw4REFBaUQsQ0FBQTtJQUNqRDtxRkFDaUY7SUFDakYsa0RBQXFDLENBQUE7SUFDckM7eUVBQ3FFO0lBQ3JFLHdEQUEyQyxDQUFBO0lBRTNDLGlCQUFpQjtJQUNqQixnRUFBbUQsQ0FBQTtJQUNuRCxvRUFBdUQsQ0FBQTtJQUN2RCxzREFBeUMsQ0FBQTtJQUN6QyxvREFBdUMsQ0FBQTtJQUN2Qyw0Q0FBK0IsQ0FBQTtJQUMvQiw4Q0FBaUMsQ0FBQTtJQUVqQyxzQkFBc0I7SUFDdEIsOENBQWlDLENBQUE7SUFDakMsOENBQWlDLENBQUE7SUFFakMseUVBQXlFO0lBQ3pFLGdEQUFtQyxDQUFBO0lBRW5DLDRCQUE0QjtJQUM1Qix3REFBMkMsQ0FBQTtJQUMzQyw4RUFBaUUsQ0FBQTtBQUNuRSxDQUFDLEVBL0xXLFNBQVMsS0FBVCxTQUFTLFFBK0xwQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUE4QjtJQUN4RCxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHO0lBQzdCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEdBQUc7SUFDOUIsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRztJQUM5QixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHO0lBQzlCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEdBQUc7SUFDOUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRztJQUM3QixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxHQUFHO0lBQ2hDLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsR0FBRztJQUN6QyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUc7SUFDcEMsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRSxHQUFHO0lBQ3pDLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUFDLEVBQUUsR0FBRztJQUM1QyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUc7SUFDcEMsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLENBQUMsRUFBRSxHQUFHO0lBQzNDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUc7SUFDNUIsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsRUFBRSxHQUFHO0lBQ3hDLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsR0FBRztJQUN0QyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEdBQUc7SUFDckMsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBRSxHQUFHO0lBQ3ZDLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsR0FBRztJQUN4QyxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEdBQUc7SUFDeEMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRztJQUM3QixDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEdBQUc7SUFDckMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRztJQUMxQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHO0lBQzlCLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRztJQUNwQyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEdBQUc7SUFDckMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHO0lBQ2pDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsR0FBRztJQUN2QyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEdBQUc7SUFDdEMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsRUFBRSxHQUFHO0lBQ3RDLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUc7SUFDL0IsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsRUFBRSxHQUFHO0lBQ3JDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsR0FBRztJQUN2QyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLEdBQUc7SUFDMUMsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsRUFBRSxHQUFHO0lBQzVDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsR0FBRztJQUN2QyxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLEdBQUc7SUFDM0MsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsRUFBRSxHQUFHO0lBQ3hDLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUc7SUFDL0IsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRSxHQUFHO0lBQ3pDLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsR0FBRztJQUN6QyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUc7SUFDcEMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHO0lBQ2pDLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsR0FBRztJQUNsQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHO0lBQ3pCLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEdBQUc7SUFDaEMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRztJQUM5QixDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLEdBQUc7SUFDMUMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsRUFBRSxHQUFHO0lBQ3RDLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsR0FBRztJQUN0QyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEdBQUc7SUFDdkMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFBRSxHQUFHO0lBQ25DLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsR0FBRztJQUMxQyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUc7SUFDcEMsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBRSxHQUFHO0lBQ3ZDLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsR0FBRztJQUN6QyxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLEdBQUc7SUFDNUMsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsRUFBRSxHQUFHO0lBQ3JDLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUUsR0FBRztJQUN6QyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEdBQUc7SUFDbkMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFBRSxHQUFHO0lBQ25DLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUc7SUFDM0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRztJQUMvQixDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEdBQUc7SUFDdkMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHO0lBQ2pDLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRztJQUNwQyxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEdBQUc7SUFDeEMsQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsRUFBRSxHQUFHO0lBQzFDLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsR0FBRztJQUNuQyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEdBQUc7SUFDbEMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRztJQUM5QixDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHO0lBQy9CLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUc7SUFDL0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRztJQUMvQixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxHQUFHO0lBQ2hDLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRztJQUNwQyxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLEdBQUc7Q0FDaEQsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLElBQWU7SUFDbkQsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBTdGFuZGFyZGl6ZWQgZXJyb3IgY29kZXMgdXNlZCBhY3Jvc3MgYWxsIEFQSSBtaWNyb3NlcnZpY2VzLlxuICogVXNlIHRoZXNlIGNvZGVzIGluIGVycm9yIHJlc3BvbnNlcyBmb3IgY29uc2lzdGVudCBjbGllbnQgaGFuZGxpbmcuXG4gKlxuICogRWFjaCBIVFRQIHN0YXR1cyBjYXRlZ29yeSBoYXMgb25lIHByaW1hcnkgY29kZS4gVXNlIHRoZSBgZGV0YWlsc2BcbiAqIGZpZWxkIGluIGVycm9yIHJlc3BvbnNlcyBmb3Igc3ViLXR5cGUgaW5mb3JtYXRpb24gKGUuZy4gd2hpY2ggcXVvdGFcbiAqIHdhcyBleGNlZWRlZCwgd2hpY2ggZmllbGQgZmFpbGVkIHZhbGlkYXRpb24pLlxuICovXG5leHBvcnQgZW51bSBFcnJvckNvZGUge1xuICAvLyBBdXRoZW50aWNhdGlvbiBlcnJvcnMgKDQwMSlcbiAgVU5BVVRIT1JJWkVEID0gJ1VOQVVUSE9SSVpFRCcsXG4gIFRPS0VOX0VYUElSRUQgPSAnVE9LRU5fRVhQSVJFRCcsXG4gIFRPS0VOX0lOVkFMSUQgPSAnVE9LRU5fSU5WQUxJRCcsXG4gIFRPS0VOX01JU1NJTkcgPSAnVE9LRU5fTUlTU0lORycsXG4gIFRPS0VOX1JFVk9LRUQgPSAnVE9LRU5fUkVWT0tFRCcsXG4gIC8qKiBUaGUgc2Vzc2lvbiBpcyBub3QgTUZBLWdyYWRlIChgYWFsYCBiZWxvdyB0aGUgcm91dGUncyBgbWluQXNzdXJhbmNlYCkuXG4gICAqICBUaGUgY2xpZW50IHNlbmRzIHRoZSBwZXJzb24gdG8gZW5yb2wgLyBzaWduIGluIGFnYWluIHdpdGggYSBzZWNvbmRcbiAgICogIGZhY3RvciDigJQgaXQgbXVzdCBOT1Qgc2lnbiB0aGVtIG91dCBvciByZXRyeSBhIHRva2VuIHJlZnJlc2gsIHNpbmNlIGFcbiAgICogIHJlZnJlc2ggY2FuIG5ldmVyIHJhaXNlIHRoZSBhc3N1cmFuY2UgbGV2ZWwuICovXG4gIE1GQV9SRVFVSVJFRCA9ICdNRkFfUkVRVUlSRUQnLFxuICAvKiogVGhlIHNlc3Npb24gaXMgTUZBLWdyYWRlIGJ1dCBpdHMgYGF1dGhfdGltZWAgaXMgb2xkZXIgdGhhbiB0aGUgcm91dGUnc1xuICAgKiAgYG1heEFnZWAg4oCUIHRoZSBwZXJzb24gbXVzdCBhdXRoZW50aWNhdGUgYWdhaW4gKG5vdCBtZXJlbHkgcmVmcmVzaCkuICovXG4gIFJFQVVUSF9SRVFVSVJFRCA9ICdSRUFVVEhfUkVRVUlSRUQnLFxuXG4gIC8vIEF1dGhvcml6YXRpb24gZXJyb3JzICg0MDMpXG4gIElOU1VGRklDSUVOVF9QRVJNSVNTSU9OUyA9ICdJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlMnLFxuICAvKiogQSBtYWNoaW5lIGNyZWRlbnRpYWwgKHNlcnZpY2UgcHJpbmNpcGFsLCBvcmcgc2VydmljZSBhY2NvdW50LCBvciBhblxuICAgKiAgZXhjaGFuZ2VkIGFjY2VzcyBrZXkpIHJlYWNoZWQgYSByb3V0ZSB0aGF0IHJlcXVpcmVzIGEgcGVyc29uLiAqL1xuICBIVU1BTl9TRVNTSU9OX1JFUVVJUkVEID0gJ0hVTUFOX1NFU1NJT05fUkVRVUlSRUQnLFxuICAvKiogQSBib290c3RyYXAtYWRtaW4gZW5yb2xtZW50IHNlc3Npb24gKGBtZmFFbnJvbGxtZW50UGVuZGluZ2ApIHJlYWNoZWQgYVxuICAgKiAgcm91dGUgb3V0c2lkZSB0aGUgZW5yb2xtZW50IC8gc2lnbi1vdXQgLyBzZXR1cCBhbGxvd2xpc3QuICovXG4gIE1GQV9FTlJPTExNRU5UX1JFUVVJUkVEID0gJ01GQV9FTlJPTExNRU5UX1JFUVVJUkVEJyxcbiAgLyoqIEEgcmVhZC1vbmx5IGltcGVyc29uYXRpb24gdG9rZW4gKGBpbXBlcnNvbmF0aW9uUmVhZE9ubHlgKSBhdHRlbXB0ZWQgYVxuICAgKiAgc3RhdGUtY2hhbmdpbmcgcmVxdWVzdCAoYW55dGhpbmcgYnV0IEdFVC9IRUFEL09QVElPTlMpLiAqL1xuICBJTVBFUlNPTkFUSU9OX1JFQURfT05MWSA9ICdJTVBFUlNPTkFUSU9OX1JFQURfT05MWScsXG4gIC8qKiBBIHBsdWdpbi1lY29zeXN0ZW0gZ292ZXJuYW5jZSByb3V0ZSAoZG9jcy9ydW5ib29rcy9lY29zeXN0ZW0tbW9kZXJhdGlvbi5tZClcbiAgICogIHdhcyBjYWxsZWQgZnJvbSBhbiBhY3RpdmUgb3JnIG90aGVyIHRoYW4gdGhlIHN5c3RlbSBvcmcg4oCUIGEgdG9rZW4gbWludGVkIGluXG4gICAqICBhIHRlbmFudCBvcmcgaXMgcmVmdXNlZCBldmVuIGZvciB0aGUgc2FtZSB1c2VyLiBTd2l0Y2ggdG8gdGhlIHN5c3RlbSBvcmcuICovXG4gIFNZU1RFTV9PUkdfUkVRVUlSRUQgPSAnU1lTVEVNX09SR19SRVFVSVJFRCcsXG4gIC8qKiBUaGUgcHVibGlzaGVyIGhhc24ndCBhY2NlcHRlZCB0aGUgQ1VSUkVOVCBwdWJsaXNoZXIgdGVybXMgdmVyc2lvbiwgc28gaXRcbiAgICogIGNhbid0IHN1Ym1pdCBuZXcgcmVxdWVzdHMgKGV4aXN0aW5nIGxpc3RpbmdzIGFyZSB1bmFmZmVjdGVkKS4gKi9cbiAgUFVCTElTSEVSX1RFUk1TX1JFUVVJUkVEID0gJ1BVQkxJU0hFUl9URVJNU19SRVFVSVJFRCcsXG4gIC8qKiBQdWJsaXNoaW5nIGlzIGRvbmUgZnJvbSB0aGUgUk9PVCBvcmc7IGEgdGVhbSBvcmcgY2FuJ3Qgb3duIGEgcHVibGlzaGVyIG9yXG4gICAqICBzdWJtaXQgcmVxdWVzdHMuICovXG4gIFBVQkxJU0hFUl9ST09UX09SR19SRVFVSVJFRCA9ICdQVUJMSVNIRVJfUk9PVF9PUkdfUkVRVUlSRUQnLFxuICAvKiogVGhlIHB1Ymxpc2hlciBpcyBzdXNwZW5kZWQgYnkgdGhlIHN5c3RlbSBvcmcuICovXG4gIFBVQkxJU0hFUl9TVVNQRU5ERUQgPSAnUFVCTElTSEVSX1NVU1BFTkRFRCcsXG4gIC8qKiBUaGUgb3JnYW5pemF0aW9uJ3MgYWRtaW5pc3RyYXRvcnMgc3dpdGNoZWQgQUkgZmVhdHVyZXMgb2ZmIChgYWlFbmFibGVkOiBmYWxzZWBcbiAgICogIG9uIHRoZSBvcmcncyBBSSBjb25maWd1cmF0aW9uKS4gRXZlcnkgQUkgZW50cnkgcG9pbnQgcmVmdXNlcyB3aXRoIGl0LiAqL1xuICBBSV9ESVNBQkxFRCA9ICdBSV9ESVNBQkxFRCcsXG4gIC8qKiBUZW5hbnQgcHVibGlzaGluZyBpcyBzd2l0Y2hlZCBvZmYgb24gdGhpcyBpbnN0YW5jZSAoYFBMVUdJTl9QVUJMSVNISU5HX0VOQUJMRURgKS4gKi9cbiAgUExVR0lOX1BVQkxJU0hJTkdfRElTQUJMRUQgPSAnUExVR0lOX1BVQkxJU0hJTkdfRElTQUJMRUQnLFxuICAvKiogUmV2aWV3IHdyaXRlcyBhcmUgc3dpdGNoZWQgb2ZmIG9uIHRoaXMgaW5zdGFuY2UgKGBQTFVHSU5fUkVWSUVXU19FTkFCTEVEYCk6XG4gICAqICByZXZpZXdzIHN0YXkgcmVhZGFibGUsIG5vdGhpbmcgbmV3IGlzIHdyaXR0ZW4uICovXG4gIFBMVUdJTl9SRVZJRVdTX0RJU0FCTEVEID0gJ1BMVUdJTl9SRVZJRVdTX0RJU0FCTEVEJyxcbiAgLyoqIEEgbWVtYmVyIG9mIHRoZSBwdWJsaXNoZXIncyBvd24gb3JnYW5pemF0aW9uIHRyaWVkIHRvIHJldmlldyAob3Igdm90ZSBvbiBhXG4gICAqICByZXZpZXcgb2YpIG9uZSBvZiBpdHMgbGlzdGluZ3MgKHNlbGYtcHJvbW90aW9uKS4gKi9cbiAgUkVWSUVXX1NFTEZfUFJPTU9USU9OID0gJ1JFVklFV19TRUxGX1BST01PVElPTicsXG4gIC8qKiBTZXBhcmF0aW9uIG9mIGR1dGllczogdGhlIGNhbGxlciBtYXkgbm90IGRlY2lkZSB0aGlzIHJlcXVlc3Qg4oCUXG4gICAqICBpdCBjYW1lIGZyb20gYW4gb3JnIHRoZXkgYmVsb25nIHRvLCB0aGV5IHVwbG9hZGVkIHRoZSB2ZXJzaW9uLCBvciB0aGV5XG4gICAqICBnYXZlIHRoZSBmaXJzdCBvZiB0d28gYXBwcm92YWxzLiAqL1xuICBTRVBBUkFUSU9OX09GX0RVVElFUyA9ICdTRVBBUkFUSU9OX09GX0RVVElFUycsXG4gIE9SR19NSVNNQVRDSCA9ICdPUkdfTUlTTUFUQ0gnLFxuICBDT01QTElBTkNFX1ZJT0xBVElPTiA9ICdDT01QTElBTkNFX1ZJT0xBVElPTicsXG5cbiAgLy8gTm90IGZvdW5kIGVycm9ycyAoNDA0KVxuICBOT1RfRk9VTkQgPSAnTk9UX0ZPVU5EJyxcbiAgT1JHX05PVF9GT1VORCA9ICdPUkdfTk9UX0ZPVU5EJyxcbiAgLyoqIFRoZSBlbWFpbCBnaXZlbiB0byBcImFkZCBtZW1iZXJcIiBoYXMgbm8gYWNjb3VudC4gRGlzdGluY3QgZnJvbSBOT1RfRk9VTkRcbiAgICogIGJlY2F1c2UgaXQgaXMgQUNUSU9OQUJMRTogdGhlIGNhbGxlcidzIGludGVudCBpcyBzYXRpc2ZpYWJsZSBieSBzZW5kaW5nIGFuXG4gICAqICBpbnZpdGF0aW9uLCBhbmQgYSBiYXJlIDQwNCBuYW1lZCBubyB3YXkgZm9yd2FyZC4gKi9cbiAgVVNFUl9OT1RfUkVHSVNURVJFRCA9ICdVU0VSX05PVF9SRUdJU1RFUkVEJyxcbiAgLyoqIFRoZSBhbm9ueW1vdXMgcGx1Z2luIHN1Ym1pc3Npb24gQVBJIGlzIG9mZiBvbiB0aGlzIGluc3RhbmNlXG4gICAqICAoYEFOT05ZTU9VU19TVUJNSVNTSU9OU19FTkFCTEVEYCwgb3Igb3V0Ym91bmQgZW1haWwgaXNuJ3QgY29uZmlndXJlZCkg4oCUXG4gICAqICBhbnN3ZXJlZCBhcyBhIHBsYWluIDQwNCAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuICovXG4gIFNVQk1JU1NJT05TX0RJU0FCTEVEID0gJ1NVQk1JU1NJT05TX0RJU0FCTEVEJyxcblxuICAvLyBWYWxpZGF0aW9uIGVycm9ycyAoNDAwKVxuICBWQUxJREFUSU9OX0VSUk9SID0gJ1ZBTElEQVRJT05fRVJST1InLFxuICBNSVNTSU5HX1JFUVVJUkVEX0ZJRUxEID0gJ01JU1NJTkdfUkVRVUlSRURfRklFTEQnLFxuICAvKiogQSBwcm9vZi1vZi13b3JrIGFuc3dlciBpcyBtaXNzaW5nLCBtYWxmb3JtZWQsIGV4cGlyZWQsIHRvbyBlYXN5LCB3cm9uZyxcbiAgICogIG9yIHdhcyBhbHJlYWR5IHVzZWQgKGFub255bW91cyBzdWJtaXNzaW9ucykuICovXG4gIFBST09GX09GX1dPUktfSU5WQUxJRCA9ICdQUk9PRl9PRl9XT1JLX0lOVkFMSUQnLFxuICBURU1QTEFURV9VTktOT1dOX1BBVEggPSAnVEVNUExBVEVfVU5LTk9XTl9QQVRIJyxcbiAgVEVNUExBVEVfQ1lDTEUgPSAnVEVNUExBVEVfQ1lDTEUnLFxuICBURU1QTEFURV9QQVJTRV9FUlJPUiA9ICdURU1QTEFURV9QQVJTRV9FUlJPUicsXG4gIFRFTVBMQVRFX1RZUEVfTUlTTUFUQ0ggPSAnVEVNUExBVEVfVFlQRV9NSVNNQVRDSCcsXG4gIFRFTVBMQVRFX1NFQ1JFVFNfUkVTRVJWRUQgPSAnVEVNUExBVEVfU0VDUkVUU19SRVNFUlZFRCcsXG4gIFRFTVBMQVRFX0NPTlRSQUNUX1ZJT0xBVElPTiA9ICdURU1QTEFURV9DT05UUkFDVF9WSU9MQVRJT04nLFxuICBURU1QTEFURV9TSVpFX0VYQ0VFREVEID0gJ1RFTVBMQVRFX1NJWkVfRVhDRUVERUQnLFxuICBURU1QTEFURV9WQUxJREFUSU9OX0ZBSUxFRCA9ICdURU1QTEFURV9WQUxJREFUSU9OX0ZBSUxFRCcsXG5cbiAgLy8gQ2xpZW50IHRvbyBvbGQgKDQyNilcbiAgLyoqIFRoZSBwaXBlbGluZS1tYW5hZ2VyIENMSSBpcyBvbGRlciB0aGFuIHRoZSBwbGF0Zm9ybSdzXG4gICAqICBgUElQRUxJTkVfTUFOQUdFUl9NSU5fVkVSU0lPTmA7IHRoZSBmaXggaXMgYHBpcGVsaW5lLW1hbmFnZXIgLS11cGdyYWRlYC4gKi9cbiAgQ0xJRU5UX1VQR1JBREVfUkVRVUlSRUQgPSAnQ0xJRU5UX1VQR1JBREVfUkVRVUlSRUQnLFxuXG4gIC8vIFF1b3RhL1JhdGUgbGltaXQgZXJyb3JzICg0MjkpXG4gIFFVT1RBX0VYQ0VFREVEID0gJ1FVT1RBX0VYQ0VFREVEJyxcbiAgLyoqIFRoZSBjYWxsZXIncyBwZXItbWVtYmVyIHNoYXJlIG9mIHRoZSBvcmcncyBgYWlDYWxsc2AgKG9yZyBzZXR0aW5nXG4gICAqICBgYWlDYWxsc1Blck1lbWJlclBjdGApIGlzIHNwZW50IGZvciB0aGlzIHBlcmlvZCDigJQgdGhlIG9yZyBpdHNlbGYgbWF5IGhhdmUgaGVhZHJvb20uICovXG4gIEFJX01FTUJFUl9TSEFSRV9FWENFRURFRCA9ICdBSV9NRU1CRVJfU0hBUkVfRVhDRUVERUQnLFxuICAvKiogVGhlIG9yZydzIHBlci1wZXJpb2QgQUkgdG9rZW4gYnVkZ2V0IChvcmcgc2V0dGluZyBgYWlUb2tlbkJ1ZGdldGApIGlzIHNwZW50LiAqL1xuICBBSV9UT0tFTl9CVURHRVRfRVhDRUVERUQgPSAnQUlfVE9LRU5fQlVER0VUX0VYQ0VFREVEJyxcbiAgUkFURV9MSU1JVF9FWENFRURFRCA9ICdSQVRFX0xJTUlUX0VYQ0VFREVEJyxcbiAgLyoqIEFuIGFub255bW91cyBzdWJtaXR0ZXIgKHBlciB2ZXJpZmllZCBlbWFpbCwgb3IgcGVyIGNsaWVudCBJUCkgaXMgYXQgdGhlXG4gICAqICByb2xsaW5nIDI0LWhvdXIgc3VibWlzc2lvbiBjYXAuICovXG4gIFNVQk1JU1NJT05fTElNSVQgPSAnU1VCTUlTU0lPTl9MSU1JVCcsXG5cbiAgLy8gUGF5bG9hZCBlcnJvcnMgKDQxMylcbiAgUEFZTE9BRF9UT09fTEFSR0UgPSAnUEFZTE9BRF9UT09fTEFSR0UnLFxuXG4gIC8vIENvbmZsaWN0IGVycm9ycyAoNDA5KVxuICBDT05GTElDVCA9ICdDT05GTElDVCcsXG4gIERVUExJQ0FURV9FTlRSWSA9ICdEVVBMSUNBVEVfRU5UUlknLFxuICBTQ0FOX0NPTkZMSUNUID0gJ1NDQU5fQ09ORkxJQ1QnLFxuICAvKiogQSBwbHVnaW4gaW1hZ2UncyBjb3NpZ24gc2lnbmF0dXJlIChvciBpdHMgc2lnbmVkIFNCT00gYXR0ZXN0YXRpb24pIGRpZFxuICAgKiAgbm90IHZlcmlmeSBhZ2FpbnN0IHRoZSBwbGF0Zm9ybSdzIHBsdWdpbi1zaWduaW5nIGtleSDigJQgdGhlIHJlZ2lzdHJ5XG4gICAqICBjb250ZW50IG5vIGxvbmdlciBtYXRjaGVzIHdoYXQgdGhlIHBsYXRmb3JtIGJ1aWx0IGFuZCBzaWduZWQuICovXG4gIElNQUdFX1ZFUklGSUNBVElPTl9GQUlMRUQgPSAnSU1BR0VfVkVSSUZJQ0FUSU9OX0ZBSUxFRCcsXG4gIC8qKiBUaGUgcGx1Z2luIHZlcnNpb24gaXMgaW1tdXRhYmxlIOKAlCBhIHB1Ymxpc2ggcmVxdWVzdCByZWZlcmVuY2VzIGl0XG4gICAqICAoYGZyb3plbl9hdGAgc2V0KSBvciBpdCBpcyBwdWJsaXNoZWQgdG8gYSBsaXN0aW5nIOKAlCBzbyBpdCBjYW4gYmUgbmVpdGhlclxuICAgKiAgcmUtdXBsb2FkZWQsIGVkaXRlZCBub3IgZGVsZXRlZCAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuICovXG4gIFBMVUdJTl9WRVJTSU9OX0ZST1pFTiA9ICdQTFVHSU5fVkVSU0lPTl9GUk9aRU4nLFxuICAvKiogVGhlIHBsdWdpbiB2ZXJzaW9uIGlzIHJlZmVyZW5jZWQgYnkgb25lIG9mIHRoZSBvcmcncyBwaXBlbGluZXMsIG9yIHB1Ymxpc2hlZFxuICAgKiAgdG8gYW4gZWNvc3lzdGVtIGxpc3Rpbmc7IGRlbGV0aW5nIGl0IG5lZWRzIGA/Zm9yY2U9dHJ1ZWAgcGx1cyBhIHN0ZXAtdXAuICovXG4gIFBMVUdJTl9WRVJTSU9OX0lOX1VTRSA9ICdQTFVHSU5fVkVSU0lPTl9JTl9VU0UnLFxuICAvKiogQSBmcmVlemUgbmFtZWQgYW4gaW1hZ2UgZGlnZXN0IHRoYXQgaXMgbm90IHRoZSB2ZXJzaW9uJ3Mgc3RvcmVkIGRpZ2VzdFxuICAgKiAgKGZhaWwgY2xvc2VkOiB3aGF0IHdhcyByZXF1ZXN0ZWQgaXMgbm90IHdoYXQgd291bGQgYmUgcHVibGlzaGVkKS4gKi9cbiAgUExVR0lOX0RJR0VTVF9NSVNNQVRDSCA9ICdQTFVHSU5fRElHRVNUX01JU01BVENIJyxcbiAgLyoqIEEgcHVibGlzaCByZXF1ZXN0IG5lZWRzIHRoZSBvcmcncyBwdWJsaXNoZXIgcHJvZmlsZSwgd2hpY2ggZG9lc24ndCBleGlzdFxuICAgKiAgeWV0IChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gQ2xhaW0gYSBoYW5kbGUgZmlyc3QuICovXG4gIFBVQkxJU0hFUl9SRVFVSVJFRCA9ICdQVUJMSVNIRVJfUkVRVUlSRUQnLFxuICAvKiogVGhlIHJlcXVlc3RlZCBwdWJsaXNoZXIgaGFuZGxlIGlzIHJlc2VydmVkIChPZmZpY2lhbC9WZXJpZmllZFxuICAgKiAgcmVzZXJ2YXRpb25zLCBjb25mdXNhYmxlcykuIFN1Ym1pdCBhIGBjbGFpbWAgcmVxdWVzdCBpbnN0ZWFkLiAqL1xuICBQVUJMSVNIRVJfSEFORExFX1JFU0VSVkVEID0gJ1BVQkxJU0hFUl9IQU5ETEVfUkVTRVJWRUQnLFxuICAvKiogQSBwdWJsaXNoIHJlcXVlc3QgZmFpbGVkIGEgc3VibWl0IGdhdGUgKHB1YmxpYyB2aXNpYmlsaXR5LCBTUERYIGxpY2Vuc2UsXG4gICAqICBSRUFETUUsIHNpZ25hdHVyZSwgc2NhbiwgdnVsbmVyYWJpbGl0eSBnYXRlIOKApik7IGBkZXRhaWxzLmdhdGVzYCBsaXN0cyB0aGVtLiAqL1xuICBQVUJMSVNIX0dBVEVfRkFJTEVEID0gJ1BVQkxJU0hfR0FURV9GQUlMRUQnLFxuICAvKiogQSBWZXJpZmllZC1wdWJsaXNoZXIgYXBwbGljYXRpb24gKG9yIGl0cyBkZWNpc2lvbikgZnJvbSBhbiBvcmcgd2hvc2UgcGxhblxuICAgKiAgbGFja3MgdGhlIGB2ZXJpZmllZF9wdWJsaXNoZXJgIGZlYXR1cmUgKFRlYW0rLCBkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gKi9cbiAgVkVSSUZJRURfUExBTl9SRVFVSVJFRCA9ICdWRVJJRklFRF9QTEFOX1JFUVVJUkVEJyxcbiAgLyoqIEEgVmVyaWZpZWQtcHVibGlzaGVyIGFwcGxpY2F0aW9uIGZyb20gYW4gb3JnIHdpdGggbm8gRE5TLXZlcmlmaWVkIGRvbWFpbi4gKi9cbiAgVkVSSUZJRURfRE9NQUlOX1JFUVVJUkVEID0gJ1ZFUklGSUVEX0RPTUFJTl9SRVFVSVJFRCcsXG4gIC8qKiBBIFZlcmlmaWVkLXB1Ymxpc2hlciBhcHBsaWNhdGlvbiBmcm9tIGFuIG9yZyB3aG9zZSBvd25lciBoYXMgbm8gc2Vjb25kXG4gICAqICBmYWN0b3IgKHBhc3NrZXkgb3IgYXV0aGVudGljYXRvciBhcHApLiAqL1xuICBWRVJJRklFRF9PV05FUl9NRkFfUkVRVUlSRUQgPSAnVkVSSUZJRURfT1dORVJfTUZBX1JFUVVJUkVEJyxcbiAgLyoqIEEgcGx1Z2luIHJlZmVyZW5jZSBuYW1lcyBhbiBlY29zeXN0ZW0gbGlzdGluZyB0aGUgb3JnIGhhc24ndCBpbnN0YWxsZWQgKG9yXG4gICAqICB3aG9zZSBpbnN0YWxsIGlzIHBlbmRpbmcsIGRlbmllZCwgb3IgZG9lc24ndCBjb3ZlciB0aGUgdmVyc2lvbiBhc2tlZCBmb3I7XG4gICAqICBgZGV0YWlscy5yZWFzb25gKSDigJQgZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCAqL1xuICBQTFVHSU5fTk9UX0lOU1RBTExFRCA9ICdQTFVHSU5fTk9UX0lOU1RBTExFRCcsXG4gIC8qKiBUaGUgb3JnJ3MgY29uc3VtcHRpb24gcG9saWN5IHJlZnVzZXMgdGhlIGxpc3Rpbmc6IGl0cyB0aWVyIGlzbid0IGFsbG93ZWQsXG4gICAqICB0aGUgbGlzdGluZyBpcyBibG9ja2VkLCBvciBhbiBhZHZpc29yeSBibG9ja3MgdGhlIHZlcnNpb24gKGBkZXRhaWxzLnJlYXNvbmApLiAqL1xuICBQTFVHSU5fQkxPQ0tFRF9CWV9QT0xJQ1kgPSAnUExVR0lOX0JMT0NLRURfQllfUE9MSUNZJyxcbiAgLyoqIFRoZSBsaXN0aW5nIG9yIHZlcnNpb24gY2FuJ3QgYmUgdXNlZDogeWFua2VkLCBzdXNwZW5kZWQsIG9yIHBhdXNlZCBmb3IgbmV3XG4gICAqICBpbnN0YWxscyAoYGRldGFpbHMucmVhc29uYCkuICovXG4gIFBMVUdJTl9VTkFWQUlMQUJMRSA9ICdQTFVHSU5fVU5BVkFJTEFCTEUnLFxuICAvKiogQW4gYXV0by1jcmVhdGVkIHBsYWNlaG9sZGVyIHBsdWdpbiBjYW4ndCB0YWtlIHRoZSBuYW1lIG9mIGEgbGlzdGVkIHBsdWdpblxuICAgKiDigJQgaW5zdGFsbCB0aGUgbGlzdGluZyBpbnN0ZWFkLiAqL1xuICBQTFVHSU5fTkFNRV9MSVNURUQgPSAnUExVR0lOX05BTUVfTElTVEVEJyxcbiAgLyoqIEFuIGFub255bW91cyBzdWJtaXNzaW9uIG5hbWVzIGEgY29tbXVuaXR5IGxpc3RpbmcgYW5vdGhlciBzdWJtaXR0ZXIgb3ducyxcbiAgICogIGEgcmVzZXJ2ZWQgbmFtZSwgYW4gT2ZmaWNpYWwvVmVyaWZpZWQgbGlzdGluZydzIG5hbWUsIG9yIG9uZSBjb25mdXNhYmxlXG4gICAqICB3aXRoIGEgdG9wIGxpc3Rpbmc7IGBkZXRhaWxzLnJlYXNvbmAgc2F5cyB3aGljaC4gKi9cbiAgTkFNRV9UQUtFTiA9ICdOQU1FX1RBS0VOJyxcbiAgLyoqIEFuIFVOUVVBTElGSUVEIHJlZmVyZW5jZSBuYW1lcyBhIHBsdWdpbiB0aGUgb3JnIERFTEVURUQ6IHJlZnVzZWQgcmF0aGVyXG4gICAqICB0aGFuIHNpbGVudGx5IGZhbGxpbmcgdGhyb3VnaCB0byBhIHNhbWUtbmFtZWQgbGlzdGluZywgd2hpY2ggd291bGQgc3dhcCB0aGVcbiAgICogIGltYWdlIGEgcGlwZWxpbmUgcnVucyB3aXRob3V0IGFueW9uZSBjaG9vc2luZyBpdCAoYGRldGFpbHMuc3RhdGU6ICdkZWxldGVkJ2ApLiAqL1xuICBQTFVHSU5fREVMRVRFRCA9ICdQTFVHSU5fREVMRVRFRCcsXG5cbiAgLy8gUGx1Z2luIGJ1aWxkIG91dGNvbWVzICg0MjIpIOKAlCB0ZXJtaW5hbCBidWlsZCBmYWlsdXJlcywgcmVwb3J0ZWQgb24gdGhlIGJ1aWxkXG4gIC8vIHN0cmVhbSBhbmQgaW4gdGhlIGJ1aWxkJ3MgZmFpbHVyZSByZWNvcmQsIG5ldmVyIGFuc3dlcmVkIG9uIGEgcmVxdWVzdC5cbiAgLyoqIFRoZSBidWlsdCBpbWFnZSBjb3VsZCBub3QgYmUgdnVsbmVyYWJpbGl0eS1zY2FubmVkIGFmdGVyIGV2ZXJ5IHJldHJ5LCBzb1xuICAgKiAgbm90aGluZyB3YXMgcGVyc2lzdGVkIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gKi9cbiAgSU1BR0VfU0NBTl9VTkFWQUlMQUJMRSA9ICdJTUFHRV9TQ0FOX1VOQVZBSUxBQkxFJyxcbiAgLyoqIFRoZSBidWlsdCBpbWFnZSBoYXMgbW9yZSBmaXhhYmxlIENyaXRpY2FsIGZpbmRpbmdzIHRoYW4gdGhlIHBsYXRmb3JtXG4gICAqICBmbG9vciBgUExVR0lOX1ZVTE5fTUFYX0ZJTkRJTkdTYDsgdGhlIG1lc3NhZ2UgbGlzdHMgdGhlbSB3aXRoIHRoZWlyIGZpeGVzLiAqL1xuICBQTFVHSU5fVlVMTl9HQVRFID0gJ1BMVUdJTl9WVUxOX0dBVEUnLFxuICAvKiogQW4gdXBsb2FkIHdob3NlIE5BTUUgd291bGQgb3ZlcnJpZGUgYSBsaXN0aW5nIG9yIHRoZSBwYXJlbnQgb3JnJ3MgcGx1Z2luLFxuICAgKiAgcmVmdXNlZCBiZWNhdXNlIHRoZSBjb25zdW1wdGlvbiBwb2xpY3kgc2F5cyBgc2hhZG93aW5nOiBkZW55YC4gKi9cbiAgUExVR0lOX05BTUVfU0hBRE9XUyA9ICdQTFVHSU5fTkFNRV9TSEFET1dTJyxcblxuICAvLyBCaWxsaW5nIGVycm9yc1xuICBQQVlNRU5UX01FVEhPRF9SRVFVSVJFRCA9ICdQQVlNRU5UX01FVEhPRF9SRVFVSVJFRCcsIC8vIDQwMlxuICBESVNDT1VOVF9DRUlMSU5HX0VYQ0VFREVEID0gJ0RJU0NPVU5UX0NFSUxJTkdfRVhDRUVERUQnLCAvLyA0MDBcbiAgRElTQ09VTlRfTk9UX0ZPVU5EID0gJ0RJU0NPVU5UX05PVF9GT1VORCcsIC8vIDQwNFxuICBESVNDT1VOVF9JTkFDVElWRSA9ICdESVNDT1VOVF9JTkFDVElWRScsIC8vIDQwOVxuICBQTEFOX09WRVJfQ0FQID0gJ1BMQU5fT1ZFUl9DQVAnLCAvLyA0MDlcbiAgQURET05fT1ZFUl9DQVAgPSAnQURET05fT1ZFUl9DQVAnLCAvLyA0MDlcblxuICAvLyBTZXJ2ZXIgZXJyb3JzICg1MDApXG4gIElOVEVSTkFMX0VSUk9SID0gJ0lOVEVSTkFMX0VSUk9SJyxcbiAgREFUQUJBU0VfRVJST1IgPSAnREFUQUJBU0VfRVJST1InLFxuXG4gIC8vIE5vdCBpbXBsZW1lbnRlZCAoNTAxKSDigJQgdGhlIGNvbmZpZ3VyZWQgcHJvdmlkZXIgaGFzIG5vIHN1Y2ggY2FwYWJpbGl0eVxuICBOT1RfSU1QTEVNRU5URUQgPSAnTk9UX0lNUExFTUVOVEVEJyxcblxuICAvLyBTZXJ2aWNlIHVuYXZhaWxhYmxlICg1MDMpXG4gIFNFUlZJQ0VfVU5BVkFJTEFCTEUgPSAnU0VSVklDRV9VTkFWQUlMQUJMRScsXG4gIENPTVBMSUFOQ0VfU0VSVklDRV9VTkFWQUlMQUJMRSA9ICdDT01QTElBTkNFX1NFUlZJQ0VfVU5BVkFJTEFCTEUnLFxufVxuXG4vKipcbiAqIE1hcHMgZXJyb3IgY29kZXMgdG8gdGhlaXIgZGVmYXVsdCBIVFRQIHN0YXR1cyBjb2Rlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEVycm9yQ29kZVN0YXR1czogUmVjb3JkPEVycm9yQ29kZSwgbnVtYmVyPiA9IHtcbiAgW0Vycm9yQ29kZS5VTkFVVEhPUklaRURdOiA0MDEsXG4gIFtFcnJvckNvZGUuVE9LRU5fRVhQSVJFRF06IDQwMSxcbiAgW0Vycm9yQ29kZS5UT0tFTl9JTlZBTElEXTogNDAxLFxuICBbRXJyb3JDb2RlLlRPS0VOX01JU1NJTkddOiA0MDEsXG4gIFtFcnJvckNvZGUuVE9LRU5fUkVWT0tFRF06IDQwMSxcbiAgW0Vycm9yQ29kZS5NRkFfUkVRVUlSRURdOiA0MDEsXG4gIFtFcnJvckNvZGUuUkVBVVRIX1JFUVVJUkVEXTogNDAxLFxuICBbRXJyb3JDb2RlLklOU1VGRklDSUVOVF9QRVJNSVNTSU9OU106IDQwMyxcbiAgW0Vycm9yQ29kZS5TWVNURU1fT1JHX1JFUVVJUkVEXTogNDAzLFxuICBbRXJyb3JDb2RlLlBVQkxJU0hFUl9URVJNU19SRVFVSVJFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QVUJMSVNIRVJfUk9PVF9PUkdfUkVRVUlSRURdOiA0MDMsXG4gIFtFcnJvckNvZGUuUFVCTElTSEVSX1NVU1BFTkRFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fUFVCTElTSElOR19ESVNBQkxFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5BSV9ESVNBQkxFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fUkVWSUVXU19ESVNBQkxFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5SRVZJRVdfU0VMRl9QUk9NT1RJT05dOiA0MDMsXG4gIFtFcnJvckNvZGUuU0VQQVJBVElPTl9PRl9EVVRJRVNdOiA0MDMsXG4gIFtFcnJvckNvZGUuSFVNQU5fU0VTU0lPTl9SRVFVSVJFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5NRkFfRU5ST0xMTUVOVF9SRVFVSVJFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5JTVBFUlNPTkFUSU9OX1JFQURfT05MWV06IDQwMyxcbiAgW0Vycm9yQ29kZS5PUkdfTUlTTUFUQ0hdOiA0MDMsXG4gIFtFcnJvckNvZGUuQ09NUExJQU5DRV9WSU9MQVRJT05dOiA0MDMsXG4gIFtFcnJvckNvZGUuTk9UX0ZPVU5EXTogNDA0LFxuICBbRXJyb3JDb2RlLk9SR19OT1RfRk9VTkRdOiA0MDQsXG4gIFtFcnJvckNvZGUuVVNFUl9OT1RfUkVHSVNURVJFRF06IDQwNCxcbiAgW0Vycm9yQ29kZS5TVUJNSVNTSU9OU19ESVNBQkxFRF06IDQwNCxcbiAgW0Vycm9yQ29kZS5WQUxJREFUSU9OX0VSUk9SXTogNDAwLFxuICBbRXJyb3JDb2RlLk1JU1NJTkdfUkVRVUlSRURfRklFTERdOiA0MDAsXG4gIFtFcnJvckNvZGUuUFJPT0ZfT0ZfV09SS19JTlZBTElEXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1VOS05PV05fUEFUSF06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9DWUNMRV06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9QQVJTRV9FUlJPUl06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9UWVBFX01JU01BVENIXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1NFQ1JFVFNfUkVTRVJWRURdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfQ09OVFJBQ1RfVklPTEFUSU9OXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1NJWkVfRVhDRUVERURdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfVkFMSURBVElPTl9GQUlMRURdOiA0MDAsXG4gIFtFcnJvckNvZGUuQ0xJRU5UX1VQR1JBREVfUkVRVUlSRURdOiA0MjYsXG4gIFtFcnJvckNvZGUuUVVPVEFfRVhDRUVERURdOiA0MjksXG4gIFtFcnJvckNvZGUuQUlfTUVNQkVSX1NIQVJFX0VYQ0VFREVEXTogNDI5LFxuICBbRXJyb3JDb2RlLkFJX1RPS0VOX0JVREdFVF9FWENFRURFRF06IDQyOSxcbiAgW0Vycm9yQ29kZS5SQVRFX0xJTUlUX0VYQ0VFREVEXTogNDI5LFxuICBbRXJyb3JDb2RlLlNVQk1JU1NJT05fTElNSVRdOiA0MjksXG4gIFtFcnJvckNvZGUuUEFZTE9BRF9UT09fTEFSR0VdOiA0MTMsXG4gIFtFcnJvckNvZGUuQ09ORkxJQ1RdOiA0MDksXG4gIFtFcnJvckNvZGUuRFVQTElDQVRFX0VOVFJZXTogNDA5LFxuICBbRXJyb3JDb2RlLlNDQU5fQ09ORkxJQ1RdOiA0MDksXG4gIFtFcnJvckNvZGUuSU1BR0VfVkVSSUZJQ0FUSU9OX0ZBSUxFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fVkVSU0lPTl9GUk9aRU5dOiA0MDksXG4gIFtFcnJvckNvZGUuUExVR0lOX1ZFUlNJT05fSU5fVVNFXTogNDA5LFxuICBbRXJyb3JDb2RlLlBMVUdJTl9ESUdFU1RfTUlTTUFUQ0hdOiA0MDksXG4gIFtFcnJvckNvZGUuUFVCTElTSEVSX1JFUVVJUkVEXTogNDA5LFxuICBbRXJyb3JDb2RlLlBVQkxJU0hFUl9IQU5ETEVfUkVTRVJWRURdOiA0MDksXG4gIFtFcnJvckNvZGUuUFVCTElTSF9HQVRFX0ZBSUxFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5WRVJJRklFRF9QTEFOX1JFUVVJUkVEXTogNDAzLFxuICBbRXJyb3JDb2RlLlZFUklGSUVEX0RPTUFJTl9SRVFVSVJFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5WRVJJRklFRF9PV05FUl9NRkFfUkVRVUlSRURdOiA0MDksXG4gIFtFcnJvckNvZGUuUExVR0lOX05PVF9JTlNUQUxMRURdOiA0MDMsXG4gIFtFcnJvckNvZGUuUExVR0lOX0JMT0NLRURfQllfUE9MSUNZXTogNDAzLFxuICBbRXJyb3JDb2RlLlBMVUdJTl9VTkFWQUlMQUJMRV06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fTkFNRV9MSVNURURdOiA0MDksXG4gIFtFcnJvckNvZGUuTkFNRV9UQUtFTl06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fREVMRVRFRF06IDQxMCxcbiAgW0Vycm9yQ29kZS5JTUFHRV9TQ0FOX1VOQVZBSUxBQkxFXTogNDIyLFxuICBbRXJyb3JDb2RlLlBMVUdJTl9WVUxOX0dBVEVdOiA0MjIsXG4gIFtFcnJvckNvZGUuUExVR0lOX05BTUVfU0hBRE9XU106IDQwOSxcbiAgW0Vycm9yQ29kZS5QQVlNRU5UX01FVEhPRF9SRVFVSVJFRF06IDQwMixcbiAgW0Vycm9yQ29kZS5ESVNDT1VOVF9DRUlMSU5HX0VYQ0VFREVEXTogNDAwLFxuICBbRXJyb3JDb2RlLkRJU0NPVU5UX05PVF9GT1VORF06IDQwNCxcbiAgW0Vycm9yQ29kZS5ESVNDT1VOVF9JTkFDVElWRV06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTEFOX09WRVJfQ0FQXTogNDA5LFxuICBbRXJyb3JDb2RlLkFERE9OX09WRVJfQ0FQXTogNDA5LFxuICBbRXJyb3JDb2RlLklOVEVSTkFMX0VSUk9SXTogNTAwLFxuICBbRXJyb3JDb2RlLkRBVEFCQVNFX0VSUk9SXTogNTAwLFxuICBbRXJyb3JDb2RlLk5PVF9JTVBMRU1FTlRFRF06IDUwMSxcbiAgW0Vycm9yQ29kZS5TRVJWSUNFX1VOQVZBSUxBQkxFXTogNTAzLFxuICBbRXJyb3JDb2RlLkNPTVBMSUFOQ0VfU0VSVklDRV9VTkFWQUlMQUJMRV06IDUwMyxcbn07XG5cbi8qKlxuICogR2V0IHRoZSBIVFRQIHN0YXR1cyBjb2RlIGZvciBhbiBlcnJvciBjb2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHVzRm9yRXJyb3JDb2RlKGNvZGU6IEVycm9yQ29kZSk6IG51bWJlciB7XG4gIHJldHVybiBFcnJvckNvZGVTdGF0dXNbY29kZV0gPz8gNTAwO1xufVxuIl19
|
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import type { QuotaTier } from './quota-tiers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Support level, one per response-time rung. Sold ONLY as per-contact add-on
|
|
4
|
+
* bundles and included in NO tier — not even enterprise, which is why
|
|
5
|
+
* `TIER_FEATURES` cannot simply spread `ALL_FEATURE_FLAGS` for it any more.
|
|
6
|
+
* These REPLACE the former `priority_support` tier perk, which marketed "faster
|
|
7
|
+
* response times" while no support product existed to be faster. Mutually
|
|
8
|
+
* exclusive: an account holds at most one (enforced in `effectiveEntitlements`).
|
|
9
|
+
*
|
|
10
|
+
* Its own type, and spelled ONCE — `FeatureFlag` includes it rather than listing
|
|
11
|
+
* the three names again. A surface that must name EVERY level keys a
|
|
12
|
+
* `Record<SupportFeatureFlag, …>` off it (the frontend's level labels were a
|
|
13
|
+
* `Record<string, string>` that happened to carry three entries, so a fourth
|
|
14
|
+
* level would have rendered as the raw flag id), while the ladder list below
|
|
15
|
+
* stays `FeatureFlag[]` so it can be tested against the full catalog.
|
|
16
|
+
*/
|
|
17
|
+
export type SupportFeatureFlag = 'support_standard' | 'support_priority' | 'support_premium';
|
|
2
18
|
/** Canonical feature flag identifiers. */
|
|
3
|
-
export type FeatureFlag = 'custom_integrations' |
|
|
19
|
+
export type FeatureFlag = 'custom_integrations' | SupportFeatureFlag | 'ai_generation' | 'bulk_operations' | 'sso' | 'advanced_reporting' | 'team_usage_analytics' | 'compliance_standard' | 'compliance_advanced' | 'stakeholder_reports' | 'verified_publisher';
|
|
4
20
|
/** All valid feature flags (order determines display order). */
|
|
5
21
|
export declare const ALL_FEATURE_FLAGS: readonly FeatureFlag[];
|
|
6
22
|
/**
|
|
@@ -285,4 +285,4 @@ export function complianceFeatureForTags(tags) {
|
|
|
285
285
|
}
|
|
286
286
|
return null;
|
|
287
287
|
}
|
|
288
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9mZWF0dXJlLWZsYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFxRHRDLGdFQUFnRTtBQUNoRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBMkI7SUFDdkQsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsS0FBSztJQUNMLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsaUJBQWlCO0NBQ2xCLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQTJCO0lBQzNELGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsaUJBQWlCO0NBQ2xCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFxQztJQUN4RSxnQkFBZ0IsRUFBRSxpQkFBaUI7SUFDbkMsZ0JBQWdCLEVBQUUsbUJBQW1CO0lBQ3JDLGVBQWUsRUFBRSxrQkFBa0I7Q0FDcEMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQTJCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUVsRjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixTQUFpQixFQUNqQixLQUFvQjtJQUVwQixJQUFJLFNBQVMsS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUk7UUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDaEcsSUFBSyxzQkFBNEMsQ0FBQyxR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SUFDMUMsS0FBSyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQUUsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgUXVvdGFUaWVyIH0gZnJvbSAnLi9xdW90YS10aWVycy5qcyc7XG5cbi8vIEZlYXR1cmUgZmxhZyBpZGVudGlmaWVyc1xuXG4vKiogQ2Fub25pY2FsIGZlYXR1cmUgZmxhZyBpZGVudGlmaWVycy4gKi9cbmV4cG9ydCB0eXBlIEZlYXR1cmVGbGFnID1cbiAgLy8gYGN1c3RvbV9pbnRlZ3JhdGlvbnNgIGlzIGFuIEVOVEVSUFJJU0UtRVhDTFVTSVZFIG1hcmtldGluZy9lbnRpdGxlbWVudCBmbGFnOlxuICAvLyBncmFudGVkIG9ubHkgYnkgdGhlIGVudGVycHJpc2UgdGllciAobm8gYWRkLW9uIGJ1bmRsZSBzZWxscyBpdCB0byBhIGxvd2VyXG4gIC8vIHRpZXIg4oCUIGludGVudGlvbmFsLCBpdCBhbmNob3JzIHRoZSBFbnRlcnByaXNlIHBsYW4pIGFuZCBub3QgY3VycmVudGx5XG4gIC8vIGByZXF1aXJlRmVhdHVyZWAtZ2F0ZWQgb24gYW55IHJvdXRlLiBUaGlzIGlzIGJ5IGRlc2lnbiwgbm90IGRlYWQgY29kZSDigJQgZG9cbiAgLy8gbm90IFwiZml4XCIgYnkgd2lyaW5nIGEgYnVuZGxlIHdpdGhvdXQgYSBwcmljaW5nIGRlY2lzaW9uLiBDb250cmFzdFxuICAvLyBgc3NvYC9gYWR2YW5jZWRfcmVwb3J0aW5nYCwgd2hpY2ggQVJFIHNvbGQgYXMgYWRkLW9uIGJ1bmRsZXMgYW5kIGdhdGVkIChzZWVcbiAgLy8gYmlsbGluZy1jb25maWcgYGxvYWRCdW5kbGVzYCArIGByZXF1aXJlRmVhdHVyZWApLlxuICB8ICdjdXN0b21faW50ZWdyYXRpb25zJ1xuICAvLyBTdXBwb3J0IGxldmVsLCBvbmUgcGVyIHJlc3BvbnNlLXRpbWUgcnVuZy4gU29sZCBPTkxZIGFzIHBlci1jb250YWN0IGFkZC1vblxuICAvLyBidW5kbGVzIChgc3VwcG9ydF9zdGFuZGFyZGAgLyBgc3VwcG9ydF9wcmlvcml0eWAgLyBgc3VwcG9ydF9wcmVtaXVtYCkgYW5kXG4gIC8vIGluY2x1ZGVkIGluIE5PIHRpZXIg4oCUIG5vdCBldmVuIGVudGVycHJpc2UsIHdoaWNoIGlzIHdoeSBgVElFUl9GRUFUVVJFU2BcbiAgLy8gY2Fubm90IHNpbXBseSBzcHJlYWQgYEFMTF9GRUFUVVJFX0ZMQUdTYCBmb3IgaXQgYW55IG1vcmUuIFRoZXNlIFJFUExBQ0UgdGhlXG4gIC8vIGZvcm1lciBgcHJpb3JpdHlfc3VwcG9ydGAgdGllciBwZXJrLCB3aGljaCBtYXJrZXRlZCBcImZhc3RlciByZXNwb25zZSB0aW1lc1wiXG4gIC8vIHdoaWxlIG5vIHN1cHBvcnQgcHJvZHVjdCBleGlzdGVkIHRvIGJlIGZhc3Rlci4gTXV0dWFsbHkgZXhjbHVzaXZlOiBhblxuICAvLyBhY2NvdW50IGhvbGRzIGF0IG1vc3Qgb25lIChlbmZvcmNlZCBpbiBgZWZmZWN0aXZlRW50aXRsZW1lbnRzYCkuXG4gIHwgJ3N1cHBvcnRfc3RhbmRhcmQnXG4gIHwgJ3N1cHBvcnRfcHJpb3JpdHknXG4gIHwgJ3N1cHBvcnRfcHJlbWl1bSdcbiAgfCAnYWlfZ2VuZXJhdGlvbidcbiAgfCAnYnVsa19vcGVyYXRpb25zJ1xuICB8ICdzc28nXG4gIC8vIERPUkEgLyBhZHZhbmNlZCBkZWxpdmVyeSBhbmFseXRpY3MgKHBhaWQgdGllcnMgb25seSkuXG4gIHwgJ2FkdmFuY2VkX3JlcG9ydGluZydcbiAgLy8gUGVyLXRlYW0gdXNhZ2UgYnJlYWtkb3duIGFjcm9zcyB0aGUgb3Jn4oaSdGVhbSBzdWJ0cmVlLiBJTkNMVURFRCBpbiBFbnRlcnByaXNlO1xuICAvLyBzb2xkIGFzIGFuIGFkZC1vbiBidW5kbGUgdG8gUHJvL1RlYW0gKHNlZSBiaWxsaW5nLWNvbmZpZyBgdGVhbV91c2FnZV9hbmFseXRpY3NgKS5cbiAgfCAndGVhbV91c2FnZV9hbmFseXRpY3MnXG4gIC8vIEN1cmF0ZWQgY29tcGxpYW5jZSBydWxlIGxpYnJhcmllcyBzb2xkIGFzIGFkZC1vbiBidW5kbGVzLiBgY29tcGxpYW5jZV9zdGFuZGFyZGBcbiAgLy8gPSBDSS9DRCBiZXN0LXByYWN0aWNlIHNldDsgYGNvbXBsaWFuY2VfYWR2YW5jZWRgID0gU09DMi9QQ0kvQ0lTIGZyYW1ld29ya1xuICAvLyBsaWJyYXJpZXMgKHJlcXVpcmVzIFN0YW5kYXJkKS4gVGhlc2UgZ2F0ZSBTVUJTQ1JJQklORyB0byB0aGUgc2V0J3Mgc3lzdGVtLW9yZ1xuICAvLyBwdWJsaXNoZWQgcnVsZXM7IElOQ0xVREVEIGluIEVudGVycHJpc2UvVW5saW1pdGVkICh2aWEgQUxMX0ZFQVRVUkVfRkxBR1MpLFxuICAvLyBzb2xkIHRvIERldmVsb3Blci9Qcm8vVGVhbSAoc2VlIGJpbGxpbmctY29uZmlnIGBjb21wbGlhbmNlX3N0YW5kYXJkL2FkdmFuY2VkYCkuXG4gIHwgJ2NvbXBsaWFuY2Vfc3RhbmRhcmQnXG4gIHwgJ2NvbXBsaWFuY2VfYWR2YW5jZWQnXG4gIC8vIFNjaGVkdWxlZCwgbWFuYWdlci1mYWNpbmcgcmVwb3J0czogc2F2ZWQgZGVmaW5pdGlvbnMsIGZyb3plbiBzbmFwc2hvdHMsXG4gIC8vIHJldmlldy1hbmQtcHVibGlzaCwgUERGL2VtYWlsIGRlbGl2ZXJ5IGFuZCBzaGFyZSBsaW5rcy4gSU5DTFVERUQgaW5cbiAgLy8gRW50ZXJwcmlzZS9VbmxpbWl0ZWQ7IHNvbGQgYXMgYW4gYWRkLW9uIGJ1bmRsZSB0byBQcm8vVGVhbSAoc2VlXG4gIC8vIGJpbGxpbmctY29uZmlnIGBzdGFrZWhvbGRlcl9yZXBvcnRzYCkuIE9uLWRlbWFuZCBkYXNoYm9hcmRzIHN0YXkgRlJFRSB1bmRlclxuICAvLyBgcmVwb3J0czpyZWFkYCDigJQgdGhpcyBnYXRlcyBzYXZpbmcsIHNjaGVkdWxpbmcgYW5kIHB1Ymxpc2hpbmcsIG5vdCBsb29raW5nLlxuICB8ICdzdGFrZWhvbGRlcl9yZXBvcnRzJ1xuICAvLyBQbHVnaW4gZWNvc3lzdGVtOiB0aGUgb3JnJ3MgcHVibGlzaGVyIGlzIEVMSUdJQkxFIHRvIGFwcGx5IGZvciBWZXJpZmllZFxuICAvLyBzdGF0dXMgKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiBFbGlnaWJpbGl0eSBvbmx5IOKAlCB0aGUgYmFkZ2VcbiAgLy8gaXMgYXdhcmRlZCAoYW5kIHdpdGhkcmF3bikgYnkgc3lzdGVtLW9yZyByZXZpZXcsIG5ldmVyIGJvdWdodC4gVGVhbSBhbmQgdXA7XG4gIC8vIG5vIGFkZC1vbiBidW5kbGUgc2VsbHMgaXQuXG4gIHwgJ3ZlcmlmaWVkX3B1Ymxpc2hlcic7XG5cbi8qKiBBbGwgdmFsaWQgZmVhdHVyZSBmbGFncyAob3JkZXIgZGV0ZXJtaW5lcyBkaXNwbGF5IG9yZGVyKS4gKi9cbmV4cG9ydCBjb25zdCBBTExfRkVBVFVSRV9GTEFHUzogcmVhZG9ubHkgRmVhdHVyZUZsYWdbXSA9IFtcbiAgJ2FpX2dlbmVyYXRpb24nLFxuICAnYnVsa19vcGVyYXRpb25zJyxcbiAgJ2N1c3RvbV9pbnRlZ3JhdGlvbnMnLFxuICAnc3NvJyxcbiAgJ2FkdmFuY2VkX3JlcG9ydGluZycsXG4gICd0ZWFtX3VzYWdlX2FuYWx5dGljcycsXG4gICdjb21wbGlhbmNlX3N0YW5kYXJkJyxcbiAgJ2NvbXBsaWFuY2VfYWR2YW5jZWQnLFxuICAnc3Rha2Vob2xkZXJfcmVwb3J0cycsXG4gICd2ZXJpZmllZF9wdWJsaXNoZXInLFxuICAnc3VwcG9ydF9zdGFuZGFyZCcsXG4gICdzdXBwb3J0X3ByaW9yaXR5JyxcbiAgJ3N1cHBvcnRfcHJlbWl1bScsXG5dO1xuXG4vKipcbiAqIFRoZSBzdXBwb3J0LWxldmVsIGZsYWdzLCB3aGljaCBhcmUgYWRkLW9uLU9OTFkgYXQgZXZlcnkgdGllci5cbiAqXG4gKiBOZWVkZWQgYXMgaXRzIG93biBsaXN0IGJlY2F1c2UgYFRJRVJfRkVBVFVSRVMuZW50ZXJwcmlzZWAgc3ByZWFkc1xuICogYEFMTF9GRUFUVVJFX0ZMQUdTYDogd2l0aG91dCBleGNsdWRpbmcgdGhlc2UsIGFkZGluZyBhIHN1cHBvcnQgZmxhZyB3b3VsZFxuICogc2lsZW50bHkgZ3JhbnQgZW50ZXJwcmlzZSB0aGUgc3VwcG9ydCBwcm9kdWN0IGl0IGlzIHN1cHBvc2VkIHRvIGJ1eSwgd2hpY2ggaXNcbiAqIGV4YWN0bHkgdGhlIFwiaW5jbHVkZWQgaW4gbm8gdGllclwiIGRlY2lzaW9uIGl0IHdvdWxkIGJyZWFrLlxuICovXG5leHBvcnQgY29uc3QgU1VQUE9SVF9GRUFUVVJFX0ZMQUdTOiByZWFkb25seSBGZWF0dXJlRmxhZ1tdID0gW1xuICAnc3VwcG9ydF9zdGFuZGFyZCcsXG4gICdzdXBwb3J0X3ByaW9yaXR5JyxcbiAgJ3N1cHBvcnRfcHJlbWl1bScsXG5dO1xuXG4vKipcbiAqIFRoZSBGSVJTVC1SRVNQT05TRSBUQVJHRVQgc29sZCBhdCBlYWNoIHN1cHBvcnQgbGV2ZWwg4oCUIHRoZSBjYW5vbmljYWwgd29yZGluZy5cbiAqXG4gKiBPbmUgcGxhY2UsIGJlY2F1c2UgdGhpcyBzdHJpbmcgaXMgYSBjb21taXRtZW50OiBpdCBpcyBzaG93biBvbiB0aGUgY2FzZSwgaW5cbiAqIHRoZSBhZGQtb24gY2F0YWxvZywgb24gdGhlIHByaWNpbmcgcGFnZSBhbmQgaW4gdGhlIGFsZXJ0IHRoYXQgZmlyZXMgd2hlbiB0aGVcbiAqIGRlc2sgbWlzc2VzIGl0LCBhbmQgdGhvc2UgZm91ciBtdXN0IG5ldmVyIGRpc2FncmVlLiBBIGxldmVsIGFic2VudCBmcm9tIHRoaXNcbiAqIG1hcCBoYXMgbm8gc3RhdGVkIHRhcmdldCBhbmQgY2FsbGVycyBtdXN0IG9taXQgdGhlIHBocmFzZSByYXRoZXIgdGhhbiBib3Jyb3dcbiAqIGFub3RoZXIgbGV2ZWwncyBwcm9taXNlLlxuICpcbiAqIFdIWSBUSEVTRSBVTklUUy4gQW4gZWFybGllciBsYWRkZXIgcmVhZCBcIjQ4IGJ1c2luZXNzIGhvdXJzIC8gMjQgYnVzaW5lc3NcbiAqIGhvdXJzIC8gbm8gc3RhdGVkIG51bWJlclwiLCB3aGljaCB3YXMgd3JvbmcgdHdpY2Ugb3Zlci4gVGhlIGJ1c2luZXNzLWhvdXJzXG4gKiB1bml0IGZsYXR0ZXJlZCB0aGUgdGFyZ2V0cyBieSByb3VnaGx5IHRocmVlIHRpbWVzIOKAlCA0OCBidXNpbmVzcyBob3VycyBpcyBzaXhcbiAqIHdvcmtpbmcgZGF5cywgc28gYSBjYXNlIHJhaXNlZCBvbiBhIEZyaWRheSBldmVuaW5nIGhhZCBpdHMgdGFyZ2V0IGV4cGlyZSB0aGVcbiAqICpmb2xsb3dpbmcgTW9uZGF5KiDigJQgYW5kIHRoZSB0b3AgbGV2ZWwsIHRoZSBvbmUgdGhhdCBjb3N0cyB0aGUgbW9zdCwgd2FzIHRoZVxuICogb25seSBvbmUgd2l0aCBubyBudW1iZXIgYXQgYWxsLCBzbyB0aGUgbGFkZGVyIHdlbnQgYmxhbmsgb24gdGhlIHNpbmdsZSBheGlzIGFcbiAqIGJ1eWVyIGNvbXBhcmVzLiBUaGUgdGFyZ2V0cyBiZWxvdyBhcmUgc3RhdGVkIGluIHVuaXRzIHRoZSBjdXN0b21lciBhY3R1YWxseVxuICogZXhwZXJpZW5jZXMgYW5kIGltcHJvdmUgbW9ub3RvbmljYWxseSBvbiBvbmUgY2xvY2s6IHR3byBidXNpbmVzcyBkYXlzLCB0aGVuXG4gKiBvbmUsIHRoZW4gZWlnaHQgaG91cnMgb24gYSBjbG9jayB0aGF0IGRvZXMgbm90IHN0b3AgZm9yIG5pZ2h0cyBvciB3ZWVrZW5kcy5cbiAqXG4gKiBQcmVtaXVtJ3MgXCJhbnkgZGF5XCIgaXMgdGhlIHdob2xlIG9mIGl0cyAyNMOXNyBjb3ZlcmFnZSBjbGFpbSwgYW5kIGl0IGlzXG4gKiBkZWxpYmVyYXRlbHkgTk9UIGEgc2V2ZXJpdHktZGVwZW5kZW50IG9uZS1ob3VyIHByb21pc2UuIEVpZ2h0IGhvdXJzIGlzIHdoYXQgYVxuICogcm90YSBjYW4gYmUgaGVsZCB0bzogaXQgbGVhdmVzIHJvb20gZm9yIHRoZSBwZXItY2FzZSBzd2VlcCB0byBwYWdlIHR3byBob3Vyc1xuICogYWhlYWQgb2YgdGhlIGRlYWRsaW5lIChzZWUgZG9jcy9vbmNhbGwtcGFnaW5nLm1kKSBhbmQgZm9yIGEgd29rZW4gaHVtYW4gdG9cbiAqIHJlYWQgdGhlIGNhc2UgYW5kIGFuc3dlciBpdC4gQW4gaG91ci1zY2FsZSBjb21taXRtZW50IHdvdWxkIHNwZW5kIHRoYXQgbWFyZ2luXG4gKiBiZWZvcmUgYW55b25lIHBpY2tlZCB1cCB0aGUgcGhvbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBTVVBQT1JUX1JFU1BPTlNFX1RBUkdFVFM6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBzdXBwb3J0X3N0YW5kYXJkOiAnMiBidXNpbmVzcyBkYXlzJyxcbiAgc3VwcG9ydF9wcmlvcml0eTogJ25leHQgYnVzaW5lc3MgZGF5JyxcbiAgc3VwcG9ydF9wcmVtaXVtOiAnOCBob3VycywgYW55IGRheScsXG59O1xuXG4vKipcbiAqIFN1cHBvcnQgbGV2ZWxzIHdob3NlIGNvbnRhY3RzIG1heSBkZWNsYXJlIGB1cmdlbnRgIHNldmVyaXR5IHdoZW4gb3BlbmluZy5cbiAqXG4gKiBQcmVtaXVtIG9ubHksIGFuZCB0aGlzIGlzIGEgUFJJQ0lORyBkZWNpc2lvbiByYXRoZXIgdGhhbiBhIHBlcm1pc3Npb24gZGV0YWlsLlxuICogVGhlIHRlbmFudCBjaG9vc2VzIHNldmVyaXR5IGF0IG9wZW4gYW5kIHNldmVyaXR5IGRlY2lkZXMgd2hpY2ggdGFyZ2V0IGFwcGxpZXMsXG4gKiBzbyBhIGxldmVsIHRoYXQgY2FuIGRlY2xhcmUgYHVyZ2VudGAgaXMgYSBsZXZlbCB0aGF0IGNhbiBoZWxwIGl0c2VsZiB0byB0aGVcbiAqIGZhc3Rlc3QgcmVzcG9uc2Ugb24gb2ZmZXIuIEFkbWl0dGluZyBpdCBvbmx5IGF0IHByZW1pdW0gaXMgd2hhdCBtYWtlcyB0aGUgdG9wXG4gKiBydW5nIGEgY2FwYWJpbGl0eSDigJQgXCJ5b3UgY2FuIGRlY2xhcmUgYW4gZW1lcmdlbmN5XCIg4oCUIGluc3RlYWQgb2Ygbm90aGluZyBidXQgYVxuICogZmFzdGVyIGNsb2NrLCB3aGljaCBpcyB0aGUgd2hvbGUgcmVhc29uIHRoZSBwcmlvcml0eS10by1wcmVtaXVtIHN0ZXAgaXMgd29ydGhcbiAqIGl0cyBwcmljZS5cbiAqXG4gKiBTdGFmZiByZS1yYW5raW5nIChgc3VwcG9ydC5jYXNlLnNldmVyaXR5YCwgc3lzdGVtLWFkbWluIG9ubHkpIHN0YXlzIHRoZSBlc2NhcGVcbiAqIGhhdGNoOiBhIGdlbnVpbmUgZW1lcmdlbmN5IHJhaXNlZCBvbiBhIGxvd2VyIGxldmVsIGlzIE9VUlMgdG8gcHJvbW90ZSwgd2hpY2hcbiAqIGlzIHRoZSBzYW1lIGdvdmVybmFuY2Ugc3BsaXQgdGhhdCBrZWVwcyB0aGUgdGVuYW50IGZyb20gcmUtcmFua2luZyBhZnRlciBvcGVuLlxuICovXG5leHBvcnQgY29uc3QgVVJHRU5UX1NFVkVSSVRZX0xFVkVMUzogcmVhZG9ubHkgRmVhdHVyZUZsYWdbXSA9IFsnc3VwcG9ydF9wcmVtaXVtJ107XG5cbi8qKlxuICogVGhlIHNldmVyaXR5IGEgY2FzZSBtYXkgYWN0dWFsbHkgYmUgb3BlbmVkIGF0LlxuICpcbiAqIFJldHVybnMgdGhlIHJlcXVlc3RlZCBzZXZlcml0eSB1bmNoYW5nZWQsIG9yIHRoZSBoaWdoZXN0IG9uZSB0aGUgbGV2ZWwgYWRtaXRzLlxuICogYHVyZ2VudGAgYXNrZWQgZm9yIGJlbG93IHByZW1pdW0gYmVjb21lcyBgaGlnaGAg4oCUIGEgRE9XTkdSQURFLCBuZXZlciBhXG4gKiByZWZ1c2FsOiBkZWNsaW5pbmcgdG8gc2VuZCBhIHN1cHBvcnQgbWVzc2FnZSBiZWNhdXNlIHRoZSBzZW5kZXIgb3Zlci1zdGF0ZWRcbiAqIGl0cyBzZXZlcml0eSB3b3VsZCBkZW55IHN1cHBvcnQgb3ZlciBhIGxhYmVsLCBhbmQgdGhlIG1lc3NhZ2UgaXRzZWxmIGlzIG5ldmVyXG4gKiB0aGUgdGhpbmcgYmVpbmcgZ2F0ZWQuIFRoZSBjYWxsZXIgdGVsbHMgdGhlIHNlbmRlciBpdCBoYXBwZW5lZC5cbiAqXG4gKiBBIG51bGwgYGxldmVsYCBtZWFucyBubyBjYXNlIGlzIGJlaW5nIG9wZW5lZCAobm8gZW50aXRsZW1lbnQsIG9yIHRoZVxuICogZW50aXRsZW1lbnQgcmVhZCB3YXMgdW5hdmFpbGFibGUpLCBhbmQgdGhlbiB0aGVyZSBpcyBubyBjb21taXRtZW50IHRvIHByb3RlY3QsXG4gKiBzbyB0aGUgcmVxdWVzdGVkIHZhbHVlIHBhc3NlcyB0aHJvdWdoIHVudG91Y2hlZCByYXRoZXIgdGhhbiBiZWluZyBkZW1vdGVkIGZvclxuICogbm8gcmVhc29uIGR1cmluZyBhbiBvdXRhZ2Ugb2Ygb3Vycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkbWl0Q2FzZVNldmVyaXR5KFxuICByZXF1ZXN0ZWQ6IHN0cmluZyxcbiAgbGV2ZWw6IHN0cmluZyB8IG51bGwsXG4pOiB7IHNldmVyaXR5OiBzdHJpbmc7IGRvd25ncmFkZWQ6IGJvb2xlYW4gfSB7XG4gIGlmIChyZXF1ZXN0ZWQgIT09ICd1cmdlbnQnIHx8IGxldmVsID09PSBudWxsKSByZXR1cm4geyBzZXZlcml0eTogcmVxdWVzdGVkLCBkb3duZ3JhZGVkOiBmYWxzZSB9O1xuICBpZiAoKFVSR0VOVF9TRVZFUklUWV9MRVZFTFMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKGxldmVsKSkge1xuICAgIHJldHVybiB7IHNldmVyaXR5OiByZXF1ZXN0ZWQsIGRvd25ncmFkZWQ6IGZhbHNlIH07XG4gIH1cbiAgcmV0dXJuIHsgc2V2ZXJpdHk6ICdoaWdoJywgZG93bmdyYWRlZDogdHJ1ZSB9O1xufVxuXG4vKiogQ2hlY2sgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEZlYXR1cmVGbGFnLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRGZWF0dXJlRmxhZyh2YWx1ZTogc3RyaW5nKTogdmFsdWUgaXMgRmVhdHVyZUZsYWcge1xuICByZXR1cm4gKEFMTF9GRUFUVVJFX0ZMQUdTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyh2YWx1ZSk7XG59XG5cbi8vIFRpZXItdG8tZmVhdHVyZSBtYXBwaW5nXG5cbi8qKiBGZWF0dXJlcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggdGllci4gKi9cbmV4cG9ydCBjb25zdCBUSUVSX0ZFQVRVUkVTOiBSZWNvcmQ8UXVvdGFUaWVyLCByZWFkb25seSBGZWF0dXJlRmxhZ1tdPiA9IHtcbiAgLy8gRGV2ZWxvcGVyIGdldHMgYGFpX2dlbmVyYXRpb25gIGFzIGEgVFJJQUw6IHRoZSB0aWVyJ3MgMjAgYGFpQ2FsbHNgIHBlclxuICAvLyBwZXJpb2QgKFFVT1RBX1RJRVJTLmRldmVsb3BlcikgaXMgdGhlIHRyaWFsJ3MgY2FwLCBzbyB0aGUgQUkgc3VyZmFjZXMgYXJlXG4gIC8vIHVzYWJsZSDigJQgbm90IGp1c3QgcHJldmlld2VkIOKAlCBiZWZvcmUgYW4gdXBncmFkZS4gQSBCWU9LIGtleSBzcGVuZHMgbm8gc2xvdC5cbiAgZGV2ZWxvcGVyOiBbJ2FpX2dlbmVyYXRpb24nXSxcbiAgcHJvOiBbJ2FpX2dlbmVyYXRpb24nLCAnYnVsa19vcGVyYXRpb25zJ10sXG4gIC8vIFRlYW0gYWRkcyBzc28gKFNTTy9JZFAgaXMgSU5DTFVERUQgaW4gVGVhbSwgbm90IGFuIGFkZC1vbikuIGFkdmFuY2VkX3JlcG9ydGluZ1xuICAvLyAoRE9SQSkgaXMgTk9UIGEgVGVhbSB0aWVyIGZlYXR1cmUg4oCUIGl0J3MgSU5DTFVERUQgb25seSBpbiBFbnRlcnByaXNlIGFuZCBzb2xkXG4gIC8vIGFzIGFuIGFkZC1vbiBidW5kbGUgdG8gZXZlcnkgb3RoZXIgdGllciAoc2VlIGJpbGxpbmctY29uZmlnXG4gIC8vIGBhZHZhbmNlZF9yZXBvcnRpbmdgKS4gRW50ZXJwcmlzZSB1bmxvY2tzIGFsbC5cbiAgLy8gYHZlcmlmaWVkX3B1Ymxpc2hlcmAgKGVsaWdpYmlsaXR5IHRvIGFwcGx5IGZvciBWZXJpZmllZCkgc3RhcnRzIGF0IFRlYW0uXG4gIHRlYW06IFsnYWlfZ2VuZXJhdGlvbicsICdidWxrX29wZXJhdGlvbnMnLCAnc3NvJywgJ3ZlcmlmaWVkX3B1Ymxpc2hlciddLFxuICAvLyBCdXNpbmVzcyBpcyBUZWFtIHBsdXMgYWR2YW5jZWRfcmVwb3J0aW5nIChET1JBKTogdGhlIGFuYWx5dGljcyBzdXJmYWNlIGlzXG4gIC8vIHdoYXQgYSA4LXNlYXQgb3JnIGlzIHVzdWFsbHkgYnV5aW5nLCBhbmQgYnVuZGxpbmcgaXQgaXMgbW9zdCBvZiB3aHkgdGhlIHRpZXJcbiAgLy8gaXMgd29ydGggJDI0OSBvdmVyIFRlYW0gKyB0aGUgYWRkLW9uLiBFbnRlcnByaXNlIGtlZXBzIGN1c3RvbV9pbnRlZ3JhdGlvbnMsXG4gIC8vIHRlYW1fdXNhZ2VfYW5hbHl0aWNzLCB0aGUgY29tcGxpYW5jZSBsaWJyYXJpZXMgYW5kIHN0YWtlaG9sZGVyX3JlcG9ydHMgYXNcbiAgLy8gaXRzIG93biBkaWZmZXJlbnRpYXRvcnMuXG4gIGJ1c2luZXNzOiBbJ2FpX2dlbmVyYXRpb24nLCAnYnVsa19vcGVyYXRpb25zJywgJ3NzbycsICd2ZXJpZmllZF9wdWJsaXNoZXInLCAnYWR2YW5jZWRfcmVwb3J0aW5nJ10sXG4gIC8vIEVudGVycHJpc2UgaXMgYW4gRVhQTElDSVQgbGlzdCwgZGVsaWJlcmF0ZWx5IG5vdCBgWy4uLkFMTF9GRUFUVVJFX0ZMQUdTXWAuXG4gIC8vXG4gIC8vIFNwcmVhZGluZyBldmVyeSBmbGFnIGhlcmUgaXMgaG93IGEgbmV3IHBhaWQgYWRkLW9uIHNpbGVudGx5IGJlY29tZXMgYW5cbiAgLy8gRW50ZXJwcmlzZSBpbmNsdXNpb246IGFkZGluZyBgc3VwcG9ydF9wcmVtaXVtYCB0byB0aGUgY2F0YWxvZyB3b3VsZCBoYXZlXG4gIC8vIGdyYW50ZWQgZW50ZXJwcmlzZSB0aGUgMjTDlzcgc3VwcG9ydCBpdCBpcyBzdXBwb3NlZCB0byBCVVksIHdpdGggbm90aGluZ1xuICAvLyBmYWlsaW5nLiBMaXN0aW5nIHRoZSBmbGFncyBmb3JjZXMgdGhlIHF1ZXN0aW9uIFwiZG9lcyBFbnRlcnByaXNlIGluY2x1ZGVcbiAgLy8gdGhpcz9cIiB0byBiZSBhbnN3ZXJlZCBwZXIgZmxhZywgd2hpY2ggaXMgdGhlIGRlY2lzaW9uIHRoaXMgcmVjb3JkIGV4aXN0cyB0b1xuICAvLyBjYXJyeS4gQSBmaWx0ZXIgZXhwcmVzc2lvbiB3b3VsZCBkbyB0aGUgc2FtZSBqb2IgYnV0IGNhbm5vdCBiZSByZWFkIGJ5IHRoZVxuICAvLyBzb3VyY2UtcGFyc2luZyBwYXJpdHkgdGVzdHMgKGBmcm9udGVuZC90ZXN0L2ZlYXR1cmUtZ2F0ZS11cHNlbGwudGVzdC50c2BcbiAgLy8gZXh0cmFjdHMgYW4gYXJyYXkgbGl0ZXJhbCksIHNvIGFuIGV4cGxpY2l0IGxpc3QgaXQgaXMuXG4gIC8vXG4gIC8vIFN1cHBvcnQgaXMgYWJzZW50IG9uIHB1cnBvc2U6IGl0IGlzIGFuIGFkZC1vbiBhdCBFVkVSWSB0aWVyLCBpbmNsdWRlZCBpbiBub25lLlxuICBlbnRlcnByaXNlOiBbXG4gICAgJ2FpX2dlbmVyYXRpb24nLFxuICAgICdidWxrX29wZXJhdGlvbnMnLFxuICAgICdjdXN0b21faW50ZWdyYXRpb25zJyxcbiAgICAnc3NvJyxcbiAgICAnYWR2YW5jZWRfcmVwb3J0aW5nJyxcbiAgICAndGVhbV91c2FnZV9hbmFseXRpY3MnLFxuICAgICdjb21wbGlhbmNlX3N0YW5kYXJkJyxcbiAgICAnY29tcGxpYW5jZV9hZHZhbmNlZCcsXG4gICAgJ3N0YWtlaG9sZGVyX3JlcG9ydHMnLFxuICAgICd2ZXJpZmllZF9wdWJsaXNoZXInLFxuICBdLFxuICAvLyBVbmxpbWl0ZWQgaW5jbHVkZXMgZXZlcnkgZmVhdHVyZSAvIGFkZC1vbiBidW5kbGUgKGJpbGxpbmctZGlzYWJsZWQgZGVmYXVsdCkuXG4gIC8vIFN1cHBvcnQgaW5jbHVkZWQgaGVyZSBvbiBwdXJwb3NlOiBgdW5saW1pdGVkYCBpcyB0aGUgYmlsbGluZy1PRkYgdGllciwgd2hlcmVcbiAgLy8gbm90aGluZyBpcyBwdXJjaGFzYWJsZSwgYW5kIGl0cyBgc3VwcG9ydENvbnRhY3RzYCBsaW1pdCBpcyAtMSB0byBtYXRjaC5cbiAgdW5saW1pdGVkOiBbLi4uQUxMX0ZFQVRVUkVfRkxBR1NdLFxufTtcblxuLy8gRmVhdHVyZSBtZXRhZGF0YSAoZm9yIGRpc3BsYXkpXG5cbi8qKiBIdW1hbi1yZWFkYWJsZSBtZXRhZGF0YSBmb3IgZWFjaCBmZWF0dXJlIGZsYWcuICovXG5leHBvcnQgY29uc3QgRkVBVFVSRV9NRVRBREFUQTogUmVjb3JkPEZlYXR1cmVGbGFnLCB7IGxhYmVsOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmcgfT4gPSB7XG4gIGFpX2dlbmVyYXRpb246IHtcbiAgICBsYWJlbDogJ0FJIEdlbmVyYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnQUktcG93ZXJlZCBwaXBlbGluZSBhbmQgcGx1Z2luIGdlbmVyYXRpb24nLFxuICB9LFxuICBidWxrX29wZXJhdGlvbnM6IHtcbiAgICBsYWJlbDogJ0J1bGsgT3BlcmF0aW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdCYXRjaCBjcmVhdGUsIHVwZGF0ZSwgYW5kIGRlbGV0ZSBmb3IgcGlwZWxpbmVzIGFuZCBwbHVnaW5zJyxcbiAgfSxcbiAgY3VzdG9tX2ludGVncmF0aW9uczoge1xuICAgIGxhYmVsOiAnQ3VzdG9tIEludGVncmF0aW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdDb25uZWN0IHRvIGV4dGVybmFsIHNlcnZpY2VzIGFuZCBjdXN0b20gd2ViaG9vayBlbmRwb2ludHMnLFxuICB9LFxuICBzc286IHtcbiAgICBsYWJlbDogJ1NTTyAvIElkUCcsXG4gICAgZGVzY3JpcHRpb246ICdTaW5nbGUgc2lnbi1vbiBhbmQgZXh0ZXJuYWwgaWRlbnRpdHktcHJvdmlkZXIgY29uZmlndXJhdGlvbnMnLFxuICB9LFxuICBhZHZhbmNlZF9yZXBvcnRpbmc6IHtcbiAgICBsYWJlbDogJ0FkdmFuY2VkIFJlcG9ydGluZycsXG4gICAgZGVzY3JpcHRpb246ICdET1JBIC8gYWR2YW5jZWQgZGVsaXZlcnkgYW5hbHl0aWNzJyxcbiAgfSxcbiAgdGVhbV91c2FnZV9hbmFseXRpY3M6IHtcbiAgICBsYWJlbDogJ1RlYW0gVXNhZ2UgQW5hbHl0aWNzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Blci10ZWFtIHVzYWdlIGJyZWFrZG93biBhY3Jvc3MgdGhlIG9yZyDihpIgdGVhbSBzdWJ0cmVlJyxcbiAgfSxcbiAgY29tcGxpYW5jZV9zdGFuZGFyZDoge1xuICAgIGxhYmVsOiAnU3RhbmRhcmQgQ29tcGxpYW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdDdXJhdGVkIENJL0NEIGJlc3QtcHJhY3RpY2UgY29tcGxpYW5jZSBydWxlIGxpYnJhcnknLFxuICB9LFxuICBjb21wbGlhbmNlX2FkdmFuY2VkOiB7XG4gICAgbGFiZWw6ICdBZHZhbmNlZCBDb21wbGlhbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0N1cmF0ZWQgZnJhbWV3b3JrIGNvbXBsaWFuY2UgbGlicmFyaWVzIChTT0MyIC8gUENJLURTUyAvIENJUyknLFxuICB9LFxuICBzdGFrZWhvbGRlcl9yZXBvcnRzOiB7XG4gICAgbGFiZWw6ICdTdGFrZWhvbGRlciBSZXBvcnRzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1NjaGVkdWxlZCB0ZWFtIHJlcG9ydHMgZm9yIG1hbmFnZXJzIOKAlCBzbmFwc2hvdHMsIHJldmlldyBhbmQgcHVibGlzaCwgUERGL2VtYWlsIGRlbGl2ZXJ5IGFuZCBzaGFyZSBsaW5rcycsXG4gIH0sXG4gIHN1cHBvcnRfc3RhbmRhcmQ6IHtcbiAgICBsYWJlbDogJ1N0YW5kYXJkIFN1cHBvcnQnLFxuICAgIGRlc2NyaXB0aW9uOiBgU3VwcG9ydCBjYXNlcyB3aXRoIGEgZmlyc3QgcmVzcG9uc2Ugd2l0aGluICR7U1VQUE9SVF9SRVNQT05TRV9UQVJHRVRTLnN1cHBvcnRfc3RhbmRhcmR9LCBidXNpbmVzcyBob3Vyc2AsXG4gIH0sXG4gIHN1cHBvcnRfcHJpb3JpdHk6IHtcbiAgICBsYWJlbDogJ1ByaW9yaXR5IFN1cHBvcnQnLFxuICAgIGRlc2NyaXB0aW9uOiBgU3VwcG9ydCBjYXNlcyB3aXRoIGEgZmlyc3QgcmVzcG9uc2UgYnkgdGhlICR7U1VQUE9SVF9SRVNQT05TRV9UQVJHRVRTLnN1cHBvcnRfcHJpb3JpdHl9LCBidXNpbmVzcyBob3Vyc2AsXG4gIH0sXG4gIHN1cHBvcnRfcHJlbWl1bToge1xuICAgIGxhYmVsOiAnUHJlbWl1bSBTdXBwb3J0JyxcbiAgICBkZXNjcmlwdGlvbjogYDI0w5c3IHN1cHBvcnQgY2FzZXMg4oCUIGZpcnN0IHJlc3BvbnNlIHdpdGhpbiAke1NVUFBPUlRfUkVTUE9OU0VfVEFSR0VUUy5zdXBwb3J0X3ByZW1pdW19IG9mIHRoZSB3ZWVrLCBhbmQgdGhlIG9ubHkgbGV2ZWwgdGhhdCBtYXkgZGVjbGFyZSB1cmdlbnQgc2V2ZXJpdHlgLFxuICB9LFxuICB2ZXJpZmllZF9wdWJsaXNoZXI6IHtcbiAgICBsYWJlbDogJ1ZlcmlmaWVkIFB1Ymxpc2hlciBFbGlnaWJpbGl0eScsXG4gICAgZGVzY3JpcHRpb246ICdBcHBseSBmb3IgdGhlIFZlcmlmaWVkIGJhZGdlIG9uIHlvdXIgcGx1Z2luLWVjb3N5c3RlbSBwdWJsaXNoZXIgKGF3YXJkZWQgYnkgc3lzdGVtLW9yZyByZXZpZXcpJyxcbiAgfSxcbn07XG5cbi8vIFJlc29sdXRpb24gbG9naWNcblxuLyoqXG4gKiBSZXNvbHZlIGEgdXNlcidzIGVmZmVjdGl2ZSBmZWF0dXJlIHNldC5cbiAqXG4gKiAxLiBTeXNhZG1pbnMgKGlzU3VwZXJBZG1pbikgYWx3YXlzIGdldCBBTEwgZmVhdHVyZXMuXG4gKiAyLiBTdGFydCB3aXRoIHRoZSB0aWVyJ3MgZGVmYXVsdCBmZWF0dXJlcy5cbiAqIDMuIEFwcGx5IHBlci11c2VyIG92ZXJyaWRlczogYHRydWVgIGFkZHMgYSBmZWF0dXJlLCBgZmFsc2VgIHJlbW92ZXMgaXQuXG4gKiA0LiBJbnZhbGlkIG92ZXJyaWRlIGtleXMgYXJlIHNpbGVudGx5IGlnbm9yZWQuXG4gKlxuICogQHBhcmFtIHRpZXIgLSBUaGUgb3JnYW5pemF0aW9uJ3MgcXVvdGEgdGllclxuICogQHBhcmFtIG9wdHMgLSBSZXNvbHV0aW9uIG9wdGlvbnM6XG4gKiAgIC0gYG92ZXJyaWRlc2A6IHBlci11c2VyIG92ZXJyaWRlcyAoa2V5ID0gZmVhdHVyZSBmbGFnLCB2YWx1ZSA9IGVuYWJsZWQpXG4gKiAgIC0gYGlzU3VwZXJBZG1pbmA6IHdoZXRoZXIgdGhlIHVzZXIgaGFzIHRoZSBnbG9iYWwgc3VwZXItYWRtaW4gZmxhZ1xuICogICAtIGBhY2NvdW50RmVhdHVyZXNgOiBhY2NvdW50LWxldmVsIGVudGl0bGVtZW50cyAoZS5nLiBwdXJjaGFzZWQgYWRkLW9uXG4gKiAgICAgYnVuZGxlcykuIEEgTkFNRUQgZmllbGQgc28gaXQgY2FuIG5ldmVyIGJlIHNpbGVudGx5IGRyb3BwZWQgYnkgYSBjYWxsZXJcbiAqICAgICB0aGF0IG9taXRzIGEgdHJhaWxpbmcgcG9zaXRpb25hbCBhcmcuXG4gKiBAcmV0dXJucyBTb3J0ZWQgYXJyYXkgb2YgZW5hYmxlZCBmZWF0dXJlIGZsYWdzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVXNlckZlYXR1cmVzKFxuICB0aWVyOiBRdW90YVRpZXIsXG4gIG9wdHM/OiB7XG4gICAgb3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfCBudWxsO1xuICAgIGlzU3VwZXJBZG1pbj86IGJvb2xlYW47XG4gICAgYWNjb3VudEZlYXR1cmVzPzogcmVhZG9ubHkgc3RyaW5nW10gfCBudWxsO1xuICB9LFxuKTogRmVhdHVyZUZsYWdbXSB7XG4gIGNvbnN0IHsgb3ZlcnJpZGVzOiBmZWF0dXJlT3ZlcnJpZGVzLCBpc1N1cGVyQWRtaW4sIGFjY291bnRGZWF0dXJlcyB9ID0gb3B0cyA/PyB7fTtcblxuICAvLyBTeXNhZG1pbnMgZ2V0IGV2ZXJ5dGhpbmcgcmVnYXJkbGVzcyBvZiB0aWVyLlxuICBpZiAoaXNTdXBlckFkbWluKSByZXR1cm4gWy4uLkFMTF9GRUFUVVJFX0ZMQUdTXTtcblxuICAvLyBTdGFydCB3aXRoIHRpZXIgZGVmYXVsdHNcbiAgY29uc3QgZmVhdHVyZXMgPSBuZXcgU2V0PEZlYXR1cmVGbGFnPihUSUVSX0ZFQVRVUkVTW3RpZXJdID8/IFtdKTtcblxuICAvLyBBY2NvdW50LWxldmVsIGVudGl0bGVtZW50cyAocHVyY2hhc2VkIGZlYXR1cmUgYnVuZGxlcyDigJQgZS5nLiBhdWRpdF9sb2csIHNzbyxcbiAgLy8gYWR2YW5jZWRfcmVwb3J0aW5nLCB0ZWFtX3VzYWdlX2FuYWx5dGljcywgY29tcGxpYW5jZV9zdGFuZGFyZC9hZHZhbmNlZCkuXG4gIC8vIEFwcGxpZWQgYmVmb3JlIHBlci11c2VyIG92ZXJyaWRlcyBzbyBhbiBleHBsaWNpdCB1c2VyIG92ZXJyaWRlIHN0aWxsIHdpbnMuXG4gIGlmIChhY2NvdW50RmVhdHVyZXMpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBhY2NvdW50RmVhdHVyZXMpIHtcbiAgICAgIGlmIChpc1ZhbGlkRmVhdHVyZUZsYWcoa2V5KSkgZmVhdHVyZXMuYWRkKGtleSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQXBwbHkgcGVyLXVzZXIgb3ZlcnJpZGVzXG4gIGlmIChmZWF0dXJlT3ZlcnJpZGVzKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCBlbmFibGVkXSBvZiBPYmplY3QuZW50cmllcyhmZWF0dXJlT3ZlcnJpZGVzKSkge1xuICAgICAgaWYgKCFpc1ZhbGlkRmVhdHVyZUZsYWcoa2V5KSkgY29udGludWU7XG4gICAgICBpZiAoZW5hYmxlZCkge1xuICAgICAgICBmZWF0dXJlcy5hZGQoa2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZlYXR1cmVzLmRlbGV0ZShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybiBpbiBjYW5vbmljYWwgb3JkZXJcbiAgcmV0dXJuIEFMTF9GRUFUVVJFX0ZMQUdTLmZpbHRlcihmID0+IGZlYXR1cmVzLmhhcyhmKSk7XG59XG5cbi8qKlxuICogQ3VyYXRlZCBjb21wbGlhbmNlIGNvbnRlbnQgc2V0cyBhbmQgdGhlIGZlYXR1cmUgZmxhZyBlYWNoIG9uZSBpcyBzb2xkIHVuZGVyLlxuICogQSBzZXQgYHhgIGlzIHRoZSBwdWJsaXNoZWQgcnVsZXMgdGFnZ2VkIGBzZXQ6PHg+YDsgYW4gb3JnIGhvbGRpbmcgdGhlIGZsYWcgaXNcbiAqIGVudGl0bGVkIHRvIHRoZW0uIE9yZGVyZWQgZnJvbSB0aGUgbG93ZXN0IGVudGl0bGVtZW50IHRvIHRoZSBoaWdoZXN0LlxuICovXG5leHBvcnQgY29uc3QgQ09NUExJQU5DRV9TRVRfRkVBVFVSRVMgPSB7XG4gIHN0YW5kYXJkOiAnY29tcGxpYW5jZV9zdGFuZGFyZCcsXG4gIGFkdmFuY2VkOiAnY29tcGxpYW5jZV9hZHZhbmNlZCcsXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBGZWF0dXJlRmxhZz47XG5cbmV4cG9ydCB0eXBlIENvbXBsaWFuY2VDb250ZW50U2V0ID0ga2V5b2YgdHlwZW9mIENPTVBMSUFOQ0VfU0VUX0ZFQVRVUkVTO1xuXG4vKiogRXZlcnkgY3VyYXRlZCBzZXQgbmFtZSwgbG93ZXN0IGVudGl0bGVtZW50IGZpcnN0LiAqL1xuZXhwb3J0IGNvbnN0IENPTVBMSUFOQ0VfQ09OVEVOVF9TRVRTID0gT2JqZWN0LmtleXMoQ09NUExJQU5DRV9TRVRfRkVBVFVSRVMpIGFzIENvbXBsaWFuY2VDb250ZW50U2V0W107XG5cbi8qKiBUaGUgY3VyYXRlZCBzZXRzIGFuIGVmZmVjdGl2ZSBmZWF0dXJlIHNldCBlbnRpdGxlcyAoc3RhYmxlIG9yZGVyKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wbGlhbmNlU2V0c0ZvckZlYXR1cmVzKGZlYXR1cmVzOiByZWFkb25seSBzdHJpbmdbXSk6IENvbXBsaWFuY2VDb250ZW50U2V0W10ge1xuICByZXR1cm4gQ09NUExJQU5DRV9DT05URU5UX1NFVFMuZmlsdGVyKChzZXQpID0+IGZlYXR1cmVzLmluY2x1ZGVzKENPTVBMSUFOQ0VfU0VUX0ZFQVRVUkVTW3NldF0pKTtcbn1cblxuLyoqXG4gKiBUaGUgZmVhdHVyZSBhIHB1Ymxpc2hlZCBydWxlJ3MgYHNldDo8eD5gIHRhZ3MgcmVxdWlyZSwgb3IgYG51bGxgIGZvciBhblxuICogdW50YWdnZWQgKGJhc2VsaW5lKSBydWxlLiBUaGUgaGlnaGVzdCBlbnRpdGxlbWVudCB3aW5zIHdoZW4gYSBydWxlIGNhcnJpZXNcbiAqIHNldmVyYWwuIEFjY2VwdHMgYSByYXcganNvbmIgYHRhZ3NgIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGxpYW5jZUZlYXR1cmVGb3JUYWdzKHRhZ3M6IHVua25vd24pOiBGZWF0dXJlRmxhZyB8IG51bGwge1xuICBjb25zdCB0ID0gQXJyYXkuaXNBcnJheSh0YWdzKSA/IHRhZ3MgOiBbXTtcbiAgZm9yIChjb25zdCBzZXQgb2YgWy4uLkNPTVBMSUFOQ0VfQ09OVEVOVF9TRVRTXS5yZXZlcnNlKCkpIHtcbiAgICBpZiAodC5pbmNsdWRlcyhgc2V0OiR7c2V0fWApKSByZXR1cm4gQ09NUExJQU5DRV9TRVRfRkVBVFVSRVNbc2V0XTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFncy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2ZlYXR1cmUtZmxhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQTZEdEMsZ0VBQWdFO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUEyQjtJQUN2RCxlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLHFCQUFxQjtJQUNyQixLQUFLO0lBQ0wsb0JBQW9CO0lBQ3BCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixpQkFBaUI7Q0FDbEIsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBMkI7SUFDM0Qsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixpQkFBaUI7Q0FDbEIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXFDO0lBQ3hFLGdCQUFnQixFQUFFLGlCQUFpQjtJQUNuQyxnQkFBZ0IsRUFBRSxtQkFBbUI7SUFDckMsZUFBZSxFQUFFLGtCQUFrQjtDQUNwQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBMkIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRWxGOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLFNBQWlCLEVBQ2pCLEtBQW9CO0lBRXBCLElBQUksU0FBUyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSTtRQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNoRyxJQUFLLHNCQUE0QyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBQ0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2hELENBQUM7QUFFRCxxREFBcUQ7QUFDckQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWE7SUFDOUMsT0FBUSxpQkFBdUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELDBCQUEwQjtBQUUxQixpREFBaUQ7QUFDakQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUE4QztJQUN0RSx5RUFBeUU7SUFDekUsNEVBQTRFO0lBQzVFLDhFQUE4RTtJQUM5RSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDNUIsR0FBRyxFQUFFLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDO0lBQ3pDLGlGQUFpRjtJQUNqRixnRkFBZ0Y7SUFDaEYsOERBQThEO0lBQzlELGlEQUFpRDtJQUNqRCwyRUFBMkU7SUFDM0UsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxvQkFBb0IsQ0FBQztJQUN2RSw0RUFBNEU7SUFDNUUsK0VBQStFO0lBQy9FLDhFQUE4RTtJQUM5RSw0RUFBNEU7SUFDNUUsMkJBQTJCO0lBQzNCLFFBQVEsRUFBRSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUM7SUFDakcsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRix5RUFBeUU7SUFDekUsMkVBQTJFO0lBQzNFLDBFQUEwRTtJQUMxRSwwRUFBMEU7SUFDMUUsOEVBQThFO0lBQzlFLDZFQUE2RTtJQUM3RSwyRUFBMkU7SUFDM0UseURBQXlEO0lBQ3pELEVBQUU7SUFDRixpRkFBaUY7SUFDakYsVUFBVSxFQUFFO1FBQ1YsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsS0FBSztRQUNMLG9CQUFvQjtRQUNwQixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIsb0JBQW9CO0tBQ3JCO0lBQ0QsK0VBQStFO0lBQy9FLCtFQUErRTtJQUMvRSwwRUFBMEU7SUFDMUUsU0FBUyxFQUFFLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztDQUNsQyxDQUFDO0FBRUYsaUNBQWlDO0FBRWpDLHFEQUFxRDtBQUNyRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBZ0U7SUFDM0YsYUFBYSxFQUFFO1FBQ2IsS0FBSyxFQUFFLGVBQWU7UUFDdEIsV0FBVyxFQUFFLDJDQUEyQztLQUN6RDtJQUNELGVBQWUsRUFBRTtRQUNmLEtBQUssRUFBRSxpQkFBaUI7UUFDeEIsV0FBVyxFQUFFLDREQUE0RDtLQUMxRTtJQUNELG1CQUFtQixFQUFFO1FBQ25CLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsV0FBVyxFQUFFLDJEQUEyRDtLQUN6RTtJQUNELEdBQUcsRUFBRTtRQUNILEtBQUssRUFBRSxXQUFXO1FBQ2xCLFdBQVcsRUFBRSw4REFBOEQ7S0FDNUU7SUFDRCxrQkFBa0IsRUFBRTtRQUNsQixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFdBQVcsRUFBRSxvQ0FBb0M7S0FDbEQ7SUFDRCxvQkFBb0IsRUFBRTtRQUNwQixLQUFLLEVBQUUsc0JBQXNCO1FBQzdCLFdBQVcsRUFBRSx3REFBd0Q7S0FDdEU7SUFDRCxtQkFBbUIsRUFBRTtRQUNuQixLQUFLLEVBQUUscUJBQXFCO1FBQzVCLFdBQVcsRUFBRSxxREFBcUQ7S0FDbkU7SUFDRCxtQkFBbUIsRUFBRTtRQUNuQixLQUFLLEVBQUUscUJBQXFCO1FBQzVCLFdBQVcsRUFBRSwrREFBK0Q7S0FDN0U7SUFDRCxtQkFBbUIsRUFBRTtRQUNuQixLQUFLLEVBQUUscUJBQXFCO1FBQzVCLFdBQVcsRUFBRSx5R0FBeUc7S0FDdkg7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixLQUFLLEVBQUUsa0JBQWtCO1FBQ3pCLFdBQVcsRUFBRSw4Q0FBOEMsd0JBQXdCLENBQUMsZ0JBQWdCLGtCQUFrQjtLQUN2SDtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsV0FBVyxFQUFFLDhDQUE4Qyx3QkFBd0IsQ0FBQyxnQkFBZ0Isa0JBQWtCO0tBQ3ZIO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixXQUFXLEVBQUUsOENBQThDLHdCQUF3QixDQUFDLGVBQWUsbUVBQW1FO0tBQ3ZLO0lBQ0Qsa0JBQWtCLEVBQUU7UUFDbEIsS0FBSyxFQUFFLGdDQUFnQztRQUN2QyxXQUFXLEVBQUUsZ0dBQWdHO0tBQzlHO0NBQ0YsQ0FBQztBQUVGLG1CQUFtQjtBQUVuQjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsSUFBZSxFQUNmLElBSUM7SUFFRCxNQUFNLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBRWxGLCtDQUErQztJQUMvQyxJQUFJLFlBQVk7UUFBRSxPQUFPLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWhELDJCQUEyQjtJQUMzQixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBYyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFakUsK0VBQStFO0lBQy9FLDJFQUEyRTtJQUMzRSw2RUFBNkU7SUFDN0UsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQixLQUFLLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2xDLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDO2dCQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDO2dCQUFFLFNBQVM7WUFDdkMsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixPQUFPLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ3JDLFFBQVEsRUFBRSxxQkFBcUI7SUFDL0IsUUFBUSxFQUFFLHFCQUFxQjtDQUNlLENBQUM7QUFJakQsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQTJCLENBQUM7QUFFdEcseUVBQXlFO0FBQ3pFLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxRQUEyQjtJQUNuRSxPQUFPLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEcsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsSUFBYTtJQUNwRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMxQyxLQUFLLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFBRSxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBRdW90YVRpZXIgfSBmcm9tICcuL3F1b3RhLXRpZXJzLmpzJztcblxuLy8gRmVhdHVyZSBmbGFnIGlkZW50aWZpZXJzXG5cbi8qKlxuICogU3VwcG9ydCBsZXZlbCwgb25lIHBlciByZXNwb25zZS10aW1lIHJ1bmcuIFNvbGQgT05MWSBhcyBwZXItY29udGFjdCBhZGQtb25cbiAqIGJ1bmRsZXMgYW5kIGluY2x1ZGVkIGluIE5PIHRpZXIg4oCUIG5vdCBldmVuIGVudGVycHJpc2UsIHdoaWNoIGlzIHdoeVxuICogYFRJRVJfRkVBVFVSRVNgIGNhbm5vdCBzaW1wbHkgc3ByZWFkIGBBTExfRkVBVFVSRV9GTEFHU2AgZm9yIGl0IGFueSBtb3JlLlxuICogVGhlc2UgUkVQTEFDRSB0aGUgZm9ybWVyIGBwcmlvcml0eV9zdXBwb3J0YCB0aWVyIHBlcmssIHdoaWNoIG1hcmtldGVkIFwiZmFzdGVyXG4gKiByZXNwb25zZSB0aW1lc1wiIHdoaWxlIG5vIHN1cHBvcnQgcHJvZHVjdCBleGlzdGVkIHRvIGJlIGZhc3Rlci4gTXV0dWFsbHlcbiAqIGV4Y2x1c2l2ZTogYW4gYWNjb3VudCBob2xkcyBhdCBtb3N0IG9uZSAoZW5mb3JjZWQgaW4gYGVmZmVjdGl2ZUVudGl0bGVtZW50c2ApLlxuICpcbiAqIEl0cyBvd24gdHlwZSwgYW5kIHNwZWxsZWQgT05DRSDigJQgYEZlYXR1cmVGbGFnYCBpbmNsdWRlcyBpdCByYXRoZXIgdGhhbiBsaXN0aW5nXG4gKiB0aGUgdGhyZWUgbmFtZXMgYWdhaW4uIEEgc3VyZmFjZSB0aGF0IG11c3QgbmFtZSBFVkVSWSBsZXZlbCBrZXlzIGFcbiAqIGBSZWNvcmQ8U3VwcG9ydEZlYXR1cmVGbGFnLCDigKY+YCBvZmYgaXQgKHRoZSBmcm9udGVuZCdzIGxldmVsIGxhYmVscyB3ZXJlIGFcbiAqIGBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+YCB0aGF0IGhhcHBlbmVkIHRvIGNhcnJ5IHRocmVlIGVudHJpZXMsIHNvIGEgZm91cnRoXG4gKiBsZXZlbCB3b3VsZCBoYXZlIHJlbmRlcmVkIGFzIHRoZSByYXcgZmxhZyBpZCksIHdoaWxlIHRoZSBsYWRkZXIgbGlzdCBiZWxvd1xuICogc3RheXMgYEZlYXR1cmVGbGFnW11gIHNvIGl0IGNhbiBiZSB0ZXN0ZWQgYWdhaW5zdCB0aGUgZnVsbCBjYXRhbG9nLlxuICovXG5leHBvcnQgdHlwZSBTdXBwb3J0RmVhdHVyZUZsYWcgPSAnc3VwcG9ydF9zdGFuZGFyZCcgfCAnc3VwcG9ydF9wcmlvcml0eScgfCAnc3VwcG9ydF9wcmVtaXVtJztcblxuLyoqIENhbm9uaWNhbCBmZWF0dXJlIGZsYWcgaWRlbnRpZmllcnMuICovXG5leHBvcnQgdHlwZSBGZWF0dXJlRmxhZyA9XG4gIC8vIGBjdXN0b21faW50ZWdyYXRpb25zYCBpcyBhbiBFTlRFUlBSSVNFLUVYQ0xVU0lWRSBtYXJrZXRpbmcvZW50aXRsZW1lbnQgZmxhZzpcbiAgLy8gZ3JhbnRlZCBvbmx5IGJ5IHRoZSBlbnRlcnByaXNlIHRpZXIgKG5vIGFkZC1vbiBidW5kbGUgc2VsbHMgaXQgdG8gYSBsb3dlclxuICAvLyB0aWVyIOKAlCBpbnRlbnRpb25hbCwgaXQgYW5jaG9ycyB0aGUgRW50ZXJwcmlzZSBwbGFuKSBhbmQgbm90IGN1cnJlbnRseVxuICAvLyBgcmVxdWlyZUZlYXR1cmVgLWdhdGVkIG9uIGFueSByb3V0ZS4gVGhpcyBpcyBieSBkZXNpZ24sIG5vdCBkZWFkIGNvZGUg4oCUIGRvXG4gIC8vIG5vdCBcImZpeFwiIGJ5IHdpcmluZyBhIGJ1bmRsZSB3aXRob3V0IGEgcHJpY2luZyBkZWNpc2lvbi4gQ29udHJhc3RcbiAgLy8gYHNzb2AvYGFkdmFuY2VkX3JlcG9ydGluZ2AsIHdoaWNoIEFSRSBzb2xkIGFzIGFkZC1vbiBidW5kbGVzIGFuZCBnYXRlZCAoc2VlXG4gIC8vIGJpbGxpbmctY29uZmlnIGBsb2FkQnVuZGxlc2AgKyBgcmVxdWlyZUZlYXR1cmVgKS5cbiAgfCAnY3VzdG9tX2ludGVncmF0aW9ucydcbiAgfCBTdXBwb3J0RmVhdHVyZUZsYWdcbiAgfCAnYWlfZ2VuZXJhdGlvbidcbiAgfCAnYnVsa19vcGVyYXRpb25zJ1xuICB8ICdzc28nXG4gIC8vIERPUkEgLyBhZHZhbmNlZCBkZWxpdmVyeSBhbmFseXRpY3MgKHBhaWQgdGllcnMgb25seSkuXG4gIHwgJ2FkdmFuY2VkX3JlcG9ydGluZydcbiAgLy8gUGVyLXRlYW0gdXNhZ2UgYnJlYWtkb3duIGFjcm9zcyB0aGUgb3Jn4oaSdGVhbSBzdWJ0cmVlLiBJTkNMVURFRCBpbiBFbnRlcnByaXNlO1xuICAvLyBzb2xkIGFzIGFuIGFkZC1vbiBidW5kbGUgdG8gUHJvL1RlYW0gKHNlZSBiaWxsaW5nLWNvbmZpZyBgdGVhbV91c2FnZV9hbmFseXRpY3NgKS5cbiAgfCAndGVhbV91c2FnZV9hbmFseXRpY3MnXG4gIC8vIEN1cmF0ZWQgY29tcGxpYW5jZSBydWxlIGxpYnJhcmllcyBzb2xkIGFzIGFkZC1vbiBidW5kbGVzLiBgY29tcGxpYW5jZV9zdGFuZGFyZGBcbiAgLy8gPSBDSS9DRCBiZXN0LXByYWN0aWNlIHNldDsgYGNvbXBsaWFuY2VfYWR2YW5jZWRgID0gU09DMi9QQ0kvQ0lTIGZyYW1ld29ya1xuICAvLyBsaWJyYXJpZXMgKHJlcXVpcmVzIFN0YW5kYXJkKS4gVGhlc2UgZ2F0ZSBTVUJTQ1JJQklORyB0byB0aGUgc2V0J3Mgc3lzdGVtLW9yZ1xuICAvLyBwdWJsaXNoZWQgcnVsZXM7IElOQ0xVREVEIGluIEVudGVycHJpc2UvVW5saW1pdGVkICh2aWEgQUxMX0ZFQVRVUkVfRkxBR1MpLFxuICAvLyBzb2xkIHRvIERldmVsb3Blci9Qcm8vVGVhbSAoc2VlIGJpbGxpbmctY29uZmlnIGBjb21wbGlhbmNlX3N0YW5kYXJkL2FkdmFuY2VkYCkuXG4gIHwgJ2NvbXBsaWFuY2Vfc3RhbmRhcmQnXG4gIHwgJ2NvbXBsaWFuY2VfYWR2YW5jZWQnXG4gIC8vIFNjaGVkdWxlZCwgbWFuYWdlci1mYWNpbmcgcmVwb3J0czogc2F2ZWQgZGVmaW5pdGlvbnMsIGZyb3plbiBzbmFwc2hvdHMsXG4gIC8vIHJldmlldy1hbmQtcHVibGlzaCwgUERGL2VtYWlsIGRlbGl2ZXJ5IGFuZCBzaGFyZSBsaW5rcy4gSU5DTFVERUQgaW5cbiAgLy8gRW50ZXJwcmlzZS9VbmxpbWl0ZWQ7IHNvbGQgYXMgYW4gYWRkLW9uIGJ1bmRsZSB0byBQcm8vVGVhbSAoc2VlXG4gIC8vIGJpbGxpbmctY29uZmlnIGBzdGFrZWhvbGRlcl9yZXBvcnRzYCkuIE9uLWRlbWFuZCBkYXNoYm9hcmRzIHN0YXkgRlJFRSB1bmRlclxuICAvLyBgcmVwb3J0czpyZWFkYCDigJQgdGhpcyBnYXRlcyBzYXZpbmcsIHNjaGVkdWxpbmcgYW5kIHB1Ymxpc2hpbmcsIG5vdCBsb29raW5nLlxuICB8ICdzdGFrZWhvbGRlcl9yZXBvcnRzJ1xuICAvLyBQbHVnaW4gZWNvc3lzdGVtOiB0aGUgb3JnJ3MgcHVibGlzaGVyIGlzIEVMSUdJQkxFIHRvIGFwcGx5IGZvciBWZXJpZmllZFxuICAvLyBzdGF0dXMgKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiBFbGlnaWJpbGl0eSBvbmx5IOKAlCB0aGUgYmFkZ2VcbiAgLy8gaXMgYXdhcmRlZCAoYW5kIHdpdGhkcmF3bikgYnkgc3lzdGVtLW9yZyByZXZpZXcsIG5ldmVyIGJvdWdodC4gVGVhbSBhbmQgdXA7XG4gIC8vIG5vIGFkZC1vbiBidW5kbGUgc2VsbHMgaXQuXG4gIHwgJ3ZlcmlmaWVkX3B1Ymxpc2hlcic7XG5cbi8qKiBBbGwgdmFsaWQgZmVhdHVyZSBmbGFncyAob3JkZXIgZGV0ZXJtaW5lcyBkaXNwbGF5IG9yZGVyKS4gKi9cbmV4cG9ydCBjb25zdCBBTExfRkVBVFVSRV9GTEFHUzogcmVhZG9ubHkgRmVhdHVyZUZsYWdbXSA9IFtcbiAgJ2FpX2dlbmVyYXRpb24nLFxuICAnYnVsa19vcGVyYXRpb25zJyxcbiAgJ2N1c3RvbV9pbnRlZ3JhdGlvbnMnLFxuICAnc3NvJyxcbiAgJ2FkdmFuY2VkX3JlcG9ydGluZycsXG4gICd0ZWFtX3VzYWdlX2FuYWx5dGljcycsXG4gICdjb21wbGlhbmNlX3N0YW5kYXJkJyxcbiAgJ2NvbXBsaWFuY2VfYWR2YW5jZWQnLFxuICAnc3Rha2Vob2xkZXJfcmVwb3J0cycsXG4gICd2ZXJpZmllZF9wdWJsaXNoZXInLFxuICAnc3VwcG9ydF9zdGFuZGFyZCcsXG4gICdzdXBwb3J0X3ByaW9yaXR5JyxcbiAgJ3N1cHBvcnRfcHJlbWl1bScsXG5dO1xuXG4vKipcbiAqIFRoZSBzdXBwb3J0LWxldmVsIGZsYWdzLCB3aGljaCBhcmUgYWRkLW9uLU9OTFkgYXQgZXZlcnkgdGllci5cbiAqXG4gKiBOZWVkZWQgYXMgaXRzIG93biBsaXN0IGJlY2F1c2UgYFRJRVJfRkVBVFVSRVMuZW50ZXJwcmlzZWAgc3ByZWFkc1xuICogYEFMTF9GRUFUVVJFX0ZMQUdTYDogd2l0aG91dCBleGNsdWRpbmcgdGhlc2UsIGFkZGluZyBhIHN1cHBvcnQgZmxhZyB3b3VsZFxuICogc2lsZW50bHkgZ3JhbnQgZW50ZXJwcmlzZSB0aGUgc3VwcG9ydCBwcm9kdWN0IGl0IGlzIHN1cHBvc2VkIHRvIGJ1eSwgd2hpY2ggaXNcbiAqIGV4YWN0bHkgdGhlIFwiaW5jbHVkZWQgaW4gbm8gdGllclwiIGRlY2lzaW9uIGl0IHdvdWxkIGJyZWFrLlxuICovXG5leHBvcnQgY29uc3QgU1VQUE9SVF9GRUFUVVJFX0ZMQUdTOiByZWFkb25seSBGZWF0dXJlRmxhZ1tdID0gW1xuICAnc3VwcG9ydF9zdGFuZGFyZCcsXG4gICdzdXBwb3J0X3ByaW9yaXR5JyxcbiAgJ3N1cHBvcnRfcHJlbWl1bScsXG5dO1xuXG4vKipcbiAqIFRoZSBGSVJTVC1SRVNQT05TRSBUQVJHRVQgc29sZCBhdCBlYWNoIHN1cHBvcnQgbGV2ZWwg4oCUIHRoZSBjYW5vbmljYWwgd29yZGluZy5cbiAqXG4gKiBPbmUgcGxhY2UsIGJlY2F1c2UgdGhpcyBzdHJpbmcgaXMgYSBjb21taXRtZW50OiBpdCBpcyBzaG93biBvbiB0aGUgY2FzZSwgaW5cbiAqIHRoZSBhZGQtb24gY2F0YWxvZywgb24gdGhlIHByaWNpbmcgcGFnZSBhbmQgaW4gdGhlIGFsZXJ0IHRoYXQgZmlyZXMgd2hlbiB0aGVcbiAqIGRlc2sgbWlzc2VzIGl0LCBhbmQgdGhvc2UgZm91ciBtdXN0IG5ldmVyIGRpc2FncmVlLiBBIGxldmVsIGFic2VudCBmcm9tIHRoaXNcbiAqIG1hcCBoYXMgbm8gc3RhdGVkIHRhcmdldCBhbmQgY2FsbGVycyBtdXN0IG9taXQgdGhlIHBocmFzZSByYXRoZXIgdGhhbiBib3Jyb3dcbiAqIGFub3RoZXIgbGV2ZWwncyBwcm9taXNlLlxuICpcbiAqIFdIWSBUSEVTRSBVTklUUy4gQW4gZWFybGllciBsYWRkZXIgcmVhZCBcIjQ4IGJ1c2luZXNzIGhvdXJzIC8gMjQgYnVzaW5lc3NcbiAqIGhvdXJzIC8gbm8gc3RhdGVkIG51bWJlclwiLCB3aGljaCB3YXMgd3JvbmcgdHdpY2Ugb3Zlci4gVGhlIGJ1c2luZXNzLWhvdXJzXG4gKiB1bml0IGZsYXR0ZXJlZCB0aGUgdGFyZ2V0cyBieSByb3VnaGx5IHRocmVlIHRpbWVzIOKAlCA0OCBidXNpbmVzcyBob3VycyBpcyBzaXhcbiAqIHdvcmtpbmcgZGF5cywgc28gYSBjYXNlIHJhaXNlZCBvbiBhIEZyaWRheSBldmVuaW5nIGhhZCBpdHMgdGFyZ2V0IGV4cGlyZSB0aGVcbiAqICpmb2xsb3dpbmcgTW9uZGF5KiDigJQgYW5kIHRoZSB0b3AgbGV2ZWwsIHRoZSBvbmUgdGhhdCBjb3N0cyB0aGUgbW9zdCwgd2FzIHRoZVxuICogb25seSBvbmUgd2l0aCBubyBudW1iZXIgYXQgYWxsLCBzbyB0aGUgbGFkZGVyIHdlbnQgYmxhbmsgb24gdGhlIHNpbmdsZSBheGlzIGFcbiAqIGJ1eWVyIGNvbXBhcmVzLiBUaGUgdGFyZ2V0cyBiZWxvdyBhcmUgc3RhdGVkIGluIHVuaXRzIHRoZSBjdXN0b21lciBhY3R1YWxseVxuICogZXhwZXJpZW5jZXMgYW5kIGltcHJvdmUgbW9ub3RvbmljYWxseSBvbiBvbmUgY2xvY2s6IHR3byBidXNpbmVzcyBkYXlzLCB0aGVuXG4gKiBvbmUsIHRoZW4gZWlnaHQgaG91cnMgb24gYSBjbG9jayB0aGF0IGRvZXMgbm90IHN0b3AgZm9yIG5pZ2h0cyBvciB3ZWVrZW5kcy5cbiAqXG4gKiBQcmVtaXVtJ3MgXCJhbnkgZGF5XCIgaXMgdGhlIHdob2xlIG9mIGl0cyAyNMOXNyBjb3ZlcmFnZSBjbGFpbSwgYW5kIGl0IGlzXG4gKiBkZWxpYmVyYXRlbHkgTk9UIGEgc2V2ZXJpdHktZGVwZW5kZW50IG9uZS1ob3VyIHByb21pc2UuIEVpZ2h0IGhvdXJzIGlzIHdoYXQgYVxuICogcm90YSBjYW4gYmUgaGVsZCB0bzogaXQgbGVhdmVzIHJvb20gZm9yIHRoZSBwZXItY2FzZSBzd2VlcCB0byBwYWdlIHR3byBob3Vyc1xuICogYWhlYWQgb2YgdGhlIGRlYWRsaW5lIChzZWUgZG9jcy9vbmNhbGwtcGFnaW5nLm1kKSBhbmQgZm9yIGEgd29rZW4gaHVtYW4gdG9cbiAqIHJlYWQgdGhlIGNhc2UgYW5kIGFuc3dlciBpdC4gQW4gaG91ci1zY2FsZSBjb21taXRtZW50IHdvdWxkIHNwZW5kIHRoYXQgbWFyZ2luXG4gKiBiZWZvcmUgYW55b25lIHBpY2tlZCB1cCB0aGUgcGhvbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBTVVBQT1JUX1JFU1BPTlNFX1RBUkdFVFM6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBzdXBwb3J0X3N0YW5kYXJkOiAnMiBidXNpbmVzcyBkYXlzJyxcbiAgc3VwcG9ydF9wcmlvcml0eTogJ25leHQgYnVzaW5lc3MgZGF5JyxcbiAgc3VwcG9ydF9wcmVtaXVtOiAnOCBob3VycywgYW55IGRheScsXG59O1xuXG4vKipcbiAqIFN1cHBvcnQgbGV2ZWxzIHdob3NlIGNvbnRhY3RzIG1heSBkZWNsYXJlIGB1cmdlbnRgIHNldmVyaXR5IHdoZW4gb3BlbmluZy5cbiAqXG4gKiBQcmVtaXVtIG9ubHksIGFuZCB0aGlzIGlzIGEgUFJJQ0lORyBkZWNpc2lvbiByYXRoZXIgdGhhbiBhIHBlcm1pc3Npb24gZGV0YWlsLlxuICogVGhlIHRlbmFudCBjaG9vc2VzIHNldmVyaXR5IGF0IG9wZW4gYW5kIHNldmVyaXR5IGRlY2lkZXMgd2hpY2ggdGFyZ2V0IGFwcGxpZXMsXG4gKiBzbyBhIGxldmVsIHRoYXQgY2FuIGRlY2xhcmUgYHVyZ2VudGAgaXMgYSBsZXZlbCB0aGF0IGNhbiBoZWxwIGl0c2VsZiB0byB0aGVcbiAqIGZhc3Rlc3QgcmVzcG9uc2Ugb24gb2ZmZXIuIEFkbWl0dGluZyBpdCBvbmx5IGF0IHByZW1pdW0gaXMgd2hhdCBtYWtlcyB0aGUgdG9wXG4gKiBydW5nIGEgY2FwYWJpbGl0eSDigJQgXCJ5b3UgY2FuIGRlY2xhcmUgYW4gZW1lcmdlbmN5XCIg4oCUIGluc3RlYWQgb2Ygbm90aGluZyBidXQgYVxuICogZmFzdGVyIGNsb2NrLCB3aGljaCBpcyB0aGUgd2hvbGUgcmVhc29uIHRoZSBwcmlvcml0eS10by1wcmVtaXVtIHN0ZXAgaXMgd29ydGhcbiAqIGl0cyBwcmljZS5cbiAqXG4gKiBTdGFmZiByZS1yYW5raW5nIChgc3VwcG9ydC5jYXNlLnNldmVyaXR5YCwgc3lzdGVtLWFkbWluIG9ubHkpIHN0YXlzIHRoZSBlc2NhcGVcbiAqIGhhdGNoOiBhIGdlbnVpbmUgZW1lcmdlbmN5IHJhaXNlZCBvbiBhIGxvd2VyIGxldmVsIGlzIE9VUlMgdG8gcHJvbW90ZSwgd2hpY2hcbiAqIGlzIHRoZSBzYW1lIGdvdmVybmFuY2Ugc3BsaXQgdGhhdCBrZWVwcyB0aGUgdGVuYW50IGZyb20gcmUtcmFua2luZyBhZnRlciBvcGVuLlxuICovXG5leHBvcnQgY29uc3QgVVJHRU5UX1NFVkVSSVRZX0xFVkVMUzogcmVhZG9ubHkgRmVhdHVyZUZsYWdbXSA9IFsnc3VwcG9ydF9wcmVtaXVtJ107XG5cbi8qKlxuICogVGhlIHNldmVyaXR5IGEgY2FzZSBtYXkgYWN0dWFsbHkgYmUgb3BlbmVkIGF0LlxuICpcbiAqIFJldHVybnMgdGhlIHJlcXVlc3RlZCBzZXZlcml0eSB1bmNoYW5nZWQsIG9yIHRoZSBoaWdoZXN0IG9uZSB0aGUgbGV2ZWwgYWRtaXRzLlxuICogYHVyZ2VudGAgYXNrZWQgZm9yIGJlbG93IHByZW1pdW0gYmVjb21lcyBgaGlnaGAg4oCUIGEgRE9XTkdSQURFLCBuZXZlciBhXG4gKiByZWZ1c2FsOiBkZWNsaW5pbmcgdG8gc2VuZCBhIHN1cHBvcnQgbWVzc2FnZSBiZWNhdXNlIHRoZSBzZW5kZXIgb3Zlci1zdGF0ZWRcbiAqIGl0cyBzZXZlcml0eSB3b3VsZCBkZW55IHN1cHBvcnQgb3ZlciBhIGxhYmVsLCBhbmQgdGhlIG1lc3NhZ2UgaXRzZWxmIGlzIG5ldmVyXG4gKiB0aGUgdGhpbmcgYmVpbmcgZ2F0ZWQuIFRoZSBjYWxsZXIgdGVsbHMgdGhlIHNlbmRlciBpdCBoYXBwZW5lZC5cbiAqXG4gKiBBIG51bGwgYGxldmVsYCBtZWFucyBubyBjYXNlIGlzIGJlaW5nIG9wZW5lZCAobm8gZW50aXRsZW1lbnQsIG9yIHRoZVxuICogZW50aXRsZW1lbnQgcmVhZCB3YXMgdW5hdmFpbGFibGUpLCBhbmQgdGhlbiB0aGVyZSBpcyBubyBjb21taXRtZW50IHRvIHByb3RlY3QsXG4gKiBzbyB0aGUgcmVxdWVzdGVkIHZhbHVlIHBhc3NlcyB0aHJvdWdoIHVudG91Y2hlZCByYXRoZXIgdGhhbiBiZWluZyBkZW1vdGVkIGZvclxuICogbm8gcmVhc29uIGR1cmluZyBhbiBvdXRhZ2Ugb2Ygb3Vycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkbWl0Q2FzZVNldmVyaXR5KFxuICByZXF1ZXN0ZWQ6IHN0cmluZyxcbiAgbGV2ZWw6IHN0cmluZyB8IG51bGwsXG4pOiB7IHNldmVyaXR5OiBzdHJpbmc7IGRvd25ncmFkZWQ6IGJvb2xlYW4gfSB7XG4gIGlmIChyZXF1ZXN0ZWQgIT09ICd1cmdlbnQnIHx8IGxldmVsID09PSBudWxsKSByZXR1cm4geyBzZXZlcml0eTogcmVxdWVzdGVkLCBkb3duZ3JhZGVkOiBmYWxzZSB9O1xuICBpZiAoKFVSR0VOVF9TRVZFUklUWV9MRVZFTFMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKGxldmVsKSkge1xuICAgIHJldHVybiB7IHNldmVyaXR5OiByZXF1ZXN0ZWQsIGRvd25ncmFkZWQ6IGZhbHNlIH07XG4gIH1cbiAgcmV0dXJuIHsgc2V2ZXJpdHk6ICdoaWdoJywgZG93bmdyYWRlZDogdHJ1ZSB9O1xufVxuXG4vKiogQ2hlY2sgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEZlYXR1cmVGbGFnLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRGZWF0dXJlRmxhZyh2YWx1ZTogc3RyaW5nKTogdmFsdWUgaXMgRmVhdHVyZUZsYWcge1xuICByZXR1cm4gKEFMTF9GRUFUVVJFX0ZMQUdTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyh2YWx1ZSk7XG59XG5cbi8vIFRpZXItdG8tZmVhdHVyZSBtYXBwaW5nXG5cbi8qKiBGZWF0dXJlcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGVhY2ggdGllci4gKi9cbmV4cG9ydCBjb25zdCBUSUVSX0ZFQVRVUkVTOiBSZWNvcmQ8UXVvdGFUaWVyLCByZWFkb25seSBGZWF0dXJlRmxhZ1tdPiA9IHtcbiAgLy8gRGV2ZWxvcGVyIGdldHMgYGFpX2dlbmVyYXRpb25gIGFzIGEgVFJJQUw6IHRoZSB0aWVyJ3MgMjAgYGFpQ2FsbHNgIHBlclxuICAvLyBwZXJpb2QgKFFVT1RBX1RJRVJTLmRldmVsb3BlcikgaXMgdGhlIHRyaWFsJ3MgY2FwLCBzbyB0aGUgQUkgc3VyZmFjZXMgYXJlXG4gIC8vIHVzYWJsZSDigJQgbm90IGp1c3QgcHJldmlld2VkIOKAlCBiZWZvcmUgYW4gdXBncmFkZS4gQSBCWU9LIGtleSBzcGVuZHMgbm8gc2xvdC5cbiAgZGV2ZWxvcGVyOiBbJ2FpX2dlbmVyYXRpb24nXSxcbiAgcHJvOiBbJ2FpX2dlbmVyYXRpb24nLCAnYnVsa19vcGVyYXRpb25zJ10sXG4gIC8vIFRlYW0gYWRkcyBzc28gKFNTTy9JZFAgaXMgSU5DTFVERUQgaW4gVGVhbSwgbm90IGFuIGFkZC1vbikuIGFkdmFuY2VkX3JlcG9ydGluZ1xuICAvLyAoRE9SQSkgaXMgTk9UIGEgVGVhbSB0aWVyIGZlYXR1cmUg4oCUIGl0J3MgSU5DTFVERUQgb25seSBpbiBFbnRlcnByaXNlIGFuZCBzb2xkXG4gIC8vIGFzIGFuIGFkZC1vbiBidW5kbGUgdG8gZXZlcnkgb3RoZXIgdGllciAoc2VlIGJpbGxpbmctY29uZmlnXG4gIC8vIGBhZHZhbmNlZF9yZXBvcnRpbmdgKS4gRW50ZXJwcmlzZSB1bmxvY2tzIGFsbC5cbiAgLy8gYHZlcmlmaWVkX3B1Ymxpc2hlcmAgKGVsaWdpYmlsaXR5IHRvIGFwcGx5IGZvciBWZXJpZmllZCkgc3RhcnRzIGF0IFRlYW0uXG4gIHRlYW06IFsnYWlfZ2VuZXJhdGlvbicsICdidWxrX29wZXJhdGlvbnMnLCAnc3NvJywgJ3ZlcmlmaWVkX3B1Ymxpc2hlciddLFxuICAvLyBCdXNpbmVzcyBpcyBUZWFtIHBsdXMgYWR2YW5jZWRfcmVwb3J0aW5nIChET1JBKTogdGhlIGFuYWx5dGljcyBzdXJmYWNlIGlzXG4gIC8vIHdoYXQgYSA4LXNlYXQgb3JnIGlzIHVzdWFsbHkgYnV5aW5nLCBhbmQgYnVuZGxpbmcgaXQgaXMgbW9zdCBvZiB3aHkgdGhlIHRpZXJcbiAgLy8gaXMgd29ydGggJDI0OSBvdmVyIFRlYW0gKyB0aGUgYWRkLW9uLiBFbnRlcnByaXNlIGtlZXBzIGN1c3RvbV9pbnRlZ3JhdGlvbnMsXG4gIC8vIHRlYW1fdXNhZ2VfYW5hbHl0aWNzLCB0aGUgY29tcGxpYW5jZSBsaWJyYXJpZXMgYW5kIHN0YWtlaG9sZGVyX3JlcG9ydHMgYXNcbiAgLy8gaXRzIG93biBkaWZmZXJlbnRpYXRvcnMuXG4gIGJ1c2luZXNzOiBbJ2FpX2dlbmVyYXRpb24nLCAnYnVsa19vcGVyYXRpb25zJywgJ3NzbycsICd2ZXJpZmllZF9wdWJsaXNoZXInLCAnYWR2YW5jZWRfcmVwb3J0aW5nJ10sXG4gIC8vIEVudGVycHJpc2UgaXMgYW4gRVhQTElDSVQgbGlzdCwgZGVsaWJlcmF0ZWx5IG5vdCBgWy4uLkFMTF9GRUFUVVJFX0ZMQUdTXWAuXG4gIC8vXG4gIC8vIFNwcmVhZGluZyBldmVyeSBmbGFnIGhlcmUgaXMgaG93IGEgbmV3IHBhaWQgYWRkLW9uIHNpbGVudGx5IGJlY29tZXMgYW5cbiAgLy8gRW50ZXJwcmlzZSBpbmNsdXNpb246IGFkZGluZyBgc3VwcG9ydF9wcmVtaXVtYCB0byB0aGUgY2F0YWxvZyB3b3VsZCBoYXZlXG4gIC8vIGdyYW50ZWQgZW50ZXJwcmlzZSB0aGUgMjTDlzcgc3VwcG9ydCBpdCBpcyBzdXBwb3NlZCB0byBCVVksIHdpdGggbm90aGluZ1xuICAvLyBmYWlsaW5nLiBMaXN0aW5nIHRoZSBmbGFncyBmb3JjZXMgdGhlIHF1ZXN0aW9uIFwiZG9lcyBFbnRlcnByaXNlIGluY2x1ZGVcbiAgLy8gdGhpcz9cIiB0byBiZSBhbnN3ZXJlZCBwZXIgZmxhZywgd2hpY2ggaXMgdGhlIGRlY2lzaW9uIHRoaXMgcmVjb3JkIGV4aXN0cyB0b1xuICAvLyBjYXJyeS4gQSBmaWx0ZXIgZXhwcmVzc2lvbiB3b3VsZCBkbyB0aGUgc2FtZSBqb2IgYnV0IGNhbm5vdCBiZSByZWFkIGJ5IHRoZVxuICAvLyBzb3VyY2UtcGFyc2luZyBwYXJpdHkgdGVzdHMgKGBmcm9udGVuZC90ZXN0L2ZlYXR1cmUtZ2F0ZS11cHNlbGwudGVzdC50c2BcbiAgLy8gZXh0cmFjdHMgYW4gYXJyYXkgbGl0ZXJhbCksIHNvIGFuIGV4cGxpY2l0IGxpc3QgaXQgaXMuXG4gIC8vXG4gIC8vIFN1cHBvcnQgaXMgYWJzZW50IG9uIHB1cnBvc2U6IGl0IGlzIGFuIGFkZC1vbiBhdCBFVkVSWSB0aWVyLCBpbmNsdWRlZCBpbiBub25lLlxuICBlbnRlcnByaXNlOiBbXG4gICAgJ2FpX2dlbmVyYXRpb24nLFxuICAgICdidWxrX29wZXJhdGlvbnMnLFxuICAgICdjdXN0b21faW50ZWdyYXRpb25zJyxcbiAgICAnc3NvJyxcbiAgICAnYWR2YW5jZWRfcmVwb3J0aW5nJyxcbiAgICAndGVhbV91c2FnZV9hbmFseXRpY3MnLFxuICAgICdjb21wbGlhbmNlX3N0YW5kYXJkJyxcbiAgICAnY29tcGxpYW5jZV9hZHZhbmNlZCcsXG4gICAgJ3N0YWtlaG9sZGVyX3JlcG9ydHMnLFxuICAgICd2ZXJpZmllZF9wdWJsaXNoZXInLFxuICBdLFxuICAvLyBVbmxpbWl0ZWQgaW5jbHVkZXMgZXZlcnkgZmVhdHVyZSAvIGFkZC1vbiBidW5kbGUgKGJpbGxpbmctZGlzYWJsZWQgZGVmYXVsdCkuXG4gIC8vIFN1cHBvcnQgaW5jbHVkZWQgaGVyZSBvbiBwdXJwb3NlOiBgdW5saW1pdGVkYCBpcyB0aGUgYmlsbGluZy1PRkYgdGllciwgd2hlcmVcbiAgLy8gbm90aGluZyBpcyBwdXJjaGFzYWJsZSwgYW5kIGl0cyBgc3VwcG9ydENvbnRhY3RzYCBsaW1pdCBpcyAtMSB0byBtYXRjaC5cbiAgdW5saW1pdGVkOiBbLi4uQUxMX0ZFQVRVUkVfRkxBR1NdLFxufTtcblxuLy8gRmVhdHVyZSBtZXRhZGF0YSAoZm9yIGRpc3BsYXkpXG5cbi8qKiBIdW1hbi1yZWFkYWJsZSBtZXRhZGF0YSBmb3IgZWFjaCBmZWF0dXJlIGZsYWcuICovXG5leHBvcnQgY29uc3QgRkVBVFVSRV9NRVRBREFUQTogUmVjb3JkPEZlYXR1cmVGbGFnLCB7IGxhYmVsOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmcgfT4gPSB7XG4gIGFpX2dlbmVyYXRpb246IHtcbiAgICBsYWJlbDogJ0FJIEdlbmVyYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnQUktcG93ZXJlZCBwaXBlbGluZSBhbmQgcGx1Z2luIGdlbmVyYXRpb24nLFxuICB9LFxuICBidWxrX29wZXJhdGlvbnM6IHtcbiAgICBsYWJlbDogJ0J1bGsgT3BlcmF0aW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdCYXRjaCBjcmVhdGUsIHVwZGF0ZSwgYW5kIGRlbGV0ZSBmb3IgcGlwZWxpbmVzIGFuZCBwbHVnaW5zJyxcbiAgfSxcbiAgY3VzdG9tX2ludGVncmF0aW9uczoge1xuICAgIGxhYmVsOiAnQ3VzdG9tIEludGVncmF0aW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdDb25uZWN0IHRvIGV4dGVybmFsIHNlcnZpY2VzIGFuZCBjdXN0b20gd2ViaG9vayBlbmRwb2ludHMnLFxuICB9LFxuICBzc286IHtcbiAgICBsYWJlbDogJ1NTTyAvIElkUCcsXG4gICAgZGVzY3JpcHRpb246ICdTaW5nbGUgc2lnbi1vbiBhbmQgZXh0ZXJuYWwgaWRlbnRpdHktcHJvdmlkZXIgY29uZmlndXJhdGlvbnMnLFxuICB9LFxuICBhZHZhbmNlZF9yZXBvcnRpbmc6IHtcbiAgICBsYWJlbDogJ0FkdmFuY2VkIFJlcG9ydGluZycsXG4gICAgZGVzY3JpcHRpb246ICdET1JBIC8gYWR2YW5jZWQgZGVsaXZlcnkgYW5hbHl0aWNzJyxcbiAgfSxcbiAgdGVhbV91c2FnZV9hbmFseXRpY3M6IHtcbiAgICBsYWJlbDogJ1RlYW0gVXNhZ2UgQW5hbHl0aWNzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Blci10ZWFtIHVzYWdlIGJyZWFrZG93biBhY3Jvc3MgdGhlIG9yZyDihpIgdGVhbSBzdWJ0cmVlJyxcbiAgfSxcbiAgY29tcGxpYW5jZV9zdGFuZGFyZDoge1xuICAgIGxhYmVsOiAnU3RhbmRhcmQgQ29tcGxpYW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdDdXJhdGVkIENJL0NEIGJlc3QtcHJhY3RpY2UgY29tcGxpYW5jZSBydWxlIGxpYnJhcnknLFxuICB9LFxuICBjb21wbGlhbmNlX2FkdmFuY2VkOiB7XG4gICAgbGFiZWw6ICdBZHZhbmNlZCBDb21wbGlhbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0N1cmF0ZWQgZnJhbWV3b3JrIGNvbXBsaWFuY2UgbGlicmFyaWVzIChTT0MyIC8gUENJLURTUyAvIENJUyknLFxuICB9LFxuICBzdGFrZWhvbGRlcl9yZXBvcnRzOiB7XG4gICAgbGFiZWw6ICdTdGFrZWhvbGRlciBSZXBvcnRzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1NjaGVkdWxlZCB0ZWFtIHJlcG9ydHMgZm9yIG1hbmFnZXJzIOKAlCBzbmFwc2hvdHMsIHJldmlldyBhbmQgcHVibGlzaCwgUERGL2VtYWlsIGRlbGl2ZXJ5IGFuZCBzaGFyZSBsaW5rcycsXG4gIH0sXG4gIHN1cHBvcnRfc3RhbmRhcmQ6IHtcbiAgICBsYWJlbDogJ1N0YW5kYXJkIFN1cHBvcnQnLFxuICAgIGRlc2NyaXB0aW9uOiBgU3VwcG9ydCBjYXNlcyB3aXRoIGEgZmlyc3QgcmVzcG9uc2Ugd2l0aGluICR7U1VQUE9SVF9SRVNQT05TRV9UQVJHRVRTLnN1cHBvcnRfc3RhbmRhcmR9LCBidXNpbmVzcyBob3Vyc2AsXG4gIH0sXG4gIHN1cHBvcnRfcHJpb3JpdHk6IHtcbiAgICBsYWJlbDogJ1ByaW9yaXR5IFN1cHBvcnQnLFxuICAgIGRlc2NyaXB0aW9uOiBgU3VwcG9ydCBjYXNlcyB3aXRoIGEgZmlyc3QgcmVzcG9uc2UgYnkgdGhlICR7U1VQUE9SVF9SRVNQT05TRV9UQVJHRVRTLnN1cHBvcnRfcHJpb3JpdHl9LCBidXNpbmVzcyBob3Vyc2AsXG4gIH0sXG4gIHN1cHBvcnRfcHJlbWl1bToge1xuICAgIGxhYmVsOiAnUHJlbWl1bSBTdXBwb3J0JyxcbiAgICBkZXNjcmlwdGlvbjogYDI0w5c3IHN1cHBvcnQgY2FzZXMg4oCUIGZpcnN0IHJlc3BvbnNlIHdpdGhpbiAke1NVUFBPUlRfUkVTUE9OU0VfVEFSR0VUUy5zdXBwb3J0X3ByZW1pdW19IG9mIHRoZSB3ZWVrLCBhbmQgdGhlIG9ubHkgbGV2ZWwgdGhhdCBtYXkgZGVjbGFyZSB1cmdlbnQgc2V2ZXJpdHlgLFxuICB9LFxuICB2ZXJpZmllZF9wdWJsaXNoZXI6IHtcbiAgICBsYWJlbDogJ1ZlcmlmaWVkIFB1Ymxpc2hlciBFbGlnaWJpbGl0eScsXG4gICAgZGVzY3JpcHRpb246ICdBcHBseSBmb3IgdGhlIFZlcmlmaWVkIGJhZGdlIG9uIHlvdXIgcGx1Z2luLWVjb3N5c3RlbSBwdWJsaXNoZXIgKGF3YXJkZWQgYnkgc3lzdGVtLW9yZyByZXZpZXcpJyxcbiAgfSxcbn07XG5cbi8vIFJlc29sdXRpb24gbG9naWNcblxuLyoqXG4gKiBSZXNvbHZlIGEgdXNlcidzIGVmZmVjdGl2ZSBmZWF0dXJlIHNldC5cbiAqXG4gKiAxLiBTeXNhZG1pbnMgKGlzU3VwZXJBZG1pbikgYWx3YXlzIGdldCBBTEwgZmVhdHVyZXMuXG4gKiAyLiBTdGFydCB3aXRoIHRoZSB0aWVyJ3MgZGVmYXVsdCBmZWF0dXJlcy5cbiAqIDMuIEFwcGx5IHBlci11c2VyIG92ZXJyaWRlczogYHRydWVgIGFkZHMgYSBmZWF0dXJlLCBgZmFsc2VgIHJlbW92ZXMgaXQuXG4gKiA0LiBJbnZhbGlkIG92ZXJyaWRlIGtleXMgYXJlIHNpbGVudGx5IGlnbm9yZWQuXG4gKlxuICogQHBhcmFtIHRpZXIgLSBUaGUgb3JnYW5pemF0aW9uJ3MgcXVvdGEgdGllclxuICogQHBhcmFtIG9wdHMgLSBSZXNvbHV0aW9uIG9wdGlvbnM6XG4gKiAgIC0gYG92ZXJyaWRlc2A6IHBlci11c2VyIG92ZXJyaWRlcyAoa2V5ID0gZmVhdHVyZSBmbGFnLCB2YWx1ZSA9IGVuYWJsZWQpXG4gKiAgIC0gYGlzU3VwZXJBZG1pbmA6IHdoZXRoZXIgdGhlIHVzZXIgaGFzIHRoZSBnbG9iYWwgc3VwZXItYWRtaW4gZmxhZ1xuICogICAtIGBhY2NvdW50RmVhdHVyZXNgOiBhY2NvdW50LWxldmVsIGVudGl0bGVtZW50cyAoZS5nLiBwdXJjaGFzZWQgYWRkLW9uXG4gKiAgICAgYnVuZGxlcykuIEEgTkFNRUQgZmllbGQgc28gaXQgY2FuIG5ldmVyIGJlIHNpbGVudGx5IGRyb3BwZWQgYnkgYSBjYWxsZXJcbiAqICAgICB0aGF0IG9taXRzIGEgdHJhaWxpbmcgcG9zaXRpb25hbCBhcmcuXG4gKiBAcmV0dXJucyBTb3J0ZWQgYXJyYXkgb2YgZW5hYmxlZCBmZWF0dXJlIGZsYWdzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVXNlckZlYXR1cmVzKFxuICB0aWVyOiBRdW90YVRpZXIsXG4gIG9wdHM/OiB7XG4gICAgb3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfCBudWxsO1xuICAgIGlzU3VwZXJBZG1pbj86IGJvb2xlYW47XG4gICAgYWNjb3VudEZlYXR1cmVzPzogcmVhZG9ubHkgc3RyaW5nW10gfCBudWxsO1xuICB9LFxuKTogRmVhdHVyZUZsYWdbXSB7XG4gIGNvbnN0IHsgb3ZlcnJpZGVzOiBmZWF0dXJlT3ZlcnJpZGVzLCBpc1N1cGVyQWRtaW4sIGFjY291bnRGZWF0dXJlcyB9ID0gb3B0cyA/PyB7fTtcblxuICAvLyBTeXNhZG1pbnMgZ2V0IGV2ZXJ5dGhpbmcgcmVnYXJkbGVzcyBvZiB0aWVyLlxuICBpZiAoaXNTdXBlckFkbWluKSByZXR1cm4gWy4uLkFMTF9GRUFUVVJFX0ZMQUdTXTtcblxuICAvLyBTdGFydCB3aXRoIHRpZXIgZGVmYXVsdHNcbiAgY29uc3QgZmVhdHVyZXMgPSBuZXcgU2V0PEZlYXR1cmVGbGFnPihUSUVSX0ZFQVRVUkVTW3RpZXJdID8/IFtdKTtcblxuICAvLyBBY2NvdW50LWxldmVsIGVudGl0bGVtZW50cyAocHVyY2hhc2VkIGZlYXR1cmUgYnVuZGxlcyDigJQgZS5nLiBhdWRpdF9sb2csIHNzbyxcbiAgLy8gYWR2YW5jZWRfcmVwb3J0aW5nLCB0ZWFtX3VzYWdlX2FuYWx5dGljcywgY29tcGxpYW5jZV9zdGFuZGFyZC9hZHZhbmNlZCkuXG4gIC8vIEFwcGxpZWQgYmVmb3JlIHBlci11c2VyIG92ZXJyaWRlcyBzbyBhbiBleHBsaWNpdCB1c2VyIG92ZXJyaWRlIHN0aWxsIHdpbnMuXG4gIGlmIChhY2NvdW50RmVhdHVyZXMpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBhY2NvdW50RmVhdHVyZXMpIHtcbiAgICAgIGlmIChpc1ZhbGlkRmVhdHVyZUZsYWcoa2V5KSkgZmVhdHVyZXMuYWRkKGtleSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQXBwbHkgcGVyLXVzZXIgb3ZlcnJpZGVzXG4gIGlmIChmZWF0dXJlT3ZlcnJpZGVzKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCBlbmFibGVkXSBvZiBPYmplY3QuZW50cmllcyhmZWF0dXJlT3ZlcnJpZGVzKSkge1xuICAgICAgaWYgKCFpc1ZhbGlkRmVhdHVyZUZsYWcoa2V5KSkgY29udGludWU7XG4gICAgICBpZiAoZW5hYmxlZCkge1xuICAgICAgICBmZWF0dXJlcy5hZGQoa2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZlYXR1cmVzLmRlbGV0ZShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybiBpbiBjYW5vbmljYWwgb3JkZXJcbiAgcmV0dXJuIEFMTF9GRUFUVVJFX0ZMQUdTLmZpbHRlcihmID0+IGZlYXR1cmVzLmhhcyhmKSk7XG59XG5cbi8qKlxuICogQ3VyYXRlZCBjb21wbGlhbmNlIGNvbnRlbnQgc2V0cyBhbmQgdGhlIGZlYXR1cmUgZmxhZyBlYWNoIG9uZSBpcyBzb2xkIHVuZGVyLlxuICogQSBzZXQgYHhgIGlzIHRoZSBwdWJsaXNoZWQgcnVsZXMgdGFnZ2VkIGBzZXQ6PHg+YDsgYW4gb3JnIGhvbGRpbmcgdGhlIGZsYWcgaXNcbiAqIGVudGl0bGVkIHRvIHRoZW0uIE9yZGVyZWQgZnJvbSB0aGUgbG93ZXN0IGVudGl0bGVtZW50IHRvIHRoZSBoaWdoZXN0LlxuICovXG5leHBvcnQgY29uc3QgQ09NUExJQU5DRV9TRVRfRkVBVFVSRVMgPSB7XG4gIHN0YW5kYXJkOiAnY29tcGxpYW5jZV9zdGFuZGFyZCcsXG4gIGFkdmFuY2VkOiAnY29tcGxpYW5jZV9hZHZhbmNlZCcsXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBGZWF0dXJlRmxhZz47XG5cbmV4cG9ydCB0eXBlIENvbXBsaWFuY2VDb250ZW50U2V0ID0ga2V5b2YgdHlwZW9mIENPTVBMSUFOQ0VfU0VUX0ZFQVRVUkVTO1xuXG4vKiogRXZlcnkgY3VyYXRlZCBzZXQgbmFtZSwgbG93ZXN0IGVudGl0bGVtZW50IGZpcnN0LiAqL1xuZXhwb3J0IGNvbnN0IENPTVBMSUFOQ0VfQ09OVEVOVF9TRVRTID0gT2JqZWN0LmtleXMoQ09NUExJQU5DRV9TRVRfRkVBVFVSRVMpIGFzIENvbXBsaWFuY2VDb250ZW50U2V0W107XG5cbi8qKiBUaGUgY3VyYXRlZCBzZXRzIGFuIGVmZmVjdGl2ZSBmZWF0dXJlIHNldCBlbnRpdGxlcyAoc3RhYmxlIG9yZGVyKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wbGlhbmNlU2V0c0ZvckZlYXR1cmVzKGZlYXR1cmVzOiByZWFkb25seSBzdHJpbmdbXSk6IENvbXBsaWFuY2VDb250ZW50U2V0W10ge1xuICByZXR1cm4gQ09NUExJQU5DRV9DT05URU5UX1NFVFMuZmlsdGVyKChzZXQpID0+IGZlYXR1cmVzLmluY2x1ZGVzKENPTVBMSUFOQ0VfU0VUX0ZFQVRVUkVTW3NldF0pKTtcbn1cblxuLyoqXG4gKiBUaGUgZmVhdHVyZSBhIHB1Ymxpc2hlZCBydWxlJ3MgYHNldDo8eD5gIHRhZ3MgcmVxdWlyZSwgb3IgYG51bGxgIGZvciBhblxuICogdW50YWdnZWQgKGJhc2VsaW5lKSBydWxlLiBUaGUgaGlnaGVzdCBlbnRpdGxlbWVudCB3aW5zIHdoZW4gYSBydWxlIGNhcnJpZXNcbiAqIHNldmVyYWwuIEFjY2VwdHMgYSByYXcganNvbmIgYHRhZ3NgIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGxpYW5jZUZlYXR1cmVGb3JUYWdzKHRhZ3M6IHVua25vd24pOiBGZWF0dXJlRmxhZyB8IG51bGwge1xuICBjb25zdCB0ID0gQXJyYXkuaXNBcnJheSh0YWdzKSA/IHRhZ3MgOiBbXTtcbiAgZm9yIChjb25zdCBzZXQgb2YgWy4uLkNPTVBMSUFOQ0VfQ09OVEVOVF9TRVRTXS5yZXZlcnNlKCkpIHtcbiAgICBpZiAodC5pbmNsdWRlcyhgc2V0OiR7c2V0fWApKSByZXR1cm4gQ09NUExJQU5DRV9TRVRfRkVBVFVSRVNbc2V0XTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
|
package/lib/types/http.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
export {};
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2h0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIEdlbmVyaWMgSFRUUCBoZWFkZXJzIHJlcHJlc2VudGF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIZWFkZXJzIHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogR2VuZXJpYyBIVFRQIHJlcXVlc3QgaW50ZXJmYWNlLlxuICogUmVwcmVzZW50cyB0aGUgbWluaW1hbCByZXF1ZXN0IHNoYXBlIG5lZWRlZCBieSBhcGktY29yZSB1dGlsaXRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlcXVlc3Qge1xuICAvKiogUmVxdWVzdCBoZWFkZXJzICovXG4gIGhlYWRlcnM6IEh0dHBIZWFkZXJzO1xuICAvKiogUm91dGUgcGFyYW1ldGVycyAqL1xuICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPjtcbiAgLyoqIFF1ZXJ5IHBhcmFtZXRlcnMgKi9cbiAgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogQXV0aGVudGljYXRlZCB1c2VyIChpZiBwcmVzZW50KS4gYHN1YmAgaXMgdGhlIE9JREMtc3RhbmRhcmQgc3ViamVjdFxuICAgKiAgKD0gdXNlciBpZCk7IGhpZ2hlci1sZXZlbCBsYXllcnMgbWF5IGF0dGFjaCBhZGRpdGlvbmFsIGZpZWxkcywgaGVuY2VcbiAgICogIHRoZSBpbmRleCBzaWduYXR1cmUuICovXG4gIHVzZXI/OiB7XG4gICAgc3ViPzogc3RyaW5nO1xuICAgIG9yZ2FuaXphdGlvbklkPzogc3RyaW5nO1xuICAgIHJvbGU/OiBzdHJpbmc7XG4gICAgLyoqIGB1c2VyYCB8IGBzZXJ2aWNlX2FjY291bnRgIHwgYHNlcnZpY2VgIOKAlCBkZWNpZGVzIHdoZXRoZXIgdGhlXG4gICAgICogIGNsaWVudC1zZXR0YWJsZSBgeC1vcmctaWRgIGhlYWRlciBtYXkgbmFtZSB0aGUgdGVuYW50IChzZWVcbiAgICAgKiAgYHV0aWxzL2lkZW50aXR5LnRzYCkuICovXG4gICAgcHJpbmNpcGFsVHlwZT86IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICB9O1xufVxuXG4iXX0=
|
package/lib/types/index.d.ts
CHANGED
|
@@ -14,12 +14,12 @@ export { tierAllowsTeams, isBillingEnabled, isValidTier, getTierLimits, type Quo
|
|
|
14
14
|
export * from './build-catalog.js';
|
|
15
15
|
export * from './usage-projection.js';
|
|
16
16
|
export * from './feature-flags.js';
|
|
17
|
-
export { permissionLabel, isValidPermission, isSystemOrgOnlyPermission, isOrgAssignablePermission, normalizePermissionSubset, intersectPermissions, resolveUserPermissions, confinePermissionsToOrg, hasPermission, type Permission, ALL_PERMISSIONS, ROLE_TEMPLATES, type RoleTemplate, PERMISSION_ACTIONS, PERMISSION_ID_SHAPE, PERMISSION_GATES, PERMISSION_CATALOG, SUPERADMIN_ONLY_PERMISSIONS, SYSTEM_ORG_ONLY_PERMISSIONS, ORG_ASSIGNABLE_PERMISSIONS, ORG_ASSIGNABLE_CATEGORIES, READ_ONLY_PERMISSIONS, ROLE_PERMISSIONS, ECOSYSTEM_MANAGER_PERMISSIONS, PLATFORM_OPERATOR_PERMISSIONS, ACCOUNT_MANAGER_PERMISSIONS, CONSOLE_ADMIN_PERMISSIONS, PLATFORM_OBSERVER_PERMISSIONS, SUPPORT_AGENT_PERMISSIONS, SUPPORT_LEAD_PERMISSIONS, SEED_BUNDLES, SEED_BUNDLE_IDS, SYSTEM_ORG_JOB_BUNDLES, ORG_AUTOMATION_BUNDLES, AUTOMATION_ACCOUNT_BUNDLES, type SeedBundleId, REGISTRY_OPERATOR_PERMISSIONS, TEAM_LEAD_PERMISSIONS, PIPELINE_AUTOMATION_PERMISSIONS, PIPELINE_REGISTRATION_PERMISSIONS, } from './permissions.js';
|
|
17
|
+
export { permissionLabel, isValidPermission, isSystemOrgOnlyPermission, isOrgAssignablePermission, normalizePermissionSubset, intersectPermissions, resolveUserPermissions, confinePermissionsToOrg, hasPermission, type Permission, ALL_PERMISSIONS, ROLE_TEMPLATES, type RoleTemplate, PERMISSION_ACTIONS, PERMISSION_ID_SHAPE, PERMISSION_GATES, PERMISSION_CATALOG, SUPERADMIN_ONLY_PERMISSIONS, SYSTEM_ORG_ONLY_PERMISSIONS, ORG_ASSIGNABLE_PERMISSIONS, ORG_ASSIGNABLE_CATEGORIES, READ_ONLY_PERMISSIONS, ROLE_PERMISSIONS, ECOSYSTEM_MANAGER_PERMISSIONS, PUBLISHER_VERIFIER_PERMISSIONS, PLATFORM_OPERATOR_PERMISSIONS, ACCOUNT_MANAGER_PERMISSIONS, CONSOLE_ADMIN_PERMISSIONS, PLATFORM_OBSERVER_PERMISSIONS, SUPPORT_AGENT_PERMISSIONS, SUPPORT_LEAD_PERMISSIONS, SEED_BUNDLES, SEED_BUNDLE_IDS, SYSTEM_ORG_JOB_BUNDLES, ORG_AUTOMATION_BUNDLES, AUTOMATION_ACCOUNT_BUNDLES, type SeedBundleId, REGISTRY_OPERATOR_PERMISSIONS, TEAM_LEAD_PERMISSIONS, PIPELINE_AUTOMATION_PERMISSIONS, PIPELINE_REGISTRATION_PERMISSIONS, } from './permissions.js';
|
|
18
18
|
export { METADATA_KEY_CATALOG, MetadataKeys, type MetadataKey, type MetadataKeyOption, METADATA_KEY_GROUPS, } from './metadata-keys.js';
|
|
19
19
|
export { type AuditEvent, } from './audit-events.js';
|
|
20
20
|
export { REMOTE_AUDIT_ACTIONS, isRemoteAuditAction, type RemoteAuditAction, } from './remote-audit-actions.js';
|
|
21
|
-
export { ASK_AGENT_PROPOSER, ASK_PROPOSED_BY_HEADER, PROPOSED_BY_DETAIL_KEY, askProposalAuditDetails, readProposerClaim, withProposalProvenance, ORG_SETTING_PROPOSAL_ALLOWLIST, ORG_SETTING_PROPOSAL_EXCLUSIONS, ORG_SETTING_PROPOSAL_KEYS, isProposableOrgSetting, isValidOrgSettingValue, orgSettingSpec, pickAllowed, diffOrgSettings, orgSettingRequests, type AskProposalProvenance, type ProposerClaim, type OrgSettingChange, type OrgSettingKey, type OrgSettingPatch, type OrgSettingRequest, type OrgSettingShape, type OrgSettingSpec, type OrgSettingSurface, type OrgSettingValue, type PickAllowedResult, } from './ask-proposals.js';
|
|
21
|
+
export { ASK_AGENT_PROPOSER, ASK_PROPOSED_BY_HEADER, PROPOSED_BY_DETAIL_KEY, askProposalAuditDetails, readProposerClaim, withProposalProvenance, ASK_PROPOSAL_PERMISSION, ORG_SETTING_PROPOSAL_ALLOWLIST, ORG_SETTING_PROPOSAL_EXCLUSIONS, ORG_SETTING_PROPOSAL_KEYS, isProposableOrgSetting, isValidOrgSettingValue, orgSettingSpec, pickAllowed, diffOrgSettings, orgSettingRequests, type AskProposalKind, type AskProposalProvenance, type ProposerClaim, type OrgSettingChange, type OrgSettingKey, type OrgSettingPatch, type OrgSettingRequest, type OrgSettingShape, type OrgSettingSpec, type OrgSettingSurface, type OrgSettingValue, type PickAllowedResult, } from './ask-proposals.js';
|
|
22
22
|
export { isEcosystemNotificationEvent, parseEcosystemNotifyRequest, nextEcosystemDigestTime, renderEcosystemManagerChange, renderEcosystemDigest, type EcosystemNotificationEventId, type EcosystemNotificationChannel, ECOSYSTEM_EMAIL_PREFERENCE_FIELDS, type EcosystemEmailPreferenceField, ECOSYSTEM_EMAIL_PREFERENCE_FIELD_NAMES, ECOSYSTEM_NOTIFICATION_EVENTS, type EcosystemRecipientSpec, type EcosystemNotifyRequest, } from './ecosystem-notifications.js';
|
|
23
23
|
export { publisherTermsVersion, publisherHandleProblem, isOfficialAutoApprovalEnabled, isPluginPublishingEnabled, isAnonymousSubmissionsEnabled, isPluginReviewsEnabled, OFFICIAL_CATALOG_LOADER_ACCOUNT, DEFAULT_PUBLISHER_TERMS_VERSION, BUILTIN_RESERVED_HANDLES, TENANT_REQUEST_KINDS, PUBLISH_PERMISSION_REQUEST_KINDS, VERIFY_REQUEST_KINDS, STEP_UP_REQUEST_KINDS, REQUEST_SLA_HOURS, } from './ecosystem.js';
|
|
24
24
|
export { ageScore, vulnScore, computeHealthScore, publisherHealthScore, publisherSuccessRate, healthBand, HEALTH_COMPONENTS, HEALTH_WEIGHTS, type HealthBreakdown, type HealthComponentScore, type HealthResult, type HealthInputs, type HealthBand, } from './plugin-health.js';
|
|
25
|
-
export { applyVulnWaivers, asScanFlag, describeFindings, describeFix, atOrAboveFailOn, exceedsVulnFloor, failOnLabel, gatedFixableCount, isGatedFinding, newScanFindings, parseVulnWaivers, parseVulnWaiversVerbose, pluginVulnFailOn, pluginVulnGateKev, pluginVulnMaxFindings, SCAN_FLAG_TOP_FINDINGS, SCAN_SUMMARY_MAX_BINARIES, SCAN_SUMMARY_MAX_FINDINGS, scanFindingKey, vulnFlaggedMessage, vulnFlaggedWarning, vulnWaiverLabels, type PluginScanFinding, type PluginScanFlag, type PluginVulnFailOn, type PluginScanSummary, type VulnFlaggedWarning, type VulnWaiver, type VulnWaiverParse, type VulnWaiverProblem, type WaiverOutcome, } from './plugin-scan.js';
|
|
25
|
+
export { applyVulnWaivers, asScanFlag, describeFindings, describeFix, atOrAboveFailOn, exceedsVulnFloor, failOnLabel, gatedFindingCount, summaryContradicts, summaryDescribes, gatedFixableCount, isGatedFinding, newScanFindings, parseVulnWaivers, parseVulnWaiversVerbose, pluginVulnFailOn, pluginVulnGateKev, pluginVulnMaxFindings, SCAN_FLAG_TOP_FINDINGS, SCAN_SUMMARY_MAX_BINARIES, SCAN_SUMMARY_MAX_FINDINGS, scanFindingKey, vulnFlaggedMessage, vulnFlaggedWarning, vulnWaiverLabels, type PluginScanFinding, type PluginScanFlag, type PluginVulnFailOn, type PluginScanSummary, type VulnFlaggedWarning, type VulnWaiver, type VulnWaiverParse, type VulnWaiverProblem, type WaiverOutcome, } from './plugin-scan.js';
|
package/lib/types/index.js
CHANGED
|
@@ -24,13 +24,13 @@ export * from './build-catalog.js';
|
|
|
24
24
|
// notice and the usage profile's trajectory signal share ONE formula.
|
|
25
25
|
export * from './usage-projection.js';
|
|
26
26
|
export * from './feature-flags.js';
|
|
27
|
-
export { permissionLabel, isValidPermission, isSystemOrgOnlyPermission, isOrgAssignablePermission, normalizePermissionSubset, intersectPermissions, resolveUserPermissions, confinePermissionsToOrg, hasPermission, ALL_PERMISSIONS, ROLE_TEMPLATES, PERMISSION_ACTIONS, PERMISSION_ID_SHAPE, PERMISSION_GATES, PERMISSION_CATALOG, SUPERADMIN_ONLY_PERMISSIONS, SYSTEM_ORG_ONLY_PERMISSIONS, ORG_ASSIGNABLE_PERMISSIONS, ORG_ASSIGNABLE_CATEGORIES, READ_ONLY_PERMISSIONS, ROLE_PERMISSIONS, ECOSYSTEM_MANAGER_PERMISSIONS, PLATFORM_OPERATOR_PERMISSIONS, ACCOUNT_MANAGER_PERMISSIONS, CONSOLE_ADMIN_PERMISSIONS, PLATFORM_OBSERVER_PERMISSIONS, SUPPORT_AGENT_PERMISSIONS, SUPPORT_LEAD_PERMISSIONS, SEED_BUNDLES, SEED_BUNDLE_IDS, SYSTEM_ORG_JOB_BUNDLES, ORG_AUTOMATION_BUNDLES, AUTOMATION_ACCOUNT_BUNDLES, REGISTRY_OPERATOR_PERMISSIONS, TEAM_LEAD_PERMISSIONS, PIPELINE_AUTOMATION_PERMISSIONS, PIPELINE_REGISTRATION_PERMISSIONS, } from './permissions.js';
|
|
27
|
+
export { permissionLabel, isValidPermission, isSystemOrgOnlyPermission, isOrgAssignablePermission, normalizePermissionSubset, intersectPermissions, resolveUserPermissions, confinePermissionsToOrg, hasPermission, ALL_PERMISSIONS, ROLE_TEMPLATES, PERMISSION_ACTIONS, PERMISSION_ID_SHAPE, PERMISSION_GATES, PERMISSION_CATALOG, SUPERADMIN_ONLY_PERMISSIONS, SYSTEM_ORG_ONLY_PERMISSIONS, ORG_ASSIGNABLE_PERMISSIONS, ORG_ASSIGNABLE_CATEGORIES, READ_ONLY_PERMISSIONS, ROLE_PERMISSIONS, ECOSYSTEM_MANAGER_PERMISSIONS, PUBLISHER_VERIFIER_PERMISSIONS, PLATFORM_OPERATOR_PERMISSIONS, ACCOUNT_MANAGER_PERMISSIONS, CONSOLE_ADMIN_PERMISSIONS, PLATFORM_OBSERVER_PERMISSIONS, SUPPORT_AGENT_PERMISSIONS, SUPPORT_LEAD_PERMISSIONS, SEED_BUNDLES, SEED_BUNDLE_IDS, SYSTEM_ORG_JOB_BUNDLES, ORG_AUTOMATION_BUNDLES, AUTOMATION_ACCOUNT_BUNDLES, REGISTRY_OPERATOR_PERMISSIONS, TEAM_LEAD_PERMISSIONS, PIPELINE_AUTOMATION_PERMISSIONS, PIPELINE_REGISTRATION_PERMISSIONS, } from './permissions.js';
|
|
28
28
|
export { METADATA_KEY_CATALOG, MetadataKeys, METADATA_KEY_GROUPS, } from './metadata-keys.js';
|
|
29
29
|
export {} from './audit-events.js';
|
|
30
30
|
export { REMOTE_AUDIT_ACTIONS, isRemoteAuditAction, } from './remote-audit-actions.js';
|
|
31
|
-
export { ASK_AGENT_PROPOSER, ASK_PROPOSED_BY_HEADER, PROPOSED_BY_DETAIL_KEY, askProposalAuditDetails, readProposerClaim, withProposalProvenance, ORG_SETTING_PROPOSAL_ALLOWLIST, ORG_SETTING_PROPOSAL_EXCLUSIONS, ORG_SETTING_PROPOSAL_KEYS, isProposableOrgSetting, isValidOrgSettingValue, orgSettingSpec, pickAllowed, diffOrgSettings, orgSettingRequests, } from './ask-proposals.js';
|
|
31
|
+
export { ASK_AGENT_PROPOSER, ASK_PROPOSED_BY_HEADER, PROPOSED_BY_DETAIL_KEY, askProposalAuditDetails, readProposerClaim, withProposalProvenance, ASK_PROPOSAL_PERMISSION, ORG_SETTING_PROPOSAL_ALLOWLIST, ORG_SETTING_PROPOSAL_EXCLUSIONS, ORG_SETTING_PROPOSAL_KEYS, isProposableOrgSetting, isValidOrgSettingValue, orgSettingSpec, pickAllowed, diffOrgSettings, orgSettingRequests, } from './ask-proposals.js';
|
|
32
32
|
export { isEcosystemNotificationEvent, parseEcosystemNotifyRequest, nextEcosystemDigestTime, renderEcosystemManagerChange, renderEcosystemDigest, ECOSYSTEM_EMAIL_PREFERENCE_FIELDS, ECOSYSTEM_EMAIL_PREFERENCE_FIELD_NAMES, ECOSYSTEM_NOTIFICATION_EVENTS, } from './ecosystem-notifications.js';
|
|
33
33
|
export { publisherTermsVersion, publisherHandleProblem, isOfficialAutoApprovalEnabled, isPluginPublishingEnabled, isAnonymousSubmissionsEnabled, isPluginReviewsEnabled, OFFICIAL_CATALOG_LOADER_ACCOUNT, DEFAULT_PUBLISHER_TERMS_VERSION, BUILTIN_RESERVED_HANDLES, TENANT_REQUEST_KINDS, PUBLISH_PERMISSION_REQUEST_KINDS, VERIFY_REQUEST_KINDS, STEP_UP_REQUEST_KINDS, REQUEST_SLA_HOURS, } from './ecosystem.js';
|
|
34
34
|
export { ageScore, vulnScore, computeHealthScore, publisherHealthScore, publisherSuccessRate, healthBand, HEALTH_COMPONENTS, HEALTH_WEIGHTS, } from './plugin-health.js';
|
|
35
|
-
export { applyVulnWaivers, asScanFlag, describeFindings, describeFix, atOrAboveFailOn, exceedsVulnFloor, failOnLabel, gatedFixableCount, isGatedFinding, newScanFindings, parseVulnWaivers, parseVulnWaiversVerbose, pluginVulnFailOn, pluginVulnGateKev, pluginVulnMaxFindings, SCAN_FLAG_TOP_FINDINGS, SCAN_SUMMARY_MAX_BINARIES, SCAN_SUMMARY_MAX_FINDINGS, scanFindingKey, vulnFlaggedMessage, vulnFlaggedWarning, vulnWaiverLabels, } from './plugin-scan.js';
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixZQUFZLEVBRVosZUFBZSxFQUtmLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsa0JBQWtCLEdBTW5CLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLE9BQU8sRUFNTixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFFTixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxpRkFBaUY7QUFDakYsZ0ZBQWdGO0FBQ2hGLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxPQUFPLEVBQW1DLE1BQU0sMkJBQTJCLENBQUM7QUFDNUUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUVqQixxQkFBcUIsRUFFckIsMEJBQTBCLEVBQzFCLGdCQUFnQixHQUdqQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFFTixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsYUFBYSxFQUdiLFdBQVcsRUFDWCxXQUFXLEVBQ1gsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsVUFBVSxFQUVWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixhQUFhLEVB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LGdCQUFnQixHQVVqQixNQUFNLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCB7IEVycm9yQ29kZSwgZ2V0U3RhdHVzRm9yRXJyb3JDb2RlIH0gZnJvbSAnLi9lcnJvci1jb2Rlcy5qcyc7XG5leHBvcnQge1xuICBpc1ZhbGlkUXVvdGFUeXBlLFxuICB0eXBlIFRva2VuU2NvcGUsXG4gIFRPS0VOX1NDT1BFUyxcbiAgdHlwZSBQcmluY2lwYWxUeXBlLFxuICBQUklOQ0lQQUxfVFlQRVMsXG4gIHR5cGUgVG9rZW5Vc2UsXG4gIHR5cGUgQXV0aE1ldGhvZCxcbiAgdHlwZSBBc3N1cmFuY2VMZXZlbCxcbiAgdHlwZSBRdW90YVR5cGUsXG4gIFZBTElEX1FVT1RBX1RZUEVTLFxuICBRVU9UQV9UWVBFX0xBQkVMUyxcbiAgUVVPVEFfVVBHUkFERV9QQVRILFxuICB0eXBlIFF1b3RhQ2hlY2tSZXN1bHQsXG4gIHR5cGUgUXVvdGFJbmZvLFxuICB0eXBlIEFwaVJlc3BvbnNlLFxuICB0eXBlIEp3dFBheWxvYWQsXG4gIHR5cGUgSGVhbHRoQ2hlY2tSZXNwb25zZSxcbn0gZnJvbSAnLi9jb21tb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlbGluZS5qcyc7XG5leHBvcnQge1xuICB0eXBlIExpZmVjeWNsZSxcbiAgdHlwZSBDcml0aWNhbGl0eSxcbiAgdHlwZSBPd25lclR5cGUsXG4gIHR5cGUgRW50aXR5TGluayxcbiAgdHlwZSBFbnRpdHlMYWJlbHMsXG59IGZyb20gJy4vY2F0YWxvZy1tZXRhZGF0YS5qcyc7XG5leHBvcnQge1xuICB0eXBlIFRlbXBsYXRlSW5wdXQsXG59IGZyb20gJy4vcGlwZWxpbmUtdGVtcGxhdGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi92aXNpYmlsaXR5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzZXJ2ZWQtdGFncy5qcyc7XG4vLyBXaGF0IGVhY2ggcXVvdGEgdHlwZSBpcyBjYWxsZWQgYW5kIGhvdyBpdHMgbnVtYmVyIHJlbmRlcnMg4oCUIHRoZSBvbmUgc291cmNlIHRoZVxuLy8gYnJvd3NlciBhbHNvIGltcG9ydHMgZGlyZWN0bHkgdmlhIGBAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZS9xdW90YS1jYXRhbG9nYC5cbmV4cG9ydCAqIGZyb20gJy4vcXVvdGEtY2F0YWxvZy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3dpcmUtdm9jYWJ1bGFyeS5qcyc7XG5leHBvcnQgeyB0eXBlIENvbXBsaWFuY2VFeGVtcHRpb25SZXF1ZXN0IH0gZnJvbSAnLi9jb21wbGlhbmNlLWV4ZW1wdGlvbi5qcyc7XG5leHBvcnQge1xuICBQTFVHSU5fU1VNTUFSWV9NQVgsXG4gIFBMVUdJTl9SRUFETUVfTUFYX0JZVEVTLFxuICBQTFVHSU5fQ0hBTkdFTE9HX01BWF9CWVRFUyxcbiAgUExVR0lOX0NBVEVHT1JJRVMsXG4gIHR5cGUgUGx1Z2luQ2F0YWxvZ0NhdGVnb3J5LFxuICBQTFVHSU5fQ0FUQUxPR19GSUVMRFMsXG4gIHR5cGUgUGx1Z2luQ2F0YWxvZ0ZpZWxkLFxuICBQTFVHSU5fQ0FUQUxPR19MSU5LX0ZJRUxEUyxcbiAgTUVUQURBVEFfU09VUkNFUyxcbiAgdHlwZSBNZXRhZGF0YVNvdXJjZSxcbiAgdHlwZSBNZXRhZGF0YVNvdXJjZXMsXG59IGZyb20gJy4vcGx1Z2luLWNhdGFsb2cuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBIdHRwUmVxdWVzdCxcbn0gZnJvbSAnLi9odHRwLmpzJztcbmV4cG9ydCB7XG4gIHRpZXJBbGxvd3NUZWFtcyxcbiAgaXNCaWxsaW5nRW5hYmxlZCxcbiAgaXNWYWxpZFRpZXIsXG4gIGdldFRpZXJMaW1pdHMsXG4gIHR5cGUgUXVvdGFUaWVyLFxuICB0eXBlIFF1b3RhVGllckxpbWl0cyxcbiAgUVVPVEFfVElFUlMsXG4gIFZBTElEX1RJRVJTLFxuICBTVEFOREFSRF9USUVSUyxcbiAgVEVBTV9DQVBBQkxFX1RJRVJTLFxuICBTRUFUX1BBQ0tfVElFUlMsXG4gIHNlYXRSZW1lZHksXG4gIHR5cGUgU2VhdFJlbWVkeSxcbiAgREVGQVVMVF9USUVSLFxuICBRVU9UQV9SRVNFVF9EQVlTLFxuICBDUFVfQ1JFRElUU19QRVJJT0RfREFZUyxcbiAgcXVvdGFQZXJpb2REYXlzLFxuICBuZXh0UXVvdGFSZXNldERhdGUsXG4gIEFVVE9NQVRJT05fQ0FMTFNfU0laSU5HLFxuICBhdXRvbWF0aW9uQ2FsbHNGb3IsXG4gIHF1b3RhR3JhY2VQY3QsXG4gIGVuZm9yY2VkUXVvdGFMaW1pdCxcbn0gZnJvbSAnLi9xdW90YS10aWVycy5qcyc7XG4vLyBUaGUgYnVpbGQgY2xhc3Mvc2l6ZSBjYXRhbG9nOiBpZHMsIGxhYmVscywgY3JlZGl0IG11bHRpcGxpZXJzLCB0aWVyIGZsb29yc1xuLy8gYW5kIHBlci1jbGFzcyBzbG90IGRlZmF1bHRzLiBEZXBlbmRlbmN5LWZyZWUsIHNvIHRoZSBicm93c2VyIGltcG9ydHMgaXRcbi8vIHRocm91Z2ggdGhlIGAuL2J1aWxkLWNhdGFsb2dgIHN1YnBhdGggaW5zdGVhZCBvZiBtaXJyb3JpbmcgaXQuXG5leHBvcnQgKiBmcm9tICcuL2J1aWxkLWNhdGFsb2cuanMnO1xuLy8gV2hlcmUgYSBxdW90YSBjb3VudGVyIGlzIEhFQURFRC4gRGVwZW5kZW5jeS1mcmVlIGFuZCBicm93c2VyLWltcG9ydGVkXG4vLyB0aHJvdWdoIGAuL3VzYWdlLXByb2plY3Rpb25gLCBzbyB0aGUgcXVvdGEgY2FyZCdzIGZvcmVjYXN0LCB0aGUgdGhyZXNob2xkXG4vLyBub3RpY2UgYW5kIHRoZSB1c2FnZSBwcm9maWxlJ3MgdHJhamVjdG9yeSBzaWduYWwgc2hhcmUgT05FIGZvcm11bGEuXG5leHBvcnQgKiBmcm9tICcuL3VzYWdlLXByb2plY3Rpb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLWZsYWdzLmpzJztcbmV4cG9ydCB7XG4gIHBlcm1pc3Npb25MYWJlbCxcbiAgaXNWYWxpZFBlcm1pc3Npb24sXG4gIGlzU3lzdGVtT3JnT25seVBlcm1pc3Npb24sXG4gIGlzT3JnQXNzaWduYWJsZVBlcm1pc3Npb24sXG4gIG5vcm1hbGl6ZVBlcm1pc3Npb25TdWJzZXQsXG4gIGludGVyc2VjdFBlcm1pc3Npb25zLFxuICByZXNvbHZlVXNlclBlcm1pc3Npb25zLFxuICBjb25maW5lUGVybWlzc2lvbnNUb09yZyxcbiAgaGFzUGVybWlzc2lvbixcbiAgdHlwZSBQZXJtaXNzaW9uLFxuICBBTExfUEVSTUlTU0lPTlMsXG4gIFJPTEVfVEVNUExBVEVTLFxuICB0eXBlIFJvbGVUZW1wbGF0ZSxcbiAgUEVSTUlTU0lPTl9BQ1RJT05TLFxuICBQRVJNSVNTSU9OX0lEX1NIQVBFLFxuICBQRVJNSVNTSU9OX0dBVEVTLFxuICBQRVJNSVNTSU9OX0NBVEFMT0csXG4gIFNVUEVSQURNSU5fT05MWV9QRVJNSVNTSU9OUyxcbiAgU1lTVEVNX09SR19PTkxZX1BFUk1JU1NJT05TLFxuICBPUkdfQVNTSUdOQUJMRV9QRVJNSVNTSU9OUyxcbiAgT1JHX0FTU0lHTkFCTEVfQ0FURUdPUklFUyxcbiAgUkVBRF9PTkxZX1BFUk1JU1NJT05TLFxuICBST0xFX1BFUk1JU1NJT05TLFxuICBFQ09TWVNURU1fTUFOQUdFUl9QRVJNSVNTSU9OUyxcbiAgUExBVEZPUk1fT1BFUkFUT1JfUEVSTUlTU0lPTlMsXG4gIEFDQ09VTlRfTUFOQUdFUl9QRVJNSVNTSU9OUyxcbiAgQ09OU09MRV9BRE1JTl9QRVJNSVNTSU9OUyxcbiAgUExBVEZPUk1fT0JTRVJWRVJfUEVSTUlTU0lPTlMsXG4gIFNVUFBPUlRfQUdFTlRfUEVSTUlTU0lPTlMsXG4gIFNVUFBPUlRfTEVBRF9QRVJNSVNTSU9OUyxcbiAgU0VFRF9CVU5ETEVTLFxuICBTRUVEX0JVTkRMRV9JRFMsXG4gIFNZU1RFTV9PUkdfSk9CX0JVTkRMRVMsXG4gIE9SR19BVVRPTUFUSU9OX0JVTkRMRVMsXG4gIEFVVE9NQVRJT05fQUNDT1VOVF9CVU5ETEVTLFxuICB0eXBlIFNlZWRCdW5kbGVJZCxcbiAgUkVHSVNUUllfT1BFUkFUT1JfUEVSTUlTU0lPTlMsXG4gIFRFQU1fTEVBRF9QRVJNSVNTSU9OUyxcbiAgUElQRUxJTkVfQVVUT01BVElPTl9QRVJNSVNTSU9OUyxcbiAgUElQRUxJTkVfUkVHSVNUUkFUSU9OX1BFUk1JU1NJT05TLFxufSBmcm9tICcuL3Blcm1pc3Npb25zLmpzJztcbmV4cG9ydCB7XG4gIE1FVEFEQVRBX0tFWV9DQVRBTE9HLFxuICBNZXRhZGF0YUtleXMsXG4gIHR5cGUgTWV0YWRhdGFLZXksXG4gIHR5cGUgTWV0YWRhdGFLZXlPcHRpb24sXG4gIE1FVEFEQVRBX0tFWV9HUk9VUFMsXG59IGZyb20gJy4vbWV0YWRhdGEta2V5cy5qcyc7XG5leHBvcnQge1xuICB0eXBlIEF1ZGl0RXZlbnQsXG59IGZyb20gJy4vYXVkaXQtZXZlbnRzLmpzJztcbmV4cG9ydCB7XG4gIFJFTU9URV9BVURJVF9BQ1RJT05TLFxuICBpc1JlbW90ZUF1ZGl0QWN0aW9uLFxuICB0eXBlIFJlbW90ZUF1ZGl0QWN0aW9uLFxufSBmcm9tICcuL3JlbW90ZS1hdWRpdC1hY3Rpb25zLmpzJztcbmV4cG9ydCB7XG4gIEFTS19BR0VOVF9QUk9QT1NFUixcbiAgQVNLX1BST1BPU0VEX0JZX0hFQURFUixcbiAgUFJPUE9TRURfQllfREVUQUlMX0tFWSxcbiAgYXNrUHJvcG9zYWxBdWRpdERldGFpbHMsXG4gIHJlYWRQcm9wb3NlckNsYWltLFxuICB3aXRoUHJvcG9zYWxQcm92ZW5hbmNlLFxuICBPUkdfU0VUVElOR19QUk9QT1NBTF9BTExPV0xJU1QsXG4gIE9SR19TRVRUSU5HX1BST1BPU0FMX0VYQ0xVU0lPTlMsXG4gIE9SR19TRVRUSU5HX1BST1BPU0FMX0tFWVMsXG4gIGlzUHJvcG9zYWJsZU9yZ1NldHRpbmcsXG4gIGlzVmFsaWRPcmdTZXR0aW5nVmFsdWUsXG4gIG9yZ1NldHRpbmdTcGVjLFxuICBwaWNrQWxsb3dlZCxcbiAgZGlmZk9yZ1NldHRpbmdzLFxuICBvcmdTZXR0aW5nUmVxdWVzdHMsXG4gIHR5cGUgQXNrUHJvcG9zYWxQcm92ZW5hbmNlLFxuICB0eXBlIFByb3Bvc2VyQ2xhaW0sXG4gIHR5cGUgT3JnU2V0dGluZ0NoYW5nZSxcbiAgdHlwZSBPcmdTZXR0aW5nS2V5LFxuICB0eXBlIE9yZ1NldHRpbmdQYXRjaCxcbiAgdHlwZSBPcmdTZXR0aW5nUmVxdWVzdCxcbiAgdHlwZSBPcmdTZXR0aW5nU2hhcGUsXG4gIHR5cGUgT3JnU2V0dGluZ1NwZWMsXG4gIHR5cGUgT3JnU2V0dGluZ1N1cmZhY2UsXG4gIHR5cGUgT3JnU2V0dGluZ1ZhbHVlLFxuICB0eXBlIFBpY2tBbGxvd2VkUmVzdWx0LFxufSBmcm9tICcuL2Fzay1wcm9wb3NhbHMuanMnO1xuZXhwb3J0IHtcbiAgaXNFY29zeXN0ZW1Ob3RpZmljYXRpb25FdmVudCxcbiAgcGFyc2VFY29zeXN0ZW1Ob3RpZnlSZXF1ZXN0LFxuICBuZXh0RWNvc3lzdGVtRGlnZXN0VGltZSxcbiAgcmVuZGVyRWNvc3lzdGVtTWFuYWdlckNoYW5nZSxcbiAgcmVuZGVyRWNvc3lzdGVtRGlnZXN0LFxuICB0eXBlIEVjb3N5c3RlbU5vdGlmaWNhdGlvbkV2ZW50SWQsXG4gIHR5cGUgRWNvc3lzdGVtTm90aWZpY2F0aW9uQ2hhbm5lbCxcbiAgRUNPU1lTVEVNX0VNQUlMX1BSRUZFUkVOQ0VfRklFTERTLFxuICB0eXBlIEVjb3N5c3RlbUVtYWlsUHJlZmVyZW5jZUZpZWxkLFxuICBFQ09TWVNURU1fRU1BSUxfUFJFRkVSRU5DRV9GSUVMRF9OQU1FUyxcbiAgRUNPU1lTVEVNX05PVElGSUNBVElPTl9FVkVOVFMsXG4gIHR5cGUgRWNvc3lzdGVtUmVjaXBpZW50U3BlYyxcbiAgdHlwZSBFY29zeXN0ZW1Ob3RpZnlSZXF1ZXN0LFxufSBmcm9tICcuL2Vjb3N5c3RlbS1ub3RpZmljYXRpb25zLmpzJztcbmV4cG9ydCB7XG4gIHB1Ymxpc2hlclRlcm1zVmVyc2lvbixcbiAgcHVibGlzaGVySGFuZGxlUHJvYmxlbSxcbiAgaXNPZmZpY2lhbEF1dG9BcHByb3ZhbEVuYWJsZWQsXG4gIGlzUGx1Z2luUHVibGlzaGluZ0VuYWJsZWQsXG4gIGlzQW5vbnltb3VzU3VibWlzc2lvbnNFbmFibGVkLFxuICBpc1BsdWdpblJldmlld3NFbmFibGVkLFxuICBPRkZJQ0lBTF9DQVRBTE9HX0xPQURFUl9BQ0NPVU5ULFxuICBERUZBVUxUX1BVQkxJU0hFUl9URVJNU19WRVJTSU9OLFxuICBCVUlMVElOX1JFU0VSVkVEX0hBTkRMRVMsXG4gIFRFTkFOVF9SRVFVRVNUX0tJTkRTLFxuICBQVUJMSVNIX1BFUk1JU1NJT05fUkVRVUVTVF9LSU5EUyxcbiAgVkVSSUZZX1JFUVVFU1RfS0lORFMsXG4gIFNURVBfVVBfUkVRVUVTVF9LSU5EUyxcbiAgUkVRVUVTVF9TTEFfSE9VUlMsXG59IGZyb20gJy4vZWNvc3lzdGVtLmpzJztcbmV4cG9ydCB7XG4gIGFnZVNjb3JlLFxuICB2dWxuU2NvcmUsXG4gIGNvbXB1dGVIZWFsdGhTY29yZSxcbiAgcHVibGlzaGVySGVhbHRoU2NvcmUsXG4gIHB1Ymxpc2hlclN1Y2Nlc3NSYXRlLFxuICBoZWFsdGhCYW5kLFxuICBIRUFMVEhfQ09NUE9ORU5UUyxcbiAgSEVBTFRIX1dFSUdIVFMsXG4gIHR5cGUgSGVhbHRoQnJlYWtkb3duLFxuICB0eXBlIEhlYWx0aENvbXBvbmVudFNjb3JlLFxuICB0eXBlIEhlYWx0aFJlc3VsdCxcbiAgdHlwZSBIZWFsdGhJbnB1dHMsXG4gIHR5cGUgSGVhbHRoQmFuZCxcbn0gZnJvbSAnLi9wbHVnaW4taGVhbHRoLmpzJztcbmV4cG9ydCB7XG4gIGFwcGx5VnVsbldhaXZlcnMsXG4gIGFzU2NhbkZsYWcsXG4gIGRlc2NyaWJlRmluZGluZ3MsXG4gIGRlc2NyaWJlRml4LFxuICBhdE9yQWJvdmVGYWlsT24sXG4gIGV4Y2VlZHNWdWxuRmxvb3IsXG4gIGZhaWxPbkxhYmVsLFxuICBnYXRlZEZpeGFibGVDb3VudCxcbiAgaXNHYXRlZEZpbmRpbmcsXG4gIG5ld1NjYW5GaW5kaW5ncyxcbiAgcGFyc2VWdWxuV2FpdmVycyxcbiAgcGFyc2VWdWxuV2FpdmVyc1ZlcmJvc2UsXG4gIHBsdWdpblZ1bG5GYWlsT24sXG4gIHBsdWdpblZ1bG5HYXRlS2V2LFxuICBwbHVnaW5WdWxuTWF4RmluZGluZ3MsXG4gIFNDQU5fRkxBR19UT1BfRklORElOR1MsXG4gIFNDQU5fU1VNTUFSWV9NQVhfQklOQVJJRVMsXG4gIFNDQU5fU1VNTUFSWV9NQVhfRklORElOR1MsXG4gIHNjYW5GaW5kaW5nS2V5LFxuICB2dWxuRmxhZ2dlZE1lc3NhZ2UsXG4gIHZ1bG5GbGFnZ2VkV2FybmluZyxcbiAgdnVsbldhaXZlckxhYmVscyxcbiAgdHlwZSBQbHVnaW5TY2FuRmluZGluZyxcbiAgdHlwZSBQbHVnaW5TY2FuRmxhZyxcbiAgdHlwZSBQbHVnaW5WdWxuRmFpbE9uLFxuICB0eXBlIFBsdWdpblNjYW5TdW1tYXJ5LFxuICB0eXBlIFZ1bG5GbGFnZ2VkV2FybmluZyxcbiAgdHlwZSBWdWxuV2FpdmVyLFxuICB0eXBlIFZ1bG5XYWl2ZXJQYXJzZSxcbiAgdHlwZSBWdWxuV2FpdmVyUHJvYmxlbSxcbiAgdHlwZSBXYWl2ZXJPdXRjb21lLFxufSBmcm9tICcuL3BsdWdpbi1zY2FuLmpzJztcbiJdfQ==
|
|
35
|
+
export { applyVulnWaivers, asScanFlag, describeFindings, describeFix, atOrAboveFailOn, exceedsVulnFloor, failOnLabel, gatedFindingCount, summaryContradicts, summaryDescribes, gatedFixableCount, isGatedFinding, newScanFindings, parseVulnWaivers, parseVulnWaiversVerbose, pluginVulnFailOn, pluginVulnGateKev, pluginVulnMaxFindings, SCAN_FLAG_TOP_FINDINGS, SCAN_SUMMARY_MAX_BINARIES, SCAN_SUMMARY_MAX_FINDINGS, scanFindingKey, vulnFlaggedMessage, vulnFlaggedWarning, vulnWaiverLabels, } from './plugin-scan.js';
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLFlBQVksRUFFWixlQUFlLEVBS2YsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixrQkFBa0IsR0FNbkIsTUFBTSxhQUFhLENBQUM7QUFDckIsY0FBYyxlQUFlLENBQUM7QUFDOUIsT0FBTyxFQU1OLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUVOLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGlGQUFpRjtBQUNqRixnRkFBZ0Y7QUFDaEYsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLE9BQU8sRUFBbUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsaUJBQWlCLEVBRWpCLHFCQUFxQixFQUVyQiwwQkFBMEIsRUFDMUIsZ0JBQWdCLEdBR2pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUVOLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxhQUFhLEVBR2IsV0FBVyxFQUNYLFdBQVcsRUFDWCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixVQUFVLEVBRVYsWUFBWSxFQUNaLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixrQkFBa0IsR0FDbkIs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LHlCQUF5QixFQUN6QixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FVakIsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5leHBvcnQgeyBFcnJvckNvZGUsIGdldFN0YXR1c0ZvckVycm9yQ29kZSB9IGZyb20gJy4vZXJyb3ItY29kZXMuanMnO1xuZXhwb3J0IHtcbiAgaXNWYWxpZFF1b3RhVHlwZSxcbiAgdHlwZSBUb2tlblNjb3BlLFxuICBUT0tFTl9TQ09QRVMsXG4gIHR5cGUgUHJpbmNpcGFsVHlwZSxcbiAgUFJJTkNJUEFMX1RZUEVTLFxuICB0eXBlIFRva2VuVXNlLFxuICB0eXBlIEF1dGhNZXRob2QsXG4gIHR5cGUgQXNzdXJhbmNlTGV2ZWwsXG4gIHR5cGUgUXVvdGFUeXBlLFxuICBWQUxJRF9RVU9UQV9UWVBFUyxcbiAgUVVPVEFfVFlQRV9MQUJFTFMsXG4gIFFVT1RBX1VQR1JBREVfUEFUSCxcbiAgdHlwZSBRdW90YUNoZWNrUmVzdWx0LFxuICB0eXBlIFF1b3RhSW5mbyxcbiAgdHlwZSBBcGlSZXNwb25zZSxcbiAgdHlwZSBKd3RQYXlsb2FkLFxuICB0eXBlIEhlYWx0aENoZWNrUmVzcG9uc2UsXG59IGZyb20gJy4vY29tbW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZWxpbmUuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBMaWZlY3ljbGUsXG4gIHR5cGUgQ3JpdGljYWxpdHksXG4gIHR5cGUgT3duZXJUeXBlLFxuICB0eXBlIEVudGl0eUxpbmssXG4gIHR5cGUgRW50aXR5TGFiZWxzLFxufSBmcm9tICcuL2NhdGFsb2ctbWV0YWRhdGEuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBUZW1wbGF0ZUlucHV0LFxufSBmcm9tICcuL3BpcGVsaW5lLXRlbXBsYXRlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdmlzaWJpbGl0eS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc2VydmVkLXRhZ3MuanMnO1xuLy8gV2hhdCBlYWNoIHF1b3RhIHR5cGUgaXMgY2FsbGVkIGFuZCBob3cgaXRzIG51bWJlciByZW5kZXJzIOKAlCB0aGUgb25lIHNvdXJjZSB0aGVcbi8vIGJyb3dzZXIgYWxzbyBpbXBvcnRzIGRpcmVjdGx5IHZpYSBgQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUvcXVvdGEtY2F0YWxvZ2AuXG5leHBvcnQgKiBmcm9tICcuL3F1b3RhLWNhdGFsb2cuanMnO1xuZXhwb3J0ICogZnJvbSAnLi93aXJlLXZvY2FidWxhcnkuanMnO1xuZXhwb3J0IHsgdHlwZSBDb21wbGlhbmNlRXhlbXB0aW9uUmVxdWVzdCB9IGZyb20gJy4vY29tcGxpYW5jZS1leGVtcHRpb24uanMnO1xuZXhwb3J0IHtcbiAgUExVR0lOX1NVTU1BUllfTUFYLFxuICBQTFVHSU5fUkVBRE1FX01BWF9CWVRFUyxcbiAgUExVR0lOX0NIQU5HRUxPR19NQVhfQllURVMsXG4gIFBMVUdJTl9DQVRFR09SSUVTLFxuICB0eXBlIFBsdWdpbkNhdGFsb2dDYXRlZ29yeSxcbiAgUExVR0lOX0NBVEFMT0dfRklFTERTLFxuICB0eXBlIFBsdWdpbkNhdGFsb2dGaWVsZCxcbiAgUExVR0lOX0NBVEFMT0dfTElOS19GSUVMRFMsXG4gIE1FVEFEQVRBX1NPVVJDRVMsXG4gIHR5cGUgTWV0YWRhdGFTb3VyY2UsXG4gIHR5cGUgTWV0YWRhdGFTb3VyY2VzLFxufSBmcm9tICcuL3BsdWdpbi1jYXRhbG9nLmpzJztcbmV4cG9ydCB7XG4gIHR5cGUgSHR0cFJlcXVlc3QsXG59IGZyb20gJy4vaHR0cC5qcyc7XG5leHBvcnQge1xuICB0aWVyQWxsb3dzVGVhbXMsXG4gIGlzQmlsbGluZ0VuYWJsZWQsXG4gIGlzVmFsaWRUaWVyLFxuICBnZXRUaWVyTGltaXRzLFxuICB0eXBlIFF1b3RhVGllcixcbiAgdHlwZSBRdW90YVRpZXJMaW1pdHMsXG4gIFFVT1RBX1RJRVJTLFxuICBWQUxJRF9USUVSUyxcbiAgU1RBTkRBUkRfVElFUlMsXG4gIFRFQU1fQ0FQQUJMRV9USUVSUyxcbiAgU0VBVF9QQUNLX1RJRVJTLFxuICBzZWF0UmVtZWR5LFxuICB0eXBlIFNlYXRSZW1lZHksXG4gIERFRkFVTFRfVElFUixcbiAgUVVPVEFfUkVTRVRfREFZUyxcbiAgQ1BVX0NSRURJVFNfUEVSSU9EX0RBWVMsXG4gIHF1b3RhUGVyaW9kRGF5cyxcbiAgbmV4dFF1b3RhUmVzZXREYXRlLFxuICBBVVRPTUFUSU9OX0NBTExTX1NJWklORyxcbiAgYXV0b21hdGlvbkNhbGxzRm9yLFxuICBxdW90YUdyYWNlUGN0LFxuICBlbmZvcmNlZFF1b3RhTGltaXQsXG59IGZyb20gJy4vcXVvdGEtdGllcnMuanMnO1xuLy8gVGhlIGJ1aWxkIGNsYXNzL3NpemUgY2F0YWxvZzogaWRzLCBsYWJlbHMsIGNyZWRpdCBtdWx0aXBsaWVycywgdGllciBmbG9vcnNcbi8vIGFuZCBwZXItY2xhc3Mgc2xvdCBkZWZhdWx0cy4gRGVwZW5kZW5jeS1mcmVlLCBzbyB0aGUgYnJvd3NlciBpbXBvcnRzIGl0XG4vLyB0aHJvdWdoIHRoZSBgLi9idWlsZC1jYXRhbG9nYCBzdWJwYXRoIGluc3RlYWQgb2YgbWlycm9yaW5nIGl0LlxuZXhwb3J0ICogZnJvbSAnLi9idWlsZC1jYXRhbG9nLmpzJztcbi8vIFdoZXJlIGEgcXVvdGEgY291bnRlciBpcyBIRUFERUQuIERlcGVuZGVuY3ktZnJlZSBhbmQgYnJvd3Nlci1pbXBvcnRlZFxuLy8gdGhyb3VnaCBgLi91c2FnZS1wcm9qZWN0aW9uYCwgc28gdGhlIHF1b3RhIGNhcmQncyBmb3JlY2FzdCwgdGhlIHRocmVzaG9sZFxuLy8gbm90aWNlIGFuZCB0aGUgdXNhZ2UgcHJvZmlsZSdzIHRyYWplY3Rvcnkgc2lnbmFsIHNoYXJlIE9ORSBmb3JtdWxhLlxuZXhwb3J0ICogZnJvbSAnLi91c2FnZS1wcm9qZWN0aW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1mbGFncy5qcyc7XG5leHBvcnQge1xuICBwZXJtaXNzaW9uTGFiZWwsXG4gIGlzVmFsaWRQZXJtaXNzaW9uLFxuICBpc1N5c3RlbU9yZ09ubHlQZXJtaXNzaW9uLFxuICBpc09yZ0Fzc2lnbmFibGVQZXJtaXNzaW9uLFxuICBub3JtYWxpemVQZXJtaXNzaW9uU3Vic2V0LFxuICBpbnRlcnNlY3RQZXJtaXNzaW9ucyxcbiAgcmVzb2x2ZVVzZXJQZXJtaXNzaW9ucyxcbiAgY29uZmluZVBlcm1pc3Npb25zVG9PcmcsXG4gIGhhc1Blcm1pc3Npb24sXG4gIHR5cGUgUGVybWlzc2lvbixcbiAgQUxMX1BFUk1JU1NJT05TLFxuICBST0xFX1RFTVBMQVRFUyxcbiAgdHlwZSBSb2xlVGVtcGxhdGUsXG4gIFBFUk1JU1NJT05fQUNUSU9OUyxcbiAgUEVSTUlTU0lPTl9JRF9TSEFQRSxcbiAgUEVSTUlTU0lPTl9HQVRFUyxcbiAgUEVSTUlTU0lPTl9DQVRBTE9HLFxuICBTVVBFUkFETUlOX09OTFlfUEVSTUlTU0lPTlMsXG4gIFNZU1RFTV9PUkdfT05MWV9QRVJNSVNTSU9OUyxcbiAgT1JHX0FTU0lHTkFCTEVfUEVSTUlTU0lPTlMsXG4gIE9SR19BU1NJR05BQkxFX0NBVEVHT1JJRVMsXG4gIFJFQURfT05MWV9QRVJNSVNTSU9OUyxcbiAgUk9MRV9QRVJNSVNTSU9OUyxcbiAgRUNPU1lTVEVNX01BTkFHRVJfUEVSTUlTU0lPTlMsXG4gIFBVQkxJU0hFUl9WRVJJRklFUl9QRVJNSVNTSU9OUyxcbiAgUExBVEZPUk1fT1BFUkFUT1JfUEVSTUlTU0lPTlMsXG4gIEFDQ09VTlRfTUFOQUdFUl9QRVJNSVNTSU9OUyxcbiAgQ09OU09MRV9BRE1JTl9QRVJNSVNTSU9OUyxcbiAgUExBVEZPUk1fT0JTRVJWRVJfUEVSTUlTU0lPTlMsXG4gIFNVUFBPUlRfQUdFTlRfUEVSTUlTU0lPTlMsXG4gIFNVUFBPUlRfTEVBRF9QRVJNSVNTSU9OUyxcbiAgU0VFRF9CVU5ETEVTLFxuICBTRUVEX0JVTkRMRV9JRFMsXG4gIFNZU1RFTV9PUkdfSk9CX0JVTkRMRVMsXG4gIE9SR19BVVRPTUFUSU9OX0JVTkRMRVMsXG4gIEFVVE9NQVRJT05fQUNDT1VOVF9CVU5ETEVTLFxuICB0eXBlIFNlZWRCdW5kbGVJZCxcbiAgUkVHSVNUUllfT1BFUkFUT1JfUEVSTUlTU0lPTlMsXG4gIFRFQU1fTEVBRF9QRVJNSVNTSU9OUyxcbiAgUElQRUxJTkVfQVVUT01BVElPTl9QRVJNSVNTSU9OUyxcbiAgUElQRUxJTkVfUkVHSVNUUkFUSU9OX1BFUk1JU1NJT05TLFxufSBmcm9tICcuL3Blcm1pc3Npb25zLmpzJztcbmV4cG9ydCB7XG4gIE1FVEFEQVRBX0tFWV9DQVRBTE9HLFxuICBNZXRhZGF0YUtleXMsXG4gIHR5cGUgTWV0YWRhdGFLZXksXG4gIHR5cGUgTWV0YWRhdGFLZXlPcHRpb24sXG4gIE1FVEFEQVRBX0tFWV9HUk9VUFMsXG59IGZyb20gJy4vbWV0YWRhdGEta2V5cy5qcyc7XG5leHBvcnQge1xuICB0eXBlIEF1ZGl0RXZlbnQsXG59IGZyb20gJy4vYXVkaXQtZXZlbnRzLmpzJztcbmV4cG9ydCB7XG4gIFJFTU9URV9BVURJVF9BQ1RJT05TLFxuICBpc1JlbW90ZUF1ZGl0QWN0aW9uLFxuICB0eXBlIFJlbW90ZUF1ZGl0QWN0aW9uLFxufSBmcm9tICcuL3JlbW90ZS1hdWRpdC1hY3Rpb25zLmpzJztcbmV4cG9ydCB7XG4gIEFTS19BR0VOVF9QUk9QT1NFUixcbiAgQVNLX1BST1BPU0VEX0JZX0hFQURFUixcbiAgUFJPUE9TRURfQllfREVUQUlMX0tFWSxcbiAgYXNrUHJvcG9zYWxBdWRpdERldGFpbHMsXG4gIHJlYWRQcm9wb3NlckNsYWltLFxuICB3aXRoUHJvcG9zYWxQcm92ZW5hbmNlLFxuICBBU0tfUFJPUE9TQUxfUEVSTUlTU0lPTixcbiAgT1JHX1NFVFRJTkdfUFJPUE9TQUxfQUxMT1dMSVNULFxuICBPUkdfU0VUVElOR19QUk9QT1NBTF9FWENMVVNJT05TLFxuICBPUkdfU0VUVElOR19QUk9QT1NBTF9LRVlTLFxuICBpc1Byb3Bvc2FibGVPcmdTZXR0aW5nLFxuICBpc1ZhbGlkT3JnU2V0dGluZ1ZhbHVlLFxuICBvcmdTZXR0aW5nU3BlYyxcbiAgcGlja0FsbG93ZWQsXG4gIGRpZmZPcmdTZXR0aW5ncyxcbiAgb3JnU2V0dGluZ1JlcXVlc3RzLFxuICB0eXBlIEFza1Byb3Bvc2FsS2luZCxcbiAgdHlwZSBBc2tQcm9wb3NhbFByb3ZlbmFuY2UsXG4gIHR5cGUgUHJvcG9zZXJDbGFpbSxcbiAgdHlwZSBPcmdTZXR0aW5nQ2hhbmdlLFxuICB0eXBlIE9yZ1NldHRpbmdLZXksXG4gIHR5cGUgT3JnU2V0dGluZ1BhdGNoLFxuICB0eXBlIE9yZ1NldHRpbmdSZXF1ZXN0LFxuICB0eXBlIE9yZ1NldHRpbmdTaGFwZSxcbiAgdHlwZSBPcmdTZXR0aW5nU3BlYyxcbiAgdHlwZSBPcmdTZXR0aW5nU3VyZmFjZSxcbiAgdHlwZSBPcmdTZXR0aW5nVmFsdWUsXG4gIHR5cGUgUGlja0FsbG93ZWRSZXN1bHQsXG59IGZyb20gJy4vYXNrLXByb3Bvc2Fscy5qcyc7XG5leHBvcnQge1xuICBpc0Vjb3N5c3RlbU5vdGlmaWNhdGlvbkV2ZW50LFxuICBwYXJzZUVjb3N5c3RlbU5vdGlmeVJlcXVlc3QsXG4gIG5leHRFY29zeXN0ZW1EaWdlc3RUaW1lLFxuICByZW5kZXJFY29zeXN0ZW1NYW5hZ2VyQ2hhbmdlLFxuICByZW5kZXJFY29zeXN0ZW1EaWdlc3QsXG4gIHR5cGUgRWNvc3lzdGVtTm90aWZpY2F0aW9uRXZlbnRJZCxcbiAgdHlwZSBFY29zeXN0ZW1Ob3RpZmljYXRpb25DaGFubmVsLFxuICBFQ09TWVNURU1fRU1BSUxfUFJFRkVSRU5DRV9GSUVMRFMsXG4gIHR5cGUgRWNvc3lzdGVtRW1haWxQcmVmZXJlbmNlRmllbGQsXG4gIEVDT1NZU1RFTV9FTUFJTF9QUkVGRVJFTkNFX0ZJRUxEX05BTUVTLFxuICBFQ09TWVNURU1fTk9USUZJQ0FUSU9OX0VWRU5UUyxcbiAgdHlwZSBFY29zeXN0ZW1SZWNpcGllbnRTcGVjLFxuICB0eXBlIEVjb3N5c3RlbU5vdGlmeVJlcXVlc3QsXG59IGZyb20gJy4vZWNvc3lzdGVtLW5vdGlmaWNhdGlvbnMuanMnO1xuZXhwb3J0IHtcbiAgcHVibGlzaGVyVGVybXNWZXJzaW9uLFxuICBwdWJsaXNoZXJIYW5kbGVQcm9ibGVtLFxuICBpc09mZmljaWFsQXV0b0FwcHJvdmFsRW5hYmxlZCxcbiAgaXNQbHVnaW5QdWJsaXNoaW5nRW5hYmxlZCxcbiAgaXNBbm9ueW1vdXNTdWJtaXNzaW9uc0VuYWJsZWQsXG4gIGlzUGx1Z2luUmV2aWV3c0VuYWJsZWQsXG4gIE9GRklDSUFMX0NBVEFMT0dfTE9BREVSX0FDQ09VTlQsXG4gIERFRkFVTFRfUFVCTElTSEVSX1RFUk1TX1ZFUlNJT04sXG4gIEJVSUxUSU5fUkVTRVJWRURfSEFORExFUyxcbiAgVEVOQU5UX1JFUVVFU1RfS0lORFMsXG4gIFBVQkxJU0hfUEVSTUlTU0lPTl9SRVFVRVNUX0tJTkRTLFxuICBWRVJJRllfUkVRVUVTVF9LSU5EUyxcbiAgU1RFUF9VUF9SRVFVRVNUX0tJTkRTLFxuICBSRVFVRVNUX1NMQV9IT1VSUyxcbn0gZnJvbSAnLi9lY29zeXN0ZW0uanMnO1xuZXhwb3J0IHtcbiAgYWdlU2NvcmUsXG4gIHZ1bG5TY29yZSxcbiAgY29tcHV0ZUhlYWx0aFNjb3JlLFxuICBwdWJsaXNoZXJIZWFsdGhTY29yZSxcbiAgcHVibGlzaGVyU3VjY2Vzc1JhdGUsXG4gIGhlYWx0aEJhbmQsXG4gIEhFQUxUSF9DT01QT05FTlRTLFxuICBIRUFMVEhfV0VJR0hUUyxcbiAgdHlwZSBIZWFsdGhCcmVha2Rvd24sXG4gIHR5cGUgSGVhbHRoQ29tcG9uZW50U2NvcmUsXG4gIHR5cGUgSGVhbHRoUmVzdWx0LFxuICB0eXBlIEhlYWx0aElucHV0cyxcbiAgdHlwZSBIZWFsdGhCYW5kLFxufSBmcm9tICcuL3BsdWdpbi1oZWFsdGguanMnO1xuZXhwb3J0IHtcbiAgYXBwbHlWdWxuV2FpdmVycyxcbiAgYXNTY2FuRmxhZyxcbiAgZGVzY3JpYmVGaW5kaW5ncyxcbiAgZGVzY3JpYmVGaXgsXG4gIGF0T3JBYm92ZUZhaWxPbixcbiAgZXhjZWVkc1Z1bG5GbG9vcixcbiAgZmFpbE9uTGFiZWwsXG4gIGdhdGVkRmluZGluZ0NvdW50LFxuICBzdW1tYXJ5Q29udHJhZGljdHMsXG4gIHN1bW1hcnlEZXNjcmliZXMsXG4gIGdhdGVkRml4YWJsZUNvdW50LFxuICBpc0dhdGVkRmluZGluZyxcbiAgbmV3U2NhbkZpbmRpbmdzLFxuICBwYXJzZVZ1bG5XYWl2ZXJzLFxuICBwYXJzZVZ1bG5XYWl2ZXJzVmVyYm9zZSxcbiAgcGx1Z2luVnVsbkZhaWxPbixcbiAgcGx1Z2luVnVsbkdhdGVLZXYsXG4gIHBsdWdpblZ1bG5NYXhGaW5kaW5ncyxcbiAgU0NBTl9GTEFHX1RPUF9GSU5ESU5HUyxcbiAgU0NBTl9TVU1NQVJZX01BWF9CSU5BUklFUyxcbiAgU0NBTl9TVU1NQVJZX01BWF9GSU5ESU5HUyxcbiAgc2NhbkZpbmRpbmdLZXksXG4gIHZ1bG5GbGFnZ2VkTWVzc2FnZSxcbiAgdnVsbkZsYWdnZWRXYXJuaW5nLFxuICB2dWxuV2FpdmVyTGFiZWxzLFxuICB0eXBlIFBsdWdpblNjYW5GaW5kaW5nLFxuICB0eXBlIFBsdWdpblNjYW5GbGFnLFxuICB0eXBlIFBsdWdpblZ1bG5GYWlsT24sXG4gIHR5cGUgUGx1Z2luU2NhblN1bW1hcnksXG4gIHR5cGUgVnVsbkZsYWdnZWRXYXJuaW5nLFxuICB0eXBlIFZ1bG5XYWl2ZXIsXG4gIHR5cGUgVnVsbldhaXZlclBhcnNlLFxuICB0eXBlIFZ1bG5XYWl2ZXJQcm9ibGVtLFxuICB0eXBlIFdhaXZlck91dGNvbWUsXG59IGZyb20gJy4vcGx1Z2luLXNjYW4uanMnO1xuIl19
|