@aerokit/sdk 12.80.0 → 12.82.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/bpm/deployer.js +1 -1
- package/dist/cjs/bpm/index.js +1 -1
- package/dist/cjs/bpm/process.js +1 -1
- package/dist/cjs/bpm/tasks.js +1 -1
- package/dist/cjs/bpm/tracer.js +1 -1
- package/dist/cjs/bpm/values.js +1 -1
- package/dist/cjs/cache/cache.js +1 -1
- package/dist/cjs/cache/index.js +1 -1
- package/dist/cjs/cms/cmis.js +1 -1
- package/dist/cjs/cms/index.js +1 -1
- package/dist/cjs/component/decorators.js +1 -1
- package/dist/cjs/component/index.js +1 -1
- package/dist/cjs/core/configurations.js +1 -1
- package/dist/cjs/core/context.js +1 -1
- package/dist/cjs/core/env.js +1 -1
- package/dist/cjs/core/globals.js +1 -1
- package/dist/cjs/core/index.js +1 -1
- package/dist/cjs/db/dao.js +1 -1
- package/dist/cjs/db/database.js +1 -1
- package/dist/cjs/db/decorators.js +1 -1
- package/dist/cjs/db/index.js +1 -1
- package/dist/cjs/db/insert.js +1 -1
- package/dist/cjs/db/orm.js +1 -1
- package/dist/cjs/db/ormstatements.js +1 -1
- package/dist/cjs/db/procedure.js +1 -1
- package/dist/cjs/db/query.js +1 -1
- package/dist/cjs/db/repository.js +1 -1
- package/dist/cjs/db/sequence.js +1 -1
- package/dist/cjs/db/sql.js +1 -1
- package/dist/cjs/db/store.js +1 -1
- package/dist/cjs/db/translator.js +1 -1
- package/dist/cjs/db/update.js +1 -1
- package/dist/cjs/etcd/client.js +1 -1
- package/dist/cjs/etcd/index.js +1 -1
- package/dist/cjs/extensions/decorators.js +1 -1
- package/dist/cjs/extensions/extensions.js +1 -1
- package/dist/cjs/extensions/index.js +1 -1
- package/dist/cjs/git/client.js +1 -1
- package/dist/cjs/git/index.js +1 -1
- package/dist/cjs/http/client-async.js +1 -1
- package/dist/cjs/http/client.js +1 -1
- package/dist/cjs/http/decorators.js +1 -1
- package/dist/cjs/http/errors/ForbiddenError.js +1 -1
- package/dist/cjs/http/errors/ValidationError.js +1 -1
- package/dist/cjs/http/errors.js +1 -1
- package/dist/cjs/http/index.js +1 -1
- package/dist/cjs/http/request.js +1 -1
- package/dist/cjs/http/response.js +1 -1
- package/dist/cjs/http/rs/resource-http-controller.js +1 -1
- package/dist/cjs/http/rs/resource-mappings.js +1 -1
- package/dist/cjs/http/rs/resource-method.js +1 -1
- package/dist/cjs/http/rs/resource.js +1 -1
- package/dist/cjs/http/rs.js +1 -1
- package/dist/cjs/http/session.js +1 -1
- package/dist/cjs/http/upload.js +1 -1
- package/dist/cjs/http/utils.js +1 -1
- package/dist/cjs/indexing/index.js +1 -1
- package/dist/cjs/indexing/searcher.js +1 -1
- package/dist/cjs/indexing/writer.js +1 -1
- package/dist/cjs/integrations/index.js +1 -1
- package/dist/cjs/integrations/integrations.js +1 -1
- package/dist/cjs/io/bytes.js +1 -1
- package/dist/cjs/io/files.js +1 -1
- package/dist/cjs/io/image.js +1 -1
- package/dist/cjs/io/index.js +1 -1
- package/dist/cjs/io/streams.js +1 -1
- package/dist/cjs/io/zip.js +1 -1
- package/dist/cjs/job/decorators.js +1 -1
- package/dist/cjs/job/index.js +1 -1
- package/dist/cjs/job/scheduler.js +1 -1
- package/dist/cjs/junit/index.js +1 -1
- package/dist/cjs/junit/junit.js +1 -1
- package/dist/cjs/kafka/consumer.js +1 -1
- package/dist/cjs/kafka/index.js +1 -1
- package/dist/cjs/kafka/producer.js +1 -1
- package/dist/cjs/log/index.js +1 -1
- package/dist/cjs/log/logging.js +1 -1
- package/dist/cjs/mail/client.js +1 -1
- package/dist/cjs/mail/index.js +1 -1
- package/dist/cjs/messaging/consumer.js +1 -1
- package/dist/cjs/messaging/decorators.js +1 -1
- package/dist/cjs/messaging/index.js +1 -1
- package/dist/cjs/messaging/producer.js +1 -1
- package/dist/cjs/mongodb/client.js +1 -1
- package/dist/cjs/mongodb/dao.js +1 -1
- package/dist/cjs/mongodb/index.js +1 -1
- package/dist/cjs/net/decorators.js +1 -1
- package/dist/cjs/net/index.js +1 -1
- package/dist/cjs/net/soap.js +1 -1
- package/dist/cjs/net/websockets.js +1 -1
- package/dist/cjs/pdf/index.js +1 -1
- package/dist/cjs/pdf/pdf.js +3 -3
- package/dist/cjs/platform/command.js +1 -1
- package/dist/cjs/platform/engines.js +1 -1
- package/dist/cjs/platform/index.js +1 -1
- package/dist/cjs/platform/lifecycle.js +1 -1
- package/dist/cjs/platform/os.js +1 -1
- package/dist/cjs/platform/problems.js +1 -1
- package/dist/cjs/platform/registry.js +1 -1
- package/dist/cjs/platform/repository.js +1 -1
- package/dist/cjs/platform/workspace.js +1 -1
- package/dist/cjs/qldb/index.js +1 -1
- package/dist/cjs/qldb/qldb.js +1 -1
- package/dist/cjs/rabbitmq/consumer.js +1 -1
- package/dist/cjs/rabbitmq/index.js +1 -1
- package/dist/cjs/rabbitmq/producer.js +1 -1
- package/dist/cjs/redis/client.js +1 -1
- package/dist/cjs/redis/index.js +1 -1
- package/dist/cjs/security/decorators.js +1 -1
- package/dist/cjs/security/index.js +1 -1
- package/dist/cjs/security/oauth.js +1 -1
- package/dist/cjs/security/user.js +1 -1
- package/dist/cjs/template/engines.js +1 -1
- package/dist/cjs/template/index.js +1 -1
- package/dist/cjs/utils/alphanumeric.js +2 -2
- package/dist/cjs/utils/base64.js +1 -1
- package/dist/cjs/utils/converter.js +1 -1
- package/dist/cjs/utils/digest.js +1 -1
- package/dist/cjs/utils/escape.js +1 -1
- package/dist/cjs/utils/hex.js +1 -1
- package/dist/cjs/utils/index.js +1 -1
- package/dist/cjs/utils/jsonpath.js +1 -1
- package/dist/cjs/utils/qrcode.js +1 -1
- package/dist/cjs/utils/url.js +1 -1
- package/dist/cjs/utils/utf8.js +1 -1
- package/dist/cjs/utils/uuid.js +1 -1
- package/dist/cjs/utils/xml.js +1 -1
- package/dist/dts/bpm/deployer.d.ts +35 -3
- package/dist/dts/bpm/index.d.ts +14 -0
- package/dist/dts/bpm/process.d.ts +28 -3
- package/dist/dts/bpm/tasks.d.ts +32 -1
- package/dist/dts/bpm/tracer.d.ts +35 -0
- package/dist/dts/bpm/values.d.ts +17 -3
- package/dist/dts/cache/cache.d.ts +38 -0
- package/dist/dts/cache/index.d.ts +10 -0
- package/dist/dts/cms/cmis.d.ts +28 -3
- package/dist/dts/cms/index.d.ts +10 -0
- package/dist/dts/component/decorators.d.ts +35 -5
- package/dist/dts/component/index.d.ts +10 -0
- package/dist/dts/core/configurations.d.ts +43 -4
- package/dist/dts/core/context.d.ts +35 -2
- package/dist/dts/core/env.d.ts +29 -2
- package/dist/dts/core/globals.d.ts +34 -2
- package/dist/dts/core/index.d.ts +13 -0
- package/dist/dts/db/database.d.ts +34 -0
- package/dist/dts/db/decorators.d.ts +55 -2
- package/dist/dts/db/index.d.ts +19 -0
- package/dist/dts/db/orm.d.ts +43 -0
- package/dist/dts/db/procedure.d.ts +37 -0
- package/dist/dts/db/query.d.ts +25 -1
- package/dist/dts/db/repository.d.ts +52 -0
- package/dist/dts/db/sequence.d.ts +31 -2
- package/dist/dts/db/sql.d.ts +33 -0
- package/dist/dts/db/store.d.ts +27 -0
- package/dist/dts/db/translator.d.ts +34 -1
- package/dist/dts/db/update.d.ts +38 -0
- package/dist/dts/etcd/client.d.ts +36 -0
- package/dist/dts/etcd/index.d.ts +10 -0
- package/dist/dts/extensions/decorators.d.ts +28 -0
- package/dist/dts/extensions/extensions.d.ts +30 -1
- package/dist/dts/extensions/index.d.ts +11 -0
- package/dist/dts/git/client.d.ts +28 -0
- package/dist/dts/git/index.d.ts +10 -0
- package/dist/dts/http/client-async.d.ts +29 -1
- package/dist/dts/http/client.d.ts +29 -1
- package/dist/dts/http/decorators.d.ts +38 -0
- package/dist/dts/http/errors/ForbiddenError.d.ts +6 -2
- package/dist/dts/http/errors/ValidationError.d.ts +6 -2
- package/dist/dts/http/errors.d.ts +14 -0
- package/dist/dts/http/index.d.ts +18 -0
- package/dist/dts/http/request.d.ts +30 -3
- package/dist/dts/http/response.d.ts +40 -3
- package/dist/dts/http/rs/resource-mappings.d.ts +30 -0
- package/dist/dts/http/rs.d.ts +38 -0
- package/dist/dts/http/session.d.ts +34 -3
- package/dist/dts/http/upload.d.ts +27 -2
- package/dist/dts/http/utils.d.ts +42 -0
- package/dist/dts/indexing/index.d.ts +11 -0
- package/dist/dts/indexing/searcher.d.ts +35 -2
- package/dist/dts/indexing/writer.d.ts +23 -2
- package/dist/dts/integrations/index.d.ts +10 -0
- package/dist/dts/integrations/integrations.d.ts +27 -3
- package/dist/dts/io/bytes.d.ts +33 -2
- package/dist/dts/io/files.d.ts +34 -2
- package/dist/dts/io/image.d.ts +27 -2
- package/dist/dts/io/index.d.ts +14 -0
- package/dist/dts/io/streams.d.ts +40 -0
- package/dist/dts/io/zip.d.ts +32 -0
- package/dist/dts/job/decorators.d.ts +29 -0
- package/dist/dts/job/index.d.ts +11 -0
- package/dist/dts/job/scheduler.d.ts +33 -2
- package/dist/dts/junit/index.d.ts +10 -0
- package/dist/dts/junit/junit.d.ts +31 -0
- package/dist/dts/kafka/consumer.d.ts +31 -0
- package/dist/dts/kafka/index.d.ts +11 -0
- package/dist/dts/kafka/producer.d.ts +31 -0
- package/dist/dts/log/index.d.ts +10 -0
- package/dist/dts/log/logging.d.ts +32 -0
- package/dist/dts/mail/client.d.ts +27 -0
- package/dist/dts/mail/index.d.ts +10 -0
- package/dist/dts/messaging/consumer.d.ts +29 -2
- package/dist/dts/messaging/decorators.d.ts +32 -0
- package/dist/dts/messaging/index.d.ts +12 -0
- package/dist/dts/messaging/producer.d.ts +27 -2
- package/dist/dts/mongodb/client.d.ts +37 -0
- package/dist/dts/mongodb/dao.d.ts +53 -0
- package/dist/dts/mongodb/index.d.ts +11 -0
- package/dist/dts/net/decorators.d.ts +27 -0
- package/dist/dts/net/index.d.ts +13 -0
- package/dist/dts/net/soap.d.ts +34 -0
- package/dist/dts/net/websockets.d.ts +34 -0
- package/dist/dts/pdf/index.d.ts +10 -0
- package/dist/dts/pdf/pdf.d.ts +41 -2
- package/dist/dts/platform/command.d.ts +26 -0
- package/dist/dts/platform/engines.d.ts +38 -0
- package/dist/dts/platform/index.d.ts +19 -0
- package/dist/dts/platform/lifecycle.d.ts +29 -0
- package/dist/dts/platform/os.d.ts +30 -0
- package/dist/dts/platform/problems.d.ts +36 -0
- package/dist/dts/platform/registry.d.ts +39 -0
- package/dist/dts/platform/repository.d.ts +40 -0
- package/dist/dts/platform/workspace.d.ts +42 -0
- package/dist/dts/qldb/index.d.ts +12 -0
- package/dist/dts/qldb/qldb.d.ts +14 -0
- package/dist/dts/rabbitmq/consumer.d.ts +24 -3
- package/dist/dts/rabbitmq/index.d.ts +13 -0
- package/dist/dts/rabbitmq/producer.d.ts +20 -3
- package/dist/dts/redis/client.d.ts +31 -3
- package/dist/dts/redis/index.d.ts +12 -0
- package/dist/dts/security/decorators.d.ts +34 -0
- package/dist/dts/security/index.d.ts +14 -0
- package/dist/dts/security/oauth.d.ts +27 -0
- package/dist/dts/security/user.d.ts +39 -0
- package/dist/dts/template/engines.d.ts +31 -0
- package/dist/dts/template/index.d.ts +12 -0
- package/dist/dts/utils/alphanumeric.d.ts +36 -2
- package/dist/dts/utils/base64.d.ts +30 -0
- package/dist/dts/utils/converter.d.ts +37 -2
- package/dist/dts/utils/digest.d.ts +31 -0
- package/dist/dts/utils/escape.d.ts +28 -3
- package/dist/dts/utils/hex.d.ts +30 -0
- package/dist/dts/utils/index.d.ts +23 -0
- package/dist/dts/utils/jsonpath.d.ts +43 -0
- package/dist/dts/utils/qrcode.d.ts +24 -3
- package/dist/dts/utils/url.d.ts +37 -3
- package/dist/dts/utils/utf8.d.ts +34 -3
- package/dist/dts/utils/uuid.d.ts +28 -2
- package/dist/dts/utils/xml.d.ts +31 -2
- package/dist/esm/bpm/deployer.mjs +1 -1
- package/dist/esm/bpm/index.mjs +1 -1
- package/dist/esm/bpm/process.mjs +1 -1
- package/dist/esm/bpm/tasks.mjs +1 -1
- package/dist/esm/bpm/tracer.mjs +1 -1
- package/dist/esm/bpm/values.mjs +1 -1
- package/dist/esm/cache/cache.mjs +1 -1
- package/dist/esm/cache/index.mjs +1 -1
- package/dist/esm/cms/cmis.mjs +1 -1
- package/dist/esm/cms/index.mjs +1 -1
- package/dist/esm/component/decorators.mjs +1 -1
- package/dist/esm/component/index.mjs +1 -1
- package/dist/esm/core/configurations.mjs +1 -1
- package/dist/esm/core/context.mjs +1 -1
- package/dist/esm/core/env.mjs +1 -1
- package/dist/esm/core/globals.mjs +1 -1
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/db/dao.mjs +1 -1
- package/dist/esm/db/database.mjs +1 -1
- package/dist/esm/db/decorators.mjs +1 -1
- package/dist/esm/db/index.mjs +1 -1
- package/dist/esm/db/insert.mjs +1 -1
- package/dist/esm/db/orm.mjs +1 -1
- package/dist/esm/db/ormstatements.mjs +1 -1
- package/dist/esm/db/procedure.mjs +1 -1
- package/dist/esm/db/query.mjs +1 -1
- package/dist/esm/db/repository.mjs +1 -1
- package/dist/esm/db/sequence.mjs +1 -1
- package/dist/esm/db/sql.mjs +1 -1
- package/dist/esm/db/store.mjs +1 -1
- package/dist/esm/db/translator.mjs +1 -1
- package/dist/esm/db/update.mjs +1 -1
- package/dist/esm/etcd/client.mjs +1 -1
- package/dist/esm/etcd/index.mjs +1 -1
- package/dist/esm/extensions/decorators.mjs +1 -1
- package/dist/esm/extensions/extensions.mjs +1 -1
- package/dist/esm/extensions/index.mjs +1 -1
- package/dist/esm/git/client.mjs +1 -1
- package/dist/esm/git/index.mjs +1 -1
- package/dist/esm/http/client-async.mjs +1 -1
- package/dist/esm/http/client.mjs +1 -1
- package/dist/esm/http/decorators.mjs +1 -1
- package/dist/esm/http/errors/ForbiddenError.mjs +1 -1
- package/dist/esm/http/errors/ValidationError.mjs +1 -1
- package/dist/esm/http/errors.mjs +1 -1
- package/dist/esm/http/index.mjs +1 -1
- package/dist/esm/http/request.mjs +1 -1
- package/dist/esm/http/response.mjs +1 -1
- package/dist/esm/http/rs/resource-http-controller.mjs +1 -1
- package/dist/esm/http/rs/resource-mappings.mjs +1 -1
- package/dist/esm/http/rs/resource-method.mjs +1 -1
- package/dist/esm/http/rs/resource.mjs +1 -1
- package/dist/esm/http/rs.mjs +1 -1
- package/dist/esm/http/session.mjs +1 -1
- package/dist/esm/http/upload.mjs +1 -1
- package/dist/esm/http/utils.mjs +1 -1
- package/dist/esm/indexing/index.mjs +1 -1
- package/dist/esm/indexing/searcher.mjs +1 -1
- package/dist/esm/indexing/writer.mjs +1 -1
- package/dist/esm/integrations/index.mjs +1 -1
- package/dist/esm/integrations/integrations.mjs +1 -1
- package/dist/esm/io/bytes.mjs +1 -1
- package/dist/esm/io/files.mjs +1 -1
- package/dist/esm/io/image.mjs +1 -1
- package/dist/esm/io/index.mjs +1 -1
- package/dist/esm/io/streams.mjs +1 -1
- package/dist/esm/io/zip.mjs +1 -1
- package/dist/esm/job/decorators.mjs +1 -1
- package/dist/esm/job/index.mjs +1 -1
- package/dist/esm/job/scheduler.mjs +1 -1
- package/dist/esm/junit/index.mjs +1 -1
- package/dist/esm/junit/junit.mjs +1 -1
- package/dist/esm/kafka/consumer.mjs +1 -1
- package/dist/esm/kafka/index.mjs +1 -1
- package/dist/esm/kafka/producer.mjs +1 -1
- package/dist/esm/log/index.mjs +1 -1
- package/dist/esm/log/logging.mjs +1 -1
- package/dist/esm/mail/client.mjs +1 -1
- package/dist/esm/mail/index.mjs +1 -1
- package/dist/esm/messaging/consumer.mjs +1 -1
- package/dist/esm/messaging/decorators.mjs +1 -1
- package/dist/esm/messaging/index.mjs +1 -1
- package/dist/esm/messaging/producer.mjs +1 -1
- package/dist/esm/mongodb/client.mjs +2 -2
- package/dist/esm/mongodb/dao.mjs +1 -1
- package/dist/esm/mongodb/index.mjs +1 -1
- package/dist/esm/net/decorators.mjs +1 -1
- package/dist/esm/net/index.mjs +1 -1
- package/dist/esm/net/soap.mjs +1 -1
- package/dist/esm/net/websockets.mjs +1 -1
- package/dist/esm/pdf/index.mjs +1 -1
- package/dist/esm/pdf/pdf.mjs +3 -3
- package/dist/esm/platform/command.mjs +1 -1
- package/dist/esm/platform/engines.mjs +1 -1
- package/dist/esm/platform/index.mjs +1 -1
- package/dist/esm/platform/lifecycle.mjs +1 -1
- package/dist/esm/platform/os.mjs +1 -1
- package/dist/esm/platform/problems.mjs +1 -1
- package/dist/esm/platform/registry.mjs +1 -1
- package/dist/esm/platform/repository.mjs +1 -1
- package/dist/esm/platform/workspace.mjs +1 -1
- package/dist/esm/qldb/index.mjs +1 -1
- package/dist/esm/qldb/qldb.mjs +1 -1
- package/dist/esm/rabbitmq/consumer.mjs +1 -1
- package/dist/esm/rabbitmq/index.mjs +1 -1
- package/dist/esm/rabbitmq/producer.mjs +1 -1
- package/dist/esm/redis/client.mjs +1 -1
- package/dist/esm/redis/index.mjs +1 -1
- package/dist/esm/security/decorators.mjs +1 -1
- package/dist/esm/security/index.mjs +1 -1
- package/dist/esm/security/oauth.mjs +1 -1
- package/dist/esm/security/user.mjs +1 -1
- package/dist/esm/template/engines.mjs +1 -1
- package/dist/esm/template/index.mjs +1 -1
- package/dist/esm/utils/alphanumeric.mjs +2 -2
- package/dist/esm/utils/base64.mjs +1 -1
- package/dist/esm/utils/converter.mjs +1 -1
- package/dist/esm/utils/digest.mjs +1 -1
- package/dist/esm/utils/escape.mjs +1 -1
- package/dist/esm/utils/hex.mjs +1 -1
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/utils/jsonpath.mjs +1 -1
- package/dist/esm/utils/qrcode.mjs +1 -1
- package/dist/esm/utils/url.mjs +1 -1
- package/dist/esm/utils/utf8.mjs +1 -1
- package/dist/esm/utils/uuid.mjs +1 -1
- package/dist/esm/utils/xml.mjs +1 -1
- package/package.json +1 -1
package/dist/cjs/git/client.js
CHANGED
|
@@ -274,4 +274,4 @@ class Client {
|
|
|
274
274
|
if (typeof module !== "undefined") {
|
|
275
275
|
module.exports = Client;
|
|
276
276
|
}
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC9jbGllbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IEdpdEZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5naXQuR2l0RmFjYWRlXCIpO1xuXG4vKipcbiAqIERlc2NyaWJlcyBhIGZpbGUgd2l0aGluIHRoZSB3b3Jrc3BhY2UsIHBvdGVudGlhbGx5IHdpdGggR2l0IHN0YXR1cyBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlRGVzY3JpcHRvciB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBjb250ZW50VHlwZTogc3RyaW5nO1xuICAgIHN0YXR1czogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIGZvbGRlciB3aXRoaW4gdGhlIHdvcmtzcGFjZSwgcG90ZW50aWFsbHkgd2l0aCBHaXQgc3RhdHVzIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvbGRlckRlc2NyaXB0b3Ige1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgZm9sZGVyczogRm9sZGVyRGVzY3JpcHRvcltdO1xuICAgIGZpbGVzOiBGaWxlRGVzY3JpcHRvcltdO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIEdpdC1tYW5hZ2VkIHByb2plY3QvcmVwb3NpdG9yeSBpbiB0aGUgd29ya3NwYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3REZXNjcmlwdG9yIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGdpdDogYm9vbGVhbjtcbiAgICBnaXROYW1lOiBzdHJpbmc7XG4gICAgZm9sZGVyczogRm9sZGVyRGVzY3JpcHRvcltdO1xuICAgIGZpbGVzOiBGaWxlRGVzY3JpcHRvcltdO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIHNpbmdsZSBHaXQgY29tbWl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdENvbW1pdEluZm8ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgYXV0aG9yOiBzdHJpbmc7XG4gICAgZW1haWxBZGRyZXNzOiBzdHJpbmc7XG4gICAgZGF0ZVRpbWU6IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBHaXQgYnJhbmNoIChsb2NhbCBvciByZW1vdGUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdEJyYW5jaCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHJlbW90ZTogYm9vbGVhbjtcbiAgICBjdXJyZW50OiBib29sZWFuO1xuICAgIGNvbW1pdE9iamVjdElkOiBzdHJpbmc7XG4gICAgY29tbWl0U2hvcnRJZDogc3RyaW5nO1xuICAgIGNvbW1pdERhdGU6IHN0cmluZztcbiAgICBjb21taXRNZXNzYWdlOiBzdHJpbmc7XG4gICAgY29tbWl0QXV0aG9yOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIGEgZmlsZSB0aGF0IGhhcyBiZWVuIGNoYW5nZWQgKHN0YWdlZCBvciB1bnN0YWdlZCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0Q2hhbmdlZEZpbGUge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICB0eXBlOiBudW1iZXI7XG59XG5cbi8qKlxuKiBUaGUgSUdpdENvbm5lY3RvciBwcm92aWRlcyB0aGUgc2ltcGxpZmllZCBtZXRob2RzIGZvciBjb21tdW5pY2F0aW5nIHdpdGggYSBHaXQgU0NNIHNlcnZlci5cbiogVGhpcyBpbnRlcmZhY2UgaXMgcHJpbWFyaWx5IGltcGxlbWVudGVkIGJ5IHRoZSBvYmplY3QgcmV0dXJuZWQgZnJvbSB0aGUgbmF0aXZlIEphdmEgZmFjYWRlLlxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0Q29ubmVjdG9yIHtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG9yaWdpbiB1cmxzLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZldGNoIGFuZCBwdXNoIFVSTHMuXG4gICAgICovXG4gICAgZ2V0T3JpZ2luVXJscygpOiB7IGZldGNoVXJsOiBzdHJpbmc7IHB1c2hVcmw6IHN0cmluZzsgfTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGZldGNoIHVybC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmZXRjaFVybCBUaGUgbmV3IGZldGNoIFVSTC5cbiAgICAgKiBAdGhyb3dzIFVSSVN5bnRheEV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgc2V0RmV0Y2hVcmwoZmV0Y2hVcmw6IHN0cmluZyk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHB1c2ggdXJsLlxuICAgICAqXG4gICAgICogQHBhcmFtIHB1c2hVcmwgVGhlIG5ldyBwdXNoIFVSTC5cbiAgICAgKiBAdGhyb3dzIFVSSVN5bnRheEV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgc2V0UHVzaFVybChwdXNoVXJsOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGZpbGUocykgdG8gdGhlIHN0YWdpbmcgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZVBhdHRlcm4gRmlsZSB0byBhZGQgY29udGVudCBmcm9tLiBFeGFtcGxlOiBcIi5cIiBpbmNsdWRlcyBhbGwgZmlsZXMuXG4gICAgICogQHRocm93cyBJT0V4Y2VwdGlvbiwgTm9GaWxlcGF0dGVybkV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgYWRkKGZpbGVQYXR0ZXJuOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGRlbGV0ZWQgZmlsZShzKSB0byB0aGUgc3RhZ2luZyBpbmRleC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWxlUGF0dGVybiBGaWxlIHRvIGFkZCBjb250ZW50IGZyb20uIEV4YW1wbGU6IFwiLlwiIGluY2x1ZGVzIGFsbCBmaWxlcy5cbiAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uLCBOb0ZpbGVwYXR0ZXJuRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICBhZGREZWxldGVkKGZpbGVQYXR0ZXJuOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgZnJvbSB0aGUgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBiZSByZW1vdmVkLlxuICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24sIE5vRmlsZXBhdHRlcm5FeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIHJlbW92ZShwYXRoOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnQgdG8gaGVhZCByZXZpc2lvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIGJlIHJldmVydGVkLlxuICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24sIE5vRmlsZXBhdHRlcm5FeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIHJldmVydChwYXRoOiBzdHJpbmcpOiB2b2lkXG5cblxuICAgIC8qKlxuICAgICAqIEFkZHMgY2hhbmdlcyB0byB0aGUgc3RhZ2luZyBpbmRleCwgdGhlbiBwZXJmb3JtcyBhIGNvbW1pdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBjb21taXQgbWVzc2FnZS5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29tbWl0dGVyLlxuICAgICAqIEBwYXJhbSBlbWFpbCBUaGUgZW1haWwgb2YgdGhlIGNvbW1pdHRlci5cbiAgICAgKiBAcGFyYW0gYWxsIElmIHRydWUsIGF1dG9tYXRpY2FsbHkgc3RhZ2VzIG1vZGlmaWVkIGFuZCBkZWxldGVkIGZpbGVzLlxuICAgICAqIEB0aHJvd3MgVmFyaW91cyBHaXQgZXhjZXB0aW9uc1xuICAgICAqL1xuICAgIGNvbW1pdChtZXNzYWdlOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZW1haWw6IHN0cmluZywgYWxsOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgbmV3IGJyYW5jaCBmcm9tIGEgcGFydGljdWxhciBzdGFydCBwb2ludC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuZXcgYnJhbmNoIG5hbWUuXG4gICAgICogQHBhcmFtIHN0YXJ0UG9pbnQgVmFsaWQgdHJlZS1pc2ggb2JqZWN0IChlLmcuLCBcIm1hc3RlclwiLCBcIkhFQURcIiwgY29tbWl0IGhhc2gpLlxuICAgICAqIEB0aHJvd3MgUmVmQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgY3JlYXRlQnJhbmNoKG5hbWU6IHN0cmluZywgc3RhcnRQb2ludDogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyB0aGUgYnJhbmNoLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIGJyYW5jaCBuYW1lIHRvIGRlbGV0ZS5cbiAgICAgKiBAdGhyb3dzIFJlZkFscmVhZHlFeGlzdHNFeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIGRlbGV0ZUJyYW5jaChuYW1lOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBSZW5hbWVzIHRoZSBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2xkTmFtZSBUaGUgb2xkIGJyYW5jaCBuYW1lLlxuICAgICAqIEBwYXJhbSBuZXdOYW1lIFRoZSBuZXcgYnJhbmNoIG5hbWUuXG4gICAgICogQHRocm93cyBSZWZBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICByZW5hbWVCcmFuY2gob2xkTmFtZTogc3RyaW5nLCBuZXdOYW1lOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIG5ldyByZW1vdGUgYnJhbmNoIGZyb20gYSBwYXJ0aWN1bGFyIHN0YXJ0IHBvaW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIGJyYW5jaCBuYW1lLlxuICAgICAqIEBwYXJhbSBzdGFydFBvaW50IFZhbGlkIHRyZWUtaXNoIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlcm5hbWUgZm9yIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgUGFzc3dvcmQgZm9yIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAdGhyb3dzIFJlZkFscmVhZHlFeGlzdHNFeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIGNyZWF0ZVJlbW90ZUJyYW5jaChuYW1lOiBzdHJpbmcsIHN0YXJ0UG9pbnQ6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgdGhlIHJlbW90ZSBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVtb3RlIGJyYW5jaCB0byBkZWxldGUuXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFVzZXJuYW1lIGZvciB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFBhc3N3b3JkIGZvciB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICogQHRocm93cyBSZWZBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICBkZWxldGVSZW1vdGVCcmFuY2gobmFtZTogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tvdXQgdG8gYSB2YWxpZCB0cmVlLWlzaCBvYmplY3QgKGUuZy4sIGJyYW5jaCBuYW1lLCBjb21taXQgaGFzaCkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgdHJlZS1pc2ggb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIFRoZSBKR2l0IFJlZiBvYmplY3QuXG4gICAgICogQHRocm93cyBSZWZBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICBjaGVja291dChuYW1lOiBzdHJpbmcpOiBhbnlcblxuICAgIC8qKlxuICAgICAqIEhhcmQgcmVzZXQgdGhlIHJlcG9zaXRvcnkuIFJlc2V0cyB3b3JraW5nIGRpcmVjdG9yeSBhbmQgc3RhZ2luZyBpbmRleCB0byBtYXRjaCB0aGUgR2l0IHJlcG9zaXRvcnkgSEVBRC5cbiAgICAgKlxuICAgICAqIEB0aHJvd3MgQ2hlY2tvdXRDb25mbGljdEV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgaGFyZFJlc2V0KCk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgZnJvbSBhIHJlbW90ZSByZXBvc2l0b3J5IGFuZCB0cmllcyB0byBtZXJnZSBpbnRvIHRoZSBjdXJyZW50IGJyYW5jaCAoUHVsbCkuXG4gICAgICpcbiAgICAgKiBAdGhyb3dzIFZhcmlvdXMgR2l0IGV4Y2VwdGlvbnNcbiAgICAgKi9cbiAgICBwdWxsKCk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgZnJvbSBhIHJlbW90ZSByZXBvc2l0b3J5IGFuZCB0cmllcyB0byBtZXJnZSBpbnRvIHRoZSBjdXJyZW50IGJyYW5jaCAoUHVsbCkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlcm5hbWUgZm9yIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgUGFzc3dvcmQgZm9yIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAdGhyb3dzIFZhcmlvdXMgR2l0IGV4Y2VwdGlvbnNcbiAgICAgKi9cbiAgICBwdWxsKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBQdXNoZXMgdGhlIGNvbW1pdHRlZCBjaGFuZ2VzIHRvIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VybmFtZSBVc2VybmFtZSBmb3IgdGhlIHJlbW90ZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBwYXNzd29yZCBQYXNzd29yZCBmb3IgdGhlIHJlbW90ZSByZXBvc2l0b3J5LlxuICAgICAqIEB0aHJvd3MgSW52YWxpZFJlbW90ZUV4Y2VwdGlvbiwgVHJhbnNwb3J0RXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICBwdXNoKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBUcmllcyB0byByZWJhc2UgdGhlIHNlbGVjdGVkIGJyYW5jaCBvbiB0b3Agb2YgdGhlIGN1cnJlbnQgb25lLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIGJyYW5jaCB0byByZWJhc2UuXG4gICAgICogQHRocm93cyBOb0hlYWRFeGNlcHRpb24sIFdyb25nUmVwb3NpdG9yeVN0YXRlRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICByZWJhc2UobmFtZTogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBjdXJyZW50IHN0YXR1cyBvZiB0aGUgR2l0IHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgSkdpdCBTdGF0dXMgb2JqZWN0LlxuICAgICAqIEB0aHJvd3MgTm9Xb3JrVHJlZUV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgc3RhdHVzKCk6IGFueVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGJyYW5jaCBvZiB0aGUgR2l0IHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgYnJhbmNoIG5hbWUgYXMgYSBzdHJpbmcuXG4gICAgICogQHRocm93cyBJT0V4Y2VwdGlvblxuICAgICAqL1xuICAgIGdldEJyYW5jaCgpOiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIExpc3QgYWxsIHRoZSBsb2NhbCBicmFuY2hlcyBpbmZvLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBsaXN0IG9mIGxvY2FsIHtAbGluayBHaXRCcmFuY2h9IG9iamVjdHMuXG4gICAgICogQHRocm93cyBHaXRDb25uZWN0b3JFeGNlcHRpb25cbiAgICAgKi9cbiAgICBnZXRMb2NhbEJyYW5jaGVzKCk6IEdpdEJyYW5jaFtdXG5cbiAgICAvKipcbiAgICAgKiBMaXN0IGFsbCB0aGUgcmVtb3RlIGJyYW5jaGVzIGluZm8uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBIGxpc3Qgb2YgcmVtb3RlIHtAbGluayBHaXRCcmFuY2h9IG9iamVjdHMuXG4gICAgICogQHRocm93cyBHaXRDb25uZWN0b3JFeGNlcHRpb25cbiAgICAgKi9cbiAgICBnZXRSZW1vdGVCcmFuY2hlcygpOiBHaXRCcmFuY2hbXVxuXG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgdGhlIHVuc3RhZ2VkIGZpbGVzLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBsaXN0IG9mIHtAbGluayBHaXRDaGFuZ2VkRmlsZX0gb2JqZWN0cy5cbiAgICAgKiBAdGhyb3dzIEdpdENvbm5lY3RvckV4Y2VwdGlvblxuICAgICAqL1xuICAgIGdldFVuc3RhZ2VkQ2hhbmdlcygpOiBHaXRDaGFuZ2VkRmlsZVtdXG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgdGhlIHN0YWdlZCBmaWxlcy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgbGlzdCBvZiB7QGxpbmsgR2l0Q2hhbmdlZEZpbGV9IG9iamVjdHMuXG4gICAgICogQHRocm93cyBHaXRDb25uZWN0b3JFeGNlcHRpb25cbiAgICAgKi9cbiAgICBnZXRTdGFnZWRDaGFuZ2VzKCk6IEdpdENoYW5nZWRGaWxlW11cblxuICAgIC8qKlxuICAgICAqIEdldCBmaWxlIGNvbnRlbnQgZnJvbSB0aGUgSEVBRC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGguXG4gICAgICogQHBhcmFtIHJldlN0ciBUaGUgcmV2aXNpb24gc3RyaW5nIChlLmcuLCBjb21taXQgaGFzaCwgYnJhbmNoIG5hbWUpLlxuICAgICAqIEByZXR1cm5zIFRoZSBjb250ZW50IG9mIHRoZSBmaWxlIGFzIGEgc3RyaW5nLlxuICAgICAqIEB0aHJvd3MgR2l0Q29ubmVjdG9yRXhjZXB0aW9uXG4gICAgICovXG4gICAgZ2V0RmlsZUNvbnRlbnQocGF0aDogc3RyaW5nLCByZXZTdHI6IHN0cmluZyk6IHN0cmluZ1xuXG4gICAgLyoqXG4gICAgICogR2V0IGhpc3Rvcnkgb2YgdGhlIHJlcG9zaXRvcnkgb3IgYSBzcGVjaWZpYyBmaWxlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggVGhlIGZpbGUgcGF0aCBvciBudWxsIHRvIGdldCB0aGUgZW50aXJlIHJlcG9zaXRvcnkgaGlzdG9yeS5cbiAgICAgKiBAcmV0dXJucyBBIGxpc3Qgb2Yge0BsaW5rIEdpdENvbW1pdEluZm99IG9iamVjdHMuXG4gICAgICogQHRocm93cyBHaXRDb25uZWN0b3JFeGNlcHRpb25cbiAgICAgKi9cbiAgICBnZXRIaXN0b3J5KHBhdGg6IHN0cmluZyk6IEdpdENvbW1pdEluZm9bXVxufVxuXG4vKipcbiAqIFN0YXRpYyBjbGllbnQgZmFjYWRlIGZvciB3b3Jrc3BhY2UtbGV2ZWwgR2l0IG9wZXJhdGlvbnMsIGFic3RyYWN0aW5nIHRoZSBuYXRpdmUgR2l0RmFjYWRlLlxuICovXG5leHBvcnQgY2xhc3MgQ2xpZW50IHtcblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IEdpdCByZXBvc2l0b3J5IGZvciBhIHByb2plY3QsIHBlcmZvcm1zIGFuIGluaXRpYWwgY29tbWl0LCBhbmQgcHVzaGVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXJuYW1lIG9mIHRoZSBjb21taXR0ZXIuXG4gICAgICogQHBhcmFtIGVtYWlsIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBjb21taXR0ZXIuXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcHJvamVjdE5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb2plY3QuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5ICh3aGVyZSB0byBwdXQgdGhlIGdpdCBmb2xkZXIpLlxuICAgICAqIEBwYXJhbSBjb21taXRNZXNzYWdlIFRoZSBpbml0aWFsIGNvbW1pdCBtZXNzYWdlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaW5pdFJlcG9zaXRvcnkodXNlcjogc3RyaW5nLCBlbWFpbDogc3RyaW5nLCB3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHByb2plY3ROYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIGNvbW1pdE1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUuaW5pdFJlcG9zaXRvcnkodXNlciwgZW1haWwsIHdvcmtzcGFjZU5hbWUsIHByb2plY3ROYW1lLCByZXBvc2l0b3J5TmFtZSwgY29tbWl0TWVzc2FnZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBjb21taXQgaW4gdGhlIHNwZWNpZmllZCByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXJuYW1lIG9mIHRoZSBjb21taXR0ZXIuXG4gICAgICogQHBhcmFtIGVtYWlsIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBjb21taXR0ZXIuXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIGNvbW1pdE1lc3NhZ2UgVGhlIGNvbW1pdCBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSBhbGwgSWYgdHJ1ZSwgYXV0b21hdGljYWxseSBzdGFnZXMgbW9kaWZpZWQgYW5kIGRlbGV0ZWQgZmlsZXMgYmVmb3JlIGNvbW1pdHRpbmcuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjb21taXQodXNlcjogc3RyaW5nLCBlbWFpbDogc3RyaW5nLCB3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIGNvbW1pdE1lc3NhZ2U6IHN0cmluZywgYWxsOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5jb21taXQodXNlciwgZW1haWwsIHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBjb21taXRNZXNzYWdlLCBhbGwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIEdpdCByZXBvc2l0b3JpZXMgKHByb2plY3RzKSB3aXRoaW4gdGhlIHNwZWNpZmllZCB3b3Jrc3BhY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHtAbGluayBQcm9qZWN0RGVzY3JpcHRvcn0gb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEdpdFJlcG9zaXRvcmllcyh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcpOiBQcm9qZWN0RGVzY3JpcHRvcltdIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5nZXRHaXRSZXBvc2l0b3JpZXMod29ya3NwYWNlTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjb21taXQgaGlzdG9yeSBmb3IgdGhlIHNwZWNpZmllZCByZXBvc2l0b3J5IG9yIGEgc3BlY2lmaWMgZmlsZSBwYXRoIHdpdGhpbiBpdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGggZm9yIGhpc3RvcnksIG9yIG51bGwvZW1wdHkgc3RyaW5nIGZvciBmdWxsIHJlcG9zaXRvcnkgaGlzdG9yeS5cbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB7QGxpbmsgR2l0Q29tbWl0SW5mb30gb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEhpc3RvcnkocmVwb3NpdG9yeU5hbWU6IHN0cmluZywgd29ya3NwYWNlTmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBHaXRDb21taXRJbmZvW10ge1xuICAgICAgICByZXR1cm4gR2l0RmFjYWRlLmdldEhpc3RvcnkocmVwb3NpdG9yeU5hbWUsIHdvcmtzcGFjZU5hbWUsIHBhdGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgdGhlIHNwZWNpZmllZCBHaXQgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIGRlbGV0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGRlbGV0ZVJlcG9zaXRvcnkod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuZGVsZXRlUmVwb3NpdG9yeSh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvbmVzIGEgcmVtb3RlIHJlcG9zaXRvcnkgaW50byB0aGUgbG9jYWwgd29ya3NwYWNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeVVyaSBUaGUgVVJJIG9mIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVGhlIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgVGhlIHBhc3N3b3JkIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBAcGFyYW0gYnJhbmNoIFRoZSBzcGVjaWZpYyBicmFuY2ggdG8gY2hlY2tvdXQgYWZ0ZXIgY2xvbmluZy5cbiAgICAgKiBAcmV0dXJucyBBIEdpdENvbm5lY3RvciBpbnN0YW5jZSBmb3IgaW50ZXJhY3RpbmcgZGlyZWN0bHkgd2l0aCB0aGUgY2xvbmVkIHJlcG9zaXRvcnkuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjbG9uZVJlcG9zaXRvcnkod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5VXJpOiBzdHJpbmcsIHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIGJyYW5jaDogc3RyaW5nKTogR2l0Q29ubmVjdG9yIHtcbiAgICAgICAgLy8gVGhlIG5hdGl2ZSBHaXRGYWNhZGUgcmV0dXJucyBhIEphdmEgb2JqZWN0IGltcGxlbWVudGluZyBHaXRDb25uZWN0b3JcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5jbG9uZVJlcG9zaXRvcnkod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeVVyaSwgdXNlcm5hbWUsIHBhc3N3b3JkLCBicmFuY2gpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1bGxzIGNoYW5nZXMgZnJvbSB0aGUgcmVtb3RlIHJlcG9zaXRvcnkgYW5kIGF0dGVtcHRzIHRvIG1lcmdlIHRoZW0gaW50byB0aGUgY3VycmVudCBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVGhlIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgVGhlIHBhc3N3b3JkIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHB1bGwod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5wdWxsKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCB1c2VybmFtZSwgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1c2hlcyB0aGUgbG9jYWwgY29tbWl0cyB0byB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVGhlIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgVGhlIHBhc3N3b3JkIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHB1c2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5wdXNoKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCB1c2VybmFtZSwgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBvdXQgYSBzcGVjaWZpYyBicmFuY2gsIGNvbW1pdCwgb3IgdGFnIGluIHRoZSByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIGJyYW5jaCBUaGUgYnJhbmNoIG9yIHRyZWUtaXNoIG9iamVjdCB0byBjaGVjayBvdXQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjaGVja291dCh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIGJyYW5jaDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5jaGVja291dCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgYnJhbmNoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGJyYW5jaCBzdGFydGluZyBmcm9tIGEgc3BlY2lmaWVkIHBvaW50IChlLmcuLCBIRUFELCBhIGNvbW1pdCBoYXNoLCBvciBhbm90aGVyIGJyYW5jaCkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gYnJhbmNoIFRoZSBuYW1lIG9mIHRoZSBuZXcgYnJhbmNoIHRvIGNyZWF0ZS5cbiAgICAgKiBAcGFyYW0gc3RhcnRpbmdQb2ludCBUaGUgdHJlZS1pc2ggb2JqZWN0IHRvIHN0YXJ0IHRoZSBuZXcgYnJhbmNoIGZyb20uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVCcmFuY2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZywgc3RhcnRpbmdQb2ludDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5jcmVhdGVCcmFuY2god29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUsIGJyYW5jaCwgc3RhcnRpbmdQb2ludCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIGxvY2FsIGJyYW5jaC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBicmFuY2ggVGhlIG5hbWUgb2YgdGhlIGJyYW5jaCB0byBkZWxldGUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWxldGVCcmFuY2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUuZGVsZXRlQnJhbmNoKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBicmFuY2gpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmFtZXMgYSBsb2NhbCBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gb2xkTmFtZSBUaGUgY3VycmVudCBuYW1lIG9mIHRoZSBicmFuY2guXG4gICAgICogQHBhcmFtIG5ld05hbWUgVGhlIG5ldyBuYW1lIGZvciB0aGUgYnJhbmNoLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVuYW1lQnJhbmNoKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgb2xkTmFtZTogc3RyaW5nLCBuZXdOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgR2l0RmFjYWRlLnJlbmFtZUJyYW5jaCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgb2xkTmFtZSwgbmV3TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyByZW1vdGUgYnJhbmNoIG9uIHRoZSBHaXQgc2VydmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIGJyYW5jaCBUaGUgbmFtZSBvZiB0aGUgcmVtb3RlIGJyYW5jaCB0byBjcmVhdGUuXG4gICAgICogQHBhcmFtIHN0YXJ0aW5nUG9pbnQgVGhlIHRyZWUtaXNoIG9iamVjdCB0byBzdGFydCB0aGUgbmV3IHJlbW90ZSBicmFuY2ggZnJvbS5cbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVGhlIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgVGhlIHBhc3N3b3JkIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVJlbW90ZUJyYW5jaCh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIGJyYW5jaDogc3RyaW5nLCBzdGFydGluZ1BvaW50OiBzdHJpbmcsIHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgR2l0RmFjYWRlLmNyZWF0ZVJlbW90ZUJyYW5jaCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgYnJhbmNoLCBzdGFydGluZ1BvaW50LCB1c2VybmFtZSwgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSByZW1vdGUgYnJhbmNoIG9uIHRoZSBHaXQgc2VydmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIGJyYW5jaCBUaGUgbmFtZSBvZiB0aGUgcmVtb3RlIGJyYW5jaCB0byBkZWxldGUuXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFRoZSB1c2VybmFtZSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFRoZSBwYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWxldGVSZW1vdGVCcmFuY2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUuZGVsZXRlUmVtb3RlQnJhbmNoKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBicmFuY2gsIHVzZXJuYW1lLCBwYXNzd29yZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZXRzIHRoZSByZXBvc2l0b3J5LCBkaXNjYXJkaW5nIGFsbCB1bmNvbW1pdHRlZCBjaGFuZ2VzIGluIHRoZSB3b3JraW5nIGRpcmVjdG9yeSBhbmQgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGhhcmRSZXNldCh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgR2l0RmFjYWRlLmhhcmRSZXNldCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVhcHBsaWVzIGNvbW1pdHMgZnJvbSB0aGUgc3BlY2lmaWVkIGJyYW5jaCBvbnRvIHRoZSBjdXJyZW50IGJyYW5jaC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBicmFuY2ggVGhlIGJyYW5jaCB0byByZWJhc2UuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZWJhc2Uod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUucmViYXNlKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBicmFuY2gpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHJlcG9zaXRvcnkgKHN0YWdlZCwgdW5zdGFnZWQsIHVudHJhY2tlZCBmaWxlcykuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVwb3NpdG9yeSBzdGF0dXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzdGF0dXMod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5zdGF0dXMod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcmV0dXJucyBUaGUgbmFtZSBvZiB0aGUgY3VycmVudCBicmFuY2guXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRCcmFuY2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5nZXRCcmFuY2god29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIGxvY2FsIGJyYW5jaGVzIGluIHRoZSByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2Yge0BsaW5rIEdpdEJyYW5jaH0gb2JqZWN0cyByZXByZXNlbnRpbmcgbG9jYWwgYnJhbmNoZXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRMb2NhbEJyYW5jaGVzKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZyk6IEdpdEJyYW5jaFtdIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5nZXRMb2NhbEJyYW5jaGVzKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCByZW1vdGUgYnJhbmNoZXMgY29uZmlndXJlZCBmb3IgdGhlIHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB7QGxpbmsgR2l0QnJhbmNofSBvYmplY3RzIHJlcHJlc2VudGluZyByZW1vdGUgYnJhbmNoZXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVCcmFuY2hlcyh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBHaXRCcmFuY2hbXSB7XG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuZ2V0UmVtb3RlQnJhbmNoZXMod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIHVuc3RhZ2VkIGZpbGVzIChjaGFuZ2VzIG5vdCB5ZXQgYWRkZWQgdG8gdGhlIGluZGV4KS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHtAbGluayBHaXRDaGFuZ2VkRmlsZX0gb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFVuc3RhZ2VkQ2hhbmdlcyh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBHaXRDaGFuZ2VkRmlsZVtdIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5nZXRVbnN0YWdlZENoYW5nZXMod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIHN0YWdlZCBmaWxlcyAoY2hhbmdlcyBhZGRlZCB0byB0aGUgaW5kZXgsIHJlYWR5IGZvciBjb21taXQpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2Yge0BsaW5rIEdpdENoYW5nZWRGaWxlfSBvYmplY3RzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U3RhZ2VkQ2hhbmdlcyh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBHaXRDaGFuZ2VkRmlsZVtdIHtcbiAgICAgICAgLy8gQ29ycmVjdGVkIHJldHVybiB0eXBlIHRvIGFycmF5IG9mIEdpdENoYW5nZWRGaWxlXG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuZ2V0U3RhZ2VkQ2hhbmdlcyh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjb250ZW50IG9mIGEgZmlsZSBhdCBhIHNwZWNpZmljIHJldmlzaW9uIChjb21taXQsIGJyYW5jaCwgb3IgdGFnKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBmaWxlUGF0aCBUaGUgcGF0aCB0byB0aGUgZmlsZS5cbiAgICAgKiBAcGFyYW0gcmV2U3RyIFRoZSByZXZpc2lvbiBzdHJpbmcgKGUuZy4sIGNvbW1pdCBoYXNoIG9yIGJyYW5jaCBuYW1lKS5cbiAgICAgKiBAcmV0dXJucyBUaGUgY29udGVudCBvZiB0aGUgZmlsZSBhcyBhIHN0cmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEZpbGVDb250ZW50KHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgZmlsZVBhdGg6IHN0cmluZywgcmV2U3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gR2l0RmFjYWRlLmdldEZpbGVDb250ZW50KHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBmaWxlUGF0aCwgcmV2U3RyKTtcbiAgICB9XG59XG5cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBDbGllbnQ7XG59Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFBTSxZQUFZLEtBQUssS0FBSyxvREFBb0Q7QUFzVHpFLE1BQU0sT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFZaEIsT0FBYyxlQUFlLE1BQWMs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
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC9jbGllbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQG1vZHVsZSBnaXQvY2xpZW50XG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvZ2l0XG4gKiBAbmFtZSBDbGllbnRcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGBDbGllbnRgIGNsYXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIEdpdCByZXBvc2l0b3JpZXMgd2l0aGluIHRoZSBEaXJpZ2libGUgZW52aXJvbm1lbnQuIFRoZSBgQ2xpZW50YCBjbGFzcyBvZmZlcnMgbWV0aG9kcyBmb3IgaW5pdGlhbGl6aW5nIHJlcG9zaXRvcmllcywgY29tbWl0dGluZyBjaGFuZ2VzLCBtYW5hZ2luZyBicmFuY2hlcywgYW5kIHJldHJpZXZpbmcgcmVwb3NpdG9yeSBpbmZvcm1hdGlvbiBzdWNoIGFzIHN0YXR1cyBhbmQgaGlzdG9yeS4gSXQgYWJzdHJhY3RzIHRoZSB1bmRlcmx5aW5nIEdpdCBvcGVyYXRpb25zIHRocm91Z2ggYSBuYXRpdmUgSmF2YSBmYWNhZGUsIHByb3ZpZGluZyBhIHNpbXBsaWZpZWQgaW50ZXJmYWNlIGZvciBjb21tb24gR2l0IHRhc2tzIGluIHRoZSBjb250ZXh0IG9mIHdvcmtzcGFjZSBwcm9qZWN0cy5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlc1xuICogLSBSZXBvc2l0b3J5IGluaXRpYWxpemF0aW9uIHdpdGggYW4gaW5pdGlhbCBjb21taXQuXG4gKiAtIENvbW1pdHRpbmcgY2hhbmdlcyB3aXRoIG9wdGlvbnMgZm9yIHN0YWdpbmcgYW5kIGNvbW1pdCBtZXNzYWdlcy5cbiAqIC0gQnJhbmNoIG1hbmFnZW1lbnQsIGluY2x1ZGluZyBjcmVhdGlvbiwgZGVsZXRpb24sIGFuZCByZW5hbWluZyBvZiBsb2NhbCBhbmQgcmVtb3RlIGJyYW5jaGVzLlxuICogLSBQdWxsaW5nIGFuZCBwdXNoaW5nIGNoYW5nZXMgdG8gcmVtb3RlIHJlcG9zaXRvcmllcy5cbiAqIC0gUmV0cmlldmluZyByZXBvc2l0b3J5IHN0YXR1cywgY3VycmVudCBicmFuY2gsIGFuZCBjb21taXQgaGlzdG9yeS5cbiAqIFxuICogIyMjIFVzZSBDYXNlc1xuICogLSBNYW5hZ2luZyBHaXQgcmVwb3NpdG9yaWVzIGZvciBwcm9qZWN0cyB3aXRoaW4gdGhlIERpcmlnaWJsZSB3b3Jrc3BhY2UuXG4gKiAtIEF1dG9tYXRpbmcgR2l0IG9wZXJhdGlvbnMgYXMgcGFydCBvZiBhcHBsaWNhdGlvbiB3b3JrZmxvd3Mgb3IgQ0kvQ0QgcGlwZWxpbmVzLlxuICogLSBJbnRlZ3JhdGluZyBHaXQgZnVuY3Rpb25hbGl0eSBpbnRvIGN1c3RvbSBhcHBsaWNhdGlvbnMgb3IgbW9kdWxlcyB0aGF0IHJlcXVpcmUgdmVyc2lvbiBjb250cm9sIGNhcGFiaWxpdGllcy5cbiAqIFxuICogIyMjIEV4YW1wbGUgVXNhZ2VcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDbGllbnQgfSBmcm9tIFwiQGFlcm9raXQvc2RrL2dpdFwiO1xuICogXG4gKiAvLyBJbml0aWFsaXplIGEgbmV3IEdpdCByZXBvc2l0b3J5IGZvciBhIHByb2plY3RcbiAqIENsaWVudC5pbml0UmVwb3NpdG9yeShcIkFsaWNlXCIsIFwiYWxpY2VAZXhhbXBsZS5jb21cIik7XG4gKiBgYGBcbiAqL1xuXG5jb25zdCBHaXRGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZ2l0LkdpdEZhY2FkZVwiKTtcblxuLyoqXG4gKiBEZXNjcmliZXMgYSBmaWxlIHdpdGhpbiB0aGUgd29ya3NwYWNlLCBwb3RlbnRpYWxseSB3aXRoIEdpdCBzdGF0dXMgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZURlc2NyaXB0b3Ige1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgY29udGVudFR5cGU6IHN0cmluZztcbiAgICBzdGF0dXM6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBmb2xkZXIgd2l0aGluIHRoZSB3b3Jrc3BhY2UsIHBvdGVudGlhbGx5IHdpdGggR2l0IHN0YXR1cyBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb2xkZXJEZXNjcmlwdG9yIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHN0YXR1czogc3RyaW5nO1xuICAgIGZvbGRlcnM6IEZvbGRlckRlc2NyaXB0b3JbXTtcbiAgICBmaWxlczogRmlsZURlc2NyaXB0b3JbXTtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBHaXQtbWFuYWdlZCBwcm9qZWN0L3JlcG9zaXRvcnkgaW4gdGhlIHdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0RGVzY3JpcHRvciB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBnaXQ6IGJvb2xlYW47XG4gICAgZ2l0TmFtZTogc3RyaW5nO1xuICAgIGZvbGRlcnM6IEZvbGRlckRlc2NyaXB0b3JbXTtcbiAgICBmaWxlczogRmlsZURlc2NyaXB0b3JbXTtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBzaW5nbGUgR2l0IGNvbW1pdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRDb21taXRJbmZvIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGF1dGhvcjogc3RyaW5nO1xuICAgIGVtYWlsQWRkcmVzczogc3RyaW5nO1xuICAgIGRhdGVUaW1lOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5cbi8qKlxuICogRGVzY3JpYmVzIGEgR2l0IGJyYW5jaCAobG9jYWwgb3IgcmVtb3RlKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRCcmFuY2gge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICByZW1vdGU6IGJvb2xlYW47XG4gICAgY3VycmVudDogYm9vbGVhbjtcbiAgICBjb21taXRPYmplY3RJZDogc3RyaW5nO1xuICAgIGNvbW1pdFNob3J0SWQ6IHN0cmluZztcbiAgICBjb21taXREYXRlOiBzdHJpbmc7XG4gICAgY29tbWl0TWVzc2FnZTogc3RyaW5nO1xuICAgIGNvbW1pdEF1dGhvcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIGZpbGUgdGhhdCBoYXMgYmVlbiBjaGFuZ2VkIChzdGFnZWQgb3IgdW5zdGFnZWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdENoYW5nZWRGaWxlIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgdHlwZTogbnVtYmVyO1xufVxuXG4vKipcbiogVGhlIElHaXRDb25uZWN0b3IgcHJvdmlkZXMgdGhlIHNpbXBsaWZpZWQgbWV0aG9kcyBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGEgR2l0IFNDTSBzZXJ2ZXIuXG4qIFRoaXMgaW50ZXJmYWNlIGlzIHByaW1hcmlseSBpbXBsZW1lbnRlZCBieSB0aGUgb2JqZWN0IHJldHVybmVkIGZyb20gdGhlIG5hdGl2ZSBKYXZhIGZhY2FkZS5cbiovXG5leHBvcnQgaW50ZXJmYWNlIEdpdENvbm5lY3RvciB7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBvcmlnaW4gdXJscy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBmZXRjaCBhbmQgcHVzaCBVUkxzLlxuICAgICAqL1xuICAgIGdldE9yaWdpblVybHMoKTogeyBmZXRjaFVybDogc3RyaW5nOyBwdXNoVXJsOiBzdHJpbmc7IH07XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBmZXRjaCB1cmwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmV0Y2hVcmwgVGhlIG5ldyBmZXRjaCBVUkwuXG4gICAgICogQHRocm93cyBVUklTeW50YXhFeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIHNldEZldGNoVXJsKGZldGNoVXJsOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBwdXNoIHVybC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwdXNoVXJsIFRoZSBuZXcgcHVzaCBVUkwuXG4gICAgICogQHRocm93cyBVUklTeW50YXhFeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIHNldFB1c2hVcmwocHVzaFVybDogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogQWRkcyBmaWxlKHMpIHRvIHRoZSBzdGFnaW5nIGluZGV4LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbGVQYXR0ZXJuIEZpbGUgdG8gYWRkIGNvbnRlbnQgZnJvbS4gRXhhbXBsZTogXCIuXCIgaW5jbHVkZXMgYWxsIGZpbGVzLlxuICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24sIE5vRmlsZXBhdHRlcm5FeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIGFkZChmaWxlUGF0dGVybjogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogQWRkcyBkZWxldGVkIGZpbGUocykgdG8gdGhlIHN0YWdpbmcgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZVBhdHRlcm4gRmlsZSB0byBhZGQgY29udGVudCBmcm9tLiBFeGFtcGxlOiBcIi5cIiBpbmNsdWRlcyBhbGwgZmlsZXMuXG4gICAgICogQHRocm93cyBJT0V4Y2VwdGlvbiwgTm9GaWxlcGF0dGVybkV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgYWRkRGVsZXRlZChmaWxlUGF0dGVybjogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGZyb20gdGhlIGluZGV4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gYmUgcmVtb3ZlZC5cbiAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uLCBOb0ZpbGVwYXR0ZXJuRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICByZW1vdmUocGF0aDogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogUmV2ZXJ0IHRvIGhlYWQgcmV2aXNpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBiZSByZXZlcnRlZC5cbiAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uLCBOb0ZpbGVwYXR0ZXJuRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICByZXZlcnQocGF0aDogc3RyaW5nKTogdm9pZFxuXG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGNoYW5nZXMgdG8gdGhlIHN0YWdpbmcgaW5kZXgsIHRoZW4gcGVyZm9ybXMgYSBjb21taXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgY29tbWl0IG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbW1pdHRlci5cbiAgICAgKiBAcGFyYW0gZW1haWwgVGhlIGVtYWlsIG9mIHRoZSBjb21taXR0ZXIuXG4gICAgICogQHBhcmFtIGFsbCBJZiB0cnVlLCBhdXRvbWF0aWNhbGx5IHN0YWdlcyBtb2RpZmllZCBhbmQgZGVsZXRlZCBmaWxlcy5cbiAgICAgKiBAdGhyb3dzIFZhcmlvdXMgR2l0IGV4Y2VwdGlvbnNcbiAgICAgKi9cbiAgICBjb21taXQobWVzc2FnZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcsIGFsbDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIG5ldyBicmFuY2ggZnJvbSBhIHBhcnRpY3VsYXIgc3RhcnQgcG9pbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmV3IGJyYW5jaCBuYW1lLlxuICAgICAqIEBwYXJhbSBzdGFydFBvaW50IFZhbGlkIHRyZWUtaXNoIG9iamVjdCAoZS5nLiwgXCJtYXN0ZXJcIiwgXCJIRUFEXCIsIGNvbW1pdCBoYXNoKS5cbiAgICAgKiBAdGhyb3dzIFJlZkFscmVhZHlFeGlzdHNFeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIGNyZWF0ZUJyYW5jaChuYW1lOiBzdHJpbmcsIHN0YXJ0UG9pbnQ6IHN0cmluZyk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgdGhlIGJyYW5jaC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBicmFuY2ggbmFtZSB0byBkZWxldGUuXG4gICAgICogQHRocm93cyBSZWZBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICBkZWxldGVCcmFuY2gobmFtZTogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogUmVuYW1lcyB0aGUgYnJhbmNoLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9sZE5hbWUgVGhlIG9sZCBicmFuY2ggbmFtZS5cbiAgICAgKiBAcGFyYW0gbmV3TmFtZSBUaGUgbmV3IGJyYW5jaCBuYW1lLlxuICAgICAqIEB0aHJvd3MgUmVmQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgcmVuYW1lQnJhbmNoKG9sZE5hbWU6IHN0cmluZywgbmV3TmFtZTogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBuZXcgcmVtb3RlIGJyYW5jaCBmcm9tIGEgcGFydGljdWxhciBzdGFydCBwb2ludC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBicmFuY2ggbmFtZS5cbiAgICAgKiBAcGFyYW0gc3RhcnRQb2ludCBWYWxpZCB0cmVlLWlzaCBvYmplY3QuXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFVzZXJuYW1lIGZvciB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFBhc3N3b3JkIGZvciB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICogQHRocm93cyBSZWZBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICBjcmVhdGVSZW1vdGVCcmFuY2gobmFtZTogc3RyaW5nLCBzdGFydFBvaW50OiBzdHJpbmcsIHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIHRoZSByZW1vdGUgYnJhbmNoLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlbW90ZSBicmFuY2ggdG8gZGVsZXRlLlxuICAgICAqIEBwYXJhbSB1c2VybmFtZSBVc2VybmFtZSBmb3IgdGhlIHJlbW90ZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBwYXNzd29yZCBQYXNzd29yZCBmb3IgdGhlIHJlbW90ZSByZXBvc2l0b3J5LlxuICAgICAqIEB0aHJvd3MgUmVmQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgZGVsZXRlUmVtb3RlQnJhbmNoKG5hbWU6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIENoZWNrb3V0IHRvIGEgdmFsaWQgdHJlZS1pc2ggb2JqZWN0IChlLmcuLCBicmFuY2ggbmFtZSwgY29tbWl0IGhhc2gpLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIHRyZWUtaXNoIG9iamVjdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgSkdpdCBSZWYgb2JqZWN0LlxuICAgICAqIEB0aHJvd3MgUmVmQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgY2hlY2tvdXQobmFtZTogc3RyaW5nKTogYW55XG5cbiAgICAvKipcbiAgICAgKiBIYXJkIHJlc2V0IHRoZSByZXBvc2l0b3J5LiBSZXNldHMgd29ya2luZyBkaXJlY3RvcnkgYW5kIHN0YWdpbmcgaW5kZXggdG8gbWF0Y2ggdGhlIEdpdCByZXBvc2l0b3J5IEhFQUQuXG4gICAgICpcbiAgICAgKiBAdGhyb3dzIENoZWNrb3V0Q29uZmxpY3RFeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIGhhcmRSZXNldCgpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBGZXRjaGVzIGZyb20gYSByZW1vdGUgcmVwb3NpdG9yeSBhbmQgdHJpZXMgdG8gbWVyZ2UgaW50byB0aGUgY3VycmVudCBicmFuY2ggKFB1bGwpLlxuICAgICAqXG4gICAgICogQHRocm93cyBWYXJpb3VzIEdpdCBleGNlcHRpb25zXG4gICAgICovXG4gICAgcHVsbCgpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBGZXRjaGVzIGZyb20gYSByZW1vdGUgcmVwb3NpdG9yeSBhbmQgdHJpZXMgdG8gbWVyZ2UgaW50byB0aGUgY3VycmVudCBicmFuY2ggKFB1bGwpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFVzZXJuYW1lIGZvciB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFBhc3N3b3JkIGZvciB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICogQHRocm93cyBWYXJpb3VzIEdpdCBleGNlcHRpb25zXG4gICAgICovXG4gICAgcHVsbCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogUHVzaGVzIHRoZSBjb21taXR0ZWQgY2hhbmdlcyB0byB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlcm5hbWUgZm9yIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgUGFzc3dvcmQgZm9yIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAdGhyb3dzIEludmFsaWRSZW1vdGVFeGNlcHRpb24sIFRyYW5zcG9ydEV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgcHVzaCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogVHJpZXMgdG8gcmViYXNlIHRoZSBzZWxlY3RlZCBicmFuY2ggb24gdG9wIG9mIHRoZSBjdXJyZW50IG9uZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBicmFuY2ggdG8gcmViYXNlLlxuICAgICAqIEB0aHJvd3MgTm9IZWFkRXhjZXB0aW9uLCBXcm9uZ1JlcG9zaXRvcnlTdGF0ZUV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgcmViYXNlKG5hbWU6IHN0cmluZyk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIEdpdCByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIEpHaXQgU3RhdHVzIG9iamVjdC5cbiAgICAgKiBAdGhyb3dzIE5vV29ya1RyZWVFeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIHN0YXR1cygpOiBhbnlcblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBicmFuY2ggb2YgdGhlIEdpdCByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIGJyYW5jaCBuYW1lIGFzIGEgc3RyaW5nLlxuICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb25cbiAgICAgKi9cbiAgICBnZXRCcmFuY2goKTogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBMaXN0IGFsbCB0aGUgbG9jYWwgYnJhbmNoZXMgaW5mby5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgbGlzdCBvZiBsb2NhbCB7QGxpbmsgR2l0QnJhbmNofSBvYmplY3RzLlxuICAgICAqIEB0aHJvd3MgR2l0Q29ubmVjdG9yRXhjZXB0aW9uXG4gICAgICovXG4gICAgZ2V0TG9jYWxCcmFuY2hlcygpOiBHaXRCcmFuY2hbXVxuXG4gICAgLyoqXG4gICAgICogTGlzdCBhbGwgdGhlIHJlbW90ZSBicmFuY2hlcyBpbmZvLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBsaXN0IG9mIHJlbW90ZSB7QGxpbmsgR2l0QnJhbmNofSBvYmplY3RzLlxuICAgICAqIEB0aHJvd3MgR2l0Q29ubmVjdG9yRXhjZXB0aW9uXG4gICAgICovXG4gICAgZ2V0UmVtb3RlQnJhbmNoZXMoKTogR2l0QnJhbmNoW11cblxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBsaXN0IG9mIHRoZSB1bnN0YWdlZCBmaWxlcy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgbGlzdCBvZiB7QGxpbmsgR2l0Q2hhbmdlZEZpbGV9IG9iamVjdHMuXG4gICAgICogQHRocm93cyBHaXRDb25uZWN0b3JFeGNlcHRpb25cbiAgICAgKi9cbiAgICBnZXRVbnN0YWdlZENoYW5nZXMoKTogR2l0Q2hhbmdlZEZpbGVbXVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBsaXN0IG9mIHRoZSBzdGFnZWQgZmlsZXMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBIGxpc3Qgb2Yge0BsaW5rIEdpdENoYW5nZWRGaWxlfSBvYmplY3RzLlxuICAgICAqIEB0aHJvd3MgR2l0Q29ubmVjdG9yRXhjZXB0aW9uXG4gICAgICovXG4gICAgZ2V0U3RhZ2VkQ2hhbmdlcygpOiBHaXRDaGFuZ2VkRmlsZVtdXG5cbiAgICAvKipcbiAgICAgKiBHZXQgZmlsZSBjb250ZW50IGZyb20gdGhlIEhFQUQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgZmlsZSBwYXRoLlxuICAgICAqIEBwYXJhbSByZXZTdHIgVGhlIHJldmlzaW9uIHN0cmluZyAoZS5nLiwgY29tbWl0IGhhc2gsIGJyYW5jaCBuYW1lKS5cbiAgICAgKiBAcmV0dXJucyBUaGUgY29udGVudCBvZiB0aGUgZmlsZSBhcyBhIHN0cmluZy5cbiAgICAgKiBAdGhyb3dzIEdpdENvbm5lY3RvckV4Y2VwdGlvblxuICAgICAqL1xuICAgIGdldEZpbGVDb250ZW50KHBhdGg6IHN0cmluZywgcmV2U3RyOiBzdHJpbmcpOiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIEdldCBoaXN0b3J5IG9mIHRoZSByZXBvc2l0b3J5IG9yIGEgc3BlY2lmaWMgZmlsZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGggb3IgbnVsbCB0byBnZXQgdGhlIGVudGlyZSByZXBvc2l0b3J5IGhpc3RvcnkuXG4gICAgICogQHJldHVybnMgQSBsaXN0IG9mIHtAbGluayBHaXRDb21taXRJbmZvfSBvYmplY3RzLlxuICAgICAqIEB0aHJvd3MgR2l0Q29ubmVjdG9yRXhjZXB0aW9uXG4gICAgICovXG4gICAgZ2V0SGlzdG9yeShwYXRoOiBzdHJpbmcpOiBHaXRDb21taXRJbmZvW11cbn1cblxuLyoqXG4gKiBTdGF0aWMgY2xpZW50IGZhY2FkZSBmb3Igd29ya3NwYWNlLWxldmVsIEdpdCBvcGVyYXRpb25zLCBhYnN0cmFjdGluZyB0aGUgbmF0aXZlIEdpdEZhY2FkZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsaWVudCB7XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBHaXQgcmVwb3NpdG9yeSBmb3IgYSBwcm9qZWN0LCBwZXJmb3JtcyBhbiBpbml0aWFsIGNvbW1pdCwgYW5kIHB1c2hlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VyIFRoZSB1c2VybmFtZSBvZiB0aGUgY29tbWl0dGVyLlxuICAgICAqIEBwYXJhbSBlbWFpbCBUaGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgY29tbWl0dGVyLlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHByb2plY3ROYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0LlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeSAod2hlcmUgdG8gcHV0IHRoZSBnaXQgZm9sZGVyKS5cbiAgICAgKiBAcGFyYW0gY29tbWl0TWVzc2FnZSBUaGUgaW5pdGlhbCBjb21taXQgbWVzc2FnZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGluaXRSZXBvc2l0b3J5KHVzZXI6IHN0cmluZywgZW1haWw6IHN0cmluZywgd29ya3NwYWNlTmFtZTogc3RyaW5nLCBwcm9qZWN0TmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBjb21taXRNZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgR2l0RmFjYWRlLmluaXRSZXBvc2l0b3J5KHVzZXIsIGVtYWlsLCB3b3Jrc3BhY2VOYW1lLCBwcm9qZWN0TmFtZSwgcmVwb3NpdG9yeU5hbWUsIGNvbW1pdE1lc3NhZ2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgY29tbWl0IGluIHRoZSBzcGVjaWZpZWQgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VyIFRoZSB1c2VybmFtZSBvZiB0aGUgY29tbWl0dGVyLlxuICAgICAqIEBwYXJhbSBlbWFpbCBUaGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgY29tbWl0dGVyLlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBjb21taXRNZXNzYWdlIFRoZSBjb21taXQgbWVzc2FnZS5cbiAgICAgKiBAcGFyYW0gYWxsIElmIHRydWUsIGF1dG9tYXRpY2FsbHkgc3RhZ2VzIG1vZGlmaWVkIGFuZCBkZWxldGVkIGZpbGVzIGJlZm9yZSBjb21taXR0aW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY29tbWl0KHVzZXI6IHN0cmluZywgZW1haWw6IHN0cmluZywgd29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBjb21taXRNZXNzYWdlOiBzdHJpbmcsIGFsbDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUuY29tbWl0KHVzZXIsIGVtYWlsLCB3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgY29tbWl0TWVzc2FnZSwgYWxsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCBHaXQgcmVwb3NpdG9yaWVzIChwcm9qZWN0cykgd2l0aGluIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB7QGxpbmsgUHJvamVjdERlc2NyaXB0b3J9IG9iamVjdHMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRHaXRSZXBvc2l0b3JpZXMod29ya3NwYWNlTmFtZTogc3RyaW5nKTogUHJvamVjdERlc2NyaXB0b3JbXSB7XG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuZ2V0R2l0UmVwb3NpdG9yaWVzKHdvcmtzcGFjZU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgY29tbWl0IGhpc3RvcnkgZm9yIHRoZSBzcGVjaWZpZWQgcmVwb3NpdG9yeSBvciBhIHNwZWNpZmljIGZpbGUgcGF0aCB3aXRoaW4gaXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgZmlsZSBwYXRoIGZvciBoaXN0b3J5LCBvciBudWxsL2VtcHR5IHN0cmluZyBmb3IgZnVsbCByZXBvc2l0b3J5IGhpc3RvcnkuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2Yge0BsaW5rIEdpdENvbW1pdEluZm99IG9iamVjdHMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRIaXN0b3J5KHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcGF0aDogc3RyaW5nKTogR2l0Q29tbWl0SW5mb1tdIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5nZXRIaXN0b3J5KHJlcG9zaXRvcnlOYW1lLCB3b3Jrc3BhY2VOYW1lLCBwYXRoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIHRoZSBzcGVjaWZpZWQgR2l0IHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeSB0byBkZWxldGUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWxldGVSZXBvc2l0b3J5KHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICByZXR1cm4gR2l0RmFjYWRlLmRlbGV0ZVJlcG9zaXRvcnkod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb25lcyBhIHJlbW90ZSByZXBvc2l0b3J5IGludG8gdGhlIGxvY2FsIHdvcmtzcGFjZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlVcmkgVGhlIFVSSSBvZiB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFRoZSB1c2VybmFtZSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFRoZSBwYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICogQHBhcmFtIGJyYW5jaCBUaGUgc3BlY2lmaWMgYnJhbmNoIHRvIGNoZWNrb3V0IGFmdGVyIGNsb25pbmcuXG4gICAgICogQHJldHVybnMgQSBHaXRDb25uZWN0b3IgaW5zdGFuY2UgZm9yIGludGVyYWN0aW5nIGRpcmVjdGx5IHdpdGggdGhlIGNsb25lZCByZXBvc2l0b3J5LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY2xvbmVSZXBvc2l0b3J5KHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeVVyaTogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBicmFuY2g6IHN0cmluZyk6IEdpdENvbm5lY3RvciB7XG4gICAgICAgIC8vIFRoZSBuYXRpdmUgR2l0RmFjYWRlIHJldHVybnMgYSBKYXZhIG9iamVjdCBpbXBsZW1lbnRpbmcgR2l0Q29ubmVjdG9yXG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuY2xvbmVSZXBvc2l0b3J5KHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlVcmksIHVzZXJuYW1lLCBwYXNzd29yZCwgYnJhbmNoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQdWxscyBjaGFuZ2VzIGZyb20gdGhlIHJlbW90ZSByZXBvc2l0b3J5IGFuZCBhdHRlbXB0cyB0byBtZXJnZSB0aGVtIGludG8gdGhlIGN1cnJlbnQgYnJhbmNoLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFRoZSB1c2VybmFtZSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFRoZSBwYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBwdWxsKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUucHVsbCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgdXNlcm5hbWUsIHBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQdXNoZXMgdGhlIGxvY2FsIGNvbW1pdHMgdG8gdGhlIHJlbW90ZSByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFRoZSB1c2VybmFtZSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFRoZSBwYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBwdXNoKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUucHVzaCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgdXNlcm5hbWUsIHBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgb3V0IGEgc3BlY2lmaWMgYnJhbmNoLCBjb21taXQsIG9yIHRhZyBpbiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBicmFuY2ggVGhlIGJyYW5jaCBvciB0cmVlLWlzaCBvYmplY3QgdG8gY2hlY2sgb3V0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY2hlY2tvdXQod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUuY2hlY2tvdXQod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUsIGJyYW5jaCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBicmFuY2ggc3RhcnRpbmcgZnJvbSBhIHNwZWNpZmllZCBwb2ludCAoZS5nLiwgSEVBRCwgYSBjb21taXQgaGFzaCwgb3IgYW5vdGhlciBicmFuY2gpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIGJyYW5jaCBUaGUgbmFtZSBvZiB0aGUgbmV3IGJyYW5jaCB0byBjcmVhdGUuXG4gICAgICogQHBhcmFtIHN0YXJ0aW5nUG9pbnQgVGhlIHRyZWUtaXNoIG9iamVjdCB0byBzdGFydCB0aGUgbmV3IGJyYW5jaCBmcm9tLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlQnJhbmNoKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgYnJhbmNoOiBzdHJpbmcsIHN0YXJ0aW5nUG9pbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUuY3JlYXRlQnJhbmNoKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBicmFuY2gsIHN0YXJ0aW5nUG9pbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSBsb2NhbCBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gYnJhbmNoIFRoZSBuYW1lIG9mIHRoZSBicmFuY2ggdG8gZGVsZXRlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVsZXRlQnJhbmNoKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgYnJhbmNoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgR2l0RmFjYWRlLmRlbGV0ZUJyYW5jaCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgYnJhbmNoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW5hbWVzIGEgbG9jYWwgYnJhbmNoLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIG9sZE5hbWUgVGhlIGN1cnJlbnQgbmFtZSBvZiB0aGUgYnJhbmNoLlxuICAgICAqIEBwYXJhbSBuZXdOYW1lIFRoZSBuZXcgbmFtZSBmb3IgdGhlIGJyYW5jaC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlbmFtZUJyYW5jaCh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIG9sZE5hbWU6IHN0cmluZywgbmV3TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5yZW5hbWVCcmFuY2god29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUsIG9sZE5hbWUsIG5ld05hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgcmVtb3RlIGJyYW5jaCBvbiB0aGUgR2l0IHNlcnZlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBicmFuY2ggVGhlIG5hbWUgb2YgdGhlIHJlbW90ZSBicmFuY2ggdG8gY3JlYXRlLlxuICAgICAqIEBwYXJhbSBzdGFydGluZ1BvaW50IFRoZSB0cmVlLWlzaCBvYmplY3QgdG8gc3RhcnQgdGhlIG5ldyByZW1vdGUgYnJhbmNoIGZyb20uXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFRoZSB1c2VybmFtZSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFRoZSBwYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVSZW1vdGVCcmFuY2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZywgc3RhcnRpbmdQb2ludDogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5jcmVhdGVSZW1vdGVCcmFuY2god29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUsIGJyYW5jaCwgc3RhcnRpbmdQb2ludCwgdXNlcm5hbWUsIHBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgcmVtb3RlIGJyYW5jaCBvbiB0aGUgR2l0IHNlcnZlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBicmFuY2ggVGhlIG5hbWUgb2YgdGhlIHJlbW90ZSBicmFuY2ggdG8gZGVsZXRlLlxuICAgICAqIEBwYXJhbSB1c2VybmFtZSBUaGUgdXNlcm5hbWUgZm9yIGF1dGhlbnRpY2F0aW9uLlxuICAgICAqIEBwYXJhbSBwYXNzd29yZCBUaGUgcGFzc3dvcmQgZm9yIGF1dGhlbnRpY2F0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVsZXRlUmVtb3RlQnJhbmNoKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgYnJhbmNoOiBzdHJpbmcsIHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgR2l0RmFjYWRlLmRlbGV0ZVJlbW90ZUJyYW5jaCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgYnJhbmNoLCB1c2VybmFtZSwgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2V0cyB0aGUgcmVwb3NpdG9yeSwgZGlzY2FyZGluZyBhbGwgdW5jb21taXR0ZWQgY2hhbmdlcyBpbiB0aGUgd29ya2luZyBkaXJlY3RvcnkgYW5kIGluZGV4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBoYXJkUmVzZXQod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5oYXJkUmVzZXQod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlYXBwbGllcyBjb21taXRzIGZyb20gdGhlIHNwZWNpZmllZCBicmFuY2ggb250byB0aGUgY3VycmVudCBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gYnJhbmNoIFRoZSBicmFuY2ggdG8gcmViYXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmViYXNlKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgYnJhbmNoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgR2l0RmFjYWRlLnJlYmFzZSh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgYnJhbmNoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSByZXBvc2l0b3J5IChzdGFnZWQsIHVuc3RhZ2VkLCB1bnRyYWNrZWQgZmlsZXMpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlcG9zaXRvcnkgc3RhdHVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc3RhdHVzKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuc3RhdHVzKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJhbmNoLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHJldHVybnMgVGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgYnJhbmNoLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QnJhbmNoKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuZ2V0QnJhbmNoKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCBsb2NhbCBicmFuY2hlcyBpbiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHtAbGluayBHaXRCcmFuY2h9IG9iamVjdHMgcmVwcmVzZW50aW5nIGxvY2FsIGJyYW5jaGVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TG9jYWxCcmFuY2hlcyh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBHaXRCcmFuY2hbXSB7XG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuZ2V0TG9jYWxCcmFuY2hlcyh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBhbGwgcmVtb3RlIGJyYW5jaGVzIGNvbmZpZ3VyZWQgZm9yIHRoZSByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2Yge0BsaW5rIEdpdEJyYW5jaH0gb2JqZWN0cyByZXByZXNlbnRpbmcgcmVtb3RlIGJyYW5jaGVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVtb3RlQnJhbmNoZXMod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogR2l0QnJhbmNoW10ge1xuICAgICAgICByZXR1cm4gR2l0RmFjYWRlLmdldFJlbW90ZUJyYW5jaGVzKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCB1bnN0YWdlZCBmaWxlcyAoY2hhbmdlcyBub3QgeWV0IGFkZGVkIHRvIHRoZSBpbmRleCkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB7QGxpbmsgR2l0Q2hhbmdlZEZpbGV9IG9iamVjdHMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRVbnN0YWdlZENoYW5nZXMod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogR2l0Q2hhbmdlZEZpbGVbXSB7XG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuZ2V0VW5zdGFnZWRDaGFuZ2VzKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCBzdGFnZWQgZmlsZXMgKGNoYW5nZXMgYWRkZWQgdG8gdGhlIGluZGV4LCByZWFkeSBmb3IgY29tbWl0KS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHtAbGluayBHaXRDaGFuZ2VkRmlsZX0gb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFN0YWdlZENoYW5nZXMod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogR2l0Q2hhbmdlZEZpbGVbXSB7XG4gICAgICAgIC8vIENvcnJlY3RlZCByZXR1cm4gdHlwZSB0byBhcnJheSBvZiBHaXRDaGFuZ2VkRmlsZVxuICAgICAgICByZXR1cm4gR2l0RmFjYWRlLmdldFN0YWdlZENoYW5nZXMod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgY29udGVudCBvZiBhIGZpbGUgYXQgYSBzcGVjaWZpYyByZXZpc2lvbiAoY29tbWl0LCBicmFuY2gsIG9yIHRhZykuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gZmlsZVBhdGggVGhlIHBhdGggdG8gdGhlIGZpbGUuXG4gICAgICogQHBhcmFtIHJldlN0ciBUaGUgcmV2aXNpb24gc3RyaW5nIChlLmcuLCBjb21taXQgaGFzaCBvciBicmFuY2ggbmFtZSkuXG4gICAgICogQHJldHVybnMgVGhlIGNvbnRlbnQgb2YgdGhlIGZpbGUgYXMgYSBzdHJpbmcuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRGaWxlQ29udGVudCh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcsIHJldlN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5nZXRGaWxlQ29udGVudCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgZmlsZVBhdGgsIHJldlN0cik7XG4gICAgfVxufVxuXG5cbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuXHQvLyBAdHMtaWdub3JlXG5cdG1vZHVsZS5leHBvcnRzID0gQ2xpZW50O1xufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZCQSxNQUFNLFlBQVksS0FBSyxLQUFLLG9EQUFvRDtBQXNUekUsTUFBTSxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVloQixPQUFjLGVBQWUsTUFBYyxPQUFlLGVBQXVCLGFBQXFCLGdCQUF3QixlQUE2QjtBQUN2SixjQUFVLGVBQWUsTUFBTSxPQUFPLGVBQWUsYUFBYSxnQkFBZ0IsYUFBYTtBQUFBLEVBQ25HO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVlBLE9BQWMsT0FBTyxNQUFjLE9BQWUsZUFBdUIsZ0JBQXdCLGVBQXVCLEtBQW9CO0FBQ3hJLGNBQVUsT0FBTyxNQUFNLE9BQU8sZUFBZSxnQkFBZ0IsZUFBZSxHQUFHO0FBQUEsRUFDbkY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsbUJBQW1CLGVBQTRDO0FBQ3pFLFdBQU8sVUFBVSxtQkFBbUIsYUFBYTtBQUFBLEVBQ3JEO0FBQUE7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
|
package/dist/cjs/git/index.js
CHANGED
|
@@ -23,4 +23,4 @@ __export(git_exports, {
|
|
|
23
23
|
module.exports = __toCommonJS(git_exports);
|
|
24
24
|
__reExport(git_exports, require("./client"), module.exports);
|
|
25
25
|
var import_client = require("./client");
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbW9kdWxlIGdpdC9pbmRleFxuICogQHBhY2thZ2UgQGFlcm9raXQvc2RrL2dpdFxuICogQG92ZXJ2aWV3XG4gKiBcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdGllcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBHaXQgcmVwb3NpdG9yaWVzIHdpdGhpbiB0aGUgQWVyb2tpdCBTREsuIEl0IGluY2x1ZGVzIGNsYXNzZXMgYW5kIG1ldGhvZHMgZm9yIGNvbm5lY3RpbmcgdG8gR2l0IHJlcG9zaXRvcmllcywgcGVyZm9ybWluZyBvcGVyYXRpb25zIHN1Y2ggYXMgY2xvbmluZywgY29tbWl0dGluZywgcHVzaGluZywgYW5kIHB1bGxpbmcgY2hhbmdlcywgYW5kIG1hbmFnaW5nIEdpdCBjb25maWd1cmF0aW9ucy5cbiAqIFxuICogVGhlIG1haW4gY29tcG9uZW50cyBvZiB0aGlzIG1vZHVsZSBhcmU6XG4gKiAtIENsaWVudDogUmVwcmVzZW50cyBhIGNsaWVudCBmb3IgY29ubmVjdGluZyB0byBhIEdpdCByZXBvc2l0b3J5IGFuZCBwcm92aWRlcyBtZXRob2RzIHRvIHBlcmZvcm0gdmFyaW91cyBHaXQgb3BlcmF0aW9ucy5cbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jbGllbnRcIjtcbmV4cG9ydCB7IENsaWVudCBhcyBjbGllbnQgfSBmcm9tIFwiLi9jbGllbnRcIjtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXQSx3QkFBYyxxQkFYZDtBQVlBLG9CQUFpQzsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -221,4 +221,4 @@ function buildUrl(url, options) {
|
|
|
221
221
|
if (typeof module !== "undefined") {
|
|
222
222
|
module.exports = { HttpAsyncClient, getInstance };
|
|
223
223
|
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvY2xpZW50LWFzeW5jLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIFByb3ZpZGVzIGEgSmF2YVNjcmlwdC9UeXBlU2NyaXB0IHdyYXBwZXIgKEZhY2FkZSkgZm9yIG1ha2luZyBhc3luY2hyb25vdXMgSFRUUCByZXF1ZXN0cy5cbiAqXG4gKi9cblxuLy8gLS0tIFNoYXJlZCBJbnRlcmZhY2VzIChmb3IgZG9jdW1lbnRhdGlvbiBjbGFyaXR5KSAtLS1cblxuLyoqIERlZmluZXMgYSBzaW5nbGUgSFRUUCBoZWFkZXIsIHVzZWQgZm9yIGJvdGggcmVxdWVzdCBhbmQgcmVzcG9uc2UuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDbGllbnRIZWFkZXIge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgaGVhZGVyIChlLmcuLCAnQ29udGVudC1UeXBlJywgJ0F1dGhvcml6YXRpb24nKS4gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyLiAqL1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKiBEZWZpbmVzIGEgcXVlcnkgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgVVJMLiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50UGFyYW0ge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgVVJMIHF1ZXJ5IHBhcmFtZXRlciAoZS5nLiwgJ2lkJykuICovXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKiBUaGUgdmFsdWUgb2YgdGhlIFVSTCBxdWVyeSBwYXJhbWV0ZXIuICovXG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqIERlZmluZXMgYSBmaWxlIHRvIGJlIGluY2x1ZGVkIGluIGEgbXVsdGktcGFydCBmb3JtIGRhdGEgcmVxdWVzdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudEZpbGUge1xuICAgIC8qKiBUaGUgZm9ybSBmaWVsZCBuYW1lIGZvciB0aGUgZmlsZS4gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBmaWxlIHBhdGggb3IgY29udGVudC4gKi9cbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKiogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBhbiBIVFRQIHJlcXVlc3QsIG1pcnJvcmluZyB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSB1bmRlcmx5aW5nIEphdmEgY2xpZW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMge1xuICAgIGV4cGVjdENvbnRpbnVlRW5hYmxlZD86IGJvb2xlYW47XG4gICAgcHJveHlIb3N0Pzogc3RyaW5nO1xuICAgIHByb3h5UG9ydD86IG51bWJlcjtcbiAgICBjb29raWVTcGVjPzogc3RyaW5nO1xuICAgIHJlZGlyZWN0c0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIHJlbGF0aXZlUmVkaXJlY3RzQWxsb3dlZD86IGJvb2xlYW47XG4gICAgY2lyY3VsYXJSZWRpcmVjdHNBbGxvd2VkPzogYm9vbGVhbjtcbiAgICBtYXhSZWRpcmVjdHM/OiBudW1iZXI7XG4gICAgYXV0aGVudGljYXRpb25FbmFibGVkPzogYm9vbGVhbjtcbiAgICB0YXJnZXRQcmVmZXJyZWRBdXRoU2NoZW1lcz86IHN0cmluZ1tdO1xuICAgIHByb3h5UHJlZmVycmVkQXV0aFNjaGVtZXM/OiBzdHJpbmdbXTtcbiAgICBjb25uZWN0aW9uUmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG4gICAgY29ubmVjdFRpbWVvdXQ/OiBudW1iZXI7XG4gICAgc29ja2V0VGltZW91dD86IG51bWJlcjtcbiAgICBjb250ZW50Q29tcHJlc3Npb25FbmFibGVkPzogYm9vbGVhbjtcbiAgICBzc2xUcnVzdEFsbEVuYWJsZWQ/OiBib29sZWFuO1xuICAgIGRhdGE/OiBhbnlbXTtcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIGZpbGVzPzogSHR0cENsaWVudEZpbGVbXTtcbiAgICBjaGFyYWN0ZXJFbmNvZGluZz86IHN0cmluZztcbiAgICBjaGFyYWN0ZXJFbmNvZGluZ0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuICAgIGhlYWRlcnM/OiBIdHRwQ2xpZW50SGVhZGVyW107XG4gICAgcGFyYW1zPzogSHR0cENsaWVudFBhcmFtW107XG4gICAgYmluYXJ5PzogYm9vbGVhbjtcbiAgICBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqIFRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHJlc3BvbnNlIHJldHVybmVkIGJ5IHRoZSBIdHRwQ2xpZW50IG1ldGhvZHMuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDbGllbnRSZXNwb25zZSB7XG4gICAgLyoqIFRoZSBIVFRQIHN0YXR1cyBjb2RlIChlLmcuLCAyMDAsIDQwNCwgNTAwKS4gKi9cbiAgICBzdGF0dXNDb2RlOiBudW1iZXI7XG4gICAgLyoqIFRoZSBzdGF0dXMgbWVzc2FnZSByZXR1cm5lZCBieSB0aGUgc2VydmVyIChlLmcuLCAnT0snLCAnTm90IEZvdW5kJykuICovXG4gICAgc3RhdHVzTWVzc2FnZTogc3RyaW5nO1xuICAgIC8qKiBSZXNwb25zZSBib2R5IGNvbnRlbnQgYXMgYW4gYXJyYXkgb2YgYnl0ZXMgKGlmIHJlcXVlc3RlZCBhcyBiaW5hcnkpLiAqL1xuICAgIGRhdGE6IGFueVtdO1xuICAgIC8qKiBSZXNwb25zZSBib2R5IGNvbnRlbnQgYXMgYSBkZWNvZGVkIHN0cmluZy4gKi9cbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwcm90b2NvbCB1c2VkIChlLmcuLCAnSFRUUC8xLjEnKS4gKi9cbiAgICBwcm90b2NvbDogc3RyaW5nO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIHJlc3BvbnNlIHdhcyBwcm9jZXNzZWQgYXMgYmluYXJ5IGRhdGEuICovXG4gICAgYmluYXJ5OiBib29sZWFuO1xuICAgIC8qKiBBcnJheSBvZiBhbGwgaGVhZGVycyByZWNlaXZlZCBpbiB0aGUgcmVzcG9uc2UuICovXG4gICAgaGVhZGVyczogSHR0cENsaWVudEhlYWRlcltdXG59XG5cbi8vIC0tLSBBc3luY2hyb25vdXMgQ2xpZW50IEludGVyZmFjZXMgLS0tXG5cbi8qKlxuICogRGVmaW5lcyB0aGUgY2FsbGJhY2sgc3RydWN0dXJlIGZvciBhc3luY2hyb25vdXMgcmVxdWVzdHMuXG4gKiBOb3RlOiBDYWxsYmFja3MgYXJlIHByb3ZpZGVkIGFzIHN0cmluZ3MgY29udGFpbmluZyBleGVjdXRhYmxlIEphdmFTY3JpcHQgY29kZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50QXN5bmNDb25maWcge1xuICAgIC8qKlxuICAgICAqIE1hbmRhdG9yeSBzdWNjZXNzIGNhbGxiYWNrIGFzIGEgKipzdHJpbmcgb2YgSmF2YVNjcmlwdCBjb2RlKiouXG4gICAgICogSXQgd2lsbCBiZSBleGVjdXRlZCB3aXRoIHNpZ25hdHVyZTogYChyZXNwb25zZTogSHR0cENsaWVudFJlc3BvbnNlLCBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiB2b2lkYFxuICAgICAqL1xuICAgIHN1Y2Nlc3M6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBlcnJvciBjYWxsYmFjayBhcyBhICoqc3RyaW5nIG9mIEphdmFTY3JpcHQgY29kZSoqLlxuICAgICAqIEl0IHdpbGwgYmUgZXhlY3V0ZWQgd2l0aCBzaWduYXR1cmU6IGAoZXhjZXB0aW9uOiBhbnkpID0+IHZvaWRgXG4gICAgICovXG4gICAgZXJyb3I/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgY2FuY2VsIGNhbGxiYWNrIGFzIGEgKipzdHJpbmcgb2YgSmF2YVNjcmlwdCBjb2RlKiouXG4gICAgICogSXQgd2lsbCBiZSBleGVjdXRlZCB3aXRoIHNpZ25hdHVyZTogYCgpID0+IHZvaWRgXG4gICAgICovXG4gICAgY2FuY2VsPzogc3RyaW5nO1xufVxuXG5cbi8vIC0tLSBKYXZhIFR5cGUgSW1wb3J0cyAoQ3J1Y2lhbCBmb3IgSlZNIGludGVncmF0aW9uKSAtLS1cblxuLyoqIEltcG9ydHMgdGhlIG5hdGl2ZSBKYXZhIGNsYXNzIHJlc3BvbnNpYmxlIGZvciBhc3luY2hyb25vdXMgSFRUUCBleGVjdXRpb24uICovXG5jb25zdCBIdHRwQ2xpZW50QXN5bmNGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuaHR0cC5IdHRwQ2xpZW50QXN5bmNGYWNhZGVcIik7XG5cbi8qKiBJbXBvcnRzIHRoZSBuYXRpdmUgSmF2YSBjbGFzcyBmb3IgcmV0cmlldmluZyBTcHJpbmctbWFuYWdlZCBiZWFucy4gKi9cbmNvbnN0IFNwcmluZ0JlYW5Qcm92aWRlciA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLnNwcmluZy5TcHJpbmdCZWFuUHJvdmlkZXJcIik7XG5cbi8qKiBSZXRyaWV2ZXMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgYXN5bmNocm9ub3VzIEhUVFAgY2xpZW50IGZyb20gdGhlIFNwcmluZyBjb250ZXh0LiAqL1xuY29uc3QgaHR0cENsaWVudCA9IFNwcmluZ0JlYW5Qcm92aWRlci5nZXRCZWFuKEh0dHBDbGllbnRBc3luY0ZhY2FkZS5jbGFzcyk7XG5cblxuLyoqXG4gKiBUaGUgYXN5bmNocm9ub3VzIEhUVFAgY2xpZW50IGNsYXNzLiBBbGwgcmVxdWVzdCBtZXRob2RzIHJldHVybiBpbW1lZGlhdGVseVxuICogYW5kIGV4ZWN1dGUgY2FsbGJhY2tzIHVwb24gY29tcGxldGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEh0dHBBc3luY0NsaWVudCB7XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBHRVQgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zIChlLmcuLCBoZWFkZXJzLCBib2R5LCBwYXJhbXMpLlxuICAgICAqL1xuXHRnZXRBc3luYyh1cmw6IHN0cmluZywgY29uZmlnOiBIdHRwQ2xpZW50QXN5bmNDb25maWcsIG9wdGlvbnM/OiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMpOiB2b2lkIHtcblx0XHRjb25zdCBuZXdVcmwgPSBidWlsZFVybCh1cmwsIG9wdGlvbnMpO1xuXHRcdGNvbnN0IGNhbGxiYWNrID0gY3JlYXRlSHR0cFJlc3BvbnNlQ2FsbGJhY2soXG5cdFx0XHRodHRwQ2xpZW50LFxuXHRcdFx0Y29uZmlnLnN1Y2Nlc3MsXG5cdFx0XHRjb25maWcuZXJyb3IsXG5cdFx0XHRjb25maWcuY2FuY2VsXG5cdFx0KTtcblx0XHRpZiAob3B0aW9ucykge1xuXHRcdFx0aHR0cENsaWVudC5nZXRBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQuZ2V0QXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBQT1NUIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIHVybCBUaGUgdGFyZ2V0IFVSTC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIFRoZSBjYWxsYmFjayBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBSZXF1ZXN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICAgKi9cblx0cG9zdEFzeW5jKHVybDogc3RyaW5nLCBjb25maWc6IEh0dHBDbGllbnRBc3luY0NvbmZpZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHZvaWQge1xuXHRcdGNvbnN0IG5ld1VybCA9IGJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG5cdFx0Y29uc3QgY2FsbGJhY2sgPSBjcmVhdGVIdHRwUmVzcG9uc2VDYWxsYmFjayhcblx0XHRcdGh0dHBDbGllbnQsXG5cdFx0XHRjb25maWcuc3VjY2Vzcyxcblx0XHRcdGNvbmZpZy5lcnJvcixcblx0XHRcdGNvbmZpZy5jYW5jZWxcblx0XHQpO1xuXHRcdGlmIChvcHRpb25zKSB7XG5cdFx0XHRodHRwQ2xpZW50LnBvc3RBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQucG9zdEFzeW5jKG5ld1VybCwgSlNPTi5zdHJpbmdpZnkoe30pLCBjYWxsYmFjayk7XG5cdFx0fVxuXHR9O1xuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYW4gYXN5bmNocm9ub3VzIEhUVFAgUFVUIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIHVybCBUaGUgdGFyZ2V0IFVSTC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIFRoZSBjYWxsYmFjayBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBSZXF1ZXN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICAgKi9cblx0cHV0QXN5bmModXJsOiBzdHJpbmcsIGNvbmZpZzogSHR0cENsaWVudEFzeW5jQ29uZmlnLCBvcHRpb25zPzogSHR0cENsaWVudFJlcXVlc3RPcHRpb25zKTogdm9pZCB7XG5cdFx0Y29uc3QgbmV3VXJsID0gYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcblx0XHRjb25zdCBjYWxsYmFjayA9IGNyZWF0ZUh0dHBSZXNwb25zZUNhbGxiYWNrKFxuXHRcdFx0aHR0cENsaWVudCxcblx0XHRcdGNvbmZpZy5zdWNjZXNzLFxuXHRcdFx0Y29uZmlnLmVycm9yLFxuXHRcdFx0Y29uZmlnLmNhbmNlbFxuXHRcdCk7XG5cdFx0aWYgKG9wdGlvbnMpIHtcblx0XHRcdGh0dHBDbGllbnQucHV0QXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeShvcHRpb25zKSwgY2FsbGJhY2spO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRodHRwQ2xpZW50LnB1dEFzeW5jKG5ld1VybCwgSlNPTi5zdHJpbmdpZnkoe30pLCBjYWxsYmFjayk7XG5cdFx0fVxuXHR9O1xuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYW4gYXN5bmNocm9ub3VzIEhUVFAgUEFUQ0ggcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqL1xuXHRwYXRjaEFzeW5jKHVybDogc3RyaW5nLCBjb25maWc6IEh0dHBDbGllbnRBc3luY0NvbmZpZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHZvaWQge1xuXHRcdGNvbnN0IG5ld1VybCA9IGJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG5cdFx0Y29uc3QgY2FsbGJhY2sgPSBjcmVhdGVIdHRwUmVzcG9uc2VDYWxsYmFjayhcblx0XHRcdGh0dHBDbGllbnQsXG5cdFx0XHRjb25maWcuc3VjY2Vzcyxcblx0XHRcdGNvbmZpZy5lcnJvcixcblx0XHRcdGNvbmZpZy5jYW5jZWxcblx0XHQpO1xuXHRcdGlmIChvcHRpb25zKSB7XG5cdFx0XHRodHRwQ2xpZW50LnBhdGNoQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeShvcHRpb25zKSwgY2FsbGJhY2spO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRodHRwQ2xpZW50LnBhdGNoQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBERUxFVEUgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqL1xuXHRkZWxldGVBc3luYyh1cmw6IHN0cmluZywgY29uZmlnOiBIdHRwQ2xpZW50QXN5bmNDb25maWcsIG9wdGlvbnM/OiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMpOiB2b2lkIHtcblx0XHRjb25zdCBuZXdVcmwgPSBidWlsZFVybCh1cmwsIG9wdGlvbnMpO1xuXHRcdGNvbnN0IGNhbGxiYWNrID0gY3JlYXRlSHR0cFJlc3BvbnNlQ2FsbGJhY2soXG5cdFx0XHRodHRwQ2xpZW50LFxuXHRcdFx0Y29uZmlnLnN1Y2Nlc3MsXG5cdFx0XHRjb25maWcuZXJyb3IsXG5cdFx0XHRjb25maWcuY2FuY2VsXG5cdFx0KTtcblx0XHRpZiAob3B0aW9ucykge1xuXHRcdFx0aHR0cENsaWVudC5kZWxldGVBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQuZGVsZXRlQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBIRUFEIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIHVybCBUaGUgdGFyZ2V0IFVSTC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIFRoZSBjYWxsYmFjayBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBSZXF1ZXN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICAgKi9cblx0aGVhZEFzeW5jKHVybDogc3RyaW5nLCBjb25maWc6IEh0dHBDbGllbnRBc3luY0NvbmZpZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHZvaWQge1xuXHRcdGNvbnN0IG5ld1VybCA9IGJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG5cdFx0Y29uc3QgY2FsbGJhY2sgPSBjcmVhdGVIdHRwUmVzcG9uc2VDYWxsYmFjayhcblx0XHRcdGh0dHBDbGllbnQsXG5cdFx0XHRjb25maWcuc3VjY2Vzcyxcblx0XHRcdGNvbmZpZy5lcnJvcixcblx0XHRcdGNvbmZpZy5jYW5jZWxcblx0XHQpO1xuXHRcdGlmIChvcHRpb25zKSB7XG5cdFx0XHRodHRwQ2xpZW50LmhlYWRBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQuaGVhZEFzeW5jKG5ld1VybCwgSlNPTi5zdHJpbmdpZnkoe30pLCBjYWxsYmFjayk7XG5cdFx0fVxuXHR9O1xuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYW4gYXN5bmNocm9ub3VzIEhUVFAgVFJBQ0UgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqL1xuXHR0cmFjZUFzeW5jKHVybDogc3RyaW5nLCBjb25maWc6IEh0dHBDbGllbnRBc3luY0NvbmZpZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHZvaWQge1xuXHRcdGNvbnN0IG5ld1VybCA9IGJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG5cdFx0Y29uc3QgY2FsbGJhY2sgPSBjcmVhdGVIdHRwUmVzcG9uc2VDYWxsYmFjayhcblx0XHRcdGh0dHBDbGllbnQsXG5cdFx0XHRjb25maWcuc3VjY2Vzcyxcblx0XHRcdGNvbmZpZy5lcnJvcixcblx0XHRcdGNvbmZpZy5jYW5jZWxcblx0XHQpO1xuXHRcdGlmIChvcHRpb25zKSB7XG5cdFx0XHRodHRwQ2xpZW50LnRyYWNlQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeShvcHRpb25zKSwgY2FsbGJhY2spO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRodHRwQ2xpZW50LnRyYWNlQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZXMgdGhlIGV4ZWN1dGlvbiBvZiBxdWV1ZWQgYXN5bmNocm9ub3VzIHJlcXVlc3RzIChkZXBlbmRpbmcgb24gdGhlIHVuZGVybHlpbmcgSmF2YSBjbGllbnQncyB0aHJlYWRpbmcgbW9kZWwpLlxuICAgICAqL1xuXHRleGVjdXRlKCk6IHZvaWQge1xuXHRcdGh0dHBDbGllbnQuZXhlY3V0ZSgpO1xuXHR9O1xufVxuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gcmV0cmlldmUgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGFzeW5jaHJvbm91cyBjbGllbnQuXG4gKiBAcmV0dXJucyBBIG5ldyBpbnN0YW5jZSBvZiBIdHRwQXN5bmNDbGllbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnN0YW5jZSgpOiBIdHRwQXN5bmNDbGllbnQge1xuXHRyZXR1cm4gbmV3IEh0dHBBc3luY0NsaWVudCgpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmF0aXZlIEphdmEgY2FsbGJhY2sgb2JqZWN0IHRoYXQgd3JhcHMgdGhlIEphdmFTY3JpcHQgc3VjY2VzcywgZXJyb3IsIGFuZCBjYW5jZWwgY2FsbGJhY2tzLlxuICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSB1bmRlcmx5aW5nIEphdmEgSFRUUCBjbGllbnQgaW5zdGFuY2UgdG8gZ2VuZXJhdGUgdGhlIGZpbmFsIGNhbGxiYWNrIG9iamVjdC5cbiAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBKYXZhIEh0dHBDbGllbnRBc3luY0ZhY2FkZSBpbnN0YW5jZS5cbiAqIEBwYXJhbSBzdWNjZXNzQ2FsbGJhY2sgSlMgY29kZSBzdHJpbmcgZm9yIHN1Y2Nlc3MuXG4gKiBAcGFyYW0gZXJyb3JDYWxsYmFjayBKUyBjb2RlIHN0cmluZyBmb3IgZXJyb3IuXG4gKiBAcGFyYW0gY2FuY2VsQ2FsbGJhY2sgSlMgY29kZSBzdHJpbmcgZm9yIGNhbmNlbC5cbiAqIEByZXR1cm5zIEEgSmF2YSBjYWxsYmFjayBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUh0dHBSZXNwb25zZUNhbGxiYWNrKGh0dHBDbGllbnQ6IGFueSwgc3VjY2Vzc0NhbGxiYWNrOiBzdHJpbmcsIGVycm9yQ2FsbGJhY2s/OiBzdHJpbmcsIGNhbmNlbENhbGxiYWNrPzogc3RyaW5nKTogYW55IHtcblx0cmV0dXJuIGh0dHBDbGllbnQuY3JlYXRlQ2FsbGJhY2soXG5cdFx0Y3JlYXRlU3VjY2Vzc0NhbGxiYWNrKHN1Y2Nlc3NDYWxsYmFjayksXG5cdFx0Y3JlYXRlRXJyb3JDYWxsYmFjayhlcnJvckNhbGxiYWNrKSxcblx0XHRjcmVhdGVDYW5jZWxDYWxsYmFjayhjYW5jZWxDYWxsYmFjaylcblx0KTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIHJhdyBKYXZhU2NyaXB0IHN0cmluZyB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgaW4gdGhlIEpWTSBlbnZpcm9ubWVudCB1cG9uIHN1Y2Nlc3NmdWwgcmVxdWVzdCBjb21wbGV0aW9uLlxuICogVGhpcyBzdHJpbmcgaGFuZGxlcyBwYXJzaW5nIHRoZSBKYXZhIEhUVFAgcmVzcG9uc2Ugb2JqZWN0IGFuZCBleGVjdXRpbmcgdGhlIHVzZXIncyBkZWZpbmVkIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICogQHBhcmFtIGNhbGxiYWNrIFRoZSB1c2VyLXByb3ZpZGVkIHN1Y2Nlc3MgY2FsbGJhY2sgZnVuY3Rpb24gY29kZSBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgY29tcGxleCBKYXZhU2NyaXB0IHN0cmluZyBmb3IgdGhlIHN1Y2Nlc3MgaGFuZGxlci5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3VjY2Vzc0NhbGxiYWNrKGNhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcge1xuXHQvLyBOb3RlOiBUaGlzIHN0cmluZyB1c2VzIEphdmEgdXRpbGl0eSBjbGFzc2VzIChvcmcuYXBhY2hlLmNvbW1vbnMuaW8uSU9VdGlscykgYW5kIGNvbnRleHQgdmFyaWFibGVzIFxuICAgIC8vIChfX2NvbnRleHQpIHRoYXQgYXJlIGF2YWlsYWJsZSBpbiB0aGUgc3BlY2lmaWMgSlZNIGVudmlyb25tZW50LlxuICAgIFxuICAgIC8vIFRoZSBzdHJ1Y3R1cmUgbWFwcyB0aGUgSmF2YSBIVFRQIFJlc3BvbnNlIG9iamVjdCBpbnRvIHRoZSBzdGFuZGFyZCBIdHRwQ2xpZW50UmVzcG9uc2UgaW50ZXJmYWNlLlxuXHRyZXR1cm4gXCIoZnVuY3Rpb24oaHR0cFJlc3BvbnNlLCBpc0JpbmFyeSwgY29udGV4dCkge1xcblwiXG5cdFx0KyBcInZhciByZXNwb25zZSA9IHt9O1xcblwiXG5cdFx0KyBcInJlc3BvbnNlLnN0YXR1c0NvZGUgPSBodHRwUmVzcG9uc2UuZ2V0U3RhdHVzTGluZSgpLmdldFN0YXR1c0NvZGUoKTtcXG5cIlxuXHRcdCsgXCJyZXNwb25zZS5zdGF0dXNNZXNzYWdlID0gaHR0cFJlc3BvbnNlLmdldFN0YXR1c0xpbmUoKS5nZXRSZWFzb25QaHJhc2UoKTtcXG5cIlxuXHRcdCsgXCJyZXNwb25zZS5wcm90b2NvbCA9IGh0dHBSZXNwb25zZS5nZXRQcm90b2NvbFZlcnNpb24oKTtcXG5cIlxuXHRcdCsgXCJyZXNwb25zZS5iaW5hcnkgPSBpc0JpbmFyeTtcXG5cIlxuXG5cdFx0KyBcInZhciBoZWFkZXJzID0gaHR0cFJlc3BvbnNlLmdldEFsbEhlYWRlcnMoKTtcXG5cIlxuXHRcdCsgXCJyZXNwb25zZS5oZWFkZXJzID0gW107XFxuXCJcblx0XHQrIFwiZm9yICh2YXIgaSA9IDA7IGkgPCBoZWFkZXJzLmxlbmd0aDsgaSArKykge1xcblwiXG5cdFx0KyBcIiAgICByZXNwb25zZS5oZWFkZXJzLnB1c2goe1xcblwiXG5cdFx0KyBcIiAgICAgICAgbmFtZTogaGVhZGVyc1tpXS5nZXROYW1lKCksXFxuXCJcblx0XHQrIFwiICAgICAgICB2YWx1ZTogaGVhZGVyc1tpXS5nZXRWYWx1ZSgpXFxuXCJcblx0XHQrIFwiICAgIH0pO1xcblwiXG5cdFx0KyBcIn1cXG5cIlxuXG5cdFx0KyBcInZhciBlbnRpdHkgPSBodHRwUmVzcG9uc2UuZ2V0RW50aXR5KCk7XFxuXCJcblx0XHQrIFwiaWYgKGVudGl0eSkge1xcblwiXG5cdFx0KyBcIiAgICB2YXIgaW5wdXRTdHJlYW0gPSBlbnRpdHkuZ2V0Q29udGVudCgpO1xcblwiXG5cdFx0KyBcIiAgICBpZiAoaXNCaW5hcnkpIHtcXG5cIlxuXHRcdCsgXCIgICAgICAgIC8vIFVzZXMgSmF2YSBJT1V0aWxzIHRvIHJlYWQgYmluYXJ5IGRhdGFcXG5cIlxuXHRcdCsgXCIgICAgICAgIHJlc3BvbnNlLmRhdGEgPSBvcmcuYXBhY2hlLmNvbW1vbnMuaW8uSU9VdGlscy50b0J5dGVBcnJheShpbnB1dFN0cmVhbSk7XFxuXCJcblx0XHQrIFwiICAgIH0gZWxzZSB7XFxuXCJcblx0XHQrIFwiICAgICAgICAvLyBVc2VzIEphdmEgSU9VdGlscyB0byByZWFkIHRleHQgZGF0YVxcblwiXG5cdFx0KyBcIiAgICAgICAgcmVzcG9uc2UudGV4dCA9IG9yZy5hcGFjaGUuY29tbW9ucy5pby5JT1V0aWxzLnRvU3RyaW5nKGlucHV0U3RyZWFtKTtcXG5cIlxuXHRcdCsgXCIgICAgfVxcblwiXG5cdFx0KyBcIn1cXG5cIlxuXG5cdFx0KyBcIihcIiArIGNhbGxiYWNrICsgXCIpKHJlc3BvbnNlLCBKU09OLnBhcnNlKGNvbnRleHQpKTtcXG5cIlxuXHRcdCsgXCJ9KShfX2NvbnRleHQuZ2V0KCdyZXNwb25zZScpLCBfX2NvbnRleHQuZ2V0KCdodHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMnKS5pc0JpbmFyeSgpLCBfX2NvbnRleHQuZ2V0KCdodHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMnKS5nZXRDb250ZXh0KCkpO1xcblwiO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgcmF3IEphdmFTY3JpcHQgc3RyaW5nIGZvciB0aGUgZXJyb3IgY2FsbGJhY2suXG4gKiBAcGFyYW0gY2FsbGJhY2sgVGhlIHVzZXItcHJvdmlkZWQgZXJyb3IgY2FsbGJhY2sgZnVuY3Rpb24gY29kZSBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgSmF2YVNjcmlwdCBzdHJpbmcgZm9yIHRoZSBlcnJvciBoYW5kbGVyLCBvciB1bmRlZmluZWQuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yQ2FsbGJhY2soY2FsbGJhY2s/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRpZiAoY2FsbGJhY2spIHtcblx0XHRyZXR1cm4gXCIoXCIgKyBjYWxsYmFjayArIFwiKShfX2NvbnRleHQuZ2V0KCdleGNlcHRpb24nKSlcIjtcblx0fVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIHRoZSByYXcgSmF2YVNjcmlwdCBzdHJpbmcgZm9yIHRoZSBjYW5jZWwgY2FsbGJhY2suXG4gKiBAcGFyYW0gY2FsbGJhY2sgVGhlIHVzZXItcHJvdmlkZWQgY2FuY2VsIGNhbGxiYWNrIGZ1bmN0aW9uIGNvZGUgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIEphdmFTY3JpcHQgc3RyaW5nIGZvciB0aGUgY2FuY2VsIGhhbmRsZXIsIG9yIHVuZGVmaW5lZC5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ2FuY2VsQ2FsbGJhY2soY2FsbGJhY2s/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRpZiAoY2FsbGJhY2spIHtcblx0XHRyZXR1cm4gXCIoXCIgKyBjYWxsYmFjayArIFwiKSgpXCI7XG5cdH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgZmluYWwgVVJMIGJ5IGFwcGVuZGluZyBhbGwgcXVlcnkgcGFyYW1ldGVycyBkZWZpbmVkIGluIG9wdGlvbnMucGFyYW1zLlxuICogVGhlIHBhcmFtZXRlcnMgYXJlIG5vdCByZW1vdmVkIGZyb20gdGhlIG9wdGlvbnMgb2JqZWN0IGFzIHRoZXkgYXJlIGZvciB0aGUgc3luY2hyb25vdXMgY2xpZW50LFxuICogc2luY2UgdGhlIG9wdGlvbnMgYXJlIHBhc3NlZCBhcyBKU09OIHN0cmluZyB0byB0aGUgZmFjYWRlIGFueXdheS5cbiAqIEBwYXJhbSB1cmwgVGhlIGJhc2UgVVJMLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIHJlcXVlc3Qgb3B0aW9ucyB3aGljaCBtYXkgY29udGFpbiBgcGFyYW1zYC5cbiAqIEByZXR1cm5zIFRoZSBVUkwgd2l0aCBhcHBlbmRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICovXG5mdW5jdGlvbiBidWlsZFVybCh1cmw6IHN0cmluZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHN0cmluZyB7XG5cdGlmIChvcHRpb25zID09PSB1bmRlZmluZWQgfHwgb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zLnBhcmFtcyA9PT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMucGFyYW1zID09PSBudWxsIHx8IG9wdGlvbnMucGFyYW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiB1cmw7XG5cdH1cblx0bGV0IG5ld1VybCA9IHVybDtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBvcHRpb25zLnBhcmFtcy5sZW5ndGg7IGkgKyspIHtcbiAgICAgICAgY29uc3QgcGFyYW0gPSBvcHRpb25zLnBhcmFtc1tpXTtcblx0XHRpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgVVJMIGFscmVhZHkgY29udGFpbnMgJz8nIGFuZCB1c2UgJyYnIGlmIHNvIChpbXByb3ZlcyByb2J1c3RuZXNzKVxuICAgICAgICAgICAgaWYgKG5ld1VybC5pbmNsdWRlcygnPycpKSB7XG4gICAgICAgICAgICAgICAgbmV3VXJsICs9ICcmJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3VXJsICs9ICc/JztcbiAgICAgICAgICAgIH1cblx0XHRcdG5ld1VybCArPSBwYXJhbS5uYW1lICsgJz0nICsgcGFyYW0udmFsdWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG5ld1VybCArPSAnJicgKyBwYXJhbS5uYW1lICsgJz0nICsgcGFyYW0udmFsdWU7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBuZXdVcmw7XG59XG5cbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuXHQvLyBAdHMtaWdub3JlXG5cdG1vZHVsZS5leHBvcnRzID0geyBIdHRwQXN5bmNDbGllbnQsIGdldEluc3RhbmNlIH07XG59Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEyR0EsTUFBTSx3QkFBd0IsS0FBSyxLQUFLLGlFQUFpRTtBQUd6RyxNQUFNLHFCQUFxQixLQUFLLEtBQUssNERBQTREO0FBR2pHLE1BQU0sYUFBYSxtQkFBbUIsUUFBUSxzQkFBc0IsS0FBSztBQU9sRSxNQUFNLGdCQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUTVCLFNBQVMsS0FBYSxRQUErQixTQUEwQztBQUM5RixVQUFNLFNBQVMsU0FBUyxLQUFLLE9BQU87QUFDcEMsVUFBTSxXQUFXO0FBQUEsTUFDaEI7QUFBQSxNQUNBLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLE9BQU87QUFBQSxJQUNSO0FBQ0EsUUFBSSxTQUFTO0FBQ1osaUJBQVcsU0FBUyxRQUFRLEtBQUssVUFBVSxPQUFPLEdBQUcsUUFBUTtBQUFBLElBQzlELE9BQU87QUFDTixpQkFBVyxTQUFTLFFBQVEsS0FBSyxVQUFVLENBQUMsQ0FBQyxHQUFHLFFBQVE7QUFB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QU87QUFBQSxJQUNSO0FBQ0EsUUFBSSxTQUFTO0FBQ1osaUJBQVcsV0FBVyxRQUFRLEtBQUssVUFBVSxPQUFPLEdBQUcsUUFBUTtBQUFBLElBQ2hFLE9BQU87QUFDTixpQkFBVyxXQUFXLFFBQVEsS0FBSyxVQUFVLENBQUMsQ0FBQyxHQUFHLFFBQVE7QUFBQSxJQUMzRDtBQUFBLEVBQ0Q7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLFVBQWdCO0FBQ2YsZUFBVyxRQUFRO0FBQUEsRUFDcEI7QUFDRDtBQU1PLFNBQVMsY0FBK0I7QUFDOUMsU0FBTyxJQUFJLGdCQUFnQjtBQUM1QjtBQUFDO0FBV0QsU0FBUywyQkFBMkJBLGFBQWlCLGlCQUF5QixlQUF3QixnQkFBOEI7QUFDbkksU0FBT0EsWUFBVztBQUFBLElBQ2pCLHNCQUFzQixlQUFlO0FBQUEsSUFDckMsb0JBQW9CLGFBQWE7QUFBQSxJQUNqQyxxQkFBcUIsY0FBYztBQUFBLEVBQ3BDO0FBQ0Q7QUFRQSxTQUFTLHNCQUFzQixVQUEwQjtBQUt4RCxTQUFPLG02QkE0QkUsV0FBVztBQUVyQjtBQU9BLFNBQVMsb0JBQW9CLFVBQXVDO0FBQ25FLE1BQUksVUFBVTtBQUNiLFdBQU8sTUFBTSxXQUFXO0FBQUEsRUFDekI7QUFDRyxTQUFPO0FBQ1g7QUFPQSxTQUFTLHFCQUFxQixVQUF1QztBQUNwRSxNQUFJLFVBQVU7QUFDYixXQUFPLE1BQU0sV0FBVztBQUFBLEVBQ3pCO0FBQ0csU0FBTztBQUNYO0FBVUEsU0FBUyxTQUFTLEtBQWEsU0FBNEM7QUFDMUUsTUFBSSxZQUFZLFVBQWEsWUFBWSxRQUFRLFFBQVEsV0FBVyxVQUFhLFFBQVEsV0FBVyxRQUFRLFFBQVEsT0FBTyxXQUFXLEdBQUc7QUFDeEksV0FBTztBQUFBLEVBQ1I7QUFDQSxNQUFJLFNBQVM7QUFDYixXQUFTLElBQUksR0FBRyxJQUFJLFFBQVEsT0FBTyxRQUFRLEtBQU07QUFDMUMsVUFBTSxRQUFRLFFBQVEsT0FBTyxDQUFDO0FBQ3BDLFFBQUksTUFBTSxHQUFHO0FBRUgsVUFBSSxPQUFPLFNBQVMsR0FBRyxHQUFHO0FBQ3RCLGtCQUFVO0FBQUEsTUFDZCxPQUFPO0FBQ0gsa0JBQVU7QUFBQSxNQUNkO0FBQ1QsZ0JBQVUsTUFBTSxPQUFPLE1BQU0sTUFBTTtBQUFBLElBQ3BDLE9BQU87QUFDTixnQkFBVSxNQUFNLE1BQU0sT0FBTyxNQUFNLE1BQU07QUFBQSxJQUMxQztBQUFBLEVBQ0Q7QUFDQSxTQUFPO0FBQ1I7QUFHQSxJQUFJLE9BQU8sV0FBVyxhQUFhO0FBRWxDLFNBQU8sVUFBVSxFQUFFLGlCQUFpQixZQUFZO0FBQ2pEOyIsCiAgIm5hbWVzIjogWyJodHRwQ2xpZW50Il0KfQo=
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvY2xpZW50LWFzeW5jLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUgaHR0cC9jbGllbnQtYXN5bmNcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9odHRwXG4gKiBAbmFtZSBIdHRwQXN5bmNDbGllbnRcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgSHR0cEFzeW5jQ2xpZW50IGNsYXNzIHByb3ZpZGVzIGEgSmF2YVNjcmlwdC9UeXBlU2NyaXB0IHdyYXBwZXIgKEZhY2FkZSkgZm9yIG1ha2luZyBhc3luY2hyb25vdXMgSFRUUCByZXF1ZXN0cyB1c2luZyB0aGUgdW5kZXJseWluZyBKYXZhIEhUVFAgY2xpZW50LiBJdCBhbGxvd3MgZGV2ZWxvcGVycyB0byBwZXJmb3JtIG5vbi1ibG9ja2luZyBIVFRQIG9wZXJhdGlvbnMgYnkgZGVmaW5pbmcgc3VjY2VzcywgZXJyb3IsIGFuZCBjYW5jZWwgY2FsbGJhY2tzIGFzIHN0cmluZ3Mgb2YgZXhlY3V0YWJsZSBKYXZhU2NyaXB0IGNvZGUuIFRoZSBjbGFzcyBzdXBwb3J0cyBhbGwgc3RhbmRhcmQgSFRUUCBtZXRob2RzIChHRVQsIFBPU1QsIFBVVCwgUEFUQ0gsIERFTEVURSwgSEVBRCwgVFJBQ0UpIGFuZCBhY2NlcHRzIGEgY29tcHJlaGVuc2l2ZSBzZXQgb2YgcmVxdWVzdCBvcHRpb25zIHRoYXQgbWlycm9yIHRoZSBjYXBhYmlsaXRpZXMgb2YgdGhlIEphdmEgY2xpZW50LlxuICogXG4gKiAjIyMgS2V5IEZlYXR1cmVzOlxuICogLSAqKkFzeW5jaHJvbm91cyBFeGVjdXRpb24qKjogQWxsIEhUVFAgbWV0aG9kcyByZXR1cm4gaW1tZWRpYXRlbHksIHdpdGggY2FsbGJhY2tzIGV4ZWN1dGVkIHVwb24gY29tcGxldGlvbi5cbiAqIC0gKipDb21wcmVoZW5zaXZlIFJlcXVlc3QgT3B0aW9ucyoqOiBTdXBwb3J0cyBhIHdpZGUgcmFuZ2Ugb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBmaW5lLXR1bmluZyBIVFRQIHJlcXVlc3RzLlxuICogLSAqKkNhbGxiYWNrIEZsZXhpYmlsaXR5Kio6IENhbGxiYWNrcyBhcmUgZGVmaW5lZCBhcyBzdHJpbmdzIG9mIEphdmFTY3JpcHQgY29kZSwgYWxsb3dpbmcgZm9yIGR5bmFtaWMgZXhlY3V0aW9uIGluIHRoZSBKVk0gZW52aXJvbm1lbnQuXG4gKiBcbiAqICMjIyBVc2UgQ2FzZXM6XG4gKiAtICoqTm9uLWJsb2NraW5nIEFQSSBDYWxscyoqOiBJZGVhbCBmb3Igc2NlbmFyaW9zIHdoZXJlIHlvdSB3YW50IHRvIHBlcmZvcm0gSFRUUCByZXF1ZXN0cyB3aXRob3V0IGJsb2NraW5nIHRoZSBtYWluIGV4ZWN1dGlvbiB0aHJlYWQuXG4gKiAtICoqQ29tcGxleCBSZXF1ZXN0IENvbmZpZ3VyYXRpb25zKio6IFN1aXRhYmxlIGZvciBhZHZhbmNlZCB1c2UgY2FzZXMgdGhhdCByZXF1aXJlIGRldGFpbGVkIHJlcXVlc3QgY29uZmlndXJhdGlvbnMgYW5kIGhhbmRsaW5nLlxuICogXG4gKiAjIyMgRXhhbXBsZSBVc2FnZTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBIdHRwQXN5bmNDbGllbnQgfSBmcm9tIFwiQGFlcm9raXQvc2RrL2h0dHBcIjtcbiAqIFxuICogY29uc3QgY2xpZW50ID0gSHR0cEFzeW5jQ2xpZW50LmdldEluc3RhbmNlKCk7XG4gKiBcbiAqIGNsaWVudC5nZXRBc3luYyhcImh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2RhdGFcIiwge1xuICogICBzdWNjZXNzOiBcImZ1bmN0aW9uKHJlc3BvbnNlKSB7IGNvbnNvbGUubG9nKCdTdWNjZXNzOicsIHJlc3BvbnNlKTsgfVwiLFxuICogICBlcnJvcjogXCJmdW5jdGlvbihlcnJvcikgeyBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7IH1cIlxuICogfSwge1xuICogICBoZWFkZXJzOiBbeyBuYW1lOiAnQXV0aG9yaXphdGlvbicsIHZhbHVlOiAnQmVhcmVyIHRva2VuJyB9XSxcbiAqICAgcGFyYW1zOiBbeyBuYW1lOiAncXVlcnknLCB2YWx1ZTogJ3NlYXJjaCB0ZXJtJyB9XVxuICogfSk7XG4gKiBgYGBcbiAqL1xuXG4vLyAtLS0gU2hhcmVkIEludGVyZmFjZXMgKGZvciBkb2N1bWVudGF0aW9uIGNsYXJpdHkpIC0tLVxuXG4vKiogRGVmaW5lcyBhIHNpbmdsZSBIVFRQIGhlYWRlciwgdXNlZCBmb3IgYm90aCByZXF1ZXN0IGFuZCByZXNwb25zZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudEhlYWRlciB7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBoZWFkZXIgKGUuZy4sICdDb250ZW50LVR5cGUnLCAnQXV0aG9yaXphdGlvbicpLiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogVGhlIHZhbHVlIG9mIHRoZSBoZWFkZXIuICovXG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqIERlZmluZXMgYSBxdWVyeSBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBVUkwuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDbGllbnRQYXJhbSB7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBVUkwgcXVlcnkgcGFyYW1ldGVyIChlLmcuLCAnaWQnKS4gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgVVJMIHF1ZXJ5IHBhcmFtZXRlci4gKi9cbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKiogRGVmaW5lcyBhIGZpbGUgdG8gYmUgaW5jbHVkZWQgaW4gYSBtdWx0aS1wYXJ0IGZvcm0gZGF0YSByZXF1ZXN0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50RmlsZSB7XG4gICAgLyoqIFRoZSBmb3JtIGZpZWxkIG5hbWUgZm9yIHRoZSBmaWxlLiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogVGhlIGZpbGUgcGF0aCBvciBjb250ZW50LiAqL1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFuIEhUVFAgcmVxdWVzdCwgbWlycm9yaW5nIHRoZSBjYXBhYmlsaXRpZXMgb2YgdGhlIHVuZGVybHlpbmcgSmF2YSBjbGllbnQuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyB7XG4gICAgZXhwZWN0Q29udGludWVFbmFibGVkPzogYm9vbGVhbjtcbiAgICBwcm94eUhvc3Q/OiBzdHJpbmc7XG4gICAgcHJveHlQb3J0PzogbnVtYmVyO1xuICAgIGNvb2tpZVNwZWM/OiBzdHJpbmc7XG4gICAgcmVkaXJlY3RzRW5hYmxlZD86IGJvb2xlYW47XG4gICAgcmVsYXRpdmVSZWRpcmVjdHNBbGxvd2VkPzogYm9vbGVhbjtcbiAgICBjaXJjdWxhclJlZGlyZWN0c0FsbG93ZWQ/OiBib29sZWFuO1xuICAgIG1heFJlZGlyZWN0cz86IG51bWJlcjtcbiAgICBhdXRoZW50aWNhdGlvbkVuYWJsZWQ/OiBib29sZWFuO1xuICAgIHRhcmdldFByZWZlcnJlZEF1dGhTY2hlbWVzPzogc3RyaW5nW107XG4gICAgcHJveHlQcmVmZXJyZWRBdXRoU2NoZW1lcz86IHN0cmluZ1tdO1xuICAgIGNvbm5lY3Rpb25SZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbiAgICBjb25uZWN0VGltZW91dD86IG51bWJlcjtcbiAgICBzb2NrZXRUaW1lb3V0PzogbnVtYmVyO1xuICAgIGNvbnRlbnRDb21wcmVzc2lvbkVuYWJsZWQ/OiBib29sZWFuO1xuICAgIHNzbFRydXN0QWxsRW5hYmxlZD86IGJvb2xlYW47XG4gICAgZGF0YT86IGFueVtdO1xuICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgZmlsZXM/OiBIdHRwQ2xpZW50RmlsZVtdO1xuICAgIGNoYXJhY3RlckVuY29kaW5nPzogc3RyaW5nO1xuICAgIGNoYXJhY3RlckVuY29kaW5nRW5hYmxlZD86IGJvb2xlYW47XG4gICAgY29udGVudFR5cGU/OiBzdHJpbmc7XG4gICAgaGVhZGVycz86IEh0dHBDbGllbnRIZWFkZXJbXTtcbiAgICBwYXJhbXM/OiBIdHRwQ2xpZW50UGFyYW1bXTtcbiAgICBiaW5hcnk/OiBib29sZWFuO1xuICAgIGNvbnRleHQ/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKiogVGhlIHN0cnVjdHVyZSBvZiB0aGUgcmVzcG9uc2UgcmV0dXJuZWQgYnkgdGhlIEh0dHBDbGllbnQgbWV0aG9kcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAvKiogVGhlIEhUVFAgc3RhdHVzIGNvZGUgKGUuZy4sIDIwMCwgNDA0LCA1MDApLiAqL1xuICAgIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgICAvKiogVGhlIHN0YXR1cyBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZSBzZXJ2ZXIgKGUuZy4sICdPSycsICdOb3QgRm91bmQnKS4gKi9cbiAgICBzdGF0dXNNZXNzYWdlOiBzdHJpbmc7XG4gICAgLyoqIFJlc3BvbnNlIGJvZHkgY29udGVudCBhcyBhbiBhcnJheSBvZiBieXRlcyAoaWYgcmVxdWVzdGVkIGFzIGJpbmFyeSkuICovXG4gICAgZGF0YTogYW55W107XG4gICAgLyoqIFJlc3BvbnNlIGJvZHkgY29udGVudCBhcyBhIGRlY29kZWQgc3RyaW5nLiAqL1xuICAgIHRleHQ6IHN0cmluZztcbiAgICAvKiogVGhlIHByb3RvY29sIHVzZWQgKGUuZy4sICdIVFRQLzEuMScpLiAqL1xuICAgIHByb3RvY29sOiBzdHJpbmc7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgcmVzcG9uc2Ugd2FzIHByb2Nlc3NlZCBhcyBiaW5hcnkgZGF0YS4gKi9cbiAgICBiaW5hcnk6IGJvb2xlYW47XG4gICAgLyoqIEFycmF5IG9mIGFsbCBoZWFkZXJzIHJlY2VpdmVkIGluIHRoZSByZXNwb25zZS4gKi9cbiAgICBoZWFkZXJzOiBIdHRwQ2xpZW50SGVhZGVyW11cbn1cblxuLy8gLS0tIEFzeW5jaHJvbm91cyBDbGllbnQgSW50ZXJmYWNlcyAtLS1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBjYWxsYmFjayBzdHJ1Y3R1cmUgZm9yIGFzeW5jaHJvbm91cyByZXF1ZXN0cy5cbiAqIE5vdGU6IENhbGxiYWNrcyBhcmUgcHJvdmlkZWQgYXMgc3RyaW5ncyBjb250YWluaW5nIGV4ZWN1dGFibGUgSmF2YVNjcmlwdCBjb2RlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDbGllbnRBc3luY0NvbmZpZyB7XG4gICAgLyoqXG4gICAgICogTWFuZGF0b3J5IHN1Y2Nlc3MgY2FsbGJhY2sgYXMgYSAqKnN0cmluZyBvZiBKYXZhU2NyaXB0IGNvZGUqKi5cbiAgICAgKiBJdCB3aWxsIGJlIGV4ZWN1dGVkIHdpdGggc2lnbmF0dXJlOiBgKHJlc3BvbnNlOiBIdHRwQ2xpZW50UmVzcG9uc2UsIGNvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+IHZvaWRgXG4gICAgICovXG4gICAgc3VjY2Vzczogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIGVycm9yIGNhbGxiYWNrIGFzIGEgKipzdHJpbmcgb2YgSmF2YVNjcmlwdCBjb2RlKiouXG4gICAgICogSXQgd2lsbCBiZSBleGVjdXRlZCB3aXRoIHNpZ25hdHVyZTogYChleGNlcHRpb246IGFueSkgPT4gdm9pZGBcbiAgICAgKi9cbiAgICBlcnJvcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBjYW5jZWwgY2FsbGJhY2sgYXMgYSAqKnN0cmluZyBvZiBKYXZhU2NyaXB0IGNvZGUqKi5cbiAgICAgKiBJdCB3aWxsIGJlIGV4ZWN1dGVkIHdpdGggc2lnbmF0dXJlOiBgKCkgPT4gdm9pZGBcbiAgICAgKi9cbiAgICBjYW5jZWw/OiBzdHJpbmc7XG59XG5cblxuLy8gLS0tIEphdmEgVHlwZSBJbXBvcnRzIChDcnVjaWFsIGZvciBKVk0gaW50ZWdyYXRpb24pIC0tLVxuXG4vKiogSW1wb3J0cyB0aGUgbmF0aXZlIEphdmEgY2xhc3MgcmVzcG9uc2libGUgZm9yIGFzeW5jaHJvbm91cyBIVFRQIGV4ZWN1dGlvbi4gKi9cbmNvbnN0IEh0dHBDbGllbnRBc3luY0ZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5odHRwLkh0dHBDbGllbnRBc3luY0ZhY2FkZVwiKTtcblxuLyoqIEltcG9ydHMgdGhlIG5hdGl2ZSBKYXZhIGNsYXNzIGZvciByZXRyaWV2aW5nIFNwcmluZy1tYW5hZ2VkIGJlYW5zLiAqL1xuY29uc3QgU3ByaW5nQmVhblByb3ZpZGVyID0gSmF2YS50eXBlKFwib3JnLmVjbGlwc2UuZGlyaWdpYmxlLmNvbXBvbmVudHMuc3ByaW5nLlNwcmluZ0JlYW5Qcm92aWRlclwiKTtcblxuLyoqIFJldHJpZXZlcyB0aGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBhc3luY2hyb25vdXMgSFRUUCBjbGllbnQgZnJvbSB0aGUgU3ByaW5nIGNvbnRleHQuICovXG5jb25zdCBodHRwQ2xpZW50ID0gU3ByaW5nQmVhblByb3ZpZGVyLmdldEJlYW4oSHR0cENsaWVudEFzeW5jRmFjYWRlLmNsYXNzKTtcblxuXG4vKipcbiAqIFRoZSBhc3luY2hyb25vdXMgSFRUUCBjbGllbnQgY2xhc3MuIEFsbCByZXF1ZXN0IG1ldGhvZHMgcmV0dXJuIGltbWVkaWF0ZWx5XG4gKiBhbmQgZXhlY3V0ZSBjYWxsYmFja3MgdXBvbiBjb21wbGV0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgSHR0cEFzeW5jQ2xpZW50IHtcblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIGFuIGFzeW5jaHJvbm91cyBIVFRQIEdFVCByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIGNvbmZpZyBUaGUgY2FsbGJhY2sgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgUmVxdWVzdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgKGUuZy4sIGhlYWRlcnMsIGJvZHksIHBhcmFtcykuXG4gICAgICovXG5cdGdldEFzeW5jKHVybDogc3RyaW5nLCBjb25maWc6IEh0dHBDbGllbnRBc3luY0NvbmZpZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHZvaWQge1xuXHRcdGNvbnN0IG5ld1VybCA9IGJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG5cdFx0Y29uc3QgY2FsbGJhY2sgPSBjcmVhdGVIdHRwUmVzcG9uc2VDYWxsYmFjayhcblx0XHRcdGh0dHBDbGllbnQsXG5cdFx0XHRjb25maWcuc3VjY2Vzcyxcblx0XHRcdGNvbmZpZy5lcnJvcixcblx0XHRcdGNvbmZpZy5jYW5jZWxcblx0XHQpO1xuXHRcdGlmIChvcHRpb25zKSB7XG5cdFx0XHRodHRwQ2xpZW50LmdldEFzeW5jKG5ld1VybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucyksIGNhbGxiYWNrKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aHR0cENsaWVudC5nZXRBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KHt9KSwgY2FsbGJhY2spO1xuXHRcdH1cblx0fTtcblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIGFuIGFzeW5jaHJvbm91cyBIVFRQIFBPU1QgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqL1xuXHRwb3N0QXN5bmModXJsOiBzdHJpbmcsIGNvbmZpZzogSHR0cENsaWVudEFzeW5jQ29uZmlnLCBvcHRpb25zPzogSHR0cENsaWVudFJlcXVlc3RPcHRpb25zKTogdm9pZCB7XG5cdFx0Y29uc3QgbmV3VXJsID0gYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcblx0XHRjb25zdCBjYWxsYmFjayA9IGNyZWF0ZUh0dHBSZXNwb25zZUNhbGxiYWNrKFxuXHRcdFx0aHR0cENsaWVudCxcblx0XHRcdGNvbmZpZy5zdWNjZXNzLFxuXHRcdFx0Y29uZmlnLmVycm9yLFxuXHRcdFx0Y29uZmlnLmNhbmNlbFxuXHRcdCk7XG5cdFx0aWYgKG9wdGlvbnMpIHtcblx0XHRcdGh0dHBDbGllbnQucG9zdEFzeW5jKG5ld1VybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucyksIGNhbGxiYWNrKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aHR0cENsaWVudC5wb3N0QXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBQVVQgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqL1xuXHRwdXRBc3luYyh1cmw6IHN0cmluZywgY29uZmlnOiBIdHRwQ2xpZW50QXN5bmNDb25maWcsIG9wdGlvbnM/OiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMpOiB2b2lkIHtcblx0XHRjb25zdCBuZXdVcmwgPSBidWlsZFVybCh1cmwsIG9wdGlvbnMpO1xuXHRcdGNvbnN0IGNhbGxiYWNrID0gY3JlYXRlSHR0cFJlc3BvbnNlQ2FsbGJhY2soXG5cdFx0XHRodHRwQ2xpZW50LFxuXHRcdFx0Y29uZmlnLnN1Y2Nlc3MsXG5cdFx0XHRjb25maWcuZXJyb3IsXG5cdFx0XHRjb25maWcuY2FuY2VsXG5cdFx0KTtcblx0XHRpZiAob3B0aW9ucykge1xuXHRcdFx0aHR0cENsaWVudC5wdXRBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQucHV0QXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBQQVRDSCByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIGNvbmZpZyBUaGUgY2FsbGJhY2sgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgUmVxdWVzdCBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAgICovXG5cdHBhdGNoQXN5bmModXJsOiBzdHJpbmcsIGNvbmZpZzogSHR0cENsaWVudEFzeW5jQ29uZmlnLCBvcHRpb25zPzogSHR0cENsaWVudFJlcXVlc3RPcHRpb25zKTogdm9pZCB7XG5cdFx0Y29uc3QgbmV3VXJsID0gYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcblx0XHRjb25zdCBjYWxsYmFjayA9IGNyZWF0ZUh0dHBSZXNwb25zZUNhbGxiYWNrKFxuXHRcdFx0aHR0cENsaWVudCxcblx0XHRcdGNvbmZpZy5zdWNjZXNzLFxuXHRcdFx0Y29uZmlnLmVycm9yLFxuXHRcdFx0Y29uZmlnLmNhbmNlbFxuXHRcdCk7XG5cdFx0aWYgKG9wdGlvbnMpIHtcblx0XHRcdGh0dHBDbGllbnQucGF0Y2hBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQucGF0Y2hBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KHt9KSwgY2FsbGJhY2spO1xuXHRcdH1cblx0fTtcblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIGFuIGFzeW5jaHJvbm91cyBIVFRQIERFTEVURSByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIGNvbmZpZyBUaGUgY2FsbGJhY2sgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgUmVxdWVzdCBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAgICovXG5cdGRlbGV0ZUFzeW5jKHVybDogc3RyaW5nLCBjb25maWc6IEh0dHBDbGllbnRBc3luY0NvbmZpZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHZvaWQge1xuXHRcdGNvbnN0IG5ld1VybCA9IGJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG5cdFx0Y29uc3QgY2FsbGJhY2sgPSBjcmVhdGVIdHRwUmVzcG9uc2VDYWxsYmFjayhcblx0XHRcdGh0dHBDbGllbnQsXG5cdFx0XHRjb25maWcuc3VjY2Vzcyxcblx0XHRcdGNvbmZpZy5lcnJvcixcblx0XHRcdGNvbmZpZy5jYW5jZWxcblx0XHQpO1xuXHRcdGlmIChvcHRpb25zKSB7XG5cdFx0XHRodHRwQ2xpZW50LmRlbGV0ZUFzeW5jKG5ld1VybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucyksIGNhbGxiYWNrKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aHR0cENsaWVudC5kZWxldGVBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KHt9KSwgY2FsbGJhY2spO1xuXHRcdH1cblx0fTtcblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIGFuIGFzeW5jaHJvbm91cyBIVFRQIEhFQUQgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqL1xuXHRoZWFkQXN5bmModXJsOiBzdHJpbmcsIGNvbmZpZzogSHR0cENsaWVudEFzeW5jQ29uZmlnLCBvcHRpb25zPzogSHR0cENsaWVudFJlcXVlc3RPcHRpb25zKTogdm9pZCB7XG5cdFx0Y29uc3QgbmV3VXJsID0gYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcblx0XHRjb25zdCBjYWxsYmFjayA9IGNyZWF0ZUh0dHBSZXNwb25zZUNhbGxiYWNrKFxuXHRcdFx0aHR0cENsaWVudCxcblx0XHRcdGNvbmZpZy5zdWNjZXNzLFxuXHRcdFx0Y29uZmlnLmVycm9yLFxuXHRcdFx0Y29uZmlnLmNhbmNlbFxuXHRcdCk7XG5cdFx0aWYgKG9wdGlvbnMpIHtcblx0XHRcdGh0dHBDbGllbnQuaGVhZEFzeW5jKG5ld1VybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucyksIGNhbGxiYWNrKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aHR0cENsaWVudC5oZWFkQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBUUkFDRSByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIGNvbmZpZyBUaGUgY2FsbGJhY2sgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgUmVxdWVzdCBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAgICovXG5cdHRyYWNlQXN5bmModXJsOiBzdHJpbmcsIGNvbmZpZzogSHR0cENsaWVudEFzeW5jQ29uZmlnLCBvcHRpb25zPzogSHR0cENsaWVudFJlcXVlc3RPcHRpb25zKTogdm9pZCB7XG5cdFx0Y29uc3QgbmV3VXJsID0gYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcblx0XHRjb25zdCBjYWxsYmFjayA9IGNyZWF0ZUh0dHBSZXNwb25zZUNhbGxiYWNrKFxuXHRcdFx0aHR0cENsaWVudCxcblx0XHRcdGNvbmZpZy5zdWNjZXNzLFxuXHRcdFx0Y29uZmlnLmVycm9yLFxuXHRcdFx0Y29uZmlnLmNhbmNlbFxuXHRcdCk7XG5cdFx0aWYgKG9wdGlvbnMpIHtcblx0XHRcdGh0dHBDbGllbnQudHJhY2VBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQudHJhY2VBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KHt9KSwgY2FsbGJhY2spO1xuXHRcdH1cblx0fTtcblxuICAgIC8qKlxuICAgICAqIEluaXRpYXRlcyB0aGUgZXhlY3V0aW9uIG9mIHF1ZXVlZCBhc3luY2hyb25vdXMgcmVxdWVzdHMgKGRlcGVuZGluZyBvbiB0aGUgdW5kZXJseWluZyBKYXZhIGNsaWVudCdzIHRocmVhZGluZyBtb2RlbCkuXG4gICAgICovXG5cdGV4ZWN1dGUoKTogdm9pZCB7XG5cdFx0aHR0cENsaWVudC5leGVjdXRlKCk7XG5cdH07XG59XG5cbi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbiB0byByZXRyaWV2ZSBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgYXN5bmNocm9ub3VzIGNsaWVudC5cbiAqIEByZXR1cm5zIEEgbmV3IGluc3RhbmNlIG9mIEh0dHBBc3luY0NsaWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEluc3RhbmNlKCk6IEh0dHBBc3luY0NsaWVudCB7XG5cdHJldHVybiBuZXcgSHR0cEFzeW5jQ2xpZW50KCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuYXRpdmUgSmF2YSBjYWxsYmFjayBvYmplY3QgdGhhdCB3cmFwcyB0aGUgSmF2YVNjcmlwdCBzdWNjZXNzLCBlcnJvciwgYW5kIGNhbmNlbCBjYWxsYmFja3MuXG4gKiBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlIHVuZGVybHlpbmcgSmF2YSBIVFRQIGNsaWVudCBpbnN0YW5jZSB0byBnZW5lcmF0ZSB0aGUgZmluYWwgY2FsbGJhY2sgb2JqZWN0LlxuICogQHBhcmFtIGh0dHBDbGllbnQgVGhlIEphdmEgSHR0cENsaWVudEFzeW5jRmFjYWRlIGluc3RhbmNlLlxuICogQHBhcmFtIHN1Y2Nlc3NDYWxsYmFjayBKUyBjb2RlIHN0cmluZyBmb3Igc3VjY2Vzcy5cbiAqIEBwYXJhbSBlcnJvckNhbGxiYWNrIEpTIGNvZGUgc3RyaW5nIGZvciBlcnJvci5cbiAqIEBwYXJhbSBjYW5jZWxDYWxsYmFjayBKUyBjb2RlIHN0cmluZyBmb3IgY2FuY2VsLlxuICogQHJldHVybnMgQSBKYXZhIGNhbGxiYWNrIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlSHR0cFJlc3BvbnNlQ2FsbGJhY2soaHR0cENsaWVudDogYW55LCBzdWNjZXNzQ2FsbGJhY2s6IHN0cmluZywgZXJyb3JDYWxsYmFjaz86IHN0cmluZywgY2FuY2VsQ2FsbGJhY2s/OiBzdHJpbmcpOiBhbnkge1xuXHRyZXR1cm4gaHR0cENsaWVudC5jcmVhdGVDYWxsYmFjayhcblx0XHRjcmVhdGVTdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKSxcblx0XHRjcmVhdGVFcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spLFxuXHRcdGNyZWF0ZUNhbmNlbENhbGxiYWNrKGNhbmNlbENhbGxiYWNrKVxuXHQpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgcmF3IEphdmFTY3JpcHQgc3RyaW5nIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBpbiB0aGUgSlZNIGVudmlyb25tZW50IHVwb24gc3VjY2Vzc2Z1bCByZXF1ZXN0IGNvbXBsZXRpb24uXG4gKiBUaGlzIHN0cmluZyBoYW5kbGVzIHBhcnNpbmcgdGhlIEphdmEgSFRUUCByZXNwb25zZSBvYmplY3QgYW5kIGV4ZWN1dGluZyB0aGUgdXNlcidzIGRlZmluZWQgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKiBAcGFyYW0gY2FsbGJhY2sgVGhlIHVzZXItcHJvdmlkZWQgc3VjY2VzcyBjYWxsYmFjayBmdW5jdGlvbiBjb2RlIHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSBjb21wbGV4IEphdmFTY3JpcHQgc3RyaW5nIGZvciB0aGUgc3VjY2VzcyBoYW5kbGVyLlxuICovXG5mdW5jdGlvbiBjcmVhdGVTdWNjZXNzQ2FsbGJhY2soY2FsbGJhY2s6IHN0cmluZyk6IHN0cmluZyB7XG5cdC8vIE5vdGU6IFRoaXMgc3RyaW5nIHVzZXMgSmF2YSB1dGlsaXR5IGNsYXNzZXMgKG9yZy5hcGFjaGUuY29tbW9ucy5pby5JT1V0aWxzKSBhbmQgY29udGV4dCB2YXJpYWJsZXMgXG4gICAgLy8gKF9fY29udGV4dCkgdGhhdCBhcmUgYXZhaWxhYmxlIGluIHRoZSBzcGVjaWZpYyBKVk0gZW52aXJvbm1lbnQuXG4gICAgXG4gICAgLy8gVGhlIHN0cnVjdHVyZSBtYXBzIHRoZSBKYXZhIEhUVFAgUmVzcG9uc2Ugb2JqZWN0IGludG8gdGhlIHN0YW5kYXJkIEh0dHBDbGllbnRSZXNwb25zZSBpbnRlcmZhY2UuXG5cdHJldHVybiBcIihmdW5jdGlvbihodHRwUmVzcG9uc2UsIGlzQmluYXJ5LCBjb250ZXh0KSB7XFxuXCJcblx0XHQrIFwidmFyIHJlc3BvbnNlID0ge307XFxuXCJcblx0XHQrIFwicmVzcG9uc2Uuc3RhdHVzQ29kZSA9IGh0dHBSZXNwb25zZS5nZXRTdGF0dXNMaW5lKCkuZ2V0U3RhdHVzQ29kZSgpO1xcblwiXG5cdFx0KyBcInJlc3BvbnNlLnN0YXR1c01lc3NhZ2UgPSBodHRwUmVzcG9uc2UuZ2V0U3RhdHVzTGluZSgpLmdldFJlYXNvblBocmFzZSgpO1xcblwiXG5cdFx0KyBcInJlc3BvbnNlLnByb3RvY29sID0gaHR0cFJlc3BvbnNlLmdldFByb3RvY29sVmVyc2lvbigpO1xcblwiXG5cdFx0KyBcInJlc3BvbnNlLmJpbmFyeSA9IGlzQmluYXJ5O1xcblwiXG5cblx0XHQrIFwidmFyIGhlYWRlcnMgPSBodHRwUmVzcG9uc2UuZ2V0QWxsSGVhZGVycygpO1xcblwiXG5cdFx0KyBcInJlc3BvbnNlLmhlYWRlcnMgPSBbXTtcXG5cIlxuXHRcdCsgXCJmb3IgKHZhciBpID0gMDsgaSA8IGhlYWRlcnMubGVuZ3RoOyBpICsrKSB7XFxuXCJcblx0XHQrIFwiICAgIHJlc3BvbnNlLmhlYWRlcnMucHVzaCh7XFxuXCJcblx0XHQrIFwiICAgICAgICBuYW1lOiBoZWFkZXJzW2ldLmdldE5hbWUoKSxcXG5cIlxuXHRcdCsgXCIgICAgICAgIHZhbHVlOiBoZWFkZXJzW2ldLmdldFZhbHVlKClcXG5cIlxuXHRcdCsgXCIgICAgfSk7XFxuXCJcblx0XHQrIFwifVxcblwiXG5cblx0XHQrIFwidmFyIGVudGl0eSA9IGh0dHBSZXNwb25zZS5nZXRFbnRpdHkoKTtcXG5cIlxuXHRcdCsgXCJpZiAoZW50aXR5KSB7XFxuXCJcblx0XHQrIFwiICAgIHZhciBpbnB1dFN0cmVhbSA9IGVudGl0eS5nZXRDb250ZW50KCk7XFxuXCJcblx0XHQrIFwiICAgIGlmIChpc0JpbmFyeSkge1xcblwiXG5cdFx0KyBcIiAgICAgICAgLy8gVXNlcyBKYXZhIElPVXRpbHMgdG8gcmVhZCBiaW5hcnkgZGF0YVxcblwiXG5cdFx0KyBcIiAgICAgICAgcmVzcG9uc2UuZGF0YSA9IG9yZy5hcGFjaGUuY29tbW9ucy5pby5JT1V0aWxzLnRvQnl0ZUFycmF5KGlucHV0U3RyZWFtKTtcXG5cIlxuXHRcdCsgXCIgICAgfSBlbHNlIHtcXG5cIlxuXHRcdCsgXCIgICAgICAgIC8vIFVzZXMgSmF2YSBJT1V0aWxzIHRvIHJlYWQgdGV4dCBkYXRhXFxuXCJcblx0XHQrIFwiICAgICAgICByZXNwb25zZS50ZXh0ID0gb3JnLmFwYWNoZS5jb21tb25zLmlvLklPVXRpbHMudG9TdHJpbmcoaW5wdXRTdHJlYW0pO1xcblwiXG5cdFx0KyBcIiAgICB9XFxuXCJcblx0XHQrIFwifVxcblwiXG5cblx0XHQrIFwiKFwiICsgY2FsbGJhY2sgKyBcIikocmVzcG9uc2UsIEpTT04ucGFyc2UoY29udGV4dCkpO1xcblwiXG5cdFx0KyBcIn0pKF9fY29udGV4dC5nZXQoJ3Jlc3BvbnNlJyksIF9fY29udGV4dC5nZXQoJ2h0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucycpLmlzQmluYXJ5KCksIF9fY29udGV4dC5nZXQoJ2h0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucycpLmdldENvbnRleHQoKSk7XFxuXCI7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIHRoZSByYXcgSmF2YVNjcmlwdCBzdHJpbmcgZm9yIHRoZSBlcnJvciBjYWxsYmFjay5cbiAqIEBwYXJhbSBjYWxsYmFjayBUaGUgdXNlci1wcm92aWRlZCBlcnJvciBjYWxsYmFjayBmdW5jdGlvbiBjb2RlIHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSBKYXZhU2NyaXB0IHN0cmluZyBmb3IgdGhlIGVycm9yIGhhbmRsZXIsIG9yIHVuZGVmaW5lZC5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlRXJyb3JDYWxsYmFjayhjYWxsYmFjaz86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGlmIChjYWxsYmFjaykge1xuXHRcdHJldHVybiBcIihcIiArIGNhbGxiYWNrICsgXCIpKF9fY29udGV4dC5nZXQoJ2V4Y2VwdGlvbicpKVwiO1xuXHR9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIHJhdyBKYXZhU2NyaXB0IHN0cmluZyBmb3IgdGhlIGNhbmNlbCBjYWxsYmFjay5cbiAqIEBwYXJhbSBjYWxsYmFjayBUaGUgdXNlci1wcm92aWRlZCBjYW5jZWwgY2FsbGJhY2sgZnVuY3Rpb24gY29kZSBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgSmF2YVNjcmlwdCBzdHJpbmcgZm9yIHRoZSBjYW5jZWwgaGFuZGxlciwgb3IgdW5kZWZpbmVkLlxuICovXG5mdW5jdGlvbiBjcmVhdGVDYW5jZWxDYWxsYmFjayhjYWxsYmFjaz86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGlmIChjYWxsYmFjaykge1xuXHRcdHJldHVybiBcIihcIiArIGNhbGxiYWNrICsgXCIpKClcIjtcblx0fVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBmaW5hbCBVUkwgYnkgYXBwZW5kaW5nIGFsbCBxdWVyeSBwYXJhbWV0ZXJzIGRlZmluZWQgaW4gb3B0aW9ucy5wYXJhbXMuXG4gKiBUaGUgcGFyYW1ldGVycyBhcmUgbm90IHJlbW92ZWQgZnJvbSB0aGUgb3B0aW9ucyBvYmplY3QgYXMgdGhleSBhcmUgZm9yIHRoZSBzeW5jaHJvbm91cyBjbGllbnQsXG4gKiBzaW5jZSB0aGUgb3B0aW9ucyBhcmUgcGFzc2VkIGFzIEpTT04gc3RyaW5nIHRvIHRoZSBmYWNhZGUgYW55d2F5LlxuICogQHBhcmFtIHVybCBUaGUgYmFzZSBVUkwuXG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgcmVxdWVzdCBvcHRpb25zIHdoaWNoIG1heSBjb250YWluIGBwYXJhbXNgLlxuICogQHJldHVybnMgVGhlIFVSTCB3aXRoIGFwcGVuZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkVXJsKHVybDogc3RyaW5nLCBvcHRpb25zPzogSHR0cENsaWVudFJlcXVlc3RPcHRpb25zKTogc3RyaW5nIHtcblx0aWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fCBvcHRpb25zID09PSBudWxsIHx8IG9wdGlvbnMucGFyYW1zID09PSB1bmRlZmluZWQgfHwgb3B0aW9ucy5wYXJhbXMgPT09IG51bGwgfHwgb3B0aW9ucy5wYXJhbXMubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIHVybDtcblx0fVxuXHRsZXQgbmV3VXJsID0gdXJsO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IG9wdGlvbnMucGFyYW1zLmxlbmd0aDsgaSArKykge1xuICAgICAgICBjb25zdCBwYXJhbSA9IG9wdGlvbnMucGFyYW1zW2ldO1xuXHRcdGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiBVUkwgYWxyZWFkeSBjb250YWlucyAnPycgYW5kIHVzZSAnJicgaWYgc28gKGltcHJvdmVzIHJvYnVzdG5lc3MpXG4gICAgICAgICAgICBpZiAobmV3VXJsLmluY2x1ZGVzKCc/JykpIHtcbiAgICAgICAgICAgICAgICBuZXdVcmwgKz0gJyYnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdVcmwgKz0gJz8nO1xuICAgICAgICAgICAgfVxuXHRcdFx0bmV3VXJsICs9IHBhcmFtLm5hbWUgKyAnPScgKyBwYXJhbS52YWx1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bmV3VXJsICs9ICcmJyArIHBhcmFtLm5hbWUgKyAnPScgKyBwYXJhbS52YWx1ZTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIG5ld1VybDtcbn1cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSB7IEh0dHBBc3luY0NsaWVudCwgZ2V0SW5zdGFuY2UgfTtcbn0iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVJQSxNQUFNLHdCQUF3QixLQUFLLEtBQUssaUVBQWlFO0FBR3pHLE1BQU0scUJBQXFCLEtBQUssS0FBSyw0REFBNEQ7QUFHakcsTUFBTSxhQUFhLG1CQUFtQixRQUFRLHNCQUFzQixLQUFLO0FBT2xFLE1BQU0sZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRNUIsU0FBUyxLQUFhLFFBQStCLFNBQTBDO0FBQzlGLFVBQU0sU0FBUyxTQUFTLEtBQUssT0FBTztBQUNwQyxVQUFNLFdBQVc7QUFBQSxNQUNoQjtBQUFBLE1BQ0EsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLElBQ1I7QUFDQSxRQUFJLFNBQVM7QUFDWixpQkFBVyxTQUFTLFFBQVEsS0FBSyxVQUFVLE9BQU8sR0FBRyxRQUFRO0FBQUEsSUFDOUQsT0FBTztBQUNOLGlCQUFXLFNBQVMsUUFBUSxLQUFLLFVBQVUsQ0FBQyxDQUFDLEdBQUcsUUFBUTtBQUFBLElBQ3pEO0FBQUEsRUFDRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsVUFBVSxLQUFhLFFBQStCLFNBQTBDO0FBQy9GLFVBQU0s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QUNOLGlCQUFXLFdBQVcsUUFBUSxLQUFLLFVBQVUsQ0FBQyxDQUFDLEdBQUcsUUFBUTtBQUFBLElBQzNEO0FBQUEsRUFDRDtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsVUFBZ0I7QUFDZixlQUFXLFFBQVE7QUFBQSxFQUNwQjtBQUNEO0FBTU8sU0FBUyxjQUErQjtBQUM5QyxTQUFPLElBQUksZ0JBQWdCO0FBQzVCO0FBQUM7QUFXRCxTQUFTLDJCQUEyQkEsYUFBaUIsaUJBQXlCLGVBQXdCLGdCQUE4QjtBQUNuSSxTQUFPQSxZQUFXO0FBQUEsSUFDakIsc0JBQXNCLGVBQWU7QUFBQSxJQUNyQyxvQkFBb0IsYUFBYTtBQUFBLElBQ2pDLHFCQUFxQixjQUFjO0FBQUEsRUFDcEM7QUFDRDtBQVFBLFNBQVMsc0JBQXNCLFVBQTBCO0FBS3hELFNBQU8sbTZCQTRCRSxXQUFXO0FBRXJCO0FBT0EsU0FBUyxvQkFBb0IsVUFBdUM7QUFDbkUsTUFBSSxVQUFVO0FBQ2IsV0FBTyxNQUFNLFdBQVc7QUFBQSxFQUN6QjtBQUNHLFNBQU87QUFDWDtBQU9BLFNBQVMscUJBQXFCLFVBQXVDO0FBQ3BFLE1BQUksVUFBVTtBQUNiLFdBQU8sTUFBTSxXQUFXO0FBQUEsRUFDekI7QUFDRyxTQUFPO0FBQ1g7QUFVQSxTQUFTLFNBQVMsS0FBYSxTQUE0QztBQUMxRSxNQUFJLFlBQVksVUFBYSxZQUFZLFFBQVEsUUFBUSxXQUFXLFVBQWEsUUFBUSxXQUFXLFFBQVEsUUFBUSxPQUFPLFdBQVcsR0FBRztBQUN4SSxXQUFPO0FBQUEsRUFDUjtBQUNBLE1BQUksU0FBUztBQUNiLFdBQVMsSUFBSSxHQUFHLElBQUksUUFBUSxPQUFPLFFBQVEsS0FBTTtBQUMxQyxVQUFNLFFBQVEsUUFBUSxPQUFPLENBQUM7QUFDcEMsUUFBSSxNQUFNLEdBQUc7QUFFSCxVQUFJLE9BQU8sU0FBUyxHQUFHLEdBQUc7QUFDdEIsa0JBQVU7QUFBQSxNQUNkLE9BQU87QUFDSCxrQkFBVTtBQUFBLE1BQ2Q7QUFDVCxnQkFBVSxNQUFNLE9BQU8sTUFBTSxNQUFNO0FBQUEsSUFDcEMsT0FBTztBQUNOLGdCQUFVLE1BQU0sTUFBTSxPQUFPLE1BQU0sTUFBTTtBQUFBLElBQzFDO0FBQUEsRUFDRDtBQUNBLFNBQU87QUFDUjtBQUdBLElBQUksT0FBTyxXQUFXLGFBQWE7QUFFbEMsU0FBTyxVQUFVLEVBQUUsaUJBQWlCLFlBQVk7QUFDakQ7IiwKICAibmFtZXMiOiBbImh0dHBDbGllbnQiXQp9Cg==
|
package/dist/cjs/http/client.js
CHANGED
|
@@ -142,4 +142,4 @@ class HttpClient {
|
|
|
142
142
|
if (typeof module !== "undefined") {
|
|
143
143
|
module.exports = HttpClient;
|
|
144
144
|
}
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvY2xpZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIFByb3ZpZGVzIGEgSmF2YVNjcmlwdC9UeXBlU2NyaXB0IHdyYXBwZXIgKEZhY2FkZSkgZm9yIG1ha2luZyBzeW5jaHJvbm91cyBIVFRQIHJlcXVlc3RzLlxuICpcbiAqL1xuXG5jb25zdCBIdHRwQ2xpZW50RmFjYWRlID0gSmF2YS50eXBlKFwib3JnLmVjbGlwc2UuZGlyaWdpYmxlLmNvbXBvbmVudHMuYXBpLmh0dHAuSHR0cENsaWVudEZhY2FkZVwiKTtcblxuLyoqXG4gKiBEZWZpbmVzIGEgc2luZ2xlIEhUVFAgaGVhZGVyLCB1c2VkIGZvciBib3RoIHJlcXVlc3QgYW5kIHJlc3BvbnNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDbGllbnRIZWFkZXIge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgaGVhZGVyIChlLmcuLCAnQ29udGVudC1UeXBlJywgJ0F1dGhvcml6YXRpb24nKS4gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyLiAqL1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIHF1ZXJ5IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIFVSTC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50UGFyYW0ge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgVVJMIHF1ZXJ5IHBhcmFtZXRlciAoZS5nLiwgJ2lkJykuICovXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKiBUaGUgdmFsdWUgb2YgdGhlIFVSTCBxdWVyeSBwYXJhbWV0ZXIuICovXG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgZmlsZSB0byBiZSBpbmNsdWRlZCBpbiBhIG11bHRpLXBhcnQgZm9ybSBkYXRhIHJlcXVlc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudEZpbGUge1xuICAgIC8qKiBUaGUgZm9ybSBmaWVsZCBuYW1lIGZvciB0aGUgZmlsZS4gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBmaWxlIHBhdGggb3IgY29udGVudCAoYmVoYXZpb3IgZGVwZW5kcyBvbiB0aGUgdW5kZXJseWluZyBKYXZhIGltcGxlbWVudGF0aW9uKS4gKi9cbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgYW4gSFRUUCByZXF1ZXN0LCBtaXJyb3JpbmcgdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgdW5kZXJseWluZyBKYXZhIGNsaWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMge1xuICAgIC8qKiBXaGV0aGVyICdFeHBlY3Q6IDEwMC1Db250aW51ZScgaGFuZHNoYWtlIGlzIGVuYWJsZWQuIERlZmF1bHRzIHRvIGZhbHNlLiAqL1xuICAgIGV4cGVjdENvbnRpbnVlRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIFRoZSBwcm94eSBob3N0bmFtZSB0byB1c2UgZm9yIHRoZSByZXF1ZXN0LiAqL1xuICAgIHByb3h5SG9zdD86IHN0cmluZztcbiAgICAvKiogVGhlIHByb3h5IHBvcnQgbnVtYmVyLiAqL1xuICAgIHByb3h5UG9ydD86IG51bWJlcjtcbiAgICAvKiogVGhlIGNvb2tpZSBzcGVjaWZpY2F0aW9uIHRvIHVzZSAoZS5nLiwgJ2RlZmF1bHQnLCAnbmV0c2NhcGUnKS4gKi9cbiAgICBjb29raWVTcGVjPzogc3RyaW5nO1xuICAgIC8qKiBXaGV0aGVyIGF1dG9tYXRpYyByZWRpcmVjdHMgYXJlIGVuYWJsZWQuIERlZmF1bHRzIHRvIHRydWUuICovXG4gICAgcmVkaXJlY3RzRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIFdoZXRoZXIgcmVsYXRpdmUgcmVkaXJlY3RzIHNob3VsZCBiZSBhbGxvd2VkLiBEZWZhdWx0cyB0byB0cnVlLiAqL1xuICAgIHJlbGF0aXZlUmVkaXJlY3RzQWxsb3dlZD86IGJvb2xlYW47XG4gICAgLyoqIFdoZXRoZXIgY2lyY3VsYXIgcmVkaXJlY3RzIChpbmZpbml0ZSBsb29wcykgc2hvdWxkIGJlIGFsbG93ZWQuIERlZmF1bHRzIHRvIGZhbHNlLiAqL1xuICAgIGNpcmN1bGFyUmVkaXJlY3RzQWxsb3dlZD86IGJvb2xlYW47XG4gICAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiByZWRpcmVjdHMgdG8gZm9sbG93LiAqL1xuICAgIG1heFJlZGlyZWN0cz86IG51bWJlcjtcbiAgICAvKiogV2hldGhlciBhdXRoZW50aWNhdGlvbiBoYW5kbGluZyBpcyBlbmFibGVkLiAqL1xuICAgIGF1dGhlbnRpY2F0aW9uRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIEFycmF5IG9mIHByZWZlcnJlZCBhdXRoZW50aWNhdGlvbiBzY2hlbWVzIGZvciB0aGUgdGFyZ2V0IGhvc3QuICovXG4gICAgdGFyZ2V0UHJlZmVycmVkQXV0aFNjaGVtZXM/OiBzdHJpbmdbXTtcbiAgICAvKiogQXJyYXkgb2YgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIHNjaGVtZXMgZm9yIHRoZSBwcm94eS4gKi9cbiAgICBwcm94eVByZWZlcnJlZEF1dGhTY2hlbWVzPzogc3RyaW5nW107XG4gICAgLyoqIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGZvciByZXF1ZXN0aW5nIGEgY29ubmVjdGlvbiBmcm9tIHRoZSBjb25uZWN0aW9uIG1hbmFnZXIuICovXG4gICAgY29ubmVjdGlvblJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xuICAgIC8qKiBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZXN0YWJsaXNoaW5nIHRoZSBjb25uZWN0aW9uLiAqL1xuICAgIGNvbm5lY3RUaW1lb3V0PzogbnVtYmVyO1xuICAgIC8qKiBTb2NrZXQgdGltZW91dCAodGltZW91dCBmb3Igd2FpdGluZyBmb3IgZGF0YSkgaW4gbWlsbGlzZWNvbmRzLiAqL1xuICAgIHNvY2tldFRpbWVvdXQ/OiBudW1iZXI7XG4gICAgLyoqIFdoZXRoZXIgYXV0b21hdGljIGNvbnRlbnQgY29tcHJlc3Npb24gKGUuZy4sIGd6aXApIGlzIGVuYWJsZWQuICovXG4gICAgY29udGVudENvbXByZXNzaW9uRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIFdoZXRoZXIgdG8gdHJ1c3QgYWxsIFNTTCBjZXJ0aWZpY2F0ZXMgKHVzZSBvbmx5IGZvciB0ZXN0aW5nIG5vbi1wcm9kdWN0aW9uIHN5c3RlbXMpLiAqL1xuICAgIHNzbFRydXN0QWxsRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIERhdGEgdG8gYmUgc2VudCBhcyB0aGUgcmVxdWVzdCBib2R5LCB0eXBpY2FsbHkgYXMgYW4gYXJyYXkgb2YgYnl0ZXMvaW50ZWdlcnMuICovXG4gICAgZGF0YT86IGFueVtdO1xuICAgIC8qKiBUZXh0IGNvbnRlbnQgdG8gYmUgc2VudCBhcyB0aGUgcmVxdWVzdCBib2R5LiBUYWtlcyBwcmVjZWRlbmNlIG92ZXIgYGRhdGFgLiAqL1xuICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgLyoqIEFycmF5IG9mIGZpbGVzIGZvciBtdWx0aS1wYXJ0IGZvcm0gZGF0YSBzdWJtaXNzaW9ucy4gKi9cbiAgICBmaWxlcz86IEh0dHBDbGllbnRGaWxlW107XG4gICAgLyoqIFRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgKGNoYXJzZXQpIHRvIHVzZSBmb3IgdGhlIHJlcXVlc3QgYm9keSAoZS5nLiwgJ1VURi04JykuICovXG4gICAgY2hhcmFjdGVyRW5jb2Rpbmc/OiBzdHJpbmc7XG4gICAgLyoqIFdoZXRoZXIgdG8gZW5mb3JjZSB0aGUgY2hhcmFjdGVyIGVuY29kaW5nLiAqL1xuICAgIGNoYXJhY3RlckVuY29kaW5nRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIFRoZSBDb250ZW50LVR5cGUgaGVhZGVyIHZhbHVlIGZvciB0aGUgcmVxdWVzdCBib2R5LiAqL1xuICAgIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuICAgIC8qKiBBcnJheSBvZiBjdXN0b20gaGVhZGVycyB0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0LiAqL1xuICAgIGhlYWRlcnM/OiBIdHRwQ2xpZW50SGVhZGVyW107XG4gICAgLyoqIEFycmF5IG9mIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIFVSTC4gKi9cbiAgICBwYXJhbXM/OiBIdHRwQ2xpZW50UGFyYW1bXTtcbiAgICAvKiogSWYgdHJ1ZSwgdHJlYXRzIHRoZSByZXNwb25zZSBib2R5IGFzIGJpbmFyeSBkYXRhLiAqL1xuICAgIGJpbmFyeT86IGJvb2xlYW47XG4gICAgLyoqIE9wdGlvbmFsIGNvbnRleHQgbWFwIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9mIHRoZSB1bmRlcmx5aW5nIEphdmEgY2xpZW50LiAqL1xuICAgIGNvbnRleHQ/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIFRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHJlc3BvbnNlIHJldHVybmVkIGJ5IHRoZSBIdHRwQ2xpZW50IG1ldGhvZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAvKiogVGhlIEhUVFAgc3RhdHVzIGNvZGUgKGUuZy4sIDIwMCwgNDA0LCA1MDApLiAqL1xuICAgIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgICAvKiogVGhlIHN0YXR1cyBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZSBzZXJ2ZXIgKGUuZy4sICdPSycsICdOb3QgRm91bmQnKS4gKi9cbiAgICBzdGF0dXNNZXNzYWdlOiBzdHJpbmc7XG4gICAgLyoqIFJlc3BvbnNlIGJvZHkgY29udGVudCBhcyBhbiBhcnJheSBvZiBieXRlcyAoaWYgcmVxdWVzdGVkIGFzIGJpbmFyeSkuICovXG4gICAgZGF0YTogYW55W107XG4gICAgLyoqIFJlc3BvbnNlIGJvZHkgY29udGVudCBhcyBhIGRlY29kZWQgc3RyaW5nLiAqL1xuICAgIHRleHQ6IHN0cmluZztcbiAgICAvKiogVGhlIHByb3RvY29sIHVzZWQgKGUuZy4sICdIVFRQLzEuMScpLiAqL1xuICAgIHByb3RvY29sOiBzdHJpbmc7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgcmVzcG9uc2Ugd2FzIHByb2Nlc3NlZCBhcyBiaW5hcnkgZGF0YS4gKi9cbiAgICBiaW5hcnk6IGJvb2xlYW47XG4gICAgLyoqIEFycmF5IG9mIGFsbCBoZWFkZXJzIHJlY2VpdmVkIGluIHRoZSByZXNwb25zZS4gKi9cbiAgICBoZWFkZXJzOiBIdHRwQ2xpZW50SGVhZGVyW11cbn1cblxuLyoqXG4gKiBBIHN0YXRpYyBjbGFzcyBwcm92aWRpbmcgbWV0aG9kcyBmb3IgbWFraW5nIHN5bmNocm9ub3VzIEhUVFAgcmVxdWVzdHMuXG4gKiBBbGwgbWV0aG9kcyBjYWxsIHRoZSB1bmRlcmx5aW5nIEphdmEgRmFjYWRlIGFuZCBwYXJzZSB0aGUgSlNPTiByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEh0dHBDbGllbnQge1xuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzeW5jaHJvbm91cyBIVFRQIEdFVCByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3BvbnNlIG9iamVjdCBjb250YWluaW5nIHN0YXR1cywgaGVhZGVycywgYW5kIGJvZHkuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXQodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFVybCA9IEh0dHBDbGllbnQuYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcbiAgICAgICAgLy8gVGhlIEphdmEgRmFjYWRlIGV4cGVjdHMgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcyBhIEpTT04gc3RyaW5nXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gSHR0cENsaWVudEZhY2FkZS5nZXQocmVxdWVzdFVybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzeW5jaHJvbm91cyBIVFRQIFBPU1QgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QsIGluY2x1ZGluZyByZXF1ZXN0IGJvZHkgaW4gYHRleHRgIG9yIGBkYXRhYC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHBvc3QodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFVybCA9IEh0dHBDbGllbnQuYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBIdHRwQ2xpZW50RmFjYWRlLnBvc3QocmVxdWVzdFVybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzeW5jaHJvbm91cyBIVFRQIFBVVCByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHB1dCh1cmw6IHN0cmluZywgb3B0aW9uczogSHR0cENsaWVudFJlcXVlc3RPcHRpb25zID0ge30pOiBIdHRwQ2xpZW50UmVzcG9uc2Uge1xuICAgICAgICBjb25zdCByZXF1ZXN0VXJsID0gSHR0cENsaWVudC5idWlsZFVybCh1cmwsIG9wdGlvbnMpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IEh0dHBDbGllbnRGYWNhZGUucHV0KHJlcXVlc3RVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKTtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIGEgc3luY2hyb25vdXMgSFRUUCBQQVRDSCByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHBhdGNoKHVybDogc3RyaW5nLCBvcHRpb25zOiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMgPSB7fSk6IEh0dHBDbGllbnRSZXNwb25zZSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RVcmwgPSBIdHRwQ2xpZW50LmJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gSHR0cENsaWVudEZhY2FkZS5wYXRjaChyZXF1ZXN0VXJsLCBKU09OLnN0cmluZ2lmeShvcHRpb25zKSk7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhIHN5bmNocm9ub3VzIEhUVFAgREVMRVRFIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIHVybCBUaGUgdGFyZ2V0IFVSTC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgICAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVsZXRlKHVybDogc3RyaW5nLCBvcHRpb25zOiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMgPSB7fSk6IEh0dHBDbGllbnRSZXNwb25zZSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RVcmwgPSBIdHRwQ2xpZW50LmJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gSHR0cENsaWVudEZhY2FkZS5kZWxldGUocmVxdWVzdFVybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxpYXMgZm9yIHtAbGluayBIdHRwQ2xpZW50LmRlbGV0ZX0uIEV4ZWN1dGVzIGEgc3luY2hyb25vdXMgSFRUUCBERUxFVEUgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QuXG4gICAgICogQHJldHVybnMgVGhlIHBhcnNlZCByZXNwb25zZSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWwodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAgICAgcmV0dXJuIEh0dHBDbGllbnQuZGVsZXRlKHVybCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzeW5jaHJvbm91cyBIVFRQIEhFQUQgcmVxdWVzdCAoZmV0Y2hlcyBoZWFkZXJzIG9ubHkpLlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3BvbnNlIG9iamVjdC4gVGhlIGJvZHkgKGB0ZXh0YCBhbmQgYGRhdGFgKSB3aWxsIHR5cGljYWxseSBiZSBlbXB0eS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGhlYWQodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFVybCA9IEh0dHBDbGllbnQuYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBIdHRwQ2xpZW50RmFjYWRlLmhlYWQocmVxdWVzdFVybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzeW5jaHJvbm91cyBIVFRQIFRSQUNFIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIHVybCBUaGUgdGFyZ2V0IFVSTC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgICAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdHJhY2UodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFVybCA9IEh0dHBDbGllbnQuYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBIdHRwQ2xpZW50RmFjYWRlLnRyYWNlKHJlcXVlc3RVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKTtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQnVpbGRzIHRoZSByZXF1ZXN0IFVSTCBieSBhcHBlbmRpbmcgcXVlcnkgcGFyYW1ldGVycyBmcm9tIG9wdGlvbnMucGFyYW1zLFxuICAgICAqIHRoZW4gcmVtb3ZlcyBgcGFyYW1zYCBmcm9tIHRoZSBvcHRpb25zIG9iamVjdCBiZWZvcmUgcGFzc2luZyBpdCB0byB0aGUgSmF2YSBGYWNhZGUuXG4gICAgICogQHBhcmFtIHVybCBUaGUgYmFzZSBVUkwuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIHJlcXVlc3Qgb3B0aW9ucyBvYmplY3QuXG4gICAgICogQHJldHVybnMgVGhlIFVSTCB3aXRoIGFwcGVuZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRVcmwodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5wYXJhbXMgfHwgb3B0aW9ucy5wYXJhbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByb2Nlc3NlZFVybCA9IHVybDtcbiAgICAgICAgbGV0IGZpcnN0UGFyYW0gPSB0cnVlO1xuXG4gICAgICAgIGZvciAoY29uc3QgcGFyYW0gb2Ygb3B0aW9ucy5wYXJhbXMpIHtcbiAgICAgICAgICAgIGlmIChmaXJzdFBhcmFtKSB7XG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIG9yaWdpbmFsIFVSTCBhbHJlYWR5IGhhcyBxdWVyeSBwYXJhbWV0ZXJzXG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3NlZFVybC5pbmNsdWRlcygnPycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZFVybCArPSAnJic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2VkVXJsICs9ICc/JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmlyc3RQYXJhbSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzZWRVcmwgKz0gJyYnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTaW1wbGUgVVJMIGVuY29kaW5nIG9mIHRoZSB2YWx1ZSBpcyBhc3N1bWVkIGhlcmUgZm9yIGJhc2ljIG9wZXJhdGlvblxuICAgICAgICAgICAgcHJvY2Vzc2VkVXJsICs9IGAke3BhcmFtLm5hbWV9PSR7cGFyYW0udmFsdWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSBwYXJhbXMgZnJvbSBvcHRpb25zIGJlY2F1c2UgdGhleSBhcmUgbm93IHBhcnQgb2YgdGhlIFVSTCBzdHJpbmcuXG4gICAgICAgIGRlbGV0ZSBvcHRpb25zLnBhcmFtcztcblxuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkVXJsO1xuICAgIH1cbn1cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBIdHRwQ2xpZW50O1xufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBLE1BQU0sbUJBQW1CLEtBQUssS0FBSyw0REFBNEQ7QUFrSHhGLE1BQU0sV0FBVztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUXBCLE9BQWMsSUFBSSxLQUFhLFVBQW9DLENBQUMsR0FBdUI7QUFDdkYsVUFBTSxhQUFhLFdBQVcsU0FBUyxLQUFLLE9BQU87QUFFbkQsVUFBTSxXQUFXLGlCQUFpQixJQUFJLFlBQVksS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUN6RSxXQUFPLEtBQUssTUFBTSxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsS0FBSyxLQUFhLFVBQW9DLENBQUMsR0FBdUI7QUFDeEYsVUFBTSxhQUFhLFdBQVcsU0FBUyxLQUFLLE9BQU87QUFDbkQsVUFBTSxXQUFXLGlCQUFpQixLQUFLLFlBQVksS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUMxRSxXQUFPLEtBQUssTUFBTSxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsSUFBSSxLQUFhLFVBQW9DLENBQUMsR0FBdUI7QUFDdkYsVUFBTSxhQUFhLFdBQVcsU0FBUyxLQUFLLE9BQU87QUFDbkQsVUFBTSxXQUFXLGlCQUFpQixJQUFJLFlBQVksS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUN6RSxXQUFPLEtBQUssTUFBTSxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsTUFBTSxLQUFhLFVBQW9DLENBQUMsR0FBdUI7QUFDekYsVUFBTSxhQUFhLFdBQVcsU0FBUyxLQUFLLE9BQU87QUFDbkQsVUFBTSxXQUFXLGlCQUFpQixNQUFNLFlBQVksS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUMzRSxXQUFPLEtBQUssTUFBTSxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsT0FBTyxLQUFhLFVBQW9DLENBQUMsR0FBdUI7QUFDMUYsVUFBTSxhQUFhLFdBQVcsU0FBUyxLQUFLLE9BQU87QUFDbkQsVUFBTSxXQUFXLGlCQUFpQixPQUFPLFlBQVksS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUM1RSxXQUFPLEtBQUssTUFBTSxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsSUFBSSxLQUFhLFVBQW9DLENBQUMsR0FBdUI7QUFDdkYsV0FBTyxXQUFXLE9BQU8sS0FBSyxPQUFPO0FBQUEsRUFDekM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsS0FBSyxLQUFhLFVBQW9DLENBQUMsR0FBdUI7QUFDeEYsVUFBTSxhQUFhLFdBQVcsU0FBUyxLQUFLLE9BQU87QUFDbkQsVUFBTSxXQUFXLGlCQUFpQixLQUFLLFlBQVksS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUMxRSxXQUFPLEtBQUssTUFBTSxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsTUFBTSxLQUFhLFVBQW9DLENBQUMsR0FBdUI7QUFDekYsVUFBTSxhQUFhLFdBQVcsU0FBUyxLQUFLLE9BQU87QUFDbkQsVUFBTSxXQUFXLGlCQUFpQixNQUFNLFlBQVksS0FBSyxVQUFVLE9BQU8sQ0FBQztBQUMzRSxXQUFPLEtBQUssTUFBTSxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVQSxPQUFlLFNBQVMsS0FBYSxTQUEyQztBQUM1RSxRQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsVUFBVSxRQUFRLE9BQU8sV0FBVyxHQUFHO0FBQzVELGFBQU87QUFBQSxJQUNYO0FBRUEsUUFBSSxlQUFlO0FBQ25CLFFBQUksYUFBYTtBQUVqQixlQUFXLFNBQVMsUUFBUSxRQUFRO0FBQ2hDLFVBQUksWUFBWTtBQUVaLFlBQUksYUFBYSxTQUFTLEdBQUcsR0FBRztBQUM1QiwwQkFBZ0I7QUFBQSxRQUNwQixPQUFPO0FBQ0gsMEJBQWdCO0FBQUEsUUFDcEI7QUFDQSxxQkFBYTtBQUFBLE1BQ2pCLE9BQU87QUFDSCx3QkFBZ0I7QUFBQSxNQUNwQjtBQUdBLHNCQUFnQixHQUFHLE1BQU0sSUFBSSxJQUFJLE1BQU0sS0FBSztBQUFBLElBQ2hEO0FBR0EsV0FBTyxRQUFRO0FBRWYsV0FBTztBQUFBLEVBQ1g7QUFDSjtBQUdBLElBQUksT0FBTyxXQUFXLGFBQWE7QUFFbEMsU0FBTyxVQUFVO0FBQ2xCOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvY2xpZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUgaHR0cC9jbGllbnRcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9odHRwXG4gKiBAbmFtZSBIdHRwQ2xpZW50XG4gKiBAb3ZlcnZpZXdcbiAqIFxuICogVGhlIEh0dHBDbGllbnQgY2xhc3MgcHJvdmlkZXMgYSBKYXZhU2NyaXB0L1R5cGVTY3JpcHQgd3JhcHBlciAoRmFjYWRlKSBmb3IgbWFraW5nIHN5bmNocm9ub3VzIEhUVFAgcmVxdWVzdHMuIEl0IGFic3RyYWN0cyB0aGUgdW5kZXJseWluZyBKYXZhIGltcGxlbWVudGF0aW9uIGFuZCBleHBvc2VzIGEgc2ltcGxlIEFQSSBmb3IgcGVyZm9ybWluZyBIVFRQIG9wZXJhdGlvbnMgc3VjaCBhcyBHRVQsIFBPU1QsIFBVVCwgUEFUQ0gsIERFTEVURSwgSEVBRCwgYW5kIFRSQUNFLiBUaGUgY2xhc3MgYWxsb3dzIGRldmVsb3BlcnMgdG8gY29uZmlndXJlIHZhcmlvdXMgYXNwZWN0cyBvZiB0aGUgSFRUUCByZXF1ZXN0LCBpbmNsdWRpbmcgaGVhZGVycywgcXVlcnkgcGFyYW1ldGVycywgcmVxdWVzdCBib2R5IGNvbnRlbnQsIHRpbWVvdXRzLCBhbmQgbW9yZS5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlczpcbiAqIC0gKipTeW5jaHJvbm91cyBSZXF1ZXN0cyoqOiBBbGwgbWV0aG9kcyBleGVjdXRlIHN5bmNocm9ub3VzbHksIGJsb2NraW5nIHVudGlsIGEgcmVzcG9uc2UgaXMgcmVjZWl2ZWQuXG4gKiAtICoqQ29tcHJlaGVuc2l2ZSBDb25maWd1cmF0aW9uKio6IFN1cHBvcnRzIGEgd2lkZSByYW5nZSBvZiBvcHRpb25zIGZvciBjdXN0b21pemluZyB0aGUgSFRUUCByZXF1ZXN0LlxuICogLSAqKlN0cnVjdHVyZWQgUmVzcG9uc2UqKjogUmV0dXJucyBhIHN0cnVjdHVyZWQgcmVzcG9uc2Ugb2JqZWN0IGNvbnRhaW5pbmcgc3RhdHVzLCBoZWFkZXJzLCBhbmQgYm9keSBjb250ZW50LlxuICogXG4gKiAjIyMgVXNlIENhc2VzOlxuICogLSAqKkFQSSBDb25zdW1wdGlvbioqOiBJZGVhbCBmb3Igc2NlbmFyaW9zIHdoZXJlIHlvdSBuZWVkIHRvIGNvbnN1bWUgZXh0ZXJuYWwgQVBJcyBhbmQgcmVxdWlyZSBhIHNpbXBsZSBpbnRlcmZhY2UgZm9yIG1ha2luZyBIVFRQIHJlcXVlc3RzLlxuICogLSAqKlRlc3RpbmcgYW5kIFNjcmlwdGluZyoqOiBVc2VmdWwgaW4gdGVzdGluZyBzY2VuYXJpb3Mgb3Igc2NyaXB0cyB3aGVyZSBzeW5jaHJvbm91cyBleGVjdXRpb24gaXMgYWNjZXB0YWJsZSBhbmQgc2ltcGxpY2l0eSBpcyBkZXNpcmVkLlxuICogXG4gKiAjIyMgRXhhbXBsZSBVc2FnZTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhZXJva2l0L3Nkay9odHRwXCI7XG4gKiBcbiAqIGNvbnN0IHJlc3BvbnNlID0gSHR0cENsaWVudC5nZXQoXCJodHRwczovL2FwaS5leGFtcGxlLmNvbS9kYXRhXCIsIHtcbiAqICAgaGVhZGVyczogW3sgbmFtZTogXCJBdXRob3JpemF0aW9uXCIsIHZhbHVlOiBcIkJlYXJlciB0b2tlblwiIH1dLFxuICogICBwYXJhbXM6IFt7IG5hbWU6IFwicXVlcnlcIiwgdmFsdWU6IFwic2VhcmNoIHRlcm1cIiB9XSxcbiAqICAgdGltZW91dDogNTAwMFxuICogfSk7XG4gKiBcbiAqIGNvbnNvbGUubG9nKHJlc3BvbnNlLnN0YXR1c0NvZGUpOyAvLyBlLmcuLCAyMDBcbiAqIGNvbnNvbGUubG9nKHJlc3BvbnNlLnRleHQpOyAvLyBSZXNwb25zZSBib2R5IGFzIHRleHRcbiAqIGNvbnNvbGUubG9nKHJlc3BvbnNlLmhlYWRlcnMpOyAvLyBBcnJheSBvZiByZXNwb25zZSBoZWFkZXJzXG4gKiBgYGBcbiAqL1xuXG5jb25zdCBIdHRwQ2xpZW50RmFjYWRlID0gSmF2YS50eXBlKFwib3JnLmVjbGlwc2UuZGlyaWdpYmxlLmNvbXBvbmVudHMuYXBpLmh0dHAuSHR0cENsaWVudEZhY2FkZVwiKTtcblxuLyoqXG4gKiBEZWZpbmVzIGEgc2luZ2xlIEhUVFAgaGVhZGVyLCB1c2VkIGZvciBib3RoIHJlcXVlc3QgYW5kIHJlc3BvbnNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDbGllbnRIZWFkZXIge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgaGVhZGVyIChlLmcuLCAnQ29udGVudC1UeXBlJywgJ0F1dGhvcml6YXRpb24nKS4gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyLiAqL1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIHF1ZXJ5IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIFVSTC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50UGFyYW0ge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgVVJMIHF1ZXJ5IHBhcmFtZXRlciAoZS5nLiwgJ2lkJykuICovXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKiBUaGUgdmFsdWUgb2YgdGhlIFVSTCBxdWVyeSBwYXJhbWV0ZXIuICovXG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgZmlsZSB0byBiZSBpbmNsdWRlZCBpbiBhIG11bHRpLXBhcnQgZm9ybSBkYXRhIHJlcXVlc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudEZpbGUge1xuICAgIC8qKiBUaGUgZm9ybSBmaWVsZCBuYW1lIGZvciB0aGUgZmlsZS4gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBmaWxlIHBhdGggb3IgY29udGVudCAoYmVoYXZpb3IgZGVwZW5kcyBvbiB0aGUgdW5kZXJseWluZyBKYXZhIGltcGxlbWVudGF0aW9uKS4gKi9cbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgYW4gSFRUUCByZXF1ZXN0LCBtaXJyb3JpbmcgdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgdW5kZXJseWluZyBKYXZhIGNsaWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMge1xuICAgIC8qKiBXaGV0aGVyICdFeHBlY3Q6IDEwMC1Db250aW51ZScgaGFuZHNoYWtlIGlzIGVuYWJsZWQuIERlZmF1bHRzIHRvIGZhbHNlLiAqL1xuICAgIGV4cGVjdENvbnRpbnVlRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIFRoZSBwcm94eSBob3N0bmFtZSB0byB1c2UgZm9yIHRoZSByZXF1ZXN0LiAqL1xuICAgIHByb3h5SG9zdD86IHN0cmluZztcbiAgICAvKiogVGhlIHByb3h5IHBvcnQgbnVtYmVyLiAqL1xuICAgIHByb3h5UG9ydD86IG51bWJlcjtcbiAgICAvKiogVGhlIGNvb2tpZSBzcGVjaWZpY2F0aW9uIHRvIHVzZSAoZS5nLiwgJ2RlZmF1bHQnLCAnbmV0c2NhcGUnKS4gKi9cbiAgICBjb29raWVTcGVjPzogc3RyaW5nO1xuICAgIC8qKiBXaGV0aGVyIGF1dG9tYXRpYyByZWRpcmVjdHMgYXJlIGVuYWJsZWQuIERlZmF1bHRzIHRvIHRydWUuICovXG4gICAgcmVkaXJlY3RzRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIFdoZXRoZXIgcmVsYXRpdmUgcmVkaXJlY3RzIHNob3VsZCBiZSBhbGxvd2VkLiBEZWZhdWx0cyB0byB0cnVlLiAqL1xuICAgIHJlbGF0aXZlUmVkaXJlY3RzQWxsb3dlZD86IGJvb2xlYW47XG4gICAgLyoqIFdoZXRoZXIgY2lyY3VsYXIgcmVkaXJlY3RzIChpbmZpbml0ZSBsb29wcykgc2hvdWxkIGJlIGFsbG93ZWQuIERlZmF1bHRzIHRvIGZhbHNlLiAqL1xuICAgIGNpcmN1bGFyUmVkaXJlY3RzQWxsb3dlZD86IGJvb2xlYW47XG4gICAgLyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiByZWRpcmVjdHMgdG8gZm9sbG93LiAqL1xuICAgIG1heFJlZGlyZWN0cz86IG51bWJlcjtcbiAgICAvKiogV2hldGhlciBhdXRoZW50aWNhdGlvbiBoYW5kbGluZyBpcyBlbmFibGVkLiAqL1xuICAgIGF1dGhlbnRpY2F0aW9uRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIEFycmF5IG9mIHByZWZlcnJlZCBhdXRoZW50aWNhdGlvbiBzY2hlbWVzIGZvciB0aGUgdGFyZ2V0IGhvc3QuICovXG4gICAgdGFyZ2V0UHJlZmVycmVkQXV0aFNjaGVtZXM/OiBzdHJpbmdbXTtcbiAgICAvKiogQXJyYXkgb2YgcHJlZmVycmVkIGF1dGhlbnRpY2F0aW9uIHNjaGVtZXMgZm9yIHRoZSBwcm94eS4gKi9cbiAgICBwcm94eVByZWZlcnJlZEF1dGhTY2hlbWVzPzogc3RyaW5nW107XG4gICAgLyoqIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGZvciByZXF1ZXN0aW5nIGEgY29ubmVjdGlvbiBmcm9tIHRoZSBjb25uZWN0aW9uIG1hbmFnZXIuICovXG4gICAgY29ubmVjdGlvblJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xuICAgIC8qKiBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZXN0YWJsaXNoaW5nIHRoZSBjb25uZWN0aW9uLiAqL1xuICAgIGNvbm5lY3RUaW1lb3V0PzogbnVtYmVyO1xuICAgIC8qKiBTb2NrZXQgdGltZW91dCAodGltZW91dCBmb3Igd2FpdGluZyBmb3IgZGF0YSkgaW4gbWlsbGlzZWNvbmRzLiAqL1xuICAgIHNvY2tldFRpbWVvdXQ/OiBudW1iZXI7XG4gICAgLyoqIFdoZXRoZXIgYXV0b21hdGljIGNvbnRlbnQgY29tcHJlc3Npb24gKGUuZy4sIGd6aXApIGlzIGVuYWJsZWQuICovXG4gICAgY29udGVudENvbXByZXNzaW9uRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIFdoZXRoZXIgdG8gdHJ1c3QgYWxsIFNTTCBjZXJ0aWZpY2F0ZXMgKHVzZSBvbmx5IGZvciB0ZXN0aW5nIG5vbi1wcm9kdWN0aW9uIHN5c3RlbXMpLiAqL1xuICAgIHNzbFRydXN0QWxsRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIERhdGEgdG8gYmUgc2VudCBhcyB0aGUgcmVxdWVzdCBib2R5LCB0eXBpY2FsbHkgYXMgYW4gYXJyYXkgb2YgYnl0ZXMvaW50ZWdlcnMuICovXG4gICAgZGF0YT86IGFueVtdO1xuICAgIC8qKiBUZXh0IGNvbnRlbnQgdG8gYmUgc2VudCBhcyB0aGUgcmVxdWVzdCBib2R5LiBUYWtlcyBwcmVjZWRlbmNlIG92ZXIgYGRhdGFgLiAqL1xuICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgLyoqIEFycmF5IG9mIGZpbGVzIGZvciBtdWx0aS1wYXJ0IGZvcm0gZGF0YSBzdWJtaXNzaW9ucy4gKi9cbiAgICBmaWxlcz86IEh0dHBDbGllbnRGaWxlW107XG4gICAgLyoqIFRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgKGNoYXJzZXQpIHRvIHVzZSBmb3IgdGhlIHJlcXVlc3QgYm9keSAoZS5nLiwgJ1VURi04JykuICovXG4gICAgY2hhcmFjdGVyRW5jb2Rpbmc/OiBzdHJpbmc7XG4gICAgLyoqIFdoZXRoZXIgdG8gZW5mb3JjZSB0aGUgY2hhcmFjdGVyIGVuY29kaW5nLiAqL1xuICAgIGNoYXJhY3RlckVuY29kaW5nRW5hYmxlZD86IGJvb2xlYW47XG4gICAgLyoqIFRoZSBDb250ZW50LVR5cGUgaGVhZGVyIHZhbHVlIGZvciB0aGUgcmVxdWVzdCBib2R5LiAqL1xuICAgIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuICAgIC8qKiBBcnJheSBvZiBjdXN0b20gaGVhZGVycyB0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0LiAqL1xuICAgIGhlYWRlcnM/OiBIdHRwQ2xpZW50SGVhZGVyW107XG4gICAgLyoqIEFycmF5IG9mIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIFVSTC4gKi9cbiAgICBwYXJhbXM/OiBIdHRwQ2xpZW50UGFyYW1bXTtcbiAgICAvKiogSWYgdHJ1ZSwgdHJlYXRzIHRoZSByZXNwb25zZSBib2R5IGFzIGJpbmFyeSBkYXRhLiAqL1xuICAgIGJpbmFyeT86IGJvb2xlYW47XG4gICAgLyoqIE9wdGlvbmFsIGNvbnRleHQgbWFwIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9mIHRoZSB1bmRlcmx5aW5nIEphdmEgY2xpZW50LiAqL1xuICAgIGNvbnRleHQ/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIFRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHJlc3BvbnNlIHJldHVybmVkIGJ5IHRoZSBIdHRwQ2xpZW50IG1ldGhvZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAvKiogVGhlIEhUVFAgc3RhdHVzIGNvZGUgKGUuZy4sIDIwMCwgNDA0LCA1MDApLiAqL1xuICAgIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgICAvKiogVGhlIHN0YXR1cyBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZSBzZXJ2ZXIgKGUuZy4sICdPSycsICdOb3QgRm91bmQnKS4gKi9cbiAgICBzdGF0dXNNZXNzYWdlOiBzdHJpbmc7XG4gICAgLyoqIFJlc3BvbnNlIGJvZHkgY29udGVudCBhcyBhbiBhcnJheSBvZiBieXRlcyAoaWYgcmVxdWVzdGVkIGFzIGJpbmFyeSkuICovXG4gICAgZGF0YTogYW55W107XG4gICAgLyoqIFJlc3BvbnNlIGJvZHkgY29udGVudCBhcyBhIGRlY29kZWQgc3RyaW5nLiAqL1xuICAgIHRleHQ6IHN0cmluZztcbiAgICAvKiogVGhlIHByb3RvY29sIHVzZWQgKGUuZy4sICdIVFRQLzEuMScpLiAqL1xuICAgIHByb3RvY29sOiBzdHJpbmc7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgcmVzcG9uc2Ugd2FzIHByb2Nlc3NlZCBhcyBiaW5hcnkgZGF0YS4gKi9cbiAgICBiaW5hcnk6IGJvb2xlYW47XG4gICAgLyoqIEFycmF5IG9mIGFsbCBoZWFkZXJzIHJlY2VpdmVkIGluIHRoZSByZXNwb25zZS4gKi9cbiAgICBoZWFkZXJzOiBIdHRwQ2xpZW50SGVhZGVyW11cbn1cblxuLyoqXG4gKiBBIHN0YXRpYyBjbGFzcyBwcm92aWRpbmcgbWV0aG9kcyBmb3IgbWFraW5nIHN5bmNocm9ub3VzIEhUVFAgcmVxdWVzdHMuXG4gKiBBbGwgbWV0aG9kcyBjYWxsIHRoZSB1bmRlcmx5aW5nIEphdmEgRmFjYWRlIGFuZCBwYXJzZSB0aGUgSlNPTiByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEh0dHBDbGllbnQge1xuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzeW5jaHJvbm91cyBIVFRQIEdFVCByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3BvbnNlIG9iamVjdCBjb250YWluaW5nIHN0YXR1cywgaGVhZGVycywgYW5kIGJvZHkuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXQodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFVybCA9IEh0dHBDbGllbnQuYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcbiAgICAgICAgLy8gVGhlIEphdmEgRmFjYWRlIGV4cGVjdHMgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcyBhIEpTT04gc3RyaW5nXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gSHR0cENsaWVudEZhY2FkZS5nZXQocmVxdWVzdFVybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzeW5jaHJvbm91cyBIVFRQIFBPU1QgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QsIGluY2x1ZGluZyByZXF1ZXN0IGJvZHkgaW4gYHRleHRgIG9yIGBkYXRhYC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHBvc3QodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFVybCA9IEh0dHBDbGllbnQuYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBIdHRwQ2xpZW50RmFjYWRlLnBvc3QocmVxdWVzdFVybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzeW5jaHJvbm91cyBIVFRQIFBVVCByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHB1dCh1cmw6IHN0cmluZywgb3B0aW9uczogSHR0cENsaWVudFJlcXVlc3RPcHRpb25zID0ge30pOiBIdHRwQ2xpZW50UmVzcG9uc2Uge1xuICAgICAgICBjb25zdCByZXF1ZXN0VXJsID0gSHR0cENsaWVudC5idWlsZFVybCh1cmwsIG9wdGlvbnMpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IEh0dHBDbGllbnRGYWNhZGUucHV0KHJlcXVlc3RVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKTtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIGEgc3luY2hyb25vdXMgSFRUUCBQQVRDSCByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3BvbnNlIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHBhdGNoKHVybDogc3RyaW5nLCBvcHRpb25zOiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMgPSB7fSk6IEh0dHBDbGllbnRSZXNwb25zZSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RVcmwgPSBIdHRwQ2xpZW50LmJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gSHR0cENsaWVudEZhY2FkZS5wYXRjaChyZXF1ZXN0VXJsLCBKU09OLnN0cmluZ2lmeShvcHRpb25zKSk7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhIHN5bmNocm9ub3VzIEhUVFAgREVMRVRFIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIHVybCBUaGUgdGFyZ2V0IFVSTC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgICAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZGVsZXRlKHVybDogc3RyaW5nLCBvcHRpb25zOiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMgPSB7fSk6IEh0dHBDbGllbnRSZXNwb25zZSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RVcmwgPSBIdHRwQ2xpZW50LmJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gSHR0cENsaWVudEZhY2FkZS5kZWxldGUocmVxdWVzdFVybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxpYXMgZm9yIHtAbGluayBIdHRwQ2xpZW50LmRlbGV0ZX0uIEV4ZWN1dGVzIGEgc3luY2hyb25vdXMgSFRUUCBERUxFVEUgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBvcHRpb25zIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHJlcXVlc3QuXG4gICAgICogQHJldHVybnMgVGhlIHBhcnNlZCByZXNwb25zZSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWwodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAgICAgcmV0dXJuIEh0dHBDbGllbnQuZGVsZXRlKHVybCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzeW5jaHJvbm91cyBIVFRQIEhFQUQgcmVxdWVzdCAoZmV0Y2hlcyBoZWFkZXJzIG9ubHkpLlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHRhcmdldCBVUkwuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3BvbnNlIG9iamVjdC4gVGhlIGJvZHkgKGB0ZXh0YCBhbmQgYGRhdGFgKSB3aWxsIHR5cGljYWxseSBiZSBlbXB0eS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGhlYWQodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFVybCA9IEh0dHBDbGllbnQuYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBIdHRwQ2xpZW50RmFjYWRlLmhlYWQocmVxdWVzdFVybCwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYSBzeW5jaHJvbm91cyBIVFRQIFRSQUNFIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIHVybCBUaGUgdGFyZ2V0IFVSTC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSByZXF1ZXN0LlxuICAgICAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcmVzcG9uc2Ugb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdHJhY2UodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyA9IHt9KTogSHR0cENsaWVudFJlc3BvbnNlIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFVybCA9IEh0dHBDbGllbnQuYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBIdHRwQ2xpZW50RmFjYWRlLnRyYWNlKHJlcXVlc3RVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKTtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQnVpbGRzIHRoZSByZXF1ZXN0IFVSTCBieSBhcHBlbmRpbmcgcXVlcnkgcGFyYW1ldGVycyBmcm9tIG9wdGlvbnMucGFyYW1zLFxuICAgICAqIHRoZW4gcmVtb3ZlcyBgcGFyYW1zYCBmcm9tIHRoZSBvcHRpb25zIG9iamVjdCBiZWZvcmUgcGFzc2luZyBpdCB0byB0aGUgSmF2YSBGYWNhZGUuXG4gICAgICogQHBhcmFtIHVybCBUaGUgYmFzZSBVUkwuXG4gICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIHJlcXVlc3Qgb3B0aW9ucyBvYmplY3QuXG4gICAgICogQHJldHVybnMgVGhlIFVSTCB3aXRoIGFwcGVuZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRVcmwodXJsOiBzdHJpbmcsIG9wdGlvbnM6IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5wYXJhbXMgfHwgb3B0aW9ucy5wYXJhbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByb2Nlc3NlZFVybCA9IHVybDtcbiAgICAgICAgbGV0IGZpcnN0UGFyYW0gPSB0cnVlO1xuXG4gICAgICAgIGZvciAoY29uc3QgcGFyYW0gb2Ygb3B0aW9ucy5wYXJhbXMpIHtcbiAgICAgICAgICAgIGlmIChmaXJzdFBhcmFtKSB7XG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIG9yaWdpbmFsIFVSTCBhbHJlYWR5IGhhcyBxdWVyeSBwYXJhbWV0ZXJzXG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3NlZFVybC5pbmNsdWRlcygnPycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZFVybCArPSAnJic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2VkVXJsICs9ICc/JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmlyc3RQYXJhbSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzZWRVcmwgKz0gJyYnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTaW1wbGUgVVJMIGVuY29kaW5nIG9mIHRoZSB2YWx1ZSBpcyBhc3N1bWVkIGhlcmUgZm9yIGJhc2ljIG9wZXJhdGlvblxuICAgICAgICAgICAgcHJvY2Vzc2VkVXJsICs9IGAke3BhcmFtLm5hbWV9PSR7cGFyYW0udmFsdWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSBwYXJhbXMgZnJvbSBvcHRpb25zIGJlY2F1c2UgdGhleSBhcmUgbm93IHBhcnQgb2YgdGhlIFVSTCBzdHJpbmcuXG4gICAgICAgIGRlbGV0ZSBvcHRpb25zLnBhcmFtcztcblxuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkVXJsO1xuICAgIH1cbn1cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBIdHRwQ2xpZW50O1xufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlDQSxNQUFNLG1CQUFtQixLQUFLLEtBQUssNERBQTREO0FBa0h4RixNQUFNLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFwQixPQUFjLElBQUksS0FBYSxVQUFvQyxDQUFDLEdBQXVCO0FBQ3ZGLFVBQU0sYUFBYSxXQUFXLFNBQVMsS0FBSyxPQUFPO0FBRW5ELFVBQU0sV0FBVyxpQkFBaUIsSUFBSSxZQUFZLEtBQUssVUFBVSxPQUFPLENBQUM7QUFDekUsV0FBTyxLQUFLLE1BQU0sUUFBUTtBQUFBLEVBQzlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEs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
|
|
@@ -85,4 +85,4 @@ const Patch = createRequestDecorator("patch");
|
|
|
85
85
|
const Delete = createRequestDecorator("delete");
|
|
86
86
|
const Head = createRequestDecorator("head");
|
|
87
87
|
const Options = createRequestDecorator("options");
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvZGVjb3JhdG9ycy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbW9kdWxlIGh0dHAvZGVjb3JhdG9yc1xuICogQHBhY2thZ2UgQGFlcm9raXQvc2RrL2h0dHBcbiAqIEBuYW1lIERlY29yYXRvcnNcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIHNldCBvZiBkZWNvcmF0b3JzIGZvciBkZWZpbmluZyBIVFRQIGNvbnRyb2xsZXJzIGFuZCB0aGVpciBhc3NvY2lhdGVkIHJvdXRlcyBpbiBhIGRlY2xhcmF0aXZlIG1hbm5lci4gVGhlIGRlY29yYXRvcnMgYWxsb3cgZGV2ZWxvcGVycyB0byBhbm5vdGF0ZSBjbGFzc2VzIGFuZCBtZXRob2RzIHRvIHNwZWNpZnkgaG93IHRoZXkgc2hvdWxkIGhhbmRsZSBIVFRQIHJlcXVlc3RzLCBtYWtpbmcgaXQgZWFzaWVyIHRvIGNyZWF0ZSBSRVNUZnVsIEFQSXMgd2l0aCBjbGVhciBhbmQgY29uY2lzZSBjb2RlLlxuICogXG4gKiAjIyMgS2V5IEZlYXR1cmVzOlxuICogLSAqKkNvbnRyb2xsZXIgRGVjb3JhdG9yKio6IFRoZSBgQENvbnRyb2xsZXJgIGRlY29yYXRvciBpcyB1c2VkIHRvIG1hcmsgYSBjbGFzcyBhcyBhbiBIVFRQIGNvbnRyb2xsZXIsIHdoaWNoIGNhbiBjb250YWluIG11bHRpcGxlIHJvdXRlIGhhbmRsZXJzLlxuICogLSAqKkhUVFAgTWV0aG9kIERlY29yYXRvcnMqKjogRGVjb3JhdG9ycyBzdWNoIGFzIGBAR2V0YCwgYEBQb3N0YCwgYEBQdXRgLCBgQFBhdGNoYCwgYEBEZWxldGVgLCBgQEhlYWRgLCBhbmQgYEBPcHRpb25zYCBhcmUgdXNlZCB0byBkZWZpbmUgdGhlIEhUVFAgbWV0aG9kIGFuZCBwYXRoIGZvciBlYWNoIHJvdXRlIGhhbmRsZXIgbWV0aG9kIHdpdGhpbiB0aGUgY29udHJvbGxlci5cbiAqIC0gKipEb2N1bWVudGF0aW9uIERlY29yYXRvcioqOiBUaGUgYEBEb2N1bWVudGF0aW9uYCBkZWNvcmF0b3IgYWxsb3dzIGRldmVsb3BlcnMgdG8gYWRkIGRvY3VtZW50YXRpb24gdG8gdGhlaXIgY29udHJvbGxlcnMgb3IgbWV0aG9kcywgd2hpY2ggY2FuIGJlIHVzZWZ1bCBmb3IgZ2VuZXJhdGluZyBBUEkgZG9jdW1lbnRhdGlvbi5cbiAqIFxuICogIyMjIFVzZSBDYXNlczpcbiAqIC0gKipBUEkgRGV2ZWxvcG1lbnQqKjogVGhlc2UgZGVjb3JhdG9ycyBhcmUgcHJpbWFyaWx5IHVzZWQgaW4gdGhlIGRldmVsb3BtZW50IG9mIFJFU1RmdWwgQVBJcywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byBkZWZpbmUgdGhlaXIgZW5kcG9pbnRzIGFuZCBoYW5kbGVycyBpbiBhIGNsZWFyIGFuZCBzdHJ1Y3R1cmVkIHdheS5cbiAqIC0gKipDb2RlIE9yZ2FuaXphdGlvbioqOiBCeSB1c2luZyBkZWNvcmF0b3JzLCBkZXZlbG9wZXJzIGNhbiBrZWVwIHRoZWlyIGNvZGUgb3JnYW5pemVkIGFuZCBtYWludGFpbmFibGUsIHNlcGFyYXRpbmcgdGhlIHJvdXRpbmcgbG9naWMgZnJvbSB0aGUgYnVzaW5lc3MgbG9naWMgd2l0aGluIHRoZWlyIGNvbnRyb2xsZXJzLlxuICogXG4gKiAjIyMgRXhhbXBsZSBVc2FnZTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb250cm9sbGVyLCBHZXQsIFBvc3QsIERvY3VtZW50YXRpb24gfSBmcm9tIFwiQGFlcm9raXQvc2RrL2h0dHBcIjtcbiAqIFxuICogQENvbnRyb2xsZXJcbiAqIEBEb2N1bWVudGF0aW9uKFwiVXNlckNvbnRyb2xsZXIgaGFuZGxlcyB1c2VyLXJlbGF0ZWQgb3BlcmF0aW9ucy5cIilcbiAqIGNsYXNzIFVzZXJDb250cm9sbGVyIHtcbiAqICAgICBAR2V0KFwiL3VzZXJzL3tpZH1cIilcbiAqICAgICBARG9jdW1lbnRhdGlvbihcIlJldHJpZXZlcyBhIHVzZXIgYnkgSUQuXCIpXG4gKiAgICAgZ2V0VXNlckJ5SWQoaWQ6IHN0cmluZykge1xuICogICAgICAgICAvLyBMb2dpYyB0byByZXRyaWV2ZSB1c2VyIGJ5IElEXG4gKiAgICAgfVxuICogXG4gKiAgICAgQFBvc3QoXCIvdXNlcnNcIilcbiAqICAgICBARG9jdW1lbnRhdGlvbihcIkNyZWF0ZXMgYSBuZXcgdXNlci5cIilcbiAqICAgICBjcmVhdGVVc2VyKHVzZXJEYXRhOiBhbnkpIHtcbiAqICAgICAgICAgLy8gTG9naWMgdG8gY3JlYXRlIGEgbmV3IHVzZXJcbiAqICAgICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgKiBhcyBycyBmcm9tIFwiQGFlcm9raXQvc2RrL2h0dHAvcnNcIjtcblxuY29uc3QgUk9VVEVTX0tFWSA9IFN5bWJvbC5mb3IoXCJkaXJpZ2libGUuY29udHJvbGxlci5yb3V0ZXNcIik7XG5cbmNvbnN0IEdMT0JBTF9ST1VURVM6IGFueVtdID1cbiAgICAoZ2xvYmFsVGhpcyBhcyBhbnkpW1JPVVRFU19LRVldID8/XG4gICAgKChnbG9iYWxUaGlzIGFzIGFueSlbUk9VVEVTX0tFWV0gPSBbXSk7XG5cbmNvbnN0IHJvdXRlciA9IHJzLnNlcnZpY2UoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xsZXIoY3RyOiB7IG5ldygpOiBhbnkgfSwgX2NvbnRleHQ/OiBDbGFzc0RlY29yYXRvckNvbnRleHQpIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBjdHIoKTtcbiAgICBjb25zdCByb3V0ZXMgPSBHTE9CQUxfUk9VVEVTO1xuICAgIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVzKSB7XG4gICAgICAgIGNvbnN0IGZuID0gaW5zdGFuY2Vbcm91dGUucHJvcGVydHlLZXkubmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgZm4gPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdFx0KChmbiwgaW5zdGFuY2UpID0+IHtcblx0XHQgICAgICAgIHJvdXRlci5yZXNvdXJjZShyb3V0ZS5wYXRoKVtyb3V0ZS5tZXRob2RdKChjdHgsIHJlcSwgcmVzKSA9PiB7XG5cdFx0ICAgICAgICAgICAgY29uc3QgYm9keSA9IHJlcS5qc29uID8gcmVxLmpzb24oKSA6IG51bGw7XG5cdFx0ICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZm4uY2FsbChpbnN0YW5jZSwgYm9keSwgY3R4LCByZXEsIHJlcyk7XG5cdFx0ICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0ICAgICAgICAgICAgICAgIHJlcy5qc29uKHJlc3VsdCk7XG5cdFx0ICAgICAgICAgICAgfVxuXHRcdCAgICAgICAgfSk7XG5cdFx0ICAgIH0pKGZuLCBpbnN0YW5jZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByb3V0ZXIuZXhlY3V0ZSgpO1xuXHRHTE9CQUxfUk9VVEVTLmxlbmd0aCA9IDA7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIERvY3VtZW50YXRpb24oZG9jdW1lbnRhdGlvbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChcbiAgICAgICAgdmFsdWU6IGFueSxcbiAgICAgICAgY29udGV4dDogQ2xhc3NEZWNvcmF0b3JDb250ZXh0IHwgQ2xhc3NGaWVsZERlY29yYXRvckNvbnRleHQgfCBDbGFzc01ldGhvZERlY29yYXRvckNvbnRleHRcbiAgICApIHt9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVSZXF1ZXN0RGVjb3JhdG9yKGh0dHBNZXRob2Q6IHN0cmluZykge1xuICAgIHJldHVybiBmdW5jdGlvbiAocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBDbGFzc01ldGhvZERlY29yYXRvckNvbnRleHQsIGRlc2NyaXB0b3I/OiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgIEdMT0JBTF9ST1VURVMucHVzaCh7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlcjogdGFyZ2V0LmNvbnN0cnVjdG9yLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogaHR0cE1ldGhvZCxcbiAgICAgICAgICAgICAgICBwYXRoOiBwYXRoIHx8IFwiL1wiLFxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgR2V0ID0gY3JlYXRlUmVxdWVzdERlY29yYXRvcihcImdldFwiKTtcbmV4cG9ydCBjb25zdCBQb3N0ID0gY3JlYXRlUmVxdWVzdERlY29yYXRvcihcInBvc3RcIik7XG5leHBvcnQgY29uc3QgUHV0ID0gY3JlYXRlUmVxdWVzdERlY29yYXRvcihcInB1dFwiKTtcbmV4cG9ydCBjb25zdCBQYXRjaCA9IGNyZWF0ZVJlcXVlc3REZWNvcmF0b3IoXCJwYXRjaFwiKTtcbmV4cG9ydCBjb25zdCBEZWxldGUgPSBjcmVhdGVSZXF1ZXN0RGVjb3JhdG9yKFwiZGVsZXRlXCIpO1xuZXhwb3J0IGNvbnN0IEhlYWQgPSBjcmVhdGVSZXF1ZXN0RGVjb3JhdG9yKFwiaGVhZFwiKTtcbmV4cG9ydCBjb25zdCBPcHRpb25zID0gY3JlYXRlUmVxdWVzdERlY29yYXRvcihcIm9wdGlvbnNcIik7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVDQSxTQUFvQjtBQUVwQixNQUFNLGFBQWEsdUJBQU8sSUFBSSw2QkFBNkI7QUFFM0QsTUFBTSxnQkFDRCxXQUFtQixVQUFVLE1BQzVCLFdBQW1CLFVBQVUsSUFBSSxDQUFDO0FBRXhDLE1BQU0sU0FBUyxHQUFHLFFBQVE7QUFFbkIsU0FBUyxXQUFXLEtBQXFCLFVBQWtDO0FBQzlFLFFBQU0sV0FBVyxJQUFJLElBQUk7QUFDekIsUUFBTSxTQUFTO0FBQ2YsYUFBVyxTQUFTLFFBQVE7QUFDeEIsVUFBTSxLQUFLLFNBQVMsTUFBTSxZQUFZLElBQUk7QUFDMUMsUUFBSSxPQUFPLE9BQU8sWUFBWTtBQUNuQyxPQUFDLENBQUNBLEtBQUlDLGNBQWE7QUFDWixlQUFPLFNBQVMsTUFBTSxJQUFJLEVBQUUsTUFBTSxNQUFNLEVBQUUsQ0FBQyxLQUFLLEtBQUssUUFBUTtBQUN6RCxnQkFBTSxPQUFPLElBQUksT0FBTyxJQUFJLEtBQUssSUFBSTtBQUNyQyxnQkFBTSxTQUFTRCxJQUFHLEtBQUtDLFdBQVUsTUFBTSxLQUFLLEtBQUssR0FBRztBQUNwRCxjQUFJLFdBQVcsUUFBVztBQUN0QixnQkFBSSxLQUFLLE1BQU07QUFBQSxVQUNuQjtBQUFBLFFBQ0osQ0FBQztBQUFBLE1BQ0wsR0FBRyxJQUFJLFFBQVE7QUFBQSxJQUNiO0FBQUEsRUFDSjtBQUVBLFNBQU8sUUFBUTtBQUNsQixnQkFBYyxTQUFTO0FBQ3hCO0FBR08sU0FBUyxjQUFjLGVBQXVCO0FBQ2pELFNBQU8sU0FDSCxPQUNBLFNBQ0Y7QUFBQSxFQUFDO0FBQ1A7QUFFQSxTQUFTLHVCQUF1QixZQUFvQjtBQUNoRCxTQUFPLFNBQVUsTUFBYztBQUMzQixXQUFPLFNBQVUsUUFBYSxhQUFtRCxZQUFpQztBQUM5RyxvQkFBYyxLQUFLO0FBQUEsUUFDZixZQUFZLE9BQU87QUFBQSxRQUNuQixRQUFRO0FBQUEsUUFDUixNQUFNLFFBQVE7QUFBQSxRQUNkO0FBQUEsTUFDSixDQUFDO0FBQUEsSUFDTDtBQUFBLEVBQ0o7QUFDSjtBQUVPLE1BQU0sTUFBTSx1QkFBdUIsS0FBSztBQUN4QyxNQUFNLE9BQU8sdUJBQXVCLE1BQU07QUFDMUMsTUFBTSxNQUFNLHVCQUF1QixLQUFLO0FBQ3hDLE1BQU0sUUFBUSx1QkFBdUIsT0FBTztBQUM1QyxNQUFNLFNBQVMsdUJBQXVCLFFBQVE7QUFDOUMsTUFBTSxPQUFPLHVCQUF1QixNQUFNO0FBQzFDLE1BQU0sVUFBVSx1QkFBdUIsU0FBUzsiLAogICJuYW1lcyI6IFsiZm4iLCAiaW5zdGFuY2UiXQp9Cg==
|
|
@@ -38,4 +38,4 @@ class ForbiddenError extends Error {
|
|
|
38
38
|
super(message);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvZXJyb3JzL0ZvcmJpZGRlbkVycm9yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUgaHR0cC9lcnJvcnMvRm9yYmlkZGVuRXJyb3JcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9odHRwXG4gKiBAbmFtZSBGb3JiaWRkZW5FcnJvclxuICogQG92ZXJ2aWV3XG4gKiBcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgdGhlIGBGb3JiaWRkZW5FcnJvcmAgY2xhc3MsIGEgY3VzdG9tIGVycm9yIHR5cGUgdGhhdCByZXByZXNlbnRzIGEgNDAzIEZvcmJpZGRlbiBIVFRQIHN0YXR1cy4gVGhpcyBlcnJvciBpcyB0eXBpY2FsbHkgdGhyb3duIHdoZW4gYSB1c2VyIGF0dGVtcHRzIHRvIGFjY2VzcyBhIHJlc291cmNlIG9yIHBlcmZvcm0gYW4gYWN0aW9uIGZvciB3aGljaCB0aGV5IGRvIG5vdCBoYXZlIHRoZSBuZWNlc3NhcnkgcGVybWlzc2lvbnMuIFRoZSBgRm9yYmlkZGVuRXJyb3JgIGNsYXNzIGV4dGVuZHMgdGhlIGJ1aWx0LWluIGBFcnJvcmAgY2xhc3MgYW5kIHByb3ZpZGVzIGEgZGVmYXVsdCBlcnJvciBtZXNzYWdlLCB3aGlsZSBhbHNvIGFsbG93aW5nIGZvciBjdXN0b20gbWVzc2FnZXMgdG8gYmUgc3BlY2lmaWVkIHdoZW4gaW5zdGFudGlhdGVkLlxuICovXG5cbmV4cG9ydCBjbGFzcyBGb3JiaWRkZW5FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgZXJyb3IsIHNldCB0byBcIkZvcmJpZGRlbkVycm9yXCIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbmFtZSA9IFwiRm9yYmlkZGVuRXJyb3JcIjtcbiAgICAvKipcbiAgICAgKiBDYXB0dXJlcyB0aGUgc3RhY2sgdHJhY2Ugd2hlbiB0aGUgZXJyb3IgaXMgaW5zdGFudGlhdGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0YWNrID0gKG5ldyBFcnJvcigpKS5zdGFjaztcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRm9yYmlkZGVuRXJyb3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgZXJyb3IgbWVzc2FnZS4gRGVmYXVsdHMgdG8gXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlXCIuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlXCIpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgfVxufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNPLE1BQU0sdUJBQXVCLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUk3QixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJUCxRQUFTLElBQUksTUFBTSxFQUFHO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTy9CLFlBQVksVUFBa0IscURBQXFEO0FBQy9FLFVBQU0sT0FBTztBQUFBLEVBQ2pCO0FBQ0o7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -38,4 +38,4 @@ class ValidationError extends Error {
|
|
|
38
38
|
super(message);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvZXJyb3JzL1ZhbGlkYXRpb25FcnJvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbW9kdWxlIGh0dHAvZXJyb3JzL1ZhbGlkYXRpb25FcnJvclxuICogQHBhY2thZ2UgQGFlcm9raXQvc2RrL2h0dHBcbiAqIEBuYW1lIFZhbGlkYXRpb25FcnJvclxuICogQG92ZXJ2aWV3XG4gKiBcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgdGhlIGBWYWxpZGF0aW9uRXJyb3JgIGNsYXNzLCBhIGN1c3RvbSBlcnJvciB0eXBlIHRoYXQgcmVwcmVzZW50cyBmYWlsdXJlcyBkdWUgdG8gaW52YWxpZCBpbnB1dCBvciBkYXRhIHRoYXQgdmlvbGF0ZXMgZG9tYWluLXNwZWNpZmljIHZhbGlkYXRpb24gcnVsZXMuIFRoZSBgVmFsaWRhdGlvbkVycm9yYCBjbGFzcyBleHRlbmRzIHRoZSBidWlsdC1pbiBgRXJyb3JgIGNsYXNzIGFuZCBwcm92aWRlcyBhIGRlZmF1bHQgZXJyb3IgbWVzc2FnZSwgd2hpbGUgYWxzbyBhbGxvd2luZyBmb3IgY3VzdG9tIG1lc3NhZ2VzIHRvIGJlIHNwZWNpZmllZCB3aGVuIGluc3RhbnRpYXRlZC4gVGhpcyBlcnJvciBpcyB0eXBpY2FsbHkgdGhyb3duIHdoZW4gdXNlciBpbnB1dCBmYWlscyB0byBtZWV0IGNlcnRhaW4gY3JpdGVyaWEgb3Igd2hlbiBkYXRhIGRvZXMgbm90IGNvbmZvcm0gdG8gZXhwZWN0ZWQgZm9ybWF0cywgaGVscGluZyBkZXZlbG9wZXJzIHRvIGhhbmRsZSB2YWxpZGF0aW9uIGlzc3VlcyBpbiBhIGNvbnNpc3RlbnQgbWFubmVyIGFjcm9zcyB0aGVpciBhcHBsaWNhdGlvbnMuXG4gKi9cblxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgZXJyb3IsIHNldCB0byBcIlZhbGlkYXRpb25FcnJvclwiLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5hbWUgPSBcIlZhbGlkYXRpb25FcnJvclwiO1xuICAgIC8qKlxuICAgICAqIENhcHR1cmVzIHRoZSBzdGFjayB0cmFjZSB3aGVuIHRoZSBlcnJvciBpcyBpbnN0YW50aWF0ZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3RhY2sgPSAobmV3IEVycm9yKCkpLnN0YWNrO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBWYWxpZGF0aW9uRXJyb3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgZGV0YWlsZWQgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSB2YWxpZGF0aW9uIGZhaWx1cmUuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIH1cbn0iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTTyxNQUFNLHdCQUF3QixNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJOUIsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVAsUUFBUyxJQUFJLE1BQU0sRUFBRztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU8vQixZQUFZLFNBQWlCO0FBQ3pCLFVBQU0sT0FBTztBQUFBLEVBQ2pCO0FBQ0o7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
package/dist/cjs/http/errors.js
CHANGED
|
@@ -23,4 +23,4 @@ __export(errors_exports, {
|
|
|
23
23
|
module.exports = __toCommonJS(errors_exports);
|
|
24
24
|
var import_ForbiddenError = require("./errors/ForbiddenError");
|
|
25
25
|
var import_ValidationError = require("./errors/ValidationError");
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvZXJyb3JzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUgaHR0cC9lcnJvcnNcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9odHRwXG4gKiBAbmFtZSBFcnJvcnNcbiAqIEBvdmVydmlld1xuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIEhUVFAtc3BlY2lmaWMgZXJyb3IgY2xhc3NlcyBmb3IgdGhlIEFlcm9raXQgU0RLLlxuICogSXQgaW5jbHVkZXMgY3VzdG9tIGVycm9yIHR5cGVzIGZvciBoYW5kbGluZyBjb21tb24gSFRUUCByZXNwb25zZSBzY2VuYXJpb3NcbiAqIGxpa2UgZm9yYmlkZGVuIGFjY2VzcyBhbmQgdmFsaWRhdGlvbiBmYWlsdXJlcy5cbiAqXG4gKiBUaGUgbWFpbiBjb21wb25lbnRzIG9mIHRoaXMgbW9kdWxlIGFyZTpcbiAqIC0gRm9yYmlkZGVuRXJyb3I6IFJlcHJlc2VudHMgYSA0MDMgRm9yYmlkZGVuIEhUVFAgZXJyb3IuXG4gKiAtIFZhbGlkYXRpb25FcnJvcjogUmVwcmVzZW50cyB2YWxpZGF0aW9uLXJlbGF0ZWQgZXJyb3JzIGluIEhUVFAgcmVxdWVzdHMuXG4gKi9cbmV4cG9ydCB7IEZvcmJpZGRlbkVycm9yIH0gZnJvbSBcIi4vZXJyb3JzL0ZvcmJpZGRlbkVycm9yXCI7XG5leHBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMvVmFsaWRhdGlvbkVycm9yXCI7Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQSw0QkFBK0I7QUFDL0IsNkJBQWdDOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/cjs/http/index.js
CHANGED
|
@@ -56,4 +56,4 @@ __reExport(http_exports, require("./upload"), module.exports);
|
|
|
56
56
|
var import_upload = require("./upload");
|
|
57
57
|
var errors = __toESM(require("./errors"));
|
|
58
58
|
var import_utils = require("./utils");
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQG1vZHVsZSBodHRwL2luZGV4XG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvaHR0cFxuICogQG92ZXJ2aWV3XG4gKiBcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdGllcyBmb3IgbWFraW5nIEhUVFAgcmVxdWVzdHMgd2l0aGluIHRoZSBBZXJva2l0IFNESy4gSXQgaW5jbHVkZXMgY2xhc3NlcyBhbmQgbWV0aG9kcyBmb3Igc2VuZGluZyBIVFRQIHJlcXVlc3RzLCBoYW5kbGluZyByZXNwb25zZXMsIG1hbmFnaW5nIHNlc3Npb25zLCBhbmQgY29uZmlndXJpbmcgSFRUUCBjbGllbnRzLlxuICogXG4gKiBUaGUgbWFpbiBjb21wb25lbnRzIG9mIHRoaXMgbW9kdWxlIGFyZTpcbiAqIC0gSHR0cENsaWVudDogUmVwcmVzZW50cyBhbiBIVFRQIGNsaWVudCBmb3Igc2VuZGluZyByZXF1ZXN0cyBhbmQgcmVjZWl2aW5nIHJlc3BvbnNlcy5cbiAqIC0gUmVxdWVzdDogUmVwcmVzZW50cyBhbiBIVFRQIHJlcXVlc3Qgd2l0aCBtZXRob2RzIGZvciBzZXR0aW5nIGhlYWRlcnMsIGJvZHksIGFuZCBvdGhlciBwYXJhbWV0ZXJzLlxuICogLSBSZXNwb25zZTogUmVwcmVzZW50cyBhbiBIVFRQIHJlc3BvbnNlIHdpdGggbWV0aG9kcyBmb3IgYWNjZXNzaW5nIHN0YXR1cywgaGVhZGVycywgYW5kIGJvZHkgY29udGVudC5cbiAqIC0gU2Vzc2lvbjogUHJvdmlkZXMgc2Vzc2lvbiBtYW5hZ2VtZW50IGZvciBtYWludGFpbmluZyBzdGF0ZSBhY3Jvc3MgbXVsdGlwbGUgSFRUUCByZXF1ZXN0cy5cbiAqIC0gVXBsb2FkOiBQcm92aWRlcyBmdW5jdGlvbmFsaXRpZXMgZm9yIGhhbmRsaW5nIGZpbGUgdXBsb2FkcyBpbiBIVFRQIHJlcXVlc3RzLlxuICogLSBFcnJvcnM6IENvbnRhaW5zIGNsYXNzZXMgZm9yIGhhbmRsaW5nIHZhcmlvdXMgSFRUUC1yZWxhdGVkIGVycm9ycyBhbmQgZXhjZXB0aW9ucy5cbiAqIC0gVXRpbHM6IFByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggSFRUUCByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLlxuICogLSBBc3luY0NsaWVudDogUmVwcmVzZW50cyBhbiBhc3luY2hyb25vdXMgSFRUUCBjbGllbnQgZm9yIHNlbmRpbmcgcmVxdWVzdHMgYW5kIHJlY2VpdmluZyByZXNwb25zZXMgaW4gYSBub24tYmxvY2tpbmcgbWFubmVyLlxuICogLSBEZWNvcmF0b3JzOiBQcm92aWRlcyBkZWNvcmF0b3JzIGZvciBkZWZpbmluZyBIVFRQIGVuZHBvaW50cyBhbmQgdGhlaXIgcHJvcGVydGllcyBpbiBhIGRlY2xhcmF0aXZlIG1hbm5lci5cbiAqL1xuXG5leHBvcnQgKiBhcyBhc3luY0NsaWVudCBmcm9tIFwiLi9jbGllbnQtYXN5bmNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NsaWVudFwiO1xuZXhwb3J0IHsgSHR0cENsaWVudCBhcyBjbGllbnQgfSBmcm9tIFwiLi9jbGllbnRcIjtcbmV4cG9ydCAqIGFzIGRlY29yYXRvcnMgZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVxdWVzdFwiO1xuZXhwb3J0IHsgUmVxdWVzdCBhcyByZXF1ZXN0IH0gZnJvbSBcIi4vcmVxdWVzdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzcG9uc2VcIjtcbmV4cG9ydCB7IFJlc3BvbnNlIGFzIHJlc3BvbnNlIH0gZnJvbSBcIi4vcmVzcG9uc2VcIjtcbmV4cG9ydCAqIGFzIHJzIGZyb20gXCIuL3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXNzaW9uXCI7XG5leHBvcnQgeyBTZXNzaW9uIGFzIHNlc3Npb24gfSBmcm9tIFwiLi9zZXNzaW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91cGxvYWRcIjtcbmV4cG9ydCB7IFVwbG9hZCBhcyB1cGxvYWQgfSBmcm9tIFwiLi91cGxvYWRcIjtcbmV4cG9ydCAqIGFzIGVycm9ycyBmcm9tIFwiLi9lcnJvcnNcIjtcbmV4cG9ydCB7IEh0dHBVdGlscyBhcyB1dGlscyB9IGZyb20gXCIuL3V0aWxzXCI7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQSxrQkFBNkI7QUFDN0IseUJBQWMscUJBcEJkO0FBcUJBLG9CQUFxQztBQUNyQyxpQkFBNEI7QUFDNUIseUJBQWMseUJBdkJkO0FBd0JBLHlCQUFjLHNCQXhCZDtBQXlCQSxxQkFBbUM7QUFDbkMseUJBQWMsdUJBMUJkO0FBMkJBLHNCQUFxQztBQUNyQyxTQUFvQjtBQUNwQix5QkFBYyxzQkE3QmQ7QUE4QkEscUJBQW1DO0FBQ25DLHlCQUFjLHFCQS9CZDtBQWdDQSxvQkFBaUM7QUFDakMsYUFBd0I7QUFDeEIsbUJBQW1DOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/cjs/http/request.js
CHANGED
|
@@ -279,4 +279,4 @@ class Request {
|
|
|
279
279
|
if (typeof module !== "undefined") {
|
|
280
280
|
module.exports = Request;
|
|
281
281
|
}
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvcmVxdWVzdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBUaGUgUmVxdWVzdCBBUEkgdW5kZXIgdGhlIEhUVFAgbW9kdWxlIGlzIHJlc3BvbnNpYmxlIGZvclxuICogbWFuYWdpbmcgc3RhbmRhcmQgSFRUUCByZXF1ZXN0IHBhcmFtZXRlcnMsIGhlYWRlcnMsIGNvb2tpZXMsXG4gKiBhbmQgcmVxdWVzdCBtZXRhZGF0YSBwcm92aWRlZCB0byBzZXJ2ZXItc2lkZSBzY3JpcHRpbmcgc2VydmljZXMuXG4gKlxuICovXG5cbmltcG9ydCB7IElucHV0U3RyZWFtLCBTdHJlYW1zIH0gZnJvbSBcIkBhZXJva2l0L3Nkay9pby9zdHJlYW1zXCI7XG5pbXBvcnQgeyBDb29raWUgfSBmcm9tIFwiLi9yZXNwb25zZVwiO1xuXG5jb25zdCBIdHRwUmVxdWVzdEZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5odHRwLkh0dHBSZXF1ZXN0RmFjYWRlXCIpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIEhUVFAgUmVxdWVzdCBvYmplY3QgYXZhaWxhYmxlIHdpdGhpbiBhIHNlcnZpY2UgZXhlY3V0aW9uXG4gKiBjb250ZXh0LiBJdCBwcm92aWRlcyBhY2Nlc3MgdG8gSFRUUCBtZXRhZGF0YSwgcXVlcnkgcGFyYW1ldGVycywgcmVxdWVzdFxuICogYm9keSBjb250ZW50LCBjb29raWVzLCBhbmQgc2VjdXJpdHkgaW5mb3JtYXRpb24uXG4gKlxuICogQWxsIGZ1bmN0aW9ucyBpbiB0aGlzIGNsYXNzIGFyZSBzdGF0aWM6IG5vIGluc3RhbmNlIG9mIGBSZXF1ZXN0YFxuICogbmVlZHMgdG8gYmUgY3JlYXRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlcXVlc3Qge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgVEVYVF9EQVRBOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgdGhyZWFkIGlzIGhhbmRsaW5nIGEgdmFsaWQgSFRUUCByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIGNhbGxlZCBpbiBhIHZhbGlkIEhUVFAgcmVxdWVzdCBjb250ZXh0LCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5pc1ZhbGlkKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIEhUVFAgbWV0aG9kIChHRVQsIFBPU1QsIFBVVCwgREVMRVRFLCBldGMuKS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldE1ldGhvZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TWV0aG9kKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGF1dGhlbnRpY2F0ZWQgcmVtb3RlIHVzZXIgbmFtZSBpZiBhdmFpbGFibGUuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVVc2VyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZW1vdGVVc2VyKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgcGF0aCBmb2xsb3dpbmcgdGhlIHNlcnZsZXQgcGF0aC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFBhdGhJbmZvKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXRoSW5mbygpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSB0cmFuc2xhdGVkIGZpbGUgc3lzdGVtIHBhdGggZm9yIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGF0aFRyYW5zbGF0ZWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFBhdGhUcmFuc2xhdGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBIVFRQIGhlYWRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIC0gSGVhZGVyIG5hbWUgdG8gcmV0cmlldmUuXG4gICAgICogQHJldHVybnMgVGhlIGhlYWRlciB2YWx1ZSBvciBgdW5kZWZpbmVkYCBpZiBub3QgZm91bmQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRIZWFkZXIobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0SGVhZGVyKG5hbWUpO1xuICAgICAgICByZXR1cm4gaGVhZGVyID8gaGVhZGVyIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSByZW1vdGUgdXNlciBoYXMgdGhlIGdpdmVuIHJvbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9sZSAtIFRoZSByb2xlIG5hbWUgdG8gY2hlY2suXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBpc1VzZXJJblJvbGUocm9sZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5pc1VzZXJJblJvbGUocm9sZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHJlcXVlc3QgYXR0cmlidXRlIHZhbHVlIHByZXZpb3VzbHkgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgLSBUaGUgYXR0cmlidXRlIG5hbWUuXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgdmFsdWUgb3IgYHVuZGVmaW5lZGAuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdHRyaWJ1dGUobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlID8gYXR0cmlidXRlIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIGlmIGtub3duIChCQVNJQywgQ0xJRU5UX0NFUlQsIGV0Yy4pLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QXV0aFR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldEF1dGhUeXBlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgY29va2llcyBzZW50IHdpdGggdGhlIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBDb29raWUgb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvb2tpZXMoKTogQ29va2llW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb29raWVzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGFsbCBhdmFpbGFibGUgcmVxdWVzdCBhdHRyaWJ1dGUgbmFtZXMuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdHRyaWJ1dGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEh0dHBSZXF1ZXN0RmFjYWRlLmdldEF0dHJpYnV0ZU5hbWVzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdXNlZCBpbiB0aGUgcmVxdWVzdCBib2R5LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q2hhcmFjdGVyRW5jb2RpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldENoYXJhY3RlckVuY29kaW5nKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIHJlcXVlc3QgYm9keSBpbiBieXRlcywgaWYga25vd24uICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb250ZW50TGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb250ZW50TGVuZ3RoKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbGwgdmFsdWVzIG9mIGEgc3BlY2lmaWMgaGVhZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgLSBIZWFkZXIgbmFtZSB0byByZXRyaWV2ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEhlYWRlcnMobmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRIZWFkZXJzKG5hbWUpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgTUlNRSBjb250ZW50IHR5cGUgb2YgdGhlIHJlcXVlc3QgYm9keS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRlbnRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb250ZW50VHlwZSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSByYXcgcmVxdWVzdCBib2R5IGFzIGEgYnl0ZSBhcnJheS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEJ5dGVzKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlcXVlc3RGYWNhZGUuZ2V0Qnl0ZXMoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcmVxdWVzdCBib2R5IGFzIHRleHQuIFRoaXMgaXMgY29tcHV0ZWQgb25jZSBhbmQgY2FjaGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGV4dCgpIHtcbiAgICAgICAgaWYgKCFSZXF1ZXN0LlRFWFRfREFUQSkge1xuICAgICAgICAgICAgUmVxdWVzdC5URVhUX0RBVEEgPSBIdHRwUmVxdWVzdEZhY2FkZS5nZXRUZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlcXVlc3QuVEVYVF9EQVRBO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHJlcXVlc3QgYm9keSBwYXJzZWQgYXMgSlNPTiBpZiB2YWxpZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgSlNPTiBvYmplY3Qgb3IgYHVuZGVmaW5lZGAgaWYgcGFyc2luZyBmYWlscy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGpzb24oKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBSZXF1ZXN0LmdldEpTT04oKTtcbiAgICB9XG5cbiAgICAvKiogU2FtZSBhcyBqc29uKCk7IGV4cGxpY2l0IGZvcm0uICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRKU09OKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoUmVxdWVzdC5nZXRUZXh0KCkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYSByZXF1ZXN0IHBhcmFtZXRlciB2YWx1ZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFBhcmFtZXRlcihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UGFyYW1ldGVyKG5hbWUpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGEgbWFwIG9mIHJlcXVlc3QgcGFyYW1ldGVycyB0byBhcnJheXMgb2YgdmFsdWVzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1ldGVycygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXJhbWV0ZXJzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBhbGxvY2F0ZWQgcmVxdWVzdCByZXNvdXJjZSBwYXRoLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVzb3VyY2VQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZXNvdXJjZVBhdGgoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbGwgaGVhZGVyIG5hbWVzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SGVhZGVyTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRIZWFkZXJOYW1lcygpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbGwgcGFyYW1ldGVyIG5hbWVzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1ldGVyTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXJhbWV0ZXJOYW1lcygpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbGwgdmFsdWVzIGZvciBhIGdpdmVuIHBhcmFtZXRlciBuYW1lLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1ldGVyVmFsdWVzKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UGFyYW1ldGVyVmFsdWVzKG5hbWUpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgSFRUUCBwcm90b2NvbCB2ZXJzaW9uLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UHJvdG9jb2woKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFByb3RvY29sKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHRyYW5zcG9ydCBzY2hlbWUgKGUuZy4sIGh0dHAsIGh0dHBzKS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFNjaGVtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0U2NoZW1lKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGNvbnRleHQgcGF0aCBvZiB0aGUgcmVxdWVzdC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRleHRQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRDb250ZXh0UGF0aCgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBzZXJ2ZXIgaG9zdCBuYW1lLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U2VydmVyTmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0U2VydmVyTmFtZSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBzZXJ2ZXIgcG9ydCBudW1iZXIuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRTZXJ2ZXJQb3J0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRTZXJ2ZXJQb3J0KCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGZ1bGwgcmF3IHF1ZXJ5IHN0cmluZy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFF1ZXJ5U3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRRdWVyeVN0cmluZygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyB0aGUgcXVlcnkgc3RyaW5nIGFuZCByZXR1cm5zIGEgbWFwIG9mIHBhcmFtZXRlciBrZXlzIHRvIHZhbHVlcy5cbiAgICAgKiBJZiB0aGUgc2FtZSBrZXkgYXBwZWFycyBtdWx0aXBsZSB0aW1lcywgdmFsdWVzIGFyZSBjb2xsZWN0ZWQgaW50byBhcnJheXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRRdWVyeVBhcmFtZXRlcnNNYXAoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9IHtcbiAgICAgICAgbGV0IHF1ZXJ5U3RyaW5nID0gUmVxdWVzdC5nZXRRdWVyeVN0cmluZygpO1xuICAgICAgICBpZiAoIXF1ZXJ5U3RyaW5nKVxuICAgICAgICAgICAgcmV0dXJuIHt9XG5cbiAgICAgICAgcXVlcnlTdHJpbmcgPSBkZWNvZGVVUkkocXVlcnlTdHJpbmcpO1xuICAgICAgICBsZXQgcXVlcnlTdHJpbmdTZWdtZW50cyA9IHF1ZXJ5U3RyaW5nLnNwbGl0KCcmJyk7XG5cbiAgICAgICAgbGV0IHF1ZXJ5TWFwOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICAgIHF1ZXJ5U3RyaW5nU2VnbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoc2VnKSB7XG4gICAgICAgICAgICBzZWcgPSBzZWcucmVwbGFjZSgnYW1wOycsICcnKTtcbiAgICAgICAgICAgIGNvbnN0IGt2ID0gc2VnLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBrdlswXS50cmltKCk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGt2WzFdID09PSB1bmRlZmluZWQgPyB0cnVlIDoga3ZbMV0udHJpbSgpO1xuICAgICAgICAgICAgaWYgKHF1ZXJ5TWFwW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShxdWVyeU1hcFtrZXldKSlcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlNYXBba2V5XSA9IFtxdWVyeU1hcFtrZXldXTtcbiAgICAgICAgICAgICAgICBxdWVyeU1hcFtrZXldLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBxdWVyeU1hcFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcXVlcnlNYXA7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHJlbW90ZSBjbGllbnQgSVAgYWRkcmVzcy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlbW90ZUFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFJlbW90ZUFkZHJlc3MoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgcmVtb3RlIGNsaWVudCBob3N0IG5hbWUuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVIb3N0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZW1vdGVIb3N0KCk7XG4gICAgfVxuXG4gICAgLyoqIEFzc2lnbnMgYSBuZXcgYXR0cmlidXRlIHRvIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0QXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVxdWVzdEZhY2FkZS5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBSZW1vdmVzIGFuIGF0dHJpYnV0ZSBmcm9tIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVtb3ZlQXR0cmlidXRlKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVxdWVzdEZhY2FkZS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGNsaWVudCBsb2NhbGUgcHJlZmVyZW5jZXMuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRMb2NhbGUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TG9jYWxlKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBmdWxsIHJlcXVlc3QgVVJJLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVxdWVzdFVSSSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UmVxdWVzdFVSSSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcmVxdWVzdCB3YXMgbWFkZSBvdmVyIEhUVFBTLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNTZWN1cmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5pc1NlY3VyZSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBmdWxsIHJlcXVlc3QgVVJMIGluY2x1ZGluZyBwcm90b2NvbCBhbmQgaG9zdC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlcXVlc3RVUkwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFJlcXVlc3RVUkwoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgaW50ZXJuYWwgc2VydmljZSBwYXRoIGZvciByb3V0aW5nLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U2VydmljZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFNlcnZpY2VQYXRoKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHJlbW90ZSBjbGllbnQgcG9ydCBudW1iZXIuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVQb3J0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZW1vdGVQb3J0KCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGxvY2FsIG5ldHdvcmsgaG9zdCBuYW1lLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TG9jYWxOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRMb2NhbE5hbWUoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgbG9jYWwgSVAgYWRkcmVzcy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldExvY2FsQWRkcmVzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TG9jYWxBZGRyZXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHNlcnZlciBsb2NhbCBwb3J0IG51bWJlciBoYW5kbGluZyB0aGUgcmVxdWVzdC4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldExvY2FsUG9ydCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0TG9jYWxQb3J0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcmVxdWVzdCBib2R5IGFzIGEgYmluYXJ5IGlucHV0IHN0cmVhbS5cbiAgICAgKlxuICAgICAqIFVzZWZ1bCBmb3IgcHJvY2Vzc2luZyBiaW5hcnkgdXBsb2Fkcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldElucHV0U3RyZWFtKCk6IElucHV0U3RyZWFtIHtcbiAgICAgICAgcmV0dXJuIFN0cmVhbXMuY3JlYXRlSW5wdXRTdHJlYW0oSHR0cFJlcXVlc3RGYWNhZGUuZ2V0SW5wdXRTdHJlYW0oKSk7XG4gICAgfVxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRtb2R1bGUuZXhwb3J0cyA9IFJlcXVlc3Q7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7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
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvcmVxdWVzdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbW9kdWxlIGh0dHAvcmVxdWVzdFxuICogQHBhY2thZ2UgQGFlcm9raXQvc2RrL2h0dHBcbiAqIEBuYW1lIFJlcXVlc3RcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgUmVxdWVzdCBjbGFzcyBwcm92aWRlcyBhIGNvbXByZWhlbnNpdmUgQVBJIGZvciBhY2Nlc3NpbmcgSFRUUCByZXF1ZXN0IGRhdGEgYW5kIG1ldGFkYXRhIHdpdGhpbiBzZXJ2ZXItc2lkZSBzY3JpcHRpbmcgc2VydmljZXMuIEl0IGFic3RyYWN0cyB0aGUgdW5kZXJseWluZyBIVFRQIHJlcXVlc3QgZGV0YWlscyBhbmQgZXhwb3NlcyBhIHJpY2ggc2V0IG9mIHN0YXRpYyBtZXRob2RzIHRvIHJldHJpZXZlIGluZm9ybWF0aW9uIHN1Y2ggYXMgaGVhZGVycywgcXVlcnkgcGFyYW1ldGVycywgY29va2llcywgYXV0aGVudGljYXRpb24gZGV0YWlscywgYW5kIHRoZSByZXF1ZXN0IGJvZHkgaW4gdmFyaW91cyBmb3JtYXRzICh0ZXh0LCBKU09OLCBiaW5hcnkpLlxuICogXG4gKiAjIyMgS2V5IEZlYXR1cmVzOlxuICogLSAqKkNvbXByZWhlbnNpdmUgUmVxdWVzdCBEYXRhIEFjY2VzcyoqOiBQcm92aWRlcyBtZXRob2RzIHRvIGFjY2VzcyBhbGwgYXNwZWN0cyBvZiB0aGUgSFRUUCByZXF1ZXN0LCBpbmNsdWRpbmcgaGVhZGVycywgcGFyYW1ldGVycywgY29va2llcywgYW5kIGJvZHkgY29udGVudC5cbiAqIC0gKipDb252ZW5pZW50IEJvZHkgUGFyc2luZyoqOiBPZmZlcnMgYnVpbHQtaW4gbWV0aG9kcyB0byByZXRyaWV2ZSB0aGUgcmVxdWVzdCBib2R5IGFzIHRleHQgb3IgcGFyc2UgaXQgYXMgSlNPTiwgc2ltcGxpZnlpbmcgY29tbW9uIHVzZSBjYXNlcy5cbiAqIC0gKipTZWN1cml0eSBJbmZvcm1hdGlvbioqOiBBbGxvd3MgY2hlY2tpbmcgdXNlciByb2xlcyBhbmQgYXV0aGVudGljYXRpb24gdHlwZXMgZGlyZWN0bHkgZnJvbSB0aGUgcmVxdWVzdCBjb250ZXh0LlxuICogXG4gKiAjIyMgVXNlIENhc2VzOlxuICogLSAqKkFQSSBEZXZlbG9wbWVudCoqOiBVc2VkIGluIFJFU1RmdWwgQVBJIGVuZHBvaW50cyB0byBhY2Nlc3MgaW5jb21pbmcgcmVxdWVzdCBkYXRhIGFuZCBtYWtlIGRlY2lzaW9ucyBiYXNlZCBvbiBoZWFkZXJzLCBwYXJhbWV0ZXJzLCBvciBhdXRoZW50aWNhdGlvbiBzdGF0dXMuXG4gKiAtICoqTWlkZGxld2FyZSBMb2dpYyoqOiBDYW4gYmUgdXNlZCBpbiBtaWRkbGV3YXJlIGZ1bmN0aW9ucyB0byBpbnNwZWN0IHJlcXVlc3RzIGJlZm9yZSB0aGV5IHJlYWNoIHRoZSBtYWluIGhhbmRsZXIgbG9naWMuXG4gKiBcbiAqICMjIyBFeGFtcGxlIFVzYWdlOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IFJlcXVlc3QgfSBmcm9tIFwiQGFlcm9raXQvc2RrL2h0dHBcIjtcbiAqIFxuICogZnVuY3Rpb24gaGFuZGxlUmVxdWVzdCgpIHtcbiAqICAgICBpZiAoUmVxdWVzdC5pc1ZhbGlkKCkpIHtcbiAqICAgICAgICAgY29uc3QgbWV0aG9kID0gUmVxdWVzdC5nZXRNZXRob2QoKTtcbiAqICAgICAgICAgY29uc3QgdXNlciA9IFJlcXVlc3QuZ2V0UmVtb3RlVXNlcigpO1xuICogICAgICAgICBjb25zdCBib2R5ID0gUmVxdWVzdC5qc29uKCk7XG4gKiAgICAgICAgIC8vIFByb2Nlc3MgdGhlIHJlcXVlc3QgYmFzZWQgb24gbWV0aG9kLCB1c2VyLCBhbmQgYm9keSBjb250ZW50XG4gKiAgICAgfSBlbHNlIHtcbiAqICAgICAgICAgLy8gSGFuZGxlIGludmFsaWQgcmVxdWVzdCBjb250ZXh0XG4gKiAgICAgfVxuICogfVxuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgSW5wdXRTdHJlYW0sIFN0cmVhbXMgfSBmcm9tIFwiQGFlcm9raXQvc2RrL2lvL3N0cmVhbXNcIjtcbmltcG9ydCB7IENvb2tpZSB9IGZyb20gXCIuL3Jlc3BvbnNlXCI7XG5cbmNvbnN0IEh0dHBSZXF1ZXN0RmFjYWRlID0gSmF2YS50eXBlKFwib3JnLmVjbGlwc2UuZGlyaWdpYmxlLmNvbXBvbmVudHMuYXBpLmh0dHAuSHR0cFJlcXVlc3RGYWNhZGVcIik7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgSFRUUCBSZXF1ZXN0IG9iamVjdCBhdmFpbGFibGUgd2l0aGluIGEgc2VydmljZSBleGVjdXRpb25cbiAqIGNvbnRleHQuIEl0IHByb3ZpZGVzIGFjY2VzcyB0byBIVFRQIG1ldGFkYXRhLCBxdWVyeSBwYXJhbWV0ZXJzLCByZXF1ZXN0XG4gKiBib2R5IGNvbnRlbnQsIGNvb2tpZXMsIGFuZCBzZWN1cml0eSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBBbGwgZnVuY3Rpb25zIGluIHRoaXMgY2xhc3MgYXJlIHN0YXRpYzogbm8gaW5zdGFuY2Ugb2YgYFJlcXVlc3RgXG4gKiBuZWVkcyB0byBiZSBjcmVhdGVkLlxuICovXG5leHBvcnQgY2xhc3MgUmVxdWVzdCB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBURVhUX0RBVEE6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY3VycmVudCB0aHJlYWQgaXMgaGFuZGxpbmcgYSB2YWxpZCBIVFRQIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgY2FsbGVkIGluIGEgdmFsaWQgSFRUUCByZXF1ZXN0IGNvbnRleHQsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmlzVmFsaWQoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgSFRUUCBtZXRob2QgKEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIGV0Yy4pLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TWV0aG9kKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRNZXRob2QoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgYXV0aGVudGljYXRlZCByZW1vdGUgdXNlciBuYW1lIGlmIGF2YWlsYWJsZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlbW90ZVVzZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFJlbW90ZVVzZXIoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgcG9ydGlvbiBvZiB0aGUgcmVxdWVzdCBwYXRoIGZvbGxvd2luZyB0aGUgc2VydmxldCBwYXRoLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGF0aEluZm8oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFBhdGhJbmZvKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHRyYW5zbGF0ZWQgZmlsZSBzeXN0ZW0gcGF0aCBmb3IgdGhlIHJlcXVlc3QuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRQYXRoVHJhbnNsYXRlZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UGF0aFRyYW5zbGF0ZWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBhIHNwZWNpZmljIEhUVFAgaGVhZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgLSBIZWFkZXIgbmFtZSB0byByZXRyaWV2ZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgaGVhZGVyIHZhbHVlIG9yIGB1bmRlZmluZWRgIGlmIG5vdCBmb3VuZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEhlYWRlcihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBoZWFkZXIgPSBIdHRwUmVxdWVzdEZhY2FkZS5nZXRIZWFkZXIobmFtZSk7XG4gICAgICAgIHJldHVybiBoZWFkZXIgPyBoZWFkZXIgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIHJlbW90ZSB1c2VyIGhhcyB0aGUgZ2l2ZW4gcm9sZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb2xlIC0gVGhlIHJvbGUgbmFtZSB0byBjaGVjay5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGlzVXNlckluUm9sZShyb2xlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmlzVXNlckluUm9sZShyb2xlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcmVxdWVzdCBhdHRyaWJ1dGUgdmFsdWUgcHJldmlvdXNseSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBhdHRyaWJ1dGUgbmFtZS5cbiAgICAgKiBAcmV0dXJucyBBIHN0cmluZyB2YWx1ZSBvciBgdW5kZWZpbmVkYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEF0dHJpYnV0ZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSBIdHRwUmVxdWVzdEZhY2FkZS5nZXRBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGUgPyBhdHRyaWJ1dGUgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgaWYga25vd24gKEJBU0lDLCBDTElFTlRfQ0VSVCwgZXRjLikuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRBdXRoVHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0QXV0aFR5cGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCBjb29raWVzIHNlbnQgd2l0aCB0aGUgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIENvb2tpZSBvYmplY3RzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29va2llcygpOiBDb29raWVbXSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEh0dHBSZXF1ZXN0RmFjYWRlLmdldENvb2tpZXMoKSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYWxsIGF2YWlsYWJsZSByZXF1ZXN0IGF0dHJpYnV0ZSBuYW1lcy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEF0dHJpYnV0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlcXVlc3RGYWNhZGUuZ2V0QXR0cmlidXRlTmFtZXMoKSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGNoYXJhY3RlciBlbmNvZGluZyB1c2VkIGluIHRoZSByZXF1ZXN0IGJvZHkuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDaGFyYWN0ZXJFbmNvZGluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0Q2hhcmFjdGVyRW5jb2RpbmcoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgcmVxdWVzdCBib2R5IGluIGJ5dGVzLCBpZiBrbm93bi4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRlbnRMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldENvbnRlbnRMZW5ndGgoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCB2YWx1ZXMgb2YgYSBzcGVjaWZpYyBoZWFkZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSAtIEhlYWRlciBuYW1lIHRvIHJldHJpZXZlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SGVhZGVycyhuYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEh0dHBSZXF1ZXN0RmFjYWRlLmdldEhlYWRlcnMobmFtZSkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBNSU1FIGNvbnRlbnQgdHlwZSBvZiB0aGUgcmVxdWVzdCBib2R5LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29udGVudFR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldENvbnRlbnRUeXBlKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHJhdyByZXF1ZXN0IGJvZHkgYXMgYSBieXRlIGFycmF5LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Qnl0ZXMoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRCeXRlcygpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSByZXF1ZXN0IGJvZHkgYXMgdGV4dC4gVGhpcyBpcyBjb21wdXRlZCBvbmNlIGFuZCBjYWNoZWQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRUZXh0KCkge1xuICAgICAgICBpZiAoIVJlcXVlc3QuVEVYVF9EQVRBKSB7XG4gICAgICAgICAgICBSZXF1ZXN0LlRFWFRfREFUQSA9IEh0dHBSZXF1ZXN0RmFjYWRlLmdldFRleHQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVxdWVzdC5URVhUX0RBVEE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcmVxdWVzdCBib2R5IHBhcnNlZCBhcyBKU09OIGlmIHZhbGlkLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBKU09OIG9iamVjdCBvciBgdW5kZWZpbmVkYCBpZiBwYXJzaW5nIGZhaWxzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMganNvbigpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIFJlcXVlc3QuZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIC8qKiBTYW1lIGFzIGpzb24oKTsgZXhwbGljaXQgZm9ybS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEpTT04oKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShSZXF1ZXN0LmdldFRleHQoKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhIHJlcXVlc3QgcGFyYW1ldGVyIHZhbHVlLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UGFyYW1ldGVyKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXJhbWV0ZXIobmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYSBtYXAgb2YgcmVxdWVzdCBwYXJhbWV0ZXJzIHRvIGFycmF5cyBvZiB2YWx1ZXMuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRQYXJhbWV0ZXJzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEh0dHBSZXF1ZXN0RmFjYWRlLmdldFBhcmFtZXRlcnMoKSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGFsbG9jYXRlZCByZXF1ZXN0IHJlc291cmNlIHBhdGguICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZXNvdXJjZVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFJlc291cmNlUGF0aCgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGFsbCBoZWFkZXIgbmFtZXMuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRIZWFkZXJOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEh0dHBSZXF1ZXN0RmFjYWRlLmdldEhlYWRlck5hbWVzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGFsbCBwYXJhbWV0ZXIgbmFtZXMuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRQYXJhbWV0ZXJOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEh0dHBSZXF1ZXN0RmFjYWRlLmdldFBhcmFtZXRlck5hbWVzKCkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGFsbCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gcGFyYW1ldGVyIG5hbWUuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRQYXJhbWV0ZXJWYWx1ZXMobmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRQYXJhbWV0ZXJWYWx1ZXMobmFtZSkpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBIVFRQIHByb3RvY29sIHZlcnNpb24uICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRQcm90b2NvbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UHJvdG9jb2woKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgdHJhbnNwb3J0IHNjaGVtZSAoZS5nLiwgaHR0cCwgaHR0cHMpLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U2NoZW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRTY2hlbWUoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgY29udGV4dCBwYXRoIG9mIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29udGV4dFBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldENvbnRleHRQYXRoKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHNlcnZlciBob3N0IG5hbWUuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRTZXJ2ZXJOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRTZXJ2ZXJOYW1lKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIHNlcnZlciBwb3J0IG51bWJlci4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFNlcnZlclBvcnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFNlcnZlclBvcnQoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgZnVsbCByYXcgcXVlcnkgc3RyaW5nLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UXVlcnlTdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFF1ZXJ5U3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFyc2VzIHRoZSBxdWVyeSBzdHJpbmcgYW5kIHJldHVybnMgYSBtYXAgb2YgcGFyYW1ldGVyIGtleXMgdG8gdmFsdWVzLlxuICAgICAqIElmIHRoZSBzYW1lIGtleSBhcHBlYXJzIG11bHRpcGxlIHRpbWVzLCB2YWx1ZXMgYXJlIGNvbGxlY3RlZCBpbnRvIGFycmF5cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFF1ZXJ5UGFyYW1ldGVyc01hcCgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0ge1xuICAgICAgICBsZXQgcXVlcnlTdHJpbmcgPSBSZXF1ZXN0LmdldFF1ZXJ5U3RyaW5nKCk7XG4gICAgICAgIGlmICghcXVlcnlTdHJpbmcpXG4gICAgICAgICAgICByZXR1cm4ge31cblxuICAgICAgICBxdWVyeVN0cmluZyA9IGRlY29kZVVSSShxdWVyeVN0cmluZyk7XG4gICAgICAgIGxldCBxdWVyeVN0cmluZ1NlZ21lbnRzID0gcXVlcnlTdHJpbmcuc3BsaXQoJyYnKTtcblxuICAgICAgICBsZXQgcXVlcnlNYXA6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICAgICAgcXVlcnlTdHJpbmdTZWdtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChzZWcpIHtcbiAgICAgICAgICAgIHNlZyA9IHNlZy5yZXBsYWNlKCdhbXA7JywgJycpO1xuICAgICAgICAgICAgY29uc3Qga3YgPSBzZWcuc3BsaXQoJz0nKTtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGt2WzBdLnRyaW0oKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0ga3ZbMV0gPT09IHVuZGVmaW5lZCA/IHRydWUgOiBrdlsxXS50cmltKCk7XG4gICAgICAgICAgICBpZiAocXVlcnlNYXBba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHF1ZXJ5TWFwW2tleV0pKVxuICAgICAgICAgICAgICAgICAgICBxdWVyeU1hcFtrZXldID0gW3F1ZXJ5TWFwW2tleV1dO1xuICAgICAgICAgICAgICAgIHF1ZXJ5TWFwW2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHF1ZXJ5TWFwW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBxdWVyeU1hcDtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgcmVtb3RlIGNsaWVudCBJUCBhZGRyZXNzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVtb3RlQWRkcmVzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UmVtb3RlQWRkcmVzcygpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSByZW1vdGUgY2xpZW50IGhvc3QgbmFtZS4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlbW90ZUhvc3QoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFJlbW90ZUhvc3QoKTtcbiAgICB9XG5cbiAgICAvKiogQXNzaWducyBhIG5ldyBhdHRyaWJ1dGUgdG8gdGhlIHJlcXVlc3QuICovXG4gICAgcHVibGljIHN0YXRpYyBzZXRBdHRyaWJ1dGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXF1ZXN0RmFjYWRlLnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZXMgYW4gYXR0cmlidXRlIGZyb20gdGhlIHJlcXVlc3QuICovXG4gICAgcHVibGljIHN0YXRpYyByZW1vdmVBdHRyaWJ1dGUobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXF1ZXN0RmFjYWRlLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgY2xpZW50IGxvY2FsZSBwcmVmZXJlbmNlcy4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldExvY2FsZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVxdWVzdEZhY2FkZS5nZXRMb2NhbGUoKSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGZ1bGwgcmVxdWVzdCBVUkkuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZXF1ZXN0VVJJKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRSZXF1ZXN0VVJJKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYHRydWVgIGlmIHRoZSByZXF1ZXN0IHdhcyBtYWRlIG92ZXIgSFRUUFMuICovXG4gICAgcHVibGljIHN0YXRpYyBpc1NlY3VyZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmlzU2VjdXJlKCk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgdGhlIGZ1bGwgcmVxdWVzdCBVUkwgaW5jbHVkaW5nIHByb3RvY29sIGFuZCBob3N0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVxdWVzdFVSTCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0UmVxdWVzdFVSTCgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBpbnRlcm5hbCBzZXJ2aWNlIHBhdGggZm9yIHJvdXRpbmcuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRTZXJ2aWNlUGF0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlcXVlc3RGYWNhZGUuZ2V0U2VydmljZVBhdGgoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgcmVtb3RlIGNsaWVudCBwb3J0IG51bWJlci4gKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlbW90ZVBvcnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldFJlbW90ZVBvcnQoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgbG9jYWwgbmV0d29yayBob3N0IG5hbWUuICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRMb2NhbE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXF1ZXN0RmFjYWRlLmdldExvY2FsTmFtZSgpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIHRoZSBsb2NhbCBJUCBhZGRyZXNzLiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TG9jYWxBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRMb2NhbEFkZHJlc3MoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB0aGUgc2VydmVyIGxvY2FsIHBvcnQgbnVtYmVyIGhhbmRsaW5nIHRoZSByZXF1ZXN0LiAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TG9jYWxQb3J0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBIdHRwUmVxdWVzdEZhY2FkZS5nZXRMb2NhbFBvcnQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSByZXF1ZXN0IGJvZHkgYXMgYSBiaW5hcnkgaW5wdXQgc3RyZWFtLlxuICAgICAqXG4gICAgICogVXNlZnVsIGZvciBwcm9jZXNzaW5nIGJpbmFyeSB1cGxvYWRzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SW5wdXRTdHJlYW0oKTogSW5wdXRTdHJlYW0ge1xuICAgICAgICByZXR1cm4gU3RyZWFtcy5jcmVhdGVJbnB1dFN0cmVhbShIdHRwUmVxdWVzdEZhY2FkZS5nZXRJbnB1dFN0cmVhbSgpKTtcbiAgICB9XG59XG5cbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuXHQvLyBAdHMtaWdub3JlXG5cdG1vZHVsZS5leHBvcnRzID0gUmVxdWVzdDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtDQSxxQkFBcUM7QUFHckMsTUFBTSxvQkFBb0IsS0FBSyxLQUFLLDZEQUE2RDtBQVUxRixNQUFNLFFBQVE7QUFBQSxFQUVqQixPQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT2YsT0FBYyxVQUFtQjtBQUM3QixXQUFPLGtCQUFrQixRQUFRO0FBQUEsRUFDckM7QUFBQTtBQUFBLEVBR0EsT0FBYyxZQUFvQjtBQUM5QixXQUFPLGtCQUFrQixVQUFVO0FBQUEsRUFDdkM7QUFBQTtBQUFBLEVBR0EsT0FBYyxnQkFBd0I7QUFDbEMsV0FBTyxrQkFBa0IsY0FBYztBQUFBLEVBQzNDO0FBQUE7QUFBQSxFQUdBLE9BQWMsY0FBc0I7QUFDaEMsV0FBTyxrQkFBa0IsWUFBWTtBQUFBLEVBQ3pDO0FBQUE7QUFBQSxFQUdBLE9BQWMsb0JBQTRCO0FBQ3RDLFdBQU8sa0JBQWtCLGtCQUFrQjtBQUFBLEVBQy9DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxPQUFjLFVBQVUsTUFBc0I7QUFDMUMsVUFBTSxTQUFTLGtCQUFrQixVQUFVLElBQUk7QUFDL0MsV0FBTyxTQUFTLFNBQVM7QUFBQSxFQUM3QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE9BQWMsYUFBYSxNQUF1QjtBQUM5QyxXQUFPLGtCQUFrQixhQUFhLElBQUk7QUFBQSxFQUM5QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsT0FBYyxhQUFhLE1BQWtDO0FBQ3pELFVBQU0sWUFBWSxrQkFBa0IsYUFBYSxJQUFJO0FBQ3JELFdBQU8sWUFBWSxZQUFZO0FBQUEsRUFDbkM7QUFBQTtBQUFBLEVBR0EsT0FBYyxjQUFzQjtBQUNoQyxXQUFPLGtCQUFrQixZQUFZO0FBQUEsRUFDekM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxPQUFjLGFBQXVCO0FBQ2pDLFdBQU8sS0FBSyxNQUFNLGtCQUFrQixXQUFXLENBQUM7QUFBQSxFQUNwRDtBQUFBO0FBQUEsRUFHQSxPQUFjLG9CQUE4QjtBQUN4QyxXQUFPLEtBQUssTUFBTSxrQkFBa0Isa0JBQWtCLENBQUM7QUFBQSxFQUMzRDtBQUFBO0FBQUEsRUFHQSxPQUFjLHVCQUErQjtBQUN6QyxXQUFPLGtCQUFrQixxQkFBcUI7QUFBQSxFQUNsRDtBQUFBO0FBQUEsRUFHQSxPQUFjLG1CQUEyQjtBQUNyQyxXQUFPLGtCQUFrQixpQkFBaUI7QUFBQSxFQUM5QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE9BQWMsV0FBVyxNQUF3QjtBQUM3QyxXQUFPLEtBQUssTUFBTSxrQkFBa0IsV0FBVyxJQUFJLENBQUM7QUFBQSxFQUN4RDtBQUFBO0FBQUEsRUFHQSxPQUFjLGlCQUF5QjtBQUNuQyxXQUFPLGtCQUFrQixlQUFlO0FBQUEsRUFDNUM7QUFBQTtBQUFBLEVBR0EsT0FBYyxXQUFrQjtBQUM1QixXQUFPLEtBQUssTUFBTSxrQkFBa0IsU0FBUyxDQUFDO0FBQUEsRUFDbEQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE9BQWMsVUFBVTtBQUNwQixRQUFJLENBQUMsUUFBUSxXQUFXO0FBQ3BCLGNBQVEsWUFBWSxrQkFBa0IsUUFBUTtBQUFBLElBQ2xEO0FBQ0EsV0FBTyxRQUFRO0FBQUEsRUFDbkI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxPQUFjLE9BQTJDO0FBQ3JELFdBQU8sUUFBUSxRQUFRO0FBQUEsRUFDM0I7QUFBQTtBQUFBLEVBR0EsT0FBYyxVQUE4QztBQUN4RCxRQUFJO0FBQ0EsYUFBTyxLQUFLLE1BQU0sUUFBUSxRQUFRLENBQUM7QUFBQSxJQUN2QyxTQUFTLEdBQUc7QUFDUixhQUFPO0FBQUEsSUFDWDtBQUFBLEVBQ0o7QUFBQTtBQUFBLEVBR0EsT0FBYyxhQUFhLE1BQXNCO0FBQzdDLFdBQU8sa0JBQWtCLGFBQWEsSUFBSTtBQUFBLEVBQzlDO0FBQUE7QUFBQSxFQUdBLE9BQWMsZ0JBQTZDO0FBQ3ZELFdBQU8sS0FBSyxNQUFNLGtCQUFrQixjQUFjLENBQUM7QUFBQSxFQUN2RDtBQUFBO0FBQUEsRUFHQSxPQUFjLGtCQUEwQjtBQUNwQyxXQUFPLGtCQUFrQixnQkFBZ0I7QUFBQSxFQUM3QztBQUFBO0FBQUEsRUFHQSxPQUFjLGlCQUEyQjtBQUNyQyxXQUFPLEtBQUssTUFBTSxrQkFBa0IsZUFBZSxDQUFDO0FBQUEsRUFDeEQ7QUFBQTtBQUFBLEVBR0EsT0FBYyxvQkFBOEI7QUFDeEMsV0FBTyxLQUFLLE1BQU0sa0JBQWtCLGtCQUFrQixDQUFDO0FBQUEsRUFDM0Q7QUFBQTtBQUFBLEVBR0EsT0FBYyxtQkFBbUIsTUFBd0I7QUFDckQsV0FBTyxLQUFLLE1BQU0sa0JBQWtCLG1CQUFtQixJQUFJLENBQUM7QUFBQSxFQUNoRTtBQUFBO0FBQUEsRUFHQSxPQUFjLGNBQXNCO0FBQ2hDLFdBQU8sa0JBQWtCLFlBQVk7QUFBQSxFQUN6QztBQUFBO0FBQUEsRUFHQSxPQUFjLFlBQW9CO0FBQzlCLFdBQU8sa0JBQWtCLFVBQVU7QUFBQSxFQUN2QztBQUFBO0FBQUEsRUFHQSxPQUFjLGlCQUF5QjtBQUNuQyxXQUFPLGtCQUFrQixlQUFlO0FBQUEsRUFDNUM7QUFBQTtBQUFBLEVBR0EsT0FBYyxnQkFBd0I7QUFDbEMsV0FBTyxrQkFBa0IsY0FBYztBQUFBLEVBQzNDO0FBQUE7QUFBQSxFQUdBLE9BQWMsZ0JBQXdCO0FBQ2xDLFdBQU8sa0JBQWtCLGNBQWM7QUFBQSxFQUMzQztBQUFBO0FBQUEsRUFHQSxPQUFjLGlCQUF5QjtBQUNuQyxXQUFPLGtCQUFrQixlQUFlO0FBQUEsRUFDNUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyx3QkFBOEQ7QUFDeEUsUUFBSSxjQUFjLFFBQVEsZUFBZTtBQUN6QyxRQUFJLENBQUM7QUFDRCxhQUFPLENBQUM7QUFFWixrQkFBYyxVQUFVLFdBQVc7QUFDbkMsUUFBSSxzQkFBc0IsWUFBWSxNQUFNLEdBQUc7QUFFL0MsUUFBSSxXQUFtQyxDQUFDO0FBQ3hDLHdCQUFvQixRQUFRLFNBQVUsS0FBSztBQUN2QyxZQUFNLElBQUksUUFBUSxRQUFRLEVBQUU7QUFDNUIsWUFBTSxLQUFLLElBQUksTUFBTSxHQUFHO0FBQ3hCLFlBQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxLQUFLO0FBQ3ZCLFlBQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxTQUFZLE9BQU8sR0FBRyxDQUFDLEVBQUUsS0FBSztBQUN0RCxVQUFJLFNBQVMsR0FBRyxNQUFNLFFBQVc7QUFDN0IsWUFBSSxDQUFDLE1BQU0sUUFBUSxTQUFTLEdBQUcsQ0FBQztBQUM1QixtQkFBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQztBQUNsQyxpQkFBUyxHQUFHLEVBQUUsS0FBSyxLQUFLO0FBQUEsTUFDNUIsT0FBTztBQUNILGlCQUFTLEdBQUcsSUFBSTtBQUFBLE1BQ3BCO0FBQUEsSUFDSixDQUFDO0FBQ0QsV0FBTztBQUFBLEVBQ1g7QUFBQTtBQUFBLEVBR0EsT0FBYyxtQkFBMkI7QUFDckMsV0FBTyxrQkFBa0IsaUJBQWlCO0FBQUEsRUFDOUM7QUFBQTtBQUFBLEVBR0EsT0FBYyxnQkFBd0I7QUFDbEMsV0FBTyxrQkFBa0IsY0FBYztBQUFBLEVBQzNDO0FBQUE7QUFBQSxFQUdBLE9BQWMsYUFBYSxNQUFjLE9BQXFCO0FBQzFELHNCQUFrQixhQUFhLE1BQU0sS0FBSztBQUFBLEVBQzlDO0FBQUE7QUFBQSxFQUdBLE9BQWMsZ0JBQWdCLE1BQW9CO0FBQzlDLHNCQUFrQixnQkFBZ0IsSUFBSTtBQUFBLEVBQzFDO0FBQUE7QUFBQSxFQUdBLE9BQWMsWUFBaUI7QUFDM0IsV0FBTyxLQUFLLE1BQU0sa0JBQWtCLFVBQVUsQ0FBQztBQUFBLEVBQ25EO0FBQUE7QUFBQSxFQUdBLE9BQWMsZ0JBQXdCO0FBQ2xDLFdBQU8sa0JBQWtCLGNBQWM7QUFBQSxFQUMzQztBQUFBO0FBQUEsRUFHQSxPQUFjLFdBQW9CO0FBQzlCLFdBQU8sa0JBQWtCLFNBQVM7QUFBQSxFQUN0QztBQUFBO0FBQUEsRUFHQSxPQUFjLGdCQUF3QjtBQUNsQyxXQUFPLGtCQUFrQixjQUFjO0FBQUEsRUFDM0M7QUFBQTtBQUFBLEVBR0EsT0FBYyxpQkFBeUI7QUFDbkMsV0FBTyxrQkFBa0IsZUFBZTtBQUFBLEVBQzVDO0FBQUE7QUFBQSxFQUdBLE9BQWMsZ0JBQXdCO0FBQ2xDLFdBQU8sa0JBQWtCLGNBQWM7QUFBQSxFQUMzQztBQUFBO0FBQUEsRUFHQSxPQUFjLGVBQXVCO0FBQ2pDLFdBQU8sa0JBQWtCLGFBQWE7QUFBQSxFQUMxQztBQUFBO0FBQUEsRUFHQSxPQUFjLGtCQUEwQjtBQUNwQyxXQUFPLGtCQUFrQixnQkFBZ0I7QUFBQSxFQUM3QztBQUFBO0FBQUEsRUFHQSxPQUFjLGVBQXVCO0FBQ2pDLFdBQU8sa0JBQWtCLGFBQWE7QUFBQSxFQUMxQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE9BQWMsaUJBQThCO0FBQ3hDLFdBQU8sdUJBQVEsa0JBQWtCLGtCQUFrQixlQUFlLENBQUM7QUFBQSxFQUN2RTtBQUNKO0FBR0EsSUFBSSxPQUFPLFdBQVcsYUFBYTtBQUVsQyxTQUFPLFVBQVU7QUFDbEI7IiwKICAibmFtZXMiOiBbXQp9Cg==
|