filestack-js 4.1.4 → 4.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/browser/filestack.esm.js +1 -1
- package/build/browser/filestack.esm.js.map +1 -1
- package/build/browser/filestack.min.js +1 -1
- package/build/browser/filestack.min.js.map +1 -1
- package/build/browser/filestack.umd.js +1 -1
- package/build/browser/filestack.umd.js.map +1 -1
- package/build/browser/manifest.json +2 -2
- package/build/main/config.js +2 -2
- package/build/main/index.d.ts +1 -1
- package/build/main/index.js +2 -2
- package/build/main/lib/api/store.js +9 -1
- package/build/main/lib/api/upload/file_tools.browser.d.ts +1 -1
- package/build/main/lib/api/upload/file_tools.browser.js +3 -3
- package/build/main/lib/api/upload/file_tools.node.d.ts +1 -1
- package/build/main/lib/api/upload/file_tools.node.js +4 -4
- package/build/main/lib/api/upload/types.d.ts +8 -1
- package/build/main/lib/api/upload/types.js +1 -1
- package/build/main/lib/api/upload/upload.d.ts +15 -2
- package/build/main/lib/api/upload/upload.js +17 -7
- package/build/main/lib/client.js +2 -2
- package/build/main/lib/client.spec.js +5 -7
- package/build/main/lib/picker.d.ts +5 -0
- package/build/main/lib/picker.js +1 -1
- package/build/main/lib/utils/index.browser.js +1 -1
- package/build/main/lib/utils/index.node.js +1 -1
- package/build/main/lib/utils/index.spec.browser.js +1 -1
- package/build/main/schema/picker.schema.d.ts +3 -4
- package/build/main/schema/picker.schema.js +4 -1
- package/build/main/schema/store.schema.d.ts +8 -0
- package/build/main/schema/store.schema.js +9 -1
- package/build/main/schema/upload.schema.d.ts +0 -4
- package/build/main/schema/upload.schema.js +1 -5
- package/build/module/config.js +2 -2
- package/build/module/index.d.ts +1 -1
- package/build/module/index.js +2 -2
- package/build/module/lib/api/store.js +9 -1
- package/build/module/lib/api/upload/file_tools.browser.d.ts +1 -1
- package/build/module/lib/api/upload/file_tools.browser.js +3 -3
- package/build/module/lib/api/upload/file_tools.node.d.ts +1 -1
- package/build/module/lib/api/upload/file_tools.node.js +4 -4
- package/build/module/lib/api/upload/types.d.ts +8 -1
- package/build/module/lib/api/upload/types.js +1 -1
- package/build/module/lib/api/upload/upload.d.ts +15 -2
- package/build/module/lib/api/upload/upload.js +17 -7
- package/build/module/lib/client.js +2 -2
- package/build/module/lib/client.spec.js +5 -7
- package/build/module/lib/picker.d.ts +5 -0
- package/build/module/lib/picker.js +1 -1
- package/build/module/lib/utils/index.browser.js +1 -1
- package/build/module/lib/utils/index.node.js +1 -1
- package/build/module/lib/utils/index.spec.browser.js +1 -1
- package/build/module/schema/picker.schema.d.ts +3 -4
- package/build/module/schema/picker.schema.js +4 -1
- package/build/module/schema/store.schema.d.ts +8 -0
- package/build/module/schema/store.schema.js +9 -1
- package/build/module/schema/upload.schema.d.ts +0 -4
- package/build/module/schema/upload.schema.js +1 -5
- package/package.json +1 -1
- package/src/config.ts +1 -1
- package/src/lib/api/store.ts +10 -1
- package/src/lib/api/upload/file_tools.browser.ts +2 -2
- package/src/lib/api/upload/file_tools.node.ts +3 -3
- package/src/lib/api/upload/types.ts +10 -2
- package/src/lib/api/upload/upload.ts +37 -6
- package/src/lib/client.spec.ts +4 -6
- package/src/lib/client.ts +1 -1
- package/src/lib/picker.ts +5 -0
- package/src/schema/picker.schema.ts +3 -0
- package/src/schema/store.schema.ts +8 -0
- package/src/schema/upload.schema.ts +0 -4
package/build/main/lib/client.js
CHANGED
|
@@ -412,7 +412,7 @@ var Client = /** @class */ (function (_super) {
|
|
|
412
412
|
}
|
|
413
413
|
_this.emit('upload.error', e);
|
|
414
414
|
});
|
|
415
|
-
return upload.upload(file
|
|
415
|
+
return upload.upload(file);
|
|
416
416
|
};
|
|
417
417
|
/**
|
|
418
418
|
* Initiates a multi-part upload flow. Use this for Filestack CIN and FII uploads.
|
|
@@ -475,4 +475,4 @@ var Client = /** @class */ (function (_super) {
|
|
|
475
475
|
}(eventemitter3_1.EventEmitter));
|
|
476
476
|
exports.Client = Client;
|
|
477
477
|
|
|
478
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7Ozs7QUFFSCwrQ0FBNkM7QUFDN0MsOERBQTBDO0FBQzFDLG9DQUEwQztBQUMxQyx3REFBc0Q7QUFDdEQsbUNBQW9HO0FBQ3BHLDZDQUE4RDtBQUM5RCxxQ0FBdUM7QUFDdkMscURBQWlDO0FBQ2pDLHVDQUFnRztBQUNoRyx5Q0FBd0Q7QUFDeEQscUNBQTBDO0FBQzFDLDJDQUE2RTtBQUk3RSxtQ0FBaUU7QUFFakUsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7QUE2QzdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNIO0lBQTRCLGtDQUFZO0lBaUJ0QyxnQkFBWSxNQUFjLEVBQVUsT0FBdUI7UUFBM0QsWUFDRSxpQkFBTyxTQXNCUjtRQXZCbUMsYUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFabkQsbUJBQWEsR0FBWSxJQUFJLENBQUM7UUFlcEMsd0JBQXdCO1FBQ3hCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDcEMsS0FBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEUsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1NBQzdFO1FBQ08sSUFBQSxJQUFJLEdBQUssZUFBTSxLQUFYLENBQVk7UUFDeEIsS0FBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLE1BQU0sUUFBQSxFQUFFLElBQUksTUFBQSxFQUFFLENBQUM7UUFFaEMsSUFBSSxPQUFPLEVBQUU7WUFDSCxJQUFBLEtBQUssR0FBZSxPQUFPLE1B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LEVBQXpCLENBQXlCLENBQUMsQ0FBQztRQUNwRCwwQkFBMEI7UUFDMUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBQSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBQSxLQUFLO2dCQUNwQixLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEtBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RELEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RELEtBQUssQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsWUFBWSxjQUFBLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0gsYUFBQztBQUFELENBN2JBLEFBNmJDLENBN2IyQiw0QkFBWSxHQTZidkM7QUE3Ylksd0JBQU0iLCJmaWxlIjoibGliL2NsaWVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRlbWl0dGVyMyc7XG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9icm93c2VyJztcbmltcG9ydCB7IGNvbmZpZywgSG9zdHMgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgRmlsZXN0YWNrRXJyb3IgfSBmcm9tICcuLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBtZXRhZGF0YSwgTWV0YWRhdGFPcHRpb25zLCByZW1vdmUsIHJldHJpZXZlLCBSZXRyaWV2ZU9wdGlvbnMsIGRvd25sb2FkIH0gZnJvbSAnLi9hcGkvZmlsZSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm0sIFRyYW5zZm9ybU9wdGlvbnMgfSBmcm9tICcuL2FwaS90cmFuc2Zvcm0nO1xuaW1wb3J0IHsgc3RvcmVVUkwgfSBmcm9tICcuL2FwaS9zdG9yZSc7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFVwbG9hZCwgSW5wdXRGaWxlLCBVcGxvYWRPcHRpb25zLCBTdG9yZVVwbG9hZE9wdGlvbnMsIFVwbG9hZFRhZ3MgfSBmcm9tICcuL2FwaS91cGxvYWQnO1xuaW1wb3J0IHsgcHJldmlldywgUHJldmlld09wdGlvbnMgfSBmcm9tICcuL2FwaS9wcmV2aWV3JztcbmltcG9ydCB7IENsb3VkQ2xpZW50IH0gZnJvbSAnLi9hcGkvY2xvdWQnO1xuaW1wb3J0IHsgUHJlZmV0Y2gsIFByZWZldGNoUmVzcG9uc2UsIFByZWZldGNoT3B0aW9ucyB9IGZyb20gJy4vYXBpL3ByZWZldGNoJztcbmltcG9ydCB7IEZzUmVzcG9uc2UgfSBmcm9tICcuL3JlcXVlc3QvdHlwZXMnO1xuaW1wb3J0IHsgU3RvcmVQYXJhbXMgfSBmcm9tICcuL2ZpbGVsaW5rJztcblxuaW1wb3J0IHsgcGlja2VyLCBQaWNrZXJJbnN0YW5jZSwgUGlja2VyT3B0aW9ucyB9IGZyb20gJy4vcGlja2VyJztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cblNlbnRyeS5hZGRCcmVhZGNydW1iKHsgY2F0ZWdvcnk6ICdzZGsnLCBtZXNzYWdlOiAnZmlsZXN0YWNrLWpzLXNkayBzY29wZScgfSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvbiB7XG4gIGFwaWtleTogc3RyaW5nO1xuICB1cmxzOiBIb3N0cztcbiAgY25hbWU/OiBzdHJpbmc7XG4gIHBvbGljeT86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICBwcmVmZXRjaD86IFByZWZldGNoUmVzcG9uc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHkge1xuICBwb2xpY3k6IHN0cmluZztcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50T3B0aW9ucyB7XG4gIFtvcHRpb246IHN0cmluZ106IGFueTtcbiAgLyoqXG4gICAqIFNlY3VyaXR5IG9iamVjdCB3aXRoIHBvbGljeSBhbmQgc2lnbmF0dXJlIGtleXMuXG4gICAqIENhbiBiZSB1c2VkIHRvIGxpbWl0IGNsaWVudCBjYXBhYmlsaXRpZXMgYW5kIHByb3RlY3QgcHVibGljIFVSTHMuXG4gICAqIEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCBzZXJ2ZXItc2lkZSBwb2xpY3kgYW5kIHNpZ25hdHVyZSBnZW5lcmF0aW9uLlxuICAgKiBSZWFkIGFib3V0IFtzZWN1cml0eSBwb2xpY2llc10oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2NvbmNlcHRzL3NlY3VyaXR5KS5cbiAgICovXG4gIHNlY3VyaXR5PzogU2VjdXJpdHk7XG4gIC8qKlxuICAgKiBEb21haW4gdG8gdXNlIGZvciBhbGwgVVJMcy4gX19SZXF1aXJlcyB0aGUgY3VzdG9tIENOQU1FIGFkZG9uX18uXG4gICAqIElmIHRoaXMgaXMgZW5hYmxlZCB0aGVuIHlvdSBtdXN0IGFsc28gc2V0IHVwIHlvdXIgb3duIE9BdXRoIGFwcGxpY2F0aW9uc1xuICAgKiBmb3IgZWFjaCBjbG91ZCBzb3VyY2UgeW91IHdpc2ggdG8gdXNlIGluIHRoZSBwaWNrZXIuXG4gICAqL1xuICBjbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEVuYWJsZS9kaXNhYmxlIGNhY2hpbmcgb2YgdGhlIGNsb3VkIHNlc3Npb24gdG9rZW4uIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqIFRoaXMgZW5zdXJlcyB0aGF0IHVzZXJzIHdpbGwgYmUgcmVtZW1iZXJlZCBvbiB5b3VyIGRvbWFpbiB3aGVuIGNhbGxpbmcgdGhlIGNsb3VkIEFQSSBmcm9tIHRoZSBicm93c2VyLlxuICAgKiBQbGVhc2UgYmUgYXdhcmUgdGhhdCB0b2tlbnMgc3RvcmVkIGluIGxvY2FsU3RvcmFnZSBhcmUgYWNjZXNzaWJsZSBieSBvdGhlciBzY3JpcHRzIG9uIHRoZSBzYW1lIGRvbWFpbi5cbiAgICovXG4gIHNlc3Npb25DYWNoZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBmb3J3YXJkaW5nIGVycm9yIGxvZ3MgdG8gc2VudHJ5XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBmb3J3YXJkRXJyb3JzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgRmlsZXN0YWNrIGNsaWVudCwgdGhlIGVudHJ5IHBvaW50IGZvciBhbGwgcHVibGljIG1ldGhvZHMuIEVuY2Fwc3VsYXRlcyBzZXNzaW9uIGluZm9ybWF0aW9uLlxuICpcbiAqICMjIyBFeGFtcGxlXG4gKiBgYGBqc1xuICogLy8gRVMgbW9kdWxlXG4gKiBpbXBvcnQgKiBhcyBmaWxlc3RhY2sgZnJvbSAnZmlsZXN0YWNrLWpzJztcbiAqIGNvbnN0IGNsaWVudCA9IGZpbGVzdGFjay5pbml0KCdhcGlrZXknKTtcbiAqIGBgYFxuICpcbiAqIGBgYGpzXG4gKiAvLyBVTUQgbW9kdWxlIGluIGJyb3dzZXJcbiAqIDxzY3JpcHQgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuZmlsZXN0YWNrYXBpLmNvbS9maWxlc3RhY2stanMvMy54LngvZmlsZXN0YWNrLm1pbi5qc1wiPjwvc2NyaXB0PlxuICogY29uc3QgY2xpZW50ID0gZmlsZXN0YWNrLmluaXQoJ2FwaWtleScpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGllbnQgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBwdWJsaWMgc2Vzc2lvbjogU2Vzc2lvbjtcbiAgcHJpdmF0ZSBjbG91ZDogQ2xvdWRDbGllbnQ7XG4gIHByaXZhdGUgcHJlZmV0Y2hJbnN0YW5jZTogUHJlZmV0Y2g7XG5cbiAgcHJpdmF0ZSBmb3J3YXJkRXJyb3JzOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogUmV0dXJucyBmaWxlc3RhY2sgdXRpbHNcbiAgICpcbiAgICogQHJlYWRvbmx5XG4gICAqIEBtZW1iZXJvZiBDbGllbnRcbiAgICovXG4gIGdldCB1dGlscygpIHtcbiAgICByZXR1cm4gVXRpbHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihhcGlrZXk6IHN0cmluZywgcHJpdmF0ZSBvcHRpb25zPzogQ2xpZW50T3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmZvcndhcmRFcnJvcnMpIHtcbiAgICAgIHRoaXMuZm9yd2FyZEVycm9ycyA9IG9wdGlvbnMuZm9yd2FyZEVycm9ycztcbiAgICB9XG5cbiAgICBpZiAoIWFwaWtleSB8fCB0eXBlb2YgYXBpa2V5ICE9PSAnc3RyaW5nJyB8fCBhcGlrZXkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FuIGFwaWtleSBpcyByZXF1aXJlZCB0byBpbml0aWFsaXplIHRoZSBGaWxlc3RhY2sgY2xpZW50Jyk7XG4gICAgfVxuICAgIGNvbnN0IHsgdXJscyB9ID0gY29uZmlnO1xuICAgIHRoaXMuc2Vzc2lvbiA9IHsgYXBpa2V5LCB1cmxzIH07XG5cbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgY29uc3QgeyBjbmFtZSwgc2VjdXJpdHkgfSA9IG9wdGlvbnM7XG5cbiAgICAgIHRoaXMuc2V0U2VjdXJpdHkoc2VjdXJpdHkpO1xuICAgICAgdGhpcy5zZXRDbmFtZShjbmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy5wcmVmZXRjaEluc3RhbmNlID0gbmV3IFByZWZldGNoKHRoaXMuc2Vzc2lvbik7XG4gICAgdGhpcy5jbG91ZCA9IG5ldyBDbG91ZENsaWVudCh0aGlzLnNlc3Npb24sIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYmFzaWMgcHJlZmV0Y2ggcmVxdWVzdCB0byBjaGVjayBwZXJtaXNzaW9uc1xuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBwcmVmZXRjaChwYXJhbXM6IFByZWZldGNoT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnByZWZldGNoSW5zdGFuY2UuZ2V0Q29uZmlnKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHNlY3VyaXR5IG9iamVjdFxuICAgKlxuICAgKiBAcGFyYW0ge1NlY3VyaXR5fSBzZWN1cml0eVxuICAgKiBAbWVtYmVyb2YgQ2xpZW50XG4gICAqL1xuICBzZXRTZWN1cml0eShzZWN1cml0eTogU2VjdXJpdHkpIHtcbiAgICBpZiAoc2VjdXJpdHkgJiYgIShzZWN1cml0eS5wb2xpY3kgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKCdCb3RoIHBvbGljeSBhbmQgc2lnbmF0dXJlIGFyZSByZXF1aXJlZCBmb3IgY2xpZW50IHNlY3VyaXR5Jyk7XG4gICAgfVxuXG4gICAgaWYgKHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSAmJiBzZWN1cml0eS5zaWduYXR1cmUpIHtcbiAgICAgIHRoaXMuc2Vzc2lvbi5wb2xpY3kgPSBzZWN1cml0eS5wb2xpY3k7XG4gICAgICB0aGlzLnNlc3Npb24uc2lnbmF0dXJlID0gc2VjdXJpdHkuc2lnbmF0dXJlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY3VzdG9tIGNuYW1lXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbmFtZVxuICAgKiBAcmV0dXJuc1xuICAgKiBAbWVtYmVyb2YgQ2xpZW50XG4gICAqL1xuICBzZXRDbmFtZShjbmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFjbmFtZSB8fCBjbmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlc3Npb24uY25hbWUgPSBjbmFtZTtcbiAgICB0aGlzLnNlc3Npb24udXJscyA9IFV0aWxzLnJlc29sdmVIb3N0KHRoaXMuc2Vzc2lvbi51cmxzLCBjbmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYWxsIGN1cnJlbnQgY2xvdWQgc2Vzc2lvbnMgaW4gdGhlIHBpY2tlci5cbiAgICogT3B0aW9uYWxseSBwYXNzIGEgY2xvdWQgc291cmNlIG5hbWUgdG8gb25seSBsb2cgb3V0IG9mIHRoYXQgY2xvdWQgc291cmNlLlxuICAgKiBUaGlzIGVzc2VudGlhbGx5IGNsZWFycyB0aGUgT0F1dGggYXV0aG9yaXphdGlvbiBjb2RlcyBmcm9tIHRoZSBGaWxlc3RhY2sgc2Vzc2lvbi5cbiAgICogQHBhcmFtIG5hbWUgT3B0aW9uYWwgY2xvdWQgc291cmNlIG5hbWUuXG4gICAqL1xuICBsb2dvdXQobmFtZT86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmNsb3VkLmxvZ291dChuYW1lKTtcbiAgfVxuICAvKipcbiAgICogUmV0cmlldmUgZGV0YWlsZWQgZGF0YSBvZiBzdG9yZWQgZmlsZXMuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudFxuICAgKiAgIC5tZXRhZGF0YSgnRENMNUs0NkZTM09JeGI1aXVLYnknKVxuICAgKiAgIC50aGVuKChyZXMpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAqICAgfSlcbiAgICogICAuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICogICB9KSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIE1ldGFkYXRhXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjbWV0YWRhdGEpLlxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIE1ldGFkYXRhIGZpZWxkcyB0byBlbmFibGUgb24gcmVzcG9uc2UuXG4gICAqIEBwYXJhbSBzZWN1cml0eSBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICovXG4gIG1ldGFkYXRhKGhhbmRsZTogc3RyaW5nLCBvcHRpb25zPzogTWV0YWRhdGFPcHRpb25zLCBzZWN1cml0eT86IFNlY3VyaXR5KSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gbWV0YWRhdGEodGhpcy5zZXNzaW9uLCBoYW5kbGUsIG9wdGlvbnMsIHNlY3VyaXR5KTtcbiAgfVxuICAvKipcbiAgICogQ29uc3RydWN0IGEgbmV3IHBpY2tlciBpbnN0YW5jZS5cbiAgICovXG4gIHBpY2tlcihvcHRpb25zPzogUGlja2VyT3B0aW9ucyk6IFBpY2tlckluc3RhbmNlIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBwaWNrZXIodGhpcywgb3B0aW9ucyk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZWQgZm9yIHZpZXdpbmcgZmlsZXMgdmlhIEZpbGVzdGFjayBoYW5kbGVzIG9yIHN0b3JhZ2UgYWxpYXNlcywgX19yZXF1aXJlcyBEb2N1bWVudCBWaWV3ZXIgYWRkb24gdG8geW91ciBGaWxlc3RhY2sgYXBwbGljYXRpb25fXy5cbiAgICogT3BlbnMgZG9jdW1lbnQgdmlld2VyIGluIG5ldyB3aW5kb3cgaWYgaWQgb3B0aW9uIGlzIG5vdCBwcm92aWRlZC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogLy8gPGRpdiBpZD1cInByZXZpZXdcIj48L2Rpdj5cbiAgICpcbiAgICogY2xpZW50LnByZXZpZXcoJ0RDTDVLNDZGUzNPSXhiNWl1S2J5JywgeyBpZDogJ3ByZXZpZXcnIH0pO1xuICAgKiBgYGBcbiAgICogQHBhcmFtIGhhbmRsZSBWYWxpZCBGaWxlc3RhY2sgaGFuZGxlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBQcmV2aWV3IG9wdGlvbnNcbiAgICovXG4gIHByZXZpZXcoaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBQcmV2aWV3T3B0aW9ucykge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHByZXZpZXcodGhpcy5zZXNzaW9uLCBoYW5kbGUsIG9wdGlvbnMpO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgYSBmaWxlIGZyb20gc3RvcmFnZSBhbmQgdGhlIEZpbGVzdGFjayBzeXN0ZW0uXG4gICAqXG4gICAqIF9fUmVxdWlyZXMgYSB2YWxpZCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZV9fLiBUaGUgcG9saWN5IGFuZCBzaWduYXR1cmUgd2lsbCBiZSBwdWxsZWQgZnJvbSB0aGUgY2xpZW50IHNlc3Npb24sIG9yIGl0IGNhbiBiZSBvdmVycmlkZGVuIHdpdGggdGhlIHNlY3VyaXR5IHBhcmFtZXRlci5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLnJlbW92ZSgnRENMNUs0NkZTM09JeGI1aXVLYnknKVxuICAgKiAgIC50aGVuKChyZXMpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAqICAgfSlcbiAgICogICAuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICogICB9KSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIERlbGV0ZV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI2RlbGV0ZSlcbiAgICogQHBhcmFtIGhhbmRsZSBWYWxpZCBGaWxlc3RhY2sgaGFuZGxlLlxuICAgKiBAcGFyYW0gc2VjdXJpdHkgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqL1xuICByZW1vdmUoaGFuZGxlOiBzdHJpbmcsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPGFueT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHJlbW92ZSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgZmFsc2UsIHNlY3VyaXR5KTtcbiAgfVxuICAvKipcbiAgICogUmVtb3ZlIGEgZmlsZSAqKm9ubHkqKiBmcm9tIHRoZSBGaWxlc3RhY2sgc3lzdGVtLiBUaGUgZmlsZSByZW1haW5zIGluIHN0b3JhZ2UuXG4gICAqXG4gICAqIF9fUmVxdWlyZXMgYSB2YWxpZCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZV9fLiBUaGUgcG9saWN5IGFuZCBzaWduYXR1cmUgd2lsbCBiZSBwdWxsZWQgZnJvbSB0aGUgY2xpZW50IHNlc3Npb24sIG9yIGl0IGNhbiBiZSBvdmVycmlkZGVuIHdpdGggdGhlIHNlY3VyaXR5IHBhcmFtZXRlci5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLnJlbW92ZU1ldGFkYXRhKCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScpXG4gICAqICAgLnRoZW4oKHJlcykgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2cocmVzKTtcbiAgICogICB9KVxuICAgKiAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgIH0pKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRGVsZXRlXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjZGVsZXRlKVxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBzZWN1cml0eSBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICovXG4gIHJlbW92ZU1ldGFkYXRhKGhhbmRsZTogc3RyaW5nLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiByZW1vdmUodGhpcy5zZXNzaW9uLCBoYW5kbGUsIHRydWUsIHNlY3VyaXR5KTtcbiAgfVxuICAvKipcbiAgICogU3RvcmUgYSBmaWxlIGZyb20gaXRzIFVSTC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLnN0b3JlVVJMKCdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9OWV8xOTlfRV9vZl9IYW1tZXJ0b3duXzIwMTQuanBnJylcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIFN0b3JlXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjc3RvcmUpXG4gICAqIEBwYXJhbSB1cmwgICAgICAgVmFsaWQgVVJMIHRvIGEgZmlsZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgICBDb25maWd1cmUgZmlsZSBzdG9yYWdlLlxuICAgKiBAcGFyYW0gdG9rZW4gICAgIE9wdGlvbmFsIGNvbnRyb2wgdG9rZW4gdG8gY2FsbCAuY2FuY2VsKClcbiAgICogQHBhcmFtIHNlY3VyaXR5ICBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICogQHBhcmFtIHVwbG9hZFRhZ3MgT3B0aW9uYWwgdGFncyB2aXNpYmxlIGluIHdlYmhvb2tzLlxuICAgKiBAcGFyYW0gaGVhZGVycyAgICBPcHRpb25hbCBoZWFkZXJzIHRvIHNlbmRcbiAgICogQHBhcmFtIHdvcmtmbG93SWRzICAgIE9wdGlvbmFsIHdvcmtmbG93SWRzIHRvIHNlbmRcbiAgICovXG4gIHN0b3JlVVJMKHVybDogc3RyaW5nLCBzdG9yZVBhcmFtcz86IFN0b3JlUGFyYW1zLCB0b2tlbj86IGFueSwgc2VjdXJpdHk/OiBTZWN1cml0eSwgdXBsb2FkVGFncz86IFVwbG9hZFRhZ3MsIGhlYWRlcnM/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSwgd29ya2Zsb3dJZHM/OiBzdHJpbmdbXSk6IFByb21pc2U8T2JqZWN0PiB7XG4gICAgcmV0dXJuIHN0b3JlVVJMKHtcbiAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICAgIHVybCxcbiAgICAgIHN0b3JlUGFyYW1zLFxuICAgICAgdG9rZW4sXG4gICAgICBzZWN1cml0eSxcbiAgICAgIHVwbG9hZFRhZ3MsXG4gICAgICBoZWFkZXJzLFxuICAgICAgd29ya2Zsb3dJZHMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXNzIGZpbGVzIHZpYSB0aGVpciBGaWxlc3RhY2sgaGFuZGxlcy5cbiAgICpcbiAgICogSWYgaGVhZCBvcHRpb24gaXMgcHJvdmlkZWQgLSByZXF1ZXN0IGhlYWRlcnMgYXJlIHJldHVybmVkIGluIHByb21pc2VcbiAgICogSWYgbWV0YWRhdGEgb3B0aW9uIGlzIHByb3ZpZGVkIC0gbWV0YWRhdGEgb2JqZWN0IGlzIHJldHVybmVkIGluIHByb21pc2VcbiAgICogT3RoZXJ3aXNlIGZpbGUgYmxvYiBpcyByZXR1cm5lZFxuICAgKiBNZXRhZGF0YSBhbmQgaGVhZCBvcHRpb25zIGNhbm5vdCBiZSBtaXhlZFxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnQucmV0cmlldmUoJ2ZpbGVIYW5kbGUnLCB7XG4gICAqICBtZXRhZGF0YTogdHJ1ZSxcbiAgICogfSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICogIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICogfSkuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgKiB9KVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBEb3dubG9hZF0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI2Rvd25sb2FkKVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgbWV0YWRhdGEgb3IgZG93bmxvYWQgbWV0aG9kcyBpbnN0ZWFkXG4gICAqIEBwYXJhbSBoYW5kbGUgICAgVmFsaWQgZmlsZSBoYW5kbGVcbiAgICogQHBhcmFtIG9wdGlvbnMgICBSZXRyaWV2ZU9wdGlvbnNcbiAgICogQHBhcmFtIHNlY3VyaXR5ICBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICogQHRocm93cyAgICAgICAgICBFcnJvclxuICAgKi9cbiAgcmV0cmlldmUoaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBSZXRyaWV2ZU9wdGlvbnMsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPE9iamVjdCB8IEJsb2I+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiByZXRyaWV2ZSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgb3B0aW9ucywgc2VjdXJpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvd25sb2FkIGZpbGUgYnkgaGFuZGxlXG4gICAqXG4gICAqXG4gICAqICMjIyBCcm93c2VyIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50LmRvd25sb2FkKCdmaWxlSGFuZGxlJykudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICogY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAqIGltZy5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHJlcy5kYXRhKVxuICAgKiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7XG4gICAqIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICogIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICogfSlcbiAgICogYGBgXG4gICAqXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRG93bmxvYWRdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNkb3dubG9hZClcbiAgICogQHBhcmFtIGhhbmRsZSAgICBWYWxpZCBmaWxlIGhhbmRsZVxuICAgKiBAdGhyb3dzICAgICAgICAgIEVycm9yXG4gICAqL1xuICBkb3dubG9hZChoYW5kbGU6IHN0cmluZywgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8RnNSZXNwb25zZT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIGRvd25sb2FkKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBzZWN1cml0eSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJmYWNlIHRvIHRoZSBGaWxlc3RhY2sgW1Byb2Nlc3NpbmcgQVBJXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL3Byb2Nlc3NpbmcpLlxuICAgKiBDb252ZXJ0IGEgVVJMLCBoYW5kbGUsIG9yIHN0b3JhZ2UgYWxpYXMgdG8gYW5vdGhlciBVUkwgd2hpY2ggbGlua3MgdG8gdGhlIHRyYW5zZm9ybWVkIGZpbGUuXG4gICAqIFlvdSBjYW4gb3B0aW9uYWxseSBzdG9yZSB0aGUgcmV0dXJuZWQgVVJMIHdpdGggY2xpZW50LnN0b3JlVVJMLlxuICAgKlxuICAgKiBUcmFuc2Zvcm0gcGFyYW1zIGNhbiBiZSBwcm92aWRlZCBpbiBjYW1lbENhc2Ugb3Igc25ha2VDYXNlIHN0eWxlIGllOiBwYXJ0aWFsX3BpeGVsYXRlIG9yIHBhcnRpYWxQaXhlbGF0ZVxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjb25zdCB0cmFuc2Zvcm1lZFVybCA9IGNsaWVudC50cmFuc2Zvcm0odXJsLCB7XG4gICAqICAgY3JvcDoge1xuICAgKiAgICAgZGltOiBbeCwgeSwgd2lkdGgsIGhlaWdodF0sXG4gICAqICAgfSxcbiAgICogICB2aWduZXR0ZToge1xuICAgKiAgICAgYmx1cm1vZGU6ICdnYXVzc2lhbicsXG4gICAqICAgICBhbW91bnQ6IDUwLFxuICAgKiAgIH0sXG4gICAqICAgZmxpcDogdHJ1ZSxcbiAgICogICBwYXJ0aWFsX3BpeGVsYXRlOiB7XG4gICAqICAgICBvYmplY3RzOiBbWzEwLCAyMCwgMjAwLCAyNTBdLCBbMjc1LCA5MSwgNTAwLCA1NTddXSxcbiAgICogICB9LFxuICAgKiB9O1xuICAgKlxuICAgKiAvLyBvcHRpb25hbGx5IHN0b3JlIHRoZSBuZXcgVVJMXG4gICAqIGNsaWVudC5zdG9yZVVSTCh0cmFuc2Zvcm1lZFVybCkudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlc3RhY2sgUHJvY2Vzc2luZyBBUEldKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvcHJvY2Vzc2luZylcbiAgICogQHBhcmFtIHVybCAgICAgU2luZ2xlIG9yIG11bHRpcGxlIHZhbGlkIFVSTHMgKGh0dHAocyk6Ly8pLCBmaWxlIGhhbmRsZXMsIG9yIHN0b3JhZ2UgYWxpYXNlcyAoc3JjOi8vKSB0byBhbiBpbWFnZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVHJhbnNmb3JtYXRpb25zIGFyZSBhcHBsaWVkIGluIHRoZSBvcmRlciBzcGVjaWZpZWQgYnkgdGhpcyBvYmplY3QuXG4gICAqIEBwYXJhbSBiNjQgICAgIFVzZSBuZXcgbW9yZSBzYWZlIGZvcm1hdCBmb3IgZ2VuZXJhdGluZyB0cmFuc2Zvcm1zIHVybCAoZGVmYXVsdD1mYWxzZSkgTm90ZTogSWYgdGhlcmUgd2lsbCBiZSBhbnkgaXNzdWVzIHdpdGggdXJsIHBsZWFzZSB0ZXN0IGl0IHdpdGggZW5hYmxlZCBiNjQgc3VwcG9ydFxuICAgKiBAcmV0dXJucyAgICAgICBBIG5ldyBVUkwgdGhhdCBwb2ludHMgdG8gdGhlIHRyYW5zZm9ybWVkIHJlc291cmNlLlxuICAgKi9cbiAgdHJhbnNmb3JtKHVybDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM6IFRyYW5zZm9ybU9wdGlvbnMsIGI2NDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdHJhbnNmb3JtKHRoaXMuc2Vzc2lvbiwgdXJsLCBvcHRpb25zLCBiNjQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyBhIG11bHRpLXBhcnQgdXBsb2FkIGZsb3cuIFVzZSB0aGlzIGZvciBGaWxlc3RhY2sgQ0lOIGFuZCBGSUkgdXBsb2Fkcy5cbiAgICpcbiAgICogSW4gTm9kZSBydW50aW1lcyB0aGUgZmlsZSBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgZmlsZSBwYXRoLlxuICAgKiBVcGxvYWRpbmcgZnJvbSBhIE5vZGUgYnVmZmVyIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IHRva2VuID0ge307XG4gICAqIGNvbnN0IG9uUmV0cnkgPSAob2JqKSA9PiB7XG4gICAqICAgY29uc29sZS5sb2coYFJldHJ5aW5nICR7b2JqLmxvY2F0aW9ufSBmb3IgJHtvYmouZmlsZW5hbWV9LiBBdHRlbXB0ICR7b2JqLmF0dGVtcHR9IG9mIDEwLmApO1xuICAgKiB9O1xuICAgKlxuICAgKiBjbGllbnQudXBsb2FkKGZpbGUsIHsgb25SZXRyeSB9LCB7IGZpbGVuYW1lOiAnZm9vYmFyLmpwZycgfSwgdG9rZW4pXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKlxuICAgKiBjbGllbnQudXBsb2FkKHtmaWxlLCBuYW1lfSwgeyBvblJldHJ5IH0sIHsgZmlsZW5hbWU6ICdmb29iYXIuanBnJyB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIHRva2VuLnBhdXNlKCk7ICAvLyBQYXVzZSBmbG93XG4gICAqIHRva2VuLnJlc3VtZSgpOyAvLyBSZXN1bWUgZmxvd1xuICAgKiB0b2tlbi5jYW5jZWwoKTsgLy8gQ2FuY2VsIGZsb3cgKHJlamVjdHMpXG4gICAqIGBgYFxuICAgKiBAcGFyYW0ge0lucHV0RmlsZX0gICAgZmlsZSAgICAgICAgICAgTXVzdCBiZSBhIHZhbGlkIFtGaWxlIHwgQmxvYiB8IEJ1ZmZlciB8IHN0cmluZ11cbiAgICogQHBhcmFtIHVwbG9hZE9wdGlvbnMgIFVwbG9hZGVyIG9wdGlvbnMuXG4gICAqIEBwYXJhbSBzdG9yZU9wdGlvbnMgICBTdG9yYWdlIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB0b2tlbiAgICAgICAgICBBIGNvbnRyb2wgdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBjYWxsIGNhbmNlbCgpLCBwYXVzZSgpLCBhbmQgcmVzdW1lKCkuXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgICAgICBPcHRpb25hbCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZSBvdmVycmlkZS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2V9XG4gICAqL1xuICB1cGxvYWQoZmlsZTogSW5wdXRGaWxlLCBvcHRpb25zPzogVXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zPzogU3RvcmVVcGxvYWRPcHRpb25zLCB0b2tlbj86IGFueSwgc2VjdXJpdHk/OiBTZWN1cml0eSkge1xuICAgIGxldCB1cGxvYWQgPSBuZXcgVXBsb2FkKG9wdGlvbnMsIHN0b3JlT3B0aW9ucyk7XG4gICAgdXBsb2FkLnNldFNlc3Npb24odGhpcy5zZXNzaW9uKTtcblxuICAgIGlmICh0b2tlbikge1xuICAgICAgdXBsb2FkLnNldFRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHkpIHtcbiAgICAgIHVwbG9hZC5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gICAgfVxuXG4gICAgdXBsb2FkLm9uKCdzdGFydCcsICgpID0+IHRoaXMuZW1pdCgndXBsb2FkLnN0YXJ0JykpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgdXBsb2FkLm9uKCdlcnJvcicsIGUgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9yd2FyZEVycm9ycykge1xuICAgICAgICBTZW50cnkud2l0aFNjb3BlKHNjb3BlID0+IHtcbiAgICAgICAgICBzY29wZS5zZXRUYWcoJ2ZpbGVzdGFjay1hcGlrZXknLCB0aGlzLnNlc3Npb24uYXBpa2V5KTtcbiAgICAgICAgICBzY29wZS5zZXRUYWcoJ2ZpbGVzdGFjay12ZXJzaW9uJywgVXRpbHMuZ2V0VmVyc2lvbigpKTtcbiAgICAgICAgICBzY29wZS5zZXRFeHRyYSgnZmlsZXN0YWNrLW9wdGlvbnMnLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgIHNjb3BlLnNldEV4dHJhcyh7IHVwbG9hZE9wdGlvbnM6IG9wdGlvbnMsIHN0b3JlT3B0aW9ucywgZGV0YWlsczogZS5kZXRhaWxzIH0pO1xuICAgICAgICAgIGUubWVzc2FnZSA9IGBGUy0ke2UubWVzc2FnZX1gO1xuICAgICAgICAgIHNjb3BlLmNhcHR1cmVFeGNlcHRpb24oZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC51cGxvYWQoZmlsZSwgb3B0aW9ucyAmJiBvcHRpb25zLmFsdFRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyBhIG11bHRpLXBhcnQgdXBsb2FkIGZsb3cuIFVzZSB0aGlzIGZvciBGaWxlc3RhY2sgQ0lOIGFuZCBGSUkgdXBsb2Fkcy5cbiAgICpcbiAgICogSW4gTm9kZSBydW50aW1lcyB0aGUgZmlsZSBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgZmlsZSBwYXRoLlxuICAgKiBVcGxvYWRpbmcgZnJvbSBhIE5vZGUgYnVmZmVyIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IHRva2VuID0ge307XG4gICAqIGNvbnN0IG9uUmV0cnkgPSAob2JqKSA9PiB7XG4gICAqICAgY29uc29sZS5sb2coYFJldHJ5aW5nICR7b2JqLmxvY2F0aW9ufSBmb3IgJHtvYmouZmlsZW5hbWV9LiBBdHRlbXB0ICR7b2JqLmF0dGVtcHR9IG9mIDEwLmApO1xuICAgKiB9O1xuICAgKlxuICAgKiBjbGllbnQubXVsdGl1cGxvYWQoW2ZpbGVdLCB7IG9uUmV0cnkgfSwgdG9rZW4pXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKlxuICAgKiBjbGllbnQubXVsdGl1cGxvYWQoW3tmaWxlLCBuYW1lfV0sIHsgb25SZXRyeSB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIHRva2VuLnBhdXNlKCk7ICAvLyBQYXVzZSBmbG93XG4gICAqIHRva2VuLnJlc3VtZSgpOyAvLyBSZXN1bWUgZmxvd1xuICAgKiB0b2tlbi5jYW5jZWwoKTsgLy8gQ2FuY2VsIGZsb3cgKHJlamVjdHMpXG4gICAqIGBgYFxuICAgKiBAcGFyYW0ge0lucHV0RmlsZVtdfSAgZmlsZSAgICAgICAgICAgTXVzdCBiZSBhIHZhbGlkIFtGaWxlIHwgQmxvYiB8IEJ1ZmZlciB8IHN0cmluZyAoYmFzZTY0KV1cbiAgICogQHBhcmFtIHVwbG9hZE9wdGlvbnMgIFVwbG9hZCBvcHRpb25zLlxuICAgKiBAcGFyYW0gc3RvcmVPcHRpb25zICAgU3RvcmFnZSBvcHRpb25zLlxuICAgKiBAcGFyYW0gdG9rZW4gICAgICAgICAgQSBjb250cm9sIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2FsbCBjYW5jZWwoKSwgcGF1c2UoKSwgYW5kIHJlc3VtZSgpLlxuICAgKiBAcGFyYW0gc2VjdXJpdHkgICAgICAgT3B0aW9uYWwgc2VjdXJpdHkgcG9saWN5IGFuZCBzaWduYXR1cmUgb3ZlcnJpZGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfVxuICAgKi9cbiAgbXVsdGl1cGxvYWQoZmlsZTogSW5wdXRGaWxlW10sIG9wdGlvbnM/OiBVcGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnM/OiBTdG9yZVVwbG9hZE9wdGlvbnMsIHRva2VuPzogYW55LCBzZWN1cml0eT86IFNlY3VyaXR5KSB7XG4gICAgbGV0IHVwbG9hZCA9IG5ldyBVcGxvYWQob3B0aW9ucywgc3RvcmVPcHRpb25zKTtcblxuICAgIHVwbG9hZC5zZXRTZXNzaW9uKHRoaXMuc2Vzc2lvbik7XG5cbiAgICBpZiAodG9rZW4pIHtcbiAgICAgIHVwbG9hZC5zZXRUb2tlbih0b2tlbik7XG4gICAgfVxuXG4gICAgaWYgKHNlY3VyaXR5KSB7XG4gICAgICB1cGxvYWQuc2V0U2VjdXJpdHkoc2VjdXJpdHkpO1xuICAgIH1cblxuICAgIHVwbG9hZC5vbignc3RhcnQnLCAoKSA9PiB0aGlzLmVtaXQoJ3VwbG9hZC5zdGFydCcpKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHVwbG9hZC5vbignZXJyb3InLCBlID0+IHtcbiAgICAgIFNlbnRyeS53aXRoU2NvcGUoc2NvcGUgPT4ge1xuICAgICAgICBzY29wZS5zZXRUYWcoJ2ZpbGVzdGFjay1hcGlrZXknLCB0aGlzLnNlc3Npb24uYXBpa2V5KTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCdmaWxlc3RhY2stdmVyc2lvbicsIFV0aWxzLmdldFZlcnNpb24oKSk7XG4gICAgICAgIHNjb3BlLnNldEV4dHJhKCdmaWxlc3RhY2stb3B0aW9ucycsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHNjb3BlLnNldEV4dHJhcyhlLmRldGFpbHMpO1xuICAgICAgICBzY29wZS5zZXRFeHRyYXMoeyB1cGxvYWRPcHRpb25zOiBvcHRpb25zLCBzdG9yZU9wdGlvbnMgfSk7XG4gICAgICAgIHNjb3BlLmNhcHR1cmVFeGNlcHRpb24oZSk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5lbWl0KCd1cGxvYWQuZXJyb3InLCBlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB1cGxvYWQubXVsdGl1cGxvYWQoZmlsZSk7XG4gIH1cbn1cbiJdfQ==
|
|
478
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7Ozs7QUFFSCwrQ0FBNkM7QUFDN0MsOERBQTBDO0FBQzFDLG9DQUEwQztBQUMxQyx3REFBc0Q7QUFDdEQsbUNBQW9HO0FBQ3BHLDZDQUE4RDtBQUM5RCxxQ0FBdUM7QUFDdkMscURBQWlDO0FBQ2pDLHVDQUFnRztBQUNoRyx5Q0FBd0Q7QUFDeEQscUNBQTBDO0FBQzFDLDJDQUE2RTtBQUk3RSxtQ0FBaUU7QUFFakUsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7QUE2QzdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNIO0lBQTRCLGtDQUFZO0lBaUJ0QyxnQkFBWSxNQUFjLEVBQVUsT0FBdUI7UUFBM0QsWUFDRSxpQkFBTyxTQXNCUjtRQXZCbUMsYUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFabkQsbUJBQWEsR0FBWSxJQUFJLENBQUM7UUFlcEMsd0JBQXdCO1FBQ3hCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDcEMsS0FBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEUsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1NBQzdFO1FBQ08sSUFBQSxJQUFJLEdBQUssZUFBTSxLQUFYLENBQVk7UUFDeEIsS0FBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLE1BQU0sUUFBQSxFQUFFLElBQUksTUFBQSxFQUFFLENBQUM7UUFFaEMsSUFBSSxPQUFPLEVBQUU7WUFDSCxJQUFBLEtBQUssR0FBZSxPQUFPLE1B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QkFBMEI7UUFDMUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBQSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBQSxLQUFLO2dCQUNwQixLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEtBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RELEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RELEtBQUssQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsWUFBWSxjQUFBLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0gsYUFBQztBQUFELENBN2JBLEFBNmJDLENBN2IyQiw0QkFBWSxHQTZidkM7QUE3Ylksd0JBQU0iLCJmaWxlIjoibGliL2NsaWVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRlbWl0dGVyMyc7XG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9icm93c2VyJztcbmltcG9ydCB7IGNvbmZpZywgSG9zdHMgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgRmlsZXN0YWNrRXJyb3IgfSBmcm9tICcuLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBtZXRhZGF0YSwgTWV0YWRhdGFPcHRpb25zLCByZW1vdmUsIHJldHJpZXZlLCBSZXRyaWV2ZU9wdGlvbnMsIGRvd25sb2FkIH0gZnJvbSAnLi9hcGkvZmlsZSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm0sIFRyYW5zZm9ybU9wdGlvbnMgfSBmcm9tICcuL2FwaS90cmFuc2Zvcm0nO1xuaW1wb3J0IHsgc3RvcmVVUkwgfSBmcm9tICcuL2FwaS9zdG9yZSc7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFVwbG9hZCwgSW5wdXRGaWxlLCBVcGxvYWRPcHRpb25zLCBTdG9yZVVwbG9hZE9wdGlvbnMsIFVwbG9hZFRhZ3MgfSBmcm9tICcuL2FwaS91cGxvYWQnO1xuaW1wb3J0IHsgcHJldmlldywgUHJldmlld09wdGlvbnMgfSBmcm9tICcuL2FwaS9wcmV2aWV3JztcbmltcG9ydCB7IENsb3VkQ2xpZW50IH0gZnJvbSAnLi9hcGkvY2xvdWQnO1xuaW1wb3J0IHsgUHJlZmV0Y2gsIFByZWZldGNoUmVzcG9uc2UsIFByZWZldGNoT3B0aW9ucyB9IGZyb20gJy4vYXBpL3ByZWZldGNoJztcbmltcG9ydCB7IEZzUmVzcG9uc2UgfSBmcm9tICcuL3JlcXVlc3QvdHlwZXMnO1xuaW1wb3J0IHsgU3RvcmVQYXJhbXMgfSBmcm9tICcuL2ZpbGVsaW5rJztcblxuaW1wb3J0IHsgcGlja2VyLCBQaWNrZXJJbnN0YW5jZSwgUGlja2VyT3B0aW9ucyB9IGZyb20gJy4vcGlja2VyJztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cblNlbnRyeS5hZGRCcmVhZGNydW1iKHsgY2F0ZWdvcnk6ICdzZGsnLCBtZXNzYWdlOiAnZmlsZXN0YWNrLWpzLXNkayBzY29wZScgfSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvbiB7XG4gIGFwaWtleTogc3RyaW5nO1xuICB1cmxzOiBIb3N0cztcbiAgY25hbWU/OiBzdHJpbmc7XG4gIHBvbGljeT86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICBwcmVmZXRjaD86IFByZWZldGNoUmVzcG9uc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHkge1xuICBwb2xpY3k6IHN0cmluZztcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50T3B0aW9ucyB7XG4gIFtvcHRpb246IHN0cmluZ106IGFueTtcbiAgLyoqXG4gICAqIFNlY3VyaXR5IG9iamVjdCB3aXRoIHBvbGljeSBhbmQgc2lnbmF0dXJlIGtleXMuXG4gICAqIENhbiBiZSB1c2VkIHRvIGxpbWl0IGNsaWVudCBjYXBhYmlsaXRpZXMgYW5kIHByb3RlY3QgcHVibGljIFVSTHMuXG4gICAqIEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCBzZXJ2ZXItc2lkZSBwb2xpY3kgYW5kIHNpZ25hdHVyZSBnZW5lcmF0aW9uLlxuICAgKiBSZWFkIGFib3V0IFtzZWN1cml0eSBwb2xpY2llc10oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2NvbmNlcHRzL3NlY3VyaXR5KS5cbiAgICovXG4gIHNlY3VyaXR5PzogU2VjdXJpdHk7XG4gIC8qKlxuICAgKiBEb21haW4gdG8gdXNlIGZvciBhbGwgVVJMcy4gX19SZXF1aXJlcyB0aGUgY3VzdG9tIENOQU1FIGFkZG9uX18uXG4gICAqIElmIHRoaXMgaXMgZW5hYmxlZCB0aGVuIHlvdSBtdXN0IGFsc28gc2V0IHVwIHlvdXIgb3duIE9BdXRoIGFwcGxpY2F0aW9uc1xuICAgKiBmb3IgZWFjaCBjbG91ZCBzb3VyY2UgeW91IHdpc2ggdG8gdXNlIGluIHRoZSBwaWNrZXIuXG4gICAqL1xuICBjbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEVuYWJsZS9kaXNhYmxlIGNhY2hpbmcgb2YgdGhlIGNsb3VkIHNlc3Npb24gdG9rZW4uIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqIFRoaXMgZW5zdXJlcyB0aGF0IHVzZXJzIHdpbGwgYmUgcmVtZW1iZXJlZCBvbiB5b3VyIGRvbWFpbiB3aGVuIGNhbGxpbmcgdGhlIGNsb3VkIEFQSSBmcm9tIHRoZSBicm93c2VyLlxuICAgKiBQbGVhc2UgYmUgYXdhcmUgdGhhdCB0b2tlbnMgc3RvcmVkIGluIGxvY2FsU3RvcmFnZSBhcmUgYWNjZXNzaWJsZSBieSBvdGhlciBzY3JpcHRzIG9uIHRoZSBzYW1lIGRvbWFpbi5cbiAgICovXG4gIHNlc3Npb25DYWNoZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBmb3J3YXJkaW5nIGVycm9yIGxvZ3MgdG8gc2VudHJ5XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBmb3J3YXJkRXJyb3JzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgRmlsZXN0YWNrIGNsaWVudCwgdGhlIGVudHJ5IHBvaW50IGZvciBhbGwgcHVibGljIG1ldGhvZHMuIEVuY2Fwc3VsYXRlcyBzZXNzaW9uIGluZm9ybWF0aW9uLlxuICpcbiAqICMjIyBFeGFtcGxlXG4gKiBgYGBqc1xuICogLy8gRVMgbW9kdWxlXG4gKiBpbXBvcnQgKiBhcyBmaWxlc3RhY2sgZnJvbSAnZmlsZXN0YWNrLWpzJztcbiAqIGNvbnN0IGNsaWVudCA9IGZpbGVzdGFjay5pbml0KCdhcGlrZXknKTtcbiAqIGBgYFxuICpcbiAqIGBgYGpzXG4gKiAvLyBVTUQgbW9kdWxlIGluIGJyb3dzZXJcbiAqIDxzY3JpcHQgc3JjPVwiaHR0cHM6Ly9zdGF0aWMuZmlsZXN0YWNrYXBpLmNvbS9maWxlc3RhY2stanMvMy54LngvZmlsZXN0YWNrLm1pbi5qc1wiPjwvc2NyaXB0PlxuICogY29uc3QgY2xpZW50ID0gZmlsZXN0YWNrLmluaXQoJ2FwaWtleScpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGllbnQgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBwdWJsaWMgc2Vzc2lvbjogU2Vzc2lvbjtcbiAgcHJpdmF0ZSBjbG91ZDogQ2xvdWRDbGllbnQ7XG4gIHByaXZhdGUgcHJlZmV0Y2hJbnN0YW5jZTogUHJlZmV0Y2g7XG5cbiAgcHJpdmF0ZSBmb3J3YXJkRXJyb3JzOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogUmV0dXJucyBmaWxlc3RhY2sgdXRpbHNcbiAgICpcbiAgICogQHJlYWRvbmx5XG4gICAqIEBtZW1iZXJvZiBDbGllbnRcbiAgICovXG4gIGdldCB1dGlscygpIHtcbiAgICByZXR1cm4gVXRpbHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihhcGlrZXk6IHN0cmluZywgcHJpdmF0ZSBvcHRpb25zPzogQ2xpZW50T3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmZvcndhcmRFcnJvcnMpIHtcbiAgICAgIHRoaXMuZm9yd2FyZEVycm9ycyA9IG9wdGlvbnMuZm9yd2FyZEVycm9ycztcbiAgICB9XG5cbiAgICBpZiAoIWFwaWtleSB8fCB0eXBlb2YgYXBpa2V5ICE9PSAnc3RyaW5nJyB8fCBhcGlrZXkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FuIGFwaWtleSBpcyByZXF1aXJlZCB0byBpbml0aWFsaXplIHRoZSBGaWxlc3RhY2sgY2xpZW50Jyk7XG4gICAgfVxuICAgIGNvbnN0IHsgdXJscyB9ID0gY29uZmlnO1xuICAgIHRoaXMuc2Vzc2lvbiA9IHsgYXBpa2V5LCB1cmxzIH07XG5cbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgY29uc3QgeyBjbmFtZSwgc2VjdXJpdHkgfSA9IG9wdGlvbnM7XG5cbiAgICAgIHRoaXMuc2V0U2VjdXJpdHkoc2VjdXJpdHkpO1xuICAgICAgdGhpcy5zZXRDbmFtZShjbmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy5wcmVmZXRjaEluc3RhbmNlID0gbmV3IFByZWZldGNoKHRoaXMuc2Vzc2lvbik7XG4gICAgdGhpcy5jbG91ZCA9IG5ldyBDbG91ZENsaWVudCh0aGlzLnNlc3Npb24sIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYmFzaWMgcHJlZmV0Y2ggcmVxdWVzdCB0byBjaGVjayBwZXJtaXNzaW9uc1xuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBwcmVmZXRjaChwYXJhbXM6IFByZWZldGNoT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnByZWZldGNoSW5zdGFuY2UuZ2V0Q29uZmlnKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHNlY3VyaXR5IG9iamVjdFxuICAgKlxuICAgKiBAcGFyYW0ge1NlY3VyaXR5fSBzZWN1cml0eVxuICAgKiBAbWVtYmVyb2YgQ2xpZW50XG4gICAqL1xuICBzZXRTZWN1cml0eShzZWN1cml0eTogU2VjdXJpdHkpIHtcbiAgICBpZiAoc2VjdXJpdHkgJiYgIShzZWN1cml0eS5wb2xpY3kgJiYgc2VjdXJpdHkuc2lnbmF0dXJlKSkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKCdCb3RoIHBvbGljeSBhbmQgc2lnbmF0dXJlIGFyZSByZXF1aXJlZCBmb3IgY2xpZW50IHNlY3VyaXR5Jyk7XG4gICAgfVxuXG4gICAgaWYgKHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSAmJiBzZWN1cml0eS5zaWduYXR1cmUpIHtcbiAgICAgIHRoaXMuc2Vzc2lvbi5wb2xpY3kgPSBzZWN1cml0eS5wb2xpY3k7XG4gICAgICB0aGlzLnNlc3Npb24uc2lnbmF0dXJlID0gc2VjdXJpdHkuc2lnbmF0dXJlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY3VzdG9tIGNuYW1lXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbmFtZVxuICAgKiBAcmV0dXJuc1xuICAgKiBAbWVtYmVyb2YgQ2xpZW50XG4gICAqL1xuICBzZXRDbmFtZShjbmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCFjbmFtZSB8fCBjbmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlc3Npb24uY25hbWUgPSBjbmFtZTtcbiAgICB0aGlzLnNlc3Npb24udXJscyA9IFV0aWxzLnJlc29sdmVIb3N0KHRoaXMuc2Vzc2lvbi51cmxzLCBjbmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYWxsIGN1cnJlbnQgY2xvdWQgc2Vzc2lvbnMgaW4gdGhlIHBpY2tlci5cbiAgICogT3B0aW9uYWxseSBwYXNzIGEgY2xvdWQgc291cmNlIG5hbWUgdG8gb25seSBsb2cgb3V0IG9mIHRoYXQgY2xvdWQgc291cmNlLlxuICAgKiBUaGlzIGVzc2VudGlhbGx5IGNsZWFycyB0aGUgT0F1dGggYXV0aG9yaXphdGlvbiBjb2RlcyBmcm9tIHRoZSBGaWxlc3RhY2sgc2Vzc2lvbi5cbiAgICogQHBhcmFtIG5hbWUgT3B0aW9uYWwgY2xvdWQgc291cmNlIG5hbWUuXG4gICAqL1xuICBsb2dvdXQobmFtZT86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmNsb3VkLmxvZ291dChuYW1lKTtcbiAgfVxuICAvKipcbiAgICogUmV0cmlldmUgZGV0YWlsZWQgZGF0YSBvZiBzdG9yZWQgZmlsZXMuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNsaWVudFxuICAgKiAgIC5tZXRhZGF0YSgnRENMNUs0NkZTM09JeGI1aXVLYnknKVxuICAgKiAgIC50aGVuKChyZXMpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAqICAgfSlcbiAgICogICAuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICogICB9KSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIE1ldGFkYXRhXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjbWV0YWRhdGEpLlxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIE1ldGFkYXRhIGZpZWxkcyB0byBlbmFibGUgb24gcmVzcG9uc2UuXG4gICAqIEBwYXJhbSBzZWN1cml0eSBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICovXG4gIG1ldGFkYXRhKGhhbmRsZTogc3RyaW5nLCBvcHRpb25zPzogTWV0YWRhdGFPcHRpb25zLCBzZWN1cml0eT86IFNlY3VyaXR5KSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gbWV0YWRhdGEodGhpcy5zZXNzaW9uLCBoYW5kbGUsIG9wdGlvbnMsIHNlY3VyaXR5KTtcbiAgfVxuICAvKipcbiAgICogQ29uc3RydWN0IGEgbmV3IHBpY2tlciBpbnN0YW5jZS5cbiAgICovXG4gIHBpY2tlcihvcHRpb25zPzogUGlja2VyT3B0aW9ucyk6IFBpY2tlckluc3RhbmNlIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBwaWNrZXIodGhpcywgb3B0aW9ucyk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZWQgZm9yIHZpZXdpbmcgZmlsZXMgdmlhIEZpbGVzdGFjayBoYW5kbGVzIG9yIHN0b3JhZ2UgYWxpYXNlcywgX19yZXF1aXJlcyBEb2N1bWVudCBWaWV3ZXIgYWRkb24gdG8geW91ciBGaWxlc3RhY2sgYXBwbGljYXRpb25fXy5cbiAgICogT3BlbnMgZG9jdW1lbnQgdmlld2VyIGluIG5ldyB3aW5kb3cgaWYgaWQgb3B0aW9uIGlzIG5vdCBwcm92aWRlZC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogLy8gPGRpdiBpZD1cInByZXZpZXdcIj48L2Rpdj5cbiAgICpcbiAgICogY2xpZW50LnByZXZpZXcoJ0RDTDVLNDZGUzNPSXhiNWl1S2J5JywgeyBpZDogJ3ByZXZpZXcnIH0pO1xuICAgKiBgYGBcbiAgICogQHBhcmFtIGhhbmRsZSBWYWxpZCBGaWxlc3RhY2sgaGFuZGxlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBQcmV2aWV3IG9wdGlvbnNcbiAgICovXG4gIHByZXZpZXcoaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBQcmV2aWV3T3B0aW9ucykge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHByZXZpZXcodGhpcy5zZXNzaW9uLCBoYW5kbGUsIG9wdGlvbnMpO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgYSBmaWxlIGZyb20gc3RvcmFnZSBhbmQgdGhlIEZpbGVzdGFjayBzeXN0ZW0uXG4gICAqXG4gICAqIF9fUmVxdWlyZXMgYSB2YWxpZCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZV9fLiBUaGUgcG9saWN5IGFuZCBzaWduYXR1cmUgd2lsbCBiZSBwdWxsZWQgZnJvbSB0aGUgY2xpZW50IHNlc3Npb24sIG9yIGl0IGNhbiBiZSBvdmVycmlkZGVuIHdpdGggdGhlIHNlY3VyaXR5IHBhcmFtZXRlci5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLnJlbW92ZSgnRENMNUs0NkZTM09JeGI1aXVLYnknKVxuICAgKiAgIC50aGVuKChyZXMpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKHJlcyk7XG4gICAqICAgfSlcbiAgICogICAuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICogICB9KSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIERlbGV0ZV0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI2RlbGV0ZSlcbiAgICogQHBhcmFtIGhhbmRsZSBWYWxpZCBGaWxlc3RhY2sgaGFuZGxlLlxuICAgKiBAcGFyYW0gc2VjdXJpdHkgT3B0aW9uYWwgc2VjdXJpdHkgb3ZlcnJpZGUuXG4gICAqL1xuICByZW1vdmUoaGFuZGxlOiBzdHJpbmcsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPGFueT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHJlbW92ZSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgZmFsc2UsIHNlY3VyaXR5KTtcbiAgfVxuICAvKipcbiAgICogUmVtb3ZlIGEgZmlsZSAqKm9ubHkqKiBmcm9tIHRoZSBGaWxlc3RhY2sgc3lzdGVtLiBUaGUgZmlsZSByZW1haW5zIGluIHN0b3JhZ2UuXG4gICAqXG4gICAqIF9fUmVxdWlyZXMgYSB2YWxpZCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZV9fLiBUaGUgcG9saWN5IGFuZCBzaWduYXR1cmUgd2lsbCBiZSBwdWxsZWQgZnJvbSB0aGUgY2xpZW50IHNlc3Npb24sIG9yIGl0IGNhbiBiZSBvdmVycmlkZGVuIHdpdGggdGhlIHNlY3VyaXR5IHBhcmFtZXRlci5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLnJlbW92ZU1ldGFkYXRhKCdEQ0w1SzQ2RlMzT0l4YjVpdUtieScpXG4gICAqICAgLnRoZW4oKHJlcykgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2cocmVzKTtcbiAgICogICB9KVxuICAgKiAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgIH0pKTtcbiAgICogYGBgXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRGVsZXRlXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjZGVsZXRlKVxuICAgKiBAcGFyYW0gaGFuZGxlIFZhbGlkIEZpbGVzdGFjayBoYW5kbGUuXG4gICAqIEBwYXJhbSBzZWN1cml0eSBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICovXG4gIHJlbW92ZU1ldGFkYXRhKGhhbmRsZTogc3RyaW5nLCBzZWN1cml0eT86IFNlY3VyaXR5KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiByZW1vdmUodGhpcy5zZXNzaW9uLCBoYW5kbGUsIHRydWUsIHNlY3VyaXR5KTtcbiAgfVxuICAvKipcbiAgICogU3RvcmUgYSBmaWxlIGZyb20gaXRzIFVSTC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50XG4gICAqICAgLnN0b3JlVVJMKCdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9OWV8xOTlfRV9vZl9IYW1tZXJ0b3duXzIwMTQuanBnJylcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlIEFQSSAtIFN0b3JlXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL2ZpbGUjc3RvcmUpXG4gICAqIEBwYXJhbSB1cmwgICAgICAgVmFsaWQgVVJMIHRvIGEgZmlsZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgICBDb25maWd1cmUgZmlsZSBzdG9yYWdlLlxuICAgKiBAcGFyYW0gdG9rZW4gICAgIE9wdGlvbmFsIGNvbnRyb2wgdG9rZW4gdG8gY2FsbCAuY2FuY2VsKClcbiAgICogQHBhcmFtIHNlY3VyaXR5ICBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICogQHBhcmFtIHVwbG9hZFRhZ3MgT3B0aW9uYWwgdGFncyB2aXNpYmxlIGluIHdlYmhvb2tzLlxuICAgKiBAcGFyYW0gaGVhZGVycyAgICBPcHRpb25hbCBoZWFkZXJzIHRvIHNlbmRcbiAgICogQHBhcmFtIHdvcmtmbG93SWRzICAgIE9wdGlvbmFsIHdvcmtmbG93SWRzIHRvIHNlbmRcbiAgICovXG4gIHN0b3JlVVJMKHVybDogc3RyaW5nLCBzdG9yZVBhcmFtcz86IFN0b3JlUGFyYW1zLCB0b2tlbj86IGFueSwgc2VjdXJpdHk/OiBTZWN1cml0eSwgdXBsb2FkVGFncz86IFVwbG9hZFRhZ3MsIGhlYWRlcnM/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSwgd29ya2Zsb3dJZHM/OiBzdHJpbmdbXSk6IFByb21pc2U8T2JqZWN0PiB7XG4gICAgcmV0dXJuIHN0b3JlVVJMKHtcbiAgICAgIHNlc3Npb246IHRoaXMuc2Vzc2lvbixcbiAgICAgIHVybCxcbiAgICAgIHN0b3JlUGFyYW1zLFxuICAgICAgdG9rZW4sXG4gICAgICBzZWN1cml0eSxcbiAgICAgIHVwbG9hZFRhZ3MsXG4gICAgICBoZWFkZXJzLFxuICAgICAgd29ya2Zsb3dJZHMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXNzIGZpbGVzIHZpYSB0aGVpciBGaWxlc3RhY2sgaGFuZGxlcy5cbiAgICpcbiAgICogSWYgaGVhZCBvcHRpb24gaXMgcHJvdmlkZWQgLSByZXF1ZXN0IGhlYWRlcnMgYXJlIHJldHVybmVkIGluIHByb21pc2VcbiAgICogSWYgbWV0YWRhdGEgb3B0aW9uIGlzIHByb3ZpZGVkIC0gbWV0YWRhdGEgb2JqZWN0IGlzIHJldHVybmVkIGluIHByb21pc2VcbiAgICogT3RoZXJ3aXNlIGZpbGUgYmxvYiBpcyByZXR1cm5lZFxuICAgKiBNZXRhZGF0YSBhbmQgaGVhZCBvcHRpb25zIGNhbm5vdCBiZSBtaXhlZFxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjbGllbnQucmV0cmlldmUoJ2ZpbGVIYW5kbGUnLCB7XG4gICAqICBtZXRhZGF0YTogdHJ1ZSxcbiAgICogfSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICogIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICogfSkuY2F0Y2goKGVycikgPT4ge1xuICAgKiAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgKiB9KVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSBbRmlsZSBBUEkgLSBEb3dubG9hZF0oaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2FwaS9maWxlI2Rvd25sb2FkKVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgbWV0YWRhdGEgb3IgZG93bmxvYWQgbWV0aG9kcyBpbnN0ZWFkXG4gICAqIEBwYXJhbSBoYW5kbGUgICAgVmFsaWQgZmlsZSBoYW5kbGVcbiAgICogQHBhcmFtIG9wdGlvbnMgICBSZXRyaWV2ZU9wdGlvbnNcbiAgICogQHBhcmFtIHNlY3VyaXR5ICBPcHRpb25hbCBzZWN1cml0eSBvdmVycmlkZS5cbiAgICogQHRocm93cyAgICAgICAgICBFcnJvclxuICAgKi9cbiAgcmV0cmlldmUoaGFuZGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBSZXRyaWV2ZU9wdGlvbnMsIHNlY3VyaXR5PzogU2VjdXJpdHkpOiBQcm9taXNlPE9iamVjdCB8IEJsb2I+IHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiByZXRyaWV2ZSh0aGlzLnNlc3Npb24sIGhhbmRsZSwgb3B0aW9ucywgc2VjdXJpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIERvd25sb2FkIGZpbGUgYnkgaGFuZGxlXG4gICAqXG4gICAqXG4gICAqICMjIyBCcm93c2VyIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY2xpZW50LmRvd25sb2FkKCdmaWxlSGFuZGxlJykudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICogY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAqIGltZy5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHJlcy5kYXRhKVxuICAgKiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7XG4gICAqIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICogIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICogfSlcbiAgICogYGBgXG4gICAqXG4gICAqIEBzZWUgW0ZpbGUgQVBJIC0gRG93bmxvYWRdKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvZmlsZSNkb3dubG9hZClcbiAgICogQHBhcmFtIGhhbmRsZSAgICBWYWxpZCBmaWxlIGhhbmRsZVxuICAgKiBAdGhyb3dzICAgICAgICAgIEVycm9yXG4gICAqL1xuICBkb3dubG9hZChoYW5kbGU6IHN0cmluZywgc2VjdXJpdHk/OiBTZWN1cml0eSk6IFByb21pc2U8RnNSZXNwb25zZT4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIGRvd25sb2FkKHRoaXMuc2Vzc2lvbiwgaGFuZGxlLCBzZWN1cml0eSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJmYWNlIHRvIHRoZSBGaWxlc3RhY2sgW1Byb2Nlc3NpbmcgQVBJXShodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvYXBpL3Byb2Nlc3NpbmcpLlxuICAgKiBDb252ZXJ0IGEgVVJMLCBoYW5kbGUsIG9yIHN0b3JhZ2UgYWxpYXMgdG8gYW5vdGhlciBVUkwgd2hpY2ggbGlua3MgdG8gdGhlIHRyYW5zZm9ybWVkIGZpbGUuXG4gICAqIFlvdSBjYW4gb3B0aW9uYWxseSBzdG9yZSB0aGUgcmV0dXJuZWQgVVJMIHdpdGggY2xpZW50LnN0b3JlVVJMLlxuICAgKlxuICAgKiBUcmFuc2Zvcm0gcGFyYW1zIGNhbiBiZSBwcm92aWRlZCBpbiBjYW1lbENhc2Ugb3Igc25ha2VDYXNlIHN0eWxlIGllOiBwYXJ0aWFsX3BpeGVsYXRlIG9yIHBhcnRpYWxQaXhlbGF0ZVxuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBjb25zdCB0cmFuc2Zvcm1lZFVybCA9IGNsaWVudC50cmFuc2Zvcm0odXJsLCB7XG4gICAqICAgY3JvcDoge1xuICAgKiAgICAgZGltOiBbeCwgeSwgd2lkdGgsIGhlaWdodF0sXG4gICAqICAgfSxcbiAgICogICB2aWduZXR0ZToge1xuICAgKiAgICAgYmx1cm1vZGU6ICdnYXVzc2lhbicsXG4gICAqICAgICBhbW91bnQ6IDUwLFxuICAgKiAgIH0sXG4gICAqICAgZmxpcDogdHJ1ZSxcbiAgICogICBwYXJ0aWFsX3BpeGVsYXRlOiB7XG4gICAqICAgICBvYmplY3RzOiBbWzEwLCAyMCwgMjAwLCAyNTBdLCBbMjc1LCA5MSwgNTAwLCA1NTddXSxcbiAgICogICB9LFxuICAgKiB9O1xuICAgKlxuICAgKiAvLyBvcHRpb25hbGx5IHN0b3JlIHRoZSBuZXcgVVJMXG4gICAqIGNsaWVudC5zdG9yZVVSTCh0cmFuc2Zvcm1lZFVybCkudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqIGBgYFxuICAgKiBAc2VlIFtGaWxlc3RhY2sgUHJvY2Vzc2luZyBBUEldKGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9hcGkvcHJvY2Vzc2luZylcbiAgICogQHBhcmFtIHVybCAgICAgU2luZ2xlIG9yIG11bHRpcGxlIHZhbGlkIFVSTHMgKGh0dHAocyk6Ly8pLCBmaWxlIGhhbmRsZXMsIG9yIHN0b3JhZ2UgYWxpYXNlcyAoc3JjOi8vKSB0byBhbiBpbWFnZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVHJhbnNmb3JtYXRpb25zIGFyZSBhcHBsaWVkIGluIHRoZSBvcmRlciBzcGVjaWZpZWQgYnkgdGhpcyBvYmplY3QuXG4gICAqIEBwYXJhbSBiNjQgICAgIFVzZSBuZXcgbW9yZSBzYWZlIGZvcm1hdCBmb3IgZ2VuZXJhdGluZyB0cmFuc2Zvcm1zIHVybCAoZGVmYXVsdD1mYWxzZSkgTm90ZTogSWYgdGhlcmUgd2lsbCBiZSBhbnkgaXNzdWVzIHdpdGggdXJsIHBsZWFzZSB0ZXN0IGl0IHdpdGggZW5hYmxlZCBiNjQgc3VwcG9ydFxuICAgKiBAcmV0dXJucyAgICAgICBBIG5ldyBVUkwgdGhhdCBwb2ludHMgdG8gdGhlIHRyYW5zZm9ybWVkIHJlc291cmNlLlxuICAgKi9cbiAgdHJhbnNmb3JtKHVybDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM6IFRyYW5zZm9ybU9wdGlvbnMsIGI2NDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdHJhbnNmb3JtKHRoaXMuc2Vzc2lvbiwgdXJsLCBvcHRpb25zLCBiNjQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyBhIG11bHRpLXBhcnQgdXBsb2FkIGZsb3cuIFVzZSB0aGlzIGZvciBGaWxlc3RhY2sgQ0lOIGFuZCBGSUkgdXBsb2Fkcy5cbiAgICpcbiAgICogSW4gTm9kZSBydW50aW1lcyB0aGUgZmlsZSBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgZmlsZSBwYXRoLlxuICAgKiBVcGxvYWRpbmcgZnJvbSBhIE5vZGUgYnVmZmVyIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IHRva2VuID0ge307XG4gICAqIGNvbnN0IG9uUmV0cnkgPSAob2JqKSA9PiB7XG4gICAqICAgY29uc29sZS5sb2coYFJldHJ5aW5nICR7b2JqLmxvY2F0aW9ufSBmb3IgJHtvYmouZmlsZW5hbWV9LiBBdHRlbXB0ICR7b2JqLmF0dGVtcHR9IG9mIDEwLmApO1xuICAgKiB9O1xuICAgKlxuICAgKiBjbGllbnQudXBsb2FkKGZpbGUsIHsgb25SZXRyeSB9LCB7IGZpbGVuYW1lOiAnZm9vYmFyLmpwZycgfSwgdG9rZW4pXG4gICAqICAgLnRoZW4ocmVzID0+IGNvbnNvbGUubG9nKHJlcykpO1xuICAgKlxuICAgKiBjbGllbnQudXBsb2FkKHtmaWxlLCBuYW1lfSwgeyBvblJldHJ5IH0sIHsgZmlsZW5hbWU6ICdmb29iYXIuanBnJyB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIHRva2VuLnBhdXNlKCk7ICAvLyBQYXVzZSBmbG93XG4gICAqIHRva2VuLnJlc3VtZSgpOyAvLyBSZXN1bWUgZmxvd1xuICAgKiB0b2tlbi5jYW5jZWwoKTsgLy8gQ2FuY2VsIGZsb3cgKHJlamVjdHMpXG4gICAqIGBgYFxuICAgKiBAcGFyYW0ge0lucHV0RmlsZX0gICAgZmlsZSAgICAgICAgICAgTXVzdCBiZSBhIHZhbGlkIFtGaWxlIHwgQmxvYiB8IEJ1ZmZlciB8IHN0cmluZ11cbiAgICogQHBhcmFtIHVwbG9hZE9wdGlvbnMgIFVwbG9hZGVyIG9wdGlvbnMuXG4gICAqIEBwYXJhbSBzdG9yZU9wdGlvbnMgICBTdG9yYWdlIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB0b2tlbiAgICAgICAgICBBIGNvbnRyb2wgdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBjYWxsIGNhbmNlbCgpLCBwYXVzZSgpLCBhbmQgcmVzdW1lKCkuXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgICAgICBPcHRpb25hbCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZSBvdmVycmlkZS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2V9XG4gICAqL1xuICB1cGxvYWQoZmlsZTogSW5wdXRGaWxlLCBvcHRpb25zPzogVXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zPzogU3RvcmVVcGxvYWRPcHRpb25zLCB0b2tlbj86IGFueSwgc2VjdXJpdHk/OiBTZWN1cml0eSkge1xuICAgIGxldCB1cGxvYWQgPSBuZXcgVXBsb2FkKG9wdGlvbnMsIHN0b3JlT3B0aW9ucyk7XG4gICAgdXBsb2FkLnNldFNlc3Npb24odGhpcy5zZXNzaW9uKTtcblxuICAgIGlmICh0b2tlbikge1xuICAgICAgdXBsb2FkLnNldFRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHkpIHtcbiAgICAgIHVwbG9hZC5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gICAgfVxuXG4gICAgdXBsb2FkLm9uKCdzdGFydCcsICgpID0+IHRoaXMuZW1pdCgndXBsb2FkLnN0YXJ0JykpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgdXBsb2FkLm9uKCdlcnJvcicsIGUgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9yd2FyZEVycm9ycykge1xuICAgICAgICBTZW50cnkud2l0aFNjb3BlKHNjb3BlID0+IHtcbiAgICAgICAgICBzY29wZS5zZXRUYWcoJ2ZpbGVzdGFjay1hcGlrZXknLCB0aGlzLnNlc3Npb24uYXBpa2V5KTtcbiAgICAgICAgICBzY29wZS5zZXRUYWcoJ2ZpbGVzdGFjay12ZXJzaW9uJywgVXRpbHMuZ2V0VmVyc2lvbigpKTtcbiAgICAgICAgICBzY29wZS5zZXRFeHRyYSgnZmlsZXN0YWNrLW9wdGlvbnMnLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgIHNjb3BlLnNldEV4dHJhcyh7IHVwbG9hZE9wdGlvbnM6IG9wdGlvbnMsIHN0b3JlT3B0aW9ucywgZGV0YWlsczogZS5kZXRhaWxzIH0pO1xuICAgICAgICAgIGUubWVzc2FnZSA9IGBGUy0ke2UubWVzc2FnZX1gO1xuICAgICAgICAgIHNjb3BlLmNhcHR1cmVFeGNlcHRpb24oZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC51cGxvYWQoZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGEgbXVsdGktcGFydCB1cGxvYWQgZmxvdy4gVXNlIHRoaXMgZm9yIEZpbGVzdGFjayBDSU4gYW5kIEZJSSB1cGxvYWRzLlxuICAgKlxuICAgKiBJbiBOb2RlIHJ1bnRpbWVzIHRoZSBmaWxlIGFyZ3VtZW50IGlzIHRyZWF0ZWQgYXMgYSBmaWxlIHBhdGguXG4gICAqIFVwbG9hZGluZyBmcm9tIGEgTm9kZSBidWZmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRlZC5cbiAgICpcbiAgICogIyMjIEV4YW1wbGVcbiAgICpcbiAgICogYGBganNcbiAgICogY29uc3QgdG9rZW4gPSB7fTtcbiAgICogY29uc3Qgb25SZXRyeSA9IChvYmopID0+IHtcbiAgICogICBjb25zb2xlLmxvZyhgUmV0cnlpbmcgJHtvYmoubG9jYXRpb259IGZvciAke29iai5maWxlbmFtZX0uIEF0dGVtcHQgJHtvYmouYXR0ZW1wdH0gb2YgMTAuYCk7XG4gICAqIH07XG4gICAqXG4gICAqIGNsaWVudC5tdWx0aXVwbG9hZChbZmlsZV0sIHsgb25SZXRyeSB9LCB0b2tlbilcbiAgICogICAudGhlbihyZXMgPT4gY29uc29sZS5sb2cocmVzKSk7XG4gICAqXG4gICAqIGNsaWVudC5tdWx0aXVwbG9hZChbe2ZpbGUsIG5hbWV9XSwgeyBvblJldHJ5IH0sIHRva2VuKVxuICAgKiAgIC50aGVuKHJlcyA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAgICpcbiAgICogdG9rZW4ucGF1c2UoKTsgIC8vIFBhdXNlIGZsb3dcbiAgICogdG9rZW4ucmVzdW1lKCk7IC8vIFJlc3VtZSBmbG93XG4gICAqIHRva2VuLmNhbmNlbCgpOyAvLyBDYW5jZWwgZmxvdyAocmVqZWN0cylcbiAgICogYGBgXG4gICAqIEBwYXJhbSB7SW5wdXRGaWxlW119ICBmaWxlICAgICAgICAgICBNdXN0IGJlIGEgdmFsaWQgW0ZpbGUgfCBCbG9iIHwgQnVmZmVyIHwgc3RyaW5nIChiYXNlNjQpXVxuICAgKiBAcGFyYW0gdXBsb2FkT3B0aW9ucyAgVXBsb2FkIG9wdGlvbnMuXG4gICAqIEBwYXJhbSBzdG9yZU9wdGlvbnMgICBTdG9yYWdlIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB0b2tlbiAgICAgICAgICBBIGNvbnRyb2wgdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBjYWxsIGNhbmNlbCgpLCBwYXVzZSgpLCBhbmQgcmVzdW1lKCkuXG4gICAqIEBwYXJhbSBzZWN1cml0eSAgICAgICBPcHRpb25hbCBzZWN1cml0eSBwb2xpY3kgYW5kIHNpZ25hdHVyZSBvdmVycmlkZS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2V9XG4gICAqL1xuICBtdWx0aXVwbG9hZChmaWxlOiBJbnB1dEZpbGVbXSwgb3B0aW9ucz86IFVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucz86IFN0b3JlVXBsb2FkT3B0aW9ucywgdG9rZW4/OiBhbnksIHNlY3VyaXR5PzogU2VjdXJpdHkpIHtcbiAgICBsZXQgdXBsb2FkID0gbmV3IFVwbG9hZChvcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgdXBsb2FkLnNldFNlc3Npb24odGhpcy5zZXNzaW9uKTtcblxuICAgIGlmICh0b2tlbikge1xuICAgICAgdXBsb2FkLnNldFRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBpZiAoc2VjdXJpdHkpIHtcbiAgICAgIHVwbG9hZC5zZXRTZWN1cml0eShzZWN1cml0eSk7XG4gICAgfVxuXG4gICAgdXBsb2FkLm9uKCdzdGFydCcsICgpID0+IHRoaXMuZW1pdCgndXBsb2FkLnN0YXJ0JykpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgdXBsb2FkLm9uKCdlcnJvcicsIGUgPT4ge1xuICAgICAgU2VudHJ5LndpdGhTY29wZShzY29wZSA9PiB7XG4gICAgICAgIHNjb3BlLnNldFRhZygnZmlsZXN0YWNrLWFwaWtleScsIHRoaXMuc2Vzc2lvbi5hcGlrZXkpO1xuICAgICAgICBzY29wZS5zZXRUYWcoJ2ZpbGVzdGFjay12ZXJzaW9uJywgVXRpbHMuZ2V0VmVyc2lvbigpKTtcbiAgICAgICAgc2NvcGUuc2V0RXh0cmEoJ2ZpbGVzdGFjay1vcHRpb25zJywgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgc2NvcGUuc2V0RXh0cmFzKGUuZGV0YWlscyk7XG4gICAgICAgIHNjb3BlLnNldEV4dHJhcyh7IHVwbG9hZE9wdGlvbnM6IG9wdGlvbnMsIHN0b3JlT3B0aW9ucyB9KTtcbiAgICAgICAgc2NvcGUuY2FwdHVyZUV4Y2VwdGlvbihlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmVtaXQoJ3VwbG9hZC5lcnJvcicsIGUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwbG9hZC5tdWx0aXVwbG9hZChmaWxlKTtcbiAgfVxufVxuIl19
|
|
@@ -243,7 +243,7 @@ describe('client', function () {
|
|
|
243
243
|
});
|
|
244
244
|
expect(upload_1.Upload.prototype.setToken).toHaveBeenCalledWith(token);
|
|
245
245
|
expect(upload_1.Upload.prototype.setSecurity).toHaveBeenCalledWith(defaultSecurity);
|
|
246
|
-
expect(upload_1.Upload.prototype.upload).toHaveBeenCalledWith(file
|
|
246
|
+
expect(upload_1.Upload.prototype.upload).toHaveBeenCalledWith(file);
|
|
247
247
|
return [2 /*return*/];
|
|
248
248
|
}
|
|
249
249
|
});
|
|
@@ -255,9 +255,7 @@ describe('client', function () {
|
|
|
255
255
|
case 0:
|
|
256
256
|
client = new client_1.Client(defaultApikey);
|
|
257
257
|
file = 'anyFile';
|
|
258
|
-
uploadOptions = {
|
|
259
|
-
altText: 'alt',
|
|
260
|
-
};
|
|
258
|
+
uploadOptions = {};
|
|
261
259
|
storeOptions = {};
|
|
262
260
|
token = {};
|
|
263
261
|
jest.spyOn(upload_1.Upload.prototype, 'upload').mockImplementation(function () { return Promise.resolve(); });
|
|
@@ -270,7 +268,7 @@ describe('client', function () {
|
|
|
270
268
|
});
|
|
271
269
|
expect(upload_1.Upload.prototype.setToken).toHaveBeenCalledWith(token);
|
|
272
270
|
expect(upload_1.Upload.prototype.setSecurity).toHaveBeenCalledWith(defaultSecurity);
|
|
273
|
-
expect(upload_1.Upload.prototype.upload).toHaveBeenCalledWith(file
|
|
271
|
+
expect(upload_1.Upload.prototype.upload).toHaveBeenCalledWith(file);
|
|
274
272
|
return [2 /*return*/];
|
|
275
273
|
}
|
|
276
274
|
});
|
|
@@ -292,7 +290,7 @@ describe('client', function () {
|
|
|
292
290
|
apikey: defaultApikey,
|
|
293
291
|
urls: sessionURls,
|
|
294
292
|
});
|
|
295
|
-
expect(upload_1.Upload.prototype.upload).toHaveBeenCalledWith(file
|
|
293
|
+
expect(upload_1.Upload.prototype.upload).toHaveBeenCalledWith(file);
|
|
296
294
|
return [2 /*return*/];
|
|
297
295
|
}
|
|
298
296
|
});
|
|
@@ -391,4 +389,4 @@ describe('client', function () {
|
|
|
391
389
|
}); });
|
|
392
390
|
});
|
|
393
391
|
|
|
394
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsd0RBQXNEO0FBQ3RELHNDQUFxQztBQUNyQyxtQ0FBa0M7QUFDbEMscUNBQTBDO0FBQzFDLDhDQUE2QztBQUM3QyxtQ0FBa0M7QUFDbEMseUNBQXdDO0FBQ3hDLG1DQUF3RDtBQUN4RCxxQ0FBdUM7QUFDdkMsNkNBQTRDO0FBRTVDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdCLFFBQVEsQ0FBQyxRQUFRLEVBQUU7SUFDakIsSUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUM7SUFDeEMsSUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7SUFDdkMsSUFBTSxlQUFlLEdBQUc7UUFDdEIsTUFBTSxFQUFFLGVBQWU7UUFDdkIsU0FBUyxFQUFFLGtCQUFrQjtLQUM5QixDQUFDO0lBRUYsSUFBTSxXQUFXLEdBQUcsZUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQyxJQUFNLGNBQWMsR0FBRztRQUNyQixNQUFNLEVBQUUsYUFBYTtRQUNyQixJQUFJLEVBQUUsV0FBVztLQUNsQixDQUFDO0lBRUYsRUFBRSxDQUFDLG9DQUFvQyxFQUFFO1FBQ3ZDLElBQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sQ0FB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LGFBQWEsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQWpCLENBQWlCLENBQUMsQ0FBQztvQkFFbEYsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBRWhELElBQUksR0FBRyxJQUFJLGdDQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBRXhDLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO29CQUV2QyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsa0JBQWtCLENBQUMsVUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBVSxPQUFBLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBUixDQUFRLENBQUMsQ0FBQztvQkFFeEYscUJBQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLEVBQUE7O29CQUFwRixTQUFvRixDQUFDO29CQUVyRixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Ozs7U0FDaEQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoibGliL2NsaWVudC5zcGVjLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yIH0gZnJvbSAnLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi8uLi9jb25maWcnO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSAnLi9jbGllbnQnO1xuaW1wb3J0IHsgQ2xvdWRDbGllbnQgfSBmcm9tICcuL2FwaS9jbG91ZCc7XG5pbXBvcnQgeyBVcGxvYWQgfSBmcm9tICcuL2FwaS91cGxvYWQvdXBsb2FkJztcbmltcG9ydCB7IHBpY2tlciB9IGZyb20gJy4vcGlja2VyJztcbmltcG9ydCB7IHByZXZpZXcgfSBmcm9tICcuL2FwaS9wcmV2aWV3JztcbmltcG9ydCB7IG1ldGFkYXRhLCByZW1vdmUsIHJldHJpZXZlIH0gZnJvbSAnLi9hcGkvZmlsZSc7XG5pbXBvcnQgeyBzdG9yZVVSTCB9IGZyb20gJy4vYXBpL3N0b3JlJztcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJy4vYXBpL3RyYW5zZm9ybSc7XG5cbmplc3QubW9jaygnLi9hcGkvdXBsb2FkL3VwbG9hZCcpO1xuamVzdC5tb2NrKCcuL2FwaS9jbG91ZCcpO1xuamVzdC5tb2NrKCcuL2FwaS9maWxlJyk7XG5qZXN0Lm1vY2soJy4vYXBpL3N0b3JlJyk7XG5qZXN0Lm1vY2soJy4vcGlja2VyJyk7XG5qZXN0Lm1vY2soJy4vYXBpL3ByZXZpZXcnKTtcbmplc3QubW9jaygnLi9hcGkvdHJhbnNmb3JtJyk7XG5cbmRlc2NyaWJlKCdjbGllbnQnLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRBcGlrZXkgPSAnRVhBTVBMRV9BUElfS0VZJztcbiAgY29uc3QgZGVmYXVsdEhhbmRsZSA9ICdFWEFNUExFX0hBTkRMRSc7XG4gIGNvbnN0IGRlZmF1bHRTZWN1cml0eSA9IHtcbiAgICBwb2xpY3k6ICdleGFtcGxlUG9saWN5JyxcbiAgICBzaWduYXR1cmU6ICdleGFtcGxlU2lnbmF0dXJlJyxcbiAgfTtcblxuICBjb25zdCBzZXNzaW9uVVJscyA9IGNvbmZpZy51cmxzO1xuICBjb25zdCBkZWZhdWx0U2Vzc2lvbiA9IHtcbiAgICBhcGlrZXk6IGRlZmF1bHRBcGlrZXksXG4gICAgdXJsczogc2Vzc2lvblVSbHMsXG4gIH07XG5cbiAgaXQoJ3Nob3VsZCBwcm9wZXJseSBpbnN0YW50aWF0ZSBDbGllbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBleHBlY3QoY2xpZW50KS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChjbGllbnQpLnRvQmVJbnN0YW5jZU9mKENsaWVudCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgYXBpIGtleSBub3QgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50KCcnKTtcbiAgICB9KS50b1Rocm93KCdBbiBhcGlrZXkgaXMgcmVxdWlyZWQgdG8gaW5pdGlhbGl6ZSB0aGUgRmlsZXN0YWNrIGNsaWVudCcpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIHByb3ZpZGVkIHNlY3VyaXR5IHdpdGhvdXQgc2lnbmF0dXJlJywgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzZWN1cml0eToge1xuICAgICAgICBwb2xpY3k6ICdleGFtcGxlUG9saWN5JyxcbiAgICAgICAgc2lnbmF0dXJlOiAnJyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSwgb3B0aW9ucyk7XG4gICAgfSkudG9UaHJvdygnQm90aCBwb2xpY3kgYW5kIHNpZ25hdHVyZSBhcmUgcmVxdWlyZWQgZm9yIGNsaWVudCBzZWN1cml0eScpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHBhc3MgcG9saWN5ICYgc2lnbmF0dXJlIHRvIHRoZSBzZXNzaW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzZWN1cml0eTogZGVmYXVsdFNlY3VyaXR5LFxuICAgIH07XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5LCBvcHRpb25zKTtcbiAgICBleHBlY3QoY2xpZW50LnNlc3Npb24ucG9saWN5KS50b0JlKG9wdGlvbnMuc2VjdXJpdHkucG9saWN5KTtcbiAgICBleHBlY3QoY2xpZW50LnNlc3Npb24uc2lnbmF0dXJlKS50b0JlKG9wdGlvbnMuc2VjdXJpdHkuc2lnbmF0dXJlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXNzIGNuYW1lIHRvIHRoZSBzZXNzaW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBjbmFtZTogJ3Rlc3RDbmFtZS5jb20nLFxuICAgIH07XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5LCBvcHRpb25zKTtcbiAgICBleHBlY3QoY2xpZW50LnNlc3Npb24uY25hbWUpLnRvQmUob3B0aW9ucy5jbmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBsb2dvdXQgZm9yIHByb3ZpZWQgY2xvdWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBjbG91ZE5hbWUgPSAnZHJvcGJveCc7XG4gICAgYXdhaXQgY2xpZW50LmxvZ291dChjbG91ZE5hbWUpO1xuXG4gICAgZXhwZWN0KENsb3VkQ2xpZW50LnByb3RvdHlwZS5sb2dvdXQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGNsb3VkTmFtZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZ2V0IG1ldGFkYXRhIGZvciBhIHByb3ZpZGVkIGhhbmRsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBzaGEyMjQ6IHRydWUsXG4gICAgfTtcblxuICAgIGF3YWl0IGNsaWVudC5tZXRhZGF0YShkZWZhdWx0SGFuZGxlLCBvcHRpb25zLCBkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChtZXRhZGF0YSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlc3Npb24sIGRlZmF1bHRIYW5kbGUsIG9wdGlvbnMsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBvcGVuIHBpY2tlcicsICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHBpY2tlck9wdGlvbnMgPSB7XG4gICAgICBsYW5nOiAnZGUnLFxuICAgIH07XG4gICAgY2xpZW50LnBpY2tlcihwaWNrZXJPcHRpb25zKTtcblxuICAgIGV4cGVjdChwaWNrZXIpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGNsaWVudCwgcGlja2VyT3B0aW9ucyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBvcGVuIHByZXZpZXcnLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBwcmV2aWV3T3B0aW9ucyA9IHtcbiAgICAgIGlkOiAndGVzdEVsZW1lbnQnLFxuICAgIH07XG4gICAgY2xpZW50LnByZXZpZXcoZGVmYXVsdEhhbmRsZSwgcHJldmlld09wdGlvbnMpO1xuXG4gICAgZXhwZWN0KHByZXZpZXcpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCBwcmV2aWV3T3B0aW9ucyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgaGFuZGxlJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgYXdhaXQgY2xpZW50LnJlbW92ZShkZWZhdWx0SGFuZGxlLCBkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChyZW1vdmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCBmYWxzZSwgZGVmYXVsdFNlY3VyaXR5KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSBtZXRhZGF0YScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGF3YWl0IGNsaWVudC5yZW1vdmVNZXRhZGF0YShkZWZhdWx0SGFuZGxlLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KHJlbW92ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlc3Npb24sIGRlZmF1bHRIYW5kbGUsIHRydWUsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBzdG9yZSB1cmwnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCB1cmwgPSAnaHR0cDovL2V4YW1wbGUuY29tL2ltZzMuanBnJztcbiAgICBjb25zdCBvcHRpb25zID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB7fTtcbiAgICBjb25zdCB1cGxvYWRUYWdzID0geyB0ZXN0OiAnMTIzJyB9O1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7ICd0ZXN0JzogJzEyMycgfTtcbiAgICBjb25zdCB3b3JrZmxvd0lkcyA9IFsnMTIzJywgJzMyMSddO1xuICAgIGF3YWl0IGNsaWVudC5zdG9yZVVSTCh1cmwsIG9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHksIHVwbG9hZFRhZ3MsaGVhZGVycywgd29ya2Zsb3dJZHMpO1xuXG4gICAgZXhwZWN0KHN0b3JlVVJMKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBzZXNzaW9uOiBkZWZhdWx0U2Vzc2lvbixcbiAgICAgIHVybCxcbiAgICAgIHN0b3JlUGFyYW1zOiBvcHRpb25zLFxuICAgICAgdG9rZW4sXG4gICAgICBzZWN1cml0eTogZGVmYXVsdFNlY3VyaXR5LFxuICAgICAgdXBsb2FkVGFncyxcbiAgICAgIGhlYWRlcnMsXG4gICAgICB3b3JrZmxvd0lkcyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHJldHJpZXZlIGhhbmRsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHJldHJpZXZlT3B0aW9ucyA9IHt9O1xuXG4gICAgYXdhaXQgY2xpZW50LnJldHJpZXZlKGRlZmF1bHRIYW5kbGUsIHJldHJpZXZlT3B0aW9ucywgZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QocmV0cmlldmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCByZXRyaWV2ZU9wdGlvbnMsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byB0cmFuc2Zvcm0gdXJsIHdpdGggYjY0JywgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgdHJhbnNmb3JtT3B0aW9ucyA9IHtcbiAgICAgIGJsdXI6IHtcbiAgICAgICAgYW1vdW50OiA1LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IGI2NCA9IHRydWU7XG4gICAgY2xpZW50LnRyYW5zZm9ybShkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zLCBiNjQpO1xuICAgIGV4cGVjdCh0cmFuc2Zvcm0pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zLCBiNjQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdHJhbnNmb3JtIHVybCB3aXRob3V0IGI2NCcsICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHRyYW5zZm9ybU9wdGlvbnMgPSB7XG4gICAgICBibHVyOiB7XG4gICAgICAgIGFtb3VudDogNSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjbGllbnQudHJhbnNmb3JtKGRlZmF1bHRIYW5kbGUsIHRyYW5zZm9ybU9wdGlvbnMpO1xuICAgIGV4cGVjdCh0cmFuc2Zvcm0pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byB1cGxvYWQgZmlsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGUgPSAnYW55RmlsZSc7XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG5cbiAgICBqZXN0LnNweU9uKFVwbG9hZC5wcm90b3R5cGUsICd1cGxvYWQnKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50LnVwbG9hZChmaWxlLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRUb2tlbikudG9IYXZlQmVlbkNhbGxlZFdpdGgodG9rZW4pO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlY3VyaXR5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnVwbG9hZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmlsZSwgdW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHVwbG9hZCBmaWxlIHdpdGggYWx0IHRleHQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlID0gJ2FueUZpbGUnO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7XG4gICAgICBhbHRUZXh0OiAnYWx0JyxcbiAgICB9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG5cbiAgICBqZXN0LnNweU9uKFVwbG9hZC5wcm90b3R5cGUsICd1cGxvYWQnKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50LnVwbG9hZChmaWxlLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRUb2tlbikudG9IYXZlQmVlbkNhbGxlZFdpdGgodG9rZW4pO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlY3VyaXR5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnVwbG9hZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmlsZSwgdXBsb2FkT3B0aW9ucy5hbHRUZXh0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHVwbG9hZCBmaWxlIHdpdGhvdXQgdG9rZW4gYW5kIHNlY3VyaXR5JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZSA9ICdhbnlGaWxlJztcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG5cbiAgICBqZXN0LnNweU9uKFVwbG9hZC5wcm90b3R5cGUsICd1cGxvYWQnKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50LnVwbG9hZChmaWxlLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS51cGxvYWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZpbGUsIHVuZGVmaW5lZCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZW1pdCBlcnJvcicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGUgPSAnYW55RmlsZSc7XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG4gICAgY29uc3QgbW9ja09uRXJyb3IgPSBqZXN0LmZuKCkubW9ja05hbWUoJ21vY2tPbkVycm9yJyk7XG5cbiAgICBjb25zdCB0ZXN0ID0gbmV3IEZpbGVzdGFja0Vycm9yKCd0ZXN0Jyk7XG5cbiAgICBjbGllbnQub24oJ3VwbG9hZC5lcnJvcicsIG1vY2tPbkVycm9yKTtcblxuICAgIGplc3Quc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ29uJykubW9ja0ltcGxlbWVudGF0aW9uKChuYW1lLCBjYiwgY3R4KTogYW55ID0+IGNiKHRlc3QpKTtcblxuICAgIGF3YWl0IGNsaWVudC51cGxvYWQoZmlsZSwgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChtb2NrT25FcnJvcikudG9IYXZlQmVlbkNhbGxlZFdpdGgodGVzdCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byBtdWx0aXVwbG9hZCBmaWxlJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZXMgPSBbJ2FueUZpbGUnXTtcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB7fTtcblxuICAgIGplc3Quc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ211bHRpdXBsb2FkJykubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC5tdWx0aXVwbG9hZChmaWxlcywgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0VG9rZW4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRva2VuKTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRTZWN1cml0eSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5tdWx0aXVwbG9hZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmlsZXMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNhbGwgbXVsdGl1cGxvYWQgd2l0aG91dCBzZWN1cml0eSBvciB0b2tlbicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGVzID0gWydhbnlGaWxlJ107XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuXG4gICAgamVzdC5zcHlPbihVcGxvYWQucHJvdG90eXBlLCAnbXVsdGl1cGxvYWQnKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50Lm11bHRpdXBsb2FkKGZpbGVzLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5tdWx0aXVwbG9hZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmlsZXMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGVtaXQgZXJyb3IgZm9yIG11bHRpdXBsb2FkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZXMgPSBbJ2FueUZpbGUnXTtcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB7fTtcblxuICAgIGplc3Quc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ211bHRpdXBsb2FkJykubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGNvbnN0IG1vY2tPbkVycm9yID0gamVzdC5mbigpLm1vY2tOYW1lKCdtb2NrT25FcnJvcicpO1xuXG4gICAgY29uc3QgdGVzdCA9IG5ldyBGaWxlc3RhY2tFcnJvcigndGVzdCcpO1xuXG4gICAgY2xpZW50Lm9uKCd1cGxvYWQuZXJyb3InLCBtb2NrT25FcnJvcik7XG5cbiAgICBqZXN0LnNweU9uKFVwbG9hZC5wcm90b3R5cGUsICdvbicpLm1vY2tJbXBsZW1lbnRhdGlvbigobmFtZSwgY2IsIGN0eCk6IGFueSA9PiBjYih0ZXN0KSk7XG5cbiAgICBhd2FpdCBjbGllbnQubXVsdGl1cGxvYWQoZmlsZXMsIHVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucywgdG9rZW4sIGRlZmF1bHRTZWN1cml0eSk7XG5cbiAgICBleHBlY3QobW9ja09uRXJyb3IpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRlc3QpO1xuICB9KTtcbn0pO1xuIl19
|
|
392
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY2xpZW50LnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsd0RBQXNEO0FBQ3RELHNDQUFxQztBQUNyQyxtQ0FBa0M7QUFDbEMscUNBQTBDO0FBQzFDLDhDQUE2QztBQUM3QyxtQ0FBa0M7QUFDbEMseUNBQXdDO0FBQ3hDLG1DQUF3RDtBQUN4RCxxQ0FBdUM7QUFDdkMsNkNBQTRDO0FBRTVDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdCLFFBQVEsQ0FBQyxRQUFRLEVBQUU7SUFDakIsSUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUM7SUFDeEMsSUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7SUFDdkMsSUFBTSxlQUFlLEdBQUc7UUFDdEIsTUFBTSxFQUFFLGVBQWU7UUFDdkIsU0FBUyxFQUFFLGtCQUFrQjtLQUM5QixDQUFDO0lBRUYsSUFBTSxXQUFXLEdBQUcsZUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQyxJQUFNLGNBQWMsR0FBRztRQUNyQixNQUFNLEVBQUUsYUFBYTtRQUNyQixJQUFJLEVBQUUsV0FBVztLQUNsQixDQUFDO0lBRUYsRUFBRSxDQUFDLG9DQUFvQyxFQUFFO1FBQ3ZDLElBQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sQ0FB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QixDQUFpQixDQUFDLENBQUM7b0JBRWxGLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUVoRCxJQUFJLEdBQUcsSUFBSSxnQ0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUV4QyxNQUFNLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFFdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQVUsT0FBQSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQVIsQ0FBUSxDQUFDLENBQUM7b0JBRXhGLHFCQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxFQUFBOztvQkFBcEYsU0FBb0YsQ0FBQztvQkFFckYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDOzs7O1NBQ2hELENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9jbGllbnQuc3BlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJy4vLi4vY29uZmlnJztcbmltcG9ydCB7IENsaWVudCB9IGZyb20gJy4vY2xpZW50JztcbmltcG9ydCB7IENsb3VkQ2xpZW50IH0gZnJvbSAnLi9hcGkvY2xvdWQnO1xuaW1wb3J0IHsgVXBsb2FkIH0gZnJvbSAnLi9hcGkvdXBsb2FkL3VwbG9hZCc7XG5pbXBvcnQgeyBwaWNrZXIgfSBmcm9tICcuL3BpY2tlcic7XG5pbXBvcnQgeyBwcmV2aWV3IH0gZnJvbSAnLi9hcGkvcHJldmlldyc7XG5pbXBvcnQgeyBtZXRhZGF0YSwgcmVtb3ZlLCByZXRyaWV2ZSB9IGZyb20gJy4vYXBpL2ZpbGUnO1xuaW1wb3J0IHsgc3RvcmVVUkwgfSBmcm9tICcuL2FwaS9zdG9yZSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm0gfSBmcm9tICcuL2FwaS90cmFuc2Zvcm0nO1xuXG5qZXN0Lm1vY2soJy4vYXBpL3VwbG9hZC91cGxvYWQnKTtcbmplc3QubW9jaygnLi9hcGkvY2xvdWQnKTtcbmplc3QubW9jaygnLi9hcGkvZmlsZScpO1xuamVzdC5tb2NrKCcuL2FwaS9zdG9yZScpO1xuamVzdC5tb2NrKCcuL3BpY2tlcicpO1xuamVzdC5tb2NrKCcuL2FwaS9wcmV2aWV3Jyk7XG5qZXN0Lm1vY2soJy4vYXBpL3RyYW5zZm9ybScpO1xuXG5kZXNjcmliZSgnY2xpZW50JywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0QXBpa2V5ID0gJ0VYQU1QTEVfQVBJX0tFWSc7XG4gIGNvbnN0IGRlZmF1bHRIYW5kbGUgPSAnRVhBTVBMRV9IQU5ETEUnO1xuICBjb25zdCBkZWZhdWx0U2VjdXJpdHkgPSB7XG4gICAgcG9saWN5OiAnZXhhbXBsZVBvbGljeScsXG4gICAgc2lnbmF0dXJlOiAnZXhhbXBsZVNpZ25hdHVyZScsXG4gIH07XG5cbiAgY29uc3Qgc2Vzc2lvblVSbHMgPSBjb25maWcudXJscztcbiAgY29uc3QgZGVmYXVsdFNlc3Npb24gPSB7XG4gICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICB9O1xuXG4gIGl0KCdzaG91bGQgcHJvcGVybHkgaW5zdGFudGlhdGUgQ2xpZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgZXhwZWN0KGNsaWVudCkudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoY2xpZW50KS50b0JlSW5zdGFuY2VPZihDbGllbnQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIGFwaSBrZXkgbm90IHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IENsaWVudCgnJyk7XG4gICAgfSkudG9UaHJvdygnQW4gYXBpa2V5IGlzIHJlcXVpcmVkIHRvIGluaXRpYWxpemUgdGhlIEZpbGVzdGFjayBjbGllbnQnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiBwcm92aWRlZCBzZWN1cml0eSB3aXRob3V0IHNpZ25hdHVyZScsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2VjdXJpdHk6IHtcbiAgICAgICAgcG9saWN5OiAnZXhhbXBsZVBvbGljeScsXG4gICAgICAgIHNpZ25hdHVyZTogJycsXG4gICAgICB9LFxuICAgIH07XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXksIG9wdGlvbnMpO1xuICAgIH0pLnRvVGhyb3coJ0JvdGggcG9saWN5IGFuZCBzaWduYXR1cmUgYXJlIHJlcXVpcmVkIGZvciBjbGllbnQgc2VjdXJpdHknKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXNzIHBvbGljeSAmIHNpZ25hdHVyZSB0byB0aGUgc2Vzc2lvbicsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2VjdXJpdHk6IGRlZmF1bHRTZWN1cml0eSxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSwgb3B0aW9ucyk7XG4gICAgZXhwZWN0KGNsaWVudC5zZXNzaW9uLnBvbGljeSkudG9CZShvcHRpb25zLnNlY3VyaXR5LnBvbGljeSk7XG4gICAgZXhwZWN0KGNsaWVudC5zZXNzaW9uLnNpZ25hdHVyZSkudG9CZShvcHRpb25zLnNlY3VyaXR5LnNpZ25hdHVyZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcGFzcyBjbmFtZSB0byB0aGUgc2Vzc2lvbicsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgY25hbWU6ICd0ZXN0Q25hbWUuY29tJyxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSwgb3B0aW9ucyk7XG4gICAgZXhwZWN0KGNsaWVudC5zZXNzaW9uLmNuYW1lKS50b0JlKG9wdGlvbnMuY25hbWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gbG9nb3V0IGZvciBwcm92aWVkIGNsb3VkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgY2xvdWROYW1lID0gJ2Ryb3Bib3gnO1xuICAgIGF3YWl0IGNsaWVudC5sb2dvdXQoY2xvdWROYW1lKTtcblxuICAgIGV4cGVjdChDbG91ZENsaWVudC5wcm90b3R5cGUubG9nb3V0KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChjbG91ZE5hbWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGdldCBtZXRhZGF0YSBmb3IgYSBwcm92aWRlZCBoYW5kbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc2hhMjI0OiB0cnVlLFxuICAgIH07XG5cbiAgICBhd2FpdCBjbGllbnQubWV0YWRhdGEoZGVmYXVsdEhhbmRsZSwgb3B0aW9ucywgZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QobWV0YWRhdGEpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCBvcHRpb25zLCBkZWZhdWx0U2VjdXJpdHkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gb3BlbiBwaWNrZXInLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBwaWNrZXJPcHRpb25zID0ge1xuICAgICAgbGFuZzogJ2RlJyxcbiAgICB9O1xuICAgIGNsaWVudC5waWNrZXIocGlja2VyT3B0aW9ucyk7XG5cbiAgICBleHBlY3QocGlja2VyKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChjbGllbnQsIHBpY2tlck9wdGlvbnMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gb3BlbiBwcmV2aWV3JywgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgcHJldmlld09wdGlvbnMgPSB7XG4gICAgICBpZDogJ3Rlc3RFbGVtZW50JyxcbiAgICB9O1xuICAgIGNsaWVudC5wcmV2aWV3KGRlZmF1bHRIYW5kbGUsIHByZXZpZXdPcHRpb25zKTtcblxuICAgIGV4cGVjdChwcmV2aWV3KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgcHJldmlld09wdGlvbnMpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gcmVtb3ZlIGhhbmRsZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGF3YWl0IGNsaWVudC5yZW1vdmUoZGVmYXVsdEhhbmRsZSwgZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QocmVtb3ZlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgZmFsc2UsIGRlZmF1bHRTZWN1cml0eSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgbWV0YWRhdGEnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBhd2FpdCBjbGllbnQucmVtb3ZlTWV0YWRhdGEoZGVmYXVsdEhhbmRsZSwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChyZW1vdmUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRlZmF1bHRTZXNzaW9uLCBkZWZhdWx0SGFuZGxlLCB0cnVlLCBkZWZhdWx0U2VjdXJpdHkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gc3RvcmUgdXJsJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgdXJsID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS9pbWczLmpwZyc7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG4gICAgY29uc3QgdXBsb2FkVGFncyA9IHsgdGVzdDogJzEyMycgfTtcbiAgICBjb25zdCBoZWFkZXJzID0geyAndGVzdCc6ICcxMjMnIH07XG4gICAgY29uc3Qgd29ya2Zsb3dJZHMgPSBbJzEyMycsICczMjEnXTtcbiAgICBhd2FpdCBjbGllbnQuc3RvcmVVUkwodXJsLCBvcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5LCB1cGxvYWRUYWdzLGhlYWRlcnMsIHdvcmtmbG93SWRzKTtcblxuICAgIGV4cGVjdChzdG9yZVVSTCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgc2Vzc2lvbjogZGVmYXVsdFNlc3Npb24sXG4gICAgICB1cmwsXG4gICAgICBzdG9yZVBhcmFtczogb3B0aW9ucyxcbiAgICAgIHRva2VuLFxuICAgICAgc2VjdXJpdHk6IGRlZmF1bHRTZWN1cml0eSxcbiAgICAgIHVwbG9hZFRhZ3MsXG4gICAgICBoZWFkZXJzLFxuICAgICAgd29ya2Zsb3dJZHMsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byByZXRyaWV2ZSBoYW5kbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCByZXRyaWV2ZU9wdGlvbnMgPSB7fTtcblxuICAgIGF3YWl0IGNsaWVudC5yZXRyaWV2ZShkZWZhdWx0SGFuZGxlLCByZXRyaWV2ZU9wdGlvbnMsIGRlZmF1bHRTZWN1cml0eSk7XG4gICAgZXhwZWN0KHJldHJpZXZlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgcmV0cmlldmVPcHRpb25zLCBkZWZhdWx0U2VjdXJpdHkpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdHJhbnNmb3JtIHVybCB3aXRoIGI2NCcsICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IHRyYW5zZm9ybU9wdGlvbnMgPSB7XG4gICAgICBibHVyOiB7XG4gICAgICAgIGFtb3VudDogNSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBiNjQgPSB0cnVlO1xuICAgIGNsaWVudC50cmFuc2Zvcm0oZGVmYXVsdEhhbmRsZSwgdHJhbnNmb3JtT3B0aW9ucywgYjY0KTtcbiAgICBleHBlY3QodHJhbnNmb3JtKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgdHJhbnNmb3JtT3B0aW9ucywgYjY0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIHRyYW5zZm9ybSB1cmwgd2l0aG91dCBiNjQnLCAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCB0cmFuc2Zvcm1PcHRpb25zID0ge1xuICAgICAgYmx1cjoge1xuICAgICAgICBhbW91bnQ6IDUsXG4gICAgICB9LFxuICAgIH07XG4gICAgY2xpZW50LnRyYW5zZm9ybShkZWZhdWx0SGFuZGxlLCB0cmFuc2Zvcm1PcHRpb25zKTtcbiAgICBleHBlY3QodHJhbnNmb3JtKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2Vzc2lvbiwgZGVmYXVsdEhhbmRsZSwgdHJhbnNmb3JtT3B0aW9ucywgZmFsc2UpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXBsb2FkIGZpbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlID0gJ2FueUZpbGUnO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCB0b2tlbiA9IHt9O1xuXG4gICAgamVzdC5zcHlPbihVcGxvYWQucHJvdG90eXBlLCAndXBsb2FkJykubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC51cGxvYWQoZmlsZSwgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0VG9rZW4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHRva2VuKTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRTZWN1cml0eSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZGVmYXVsdFNlY3VyaXR5KTtcbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS51cGxvYWQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZpbGUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gdXBsb2FkIGZpbGUgd2l0aCBhbHQgdGV4dCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGUgPSAnYW55RmlsZSc7XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHRva2VuID0ge307XG5cbiAgICBqZXN0LnNweU9uKFVwbG9hZC5wcm90b3R5cGUsICd1cGxvYWQnKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50LnVwbG9hZChmaWxlLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRUb2tlbikudG9IYXZlQmVlbkNhbGxlZFdpdGgodG9rZW4pO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlY3VyaXR5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnVwbG9hZCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZmlsZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgYWJsZSB0byB1cGxvYWQgZmlsZSB3aXRob3V0IHRva2VuIGFuZCBzZWN1cml0eScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KGRlZmF1bHRBcGlrZXkpO1xuICAgIGNvbnN0IGZpbGUgPSAnYW55RmlsZSc7XG4gICAgY29uc3QgdXBsb2FkT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHN0b3JlT3B0aW9ucyA9IHt9O1xuXG4gICAgamVzdC5zcHlPbihVcGxvYWQucHJvdG90eXBlLCAndXBsb2FkJykubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZSgpKTtcblxuICAgIGF3YWl0IGNsaWVudC51cGxvYWQoZmlsZSwgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zKTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlc3Npb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGFwaWtleTogZGVmYXVsdEFwaWtleSxcbiAgICAgIHVybHM6IHNlc3Npb25VUmxzLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUudXBsb2FkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmaWxlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBlbWl0IGVycm9yJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZSA9ICdhbnlGaWxlJztcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB7fTtcbiAgICBjb25zdCBtb2NrT25FcnJvciA9IGplc3QuZm4oKS5tb2NrTmFtZSgnbW9ja09uRXJyb3InKTtcblxuICAgIGNvbnN0IHRlc3QgPSBuZXcgRmlsZXN0YWNrRXJyb3IoJ3Rlc3QnKTtcblxuICAgIGNsaWVudC5vbigndXBsb2FkLmVycm9yJywgbW9ja09uRXJyb3IpO1xuXG4gICAgamVzdC5zcHlPbihVcGxvYWQucHJvdG90eXBlLCAnb24nKS5tb2NrSW1wbGVtZW50YXRpb24oKG5hbWUsIGNiLCBjdHgpOiBhbnkgPT4gY2IodGVzdCkpO1xuXG4gICAgYXdhaXQgY2xpZW50LnVwbG9hZChmaWxlLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KG1vY2tPbkVycm9yKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0ZXN0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIG11bHRpdXBsb2FkIGZpbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlcyA9IFsnYW55RmlsZSddO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCB0b2tlbiA9IHt9O1xuXG4gICAgamVzdC5zcHlPbihVcGxvYWQucHJvdG90eXBlLCAnbXVsdGl1cGxvYWQnKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgYXdhaXQgY2xpZW50Lm11bHRpdXBsb2FkKGZpbGVzLCB1cGxvYWRPcHRpb25zLCBzdG9yZU9wdGlvbnMsIHRva2VuLCBkZWZhdWx0U2VjdXJpdHkpO1xuXG4gICAgZXhwZWN0KFVwbG9hZC5wcm90b3R5cGUuc2V0U2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgYXBpa2V5OiBkZWZhdWx0QXBpa2V5LFxuICAgICAgdXJsczogc2Vzc2lvblVSbHMsXG4gICAgfSk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRUb2tlbikudG9IYXZlQmVlbkNhbGxlZFdpdGgodG9rZW4pO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLnNldFNlY3VyaXR5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChkZWZhdWx0U2VjdXJpdHkpO1xuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLm11bHRpdXBsb2FkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmaWxlcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY2FsbCBtdWx0aXVwbG9hZCB3aXRob3V0IHNlY3VyaXR5IG9yIHRva2VuJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBDbGllbnQoZGVmYXVsdEFwaWtleSk7XG4gICAgY29uc3QgZmlsZXMgPSBbJ2FueUZpbGUnXTtcbiAgICBjb25zdCB1cGxvYWRPcHRpb25zID0ge307XG4gICAgY29uc3Qgc3RvcmVPcHRpb25zID0ge307XG5cbiAgICBqZXN0LnNweU9uKFVwbG9hZC5wcm90b3R5cGUsICdtdWx0aXVwbG9hZCcpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoKSk7XG5cbiAgICBhd2FpdCBjbGllbnQubXVsdGl1cGxvYWQoZmlsZXMsIHVwbG9hZE9wdGlvbnMsIHN0b3JlT3B0aW9ucyk7XG5cbiAgICBleHBlY3QoVXBsb2FkLnByb3RvdHlwZS5zZXRTZXNzaW9uKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBhcGlrZXk6IGRlZmF1bHRBcGlrZXksXG4gICAgICB1cmxzOiBzZXNzaW9uVVJscyxcbiAgICB9KTtcblxuICAgIGV4cGVjdChVcGxvYWQucHJvdG90eXBlLm11bHRpdXBsb2FkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmaWxlcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZW1pdCBlcnJvciBmb3IgbXVsdGl1cGxvYWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IENsaWVudChkZWZhdWx0QXBpa2V5KTtcbiAgICBjb25zdCBmaWxlcyA9IFsnYW55RmlsZSddO1xuICAgIGNvbnN0IHVwbG9hZE9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCBzdG9yZU9wdGlvbnMgPSB7fTtcbiAgICBjb25zdCB0b2tlbiA9IHt9O1xuXG4gICAgamVzdC5zcHlPbihVcGxvYWQucHJvdG90eXBlLCAnbXVsdGl1cGxvYWQnKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCkpO1xuXG4gICAgY29uc3QgbW9ja09uRXJyb3IgPSBqZXN0LmZuKCkubW9ja05hbWUoJ21vY2tPbkVycm9yJyk7XG5cbiAgICBjb25zdCB0ZXN0ID0gbmV3IEZpbGVzdGFja0Vycm9yKCd0ZXN0Jyk7XG5cbiAgICBjbGllbnQub24oJ3VwbG9hZC5lcnJvcicsIG1vY2tPbkVycm9yKTtcblxuICAgIGplc3Quc3B5T24oVXBsb2FkLnByb3RvdHlwZSwgJ29uJykubW9ja0ltcGxlbWVudGF0aW9uKChuYW1lLCBjYiwgY3R4KTogYW55ID0+IGNiKHRlc3QpKTtcblxuICAgIGF3YWl0IGNsaWVudC5tdWx0aXVwbG9hZChmaWxlcywgdXBsb2FkT3B0aW9ucywgc3RvcmVPcHRpb25zLCB0b2tlbiwgZGVmYXVsdFNlY3VyaXR5KTtcblxuICAgIGV4cGVjdChtb2NrT25FcnJvcikudG9IYXZlQmVlbkNhbGxlZFdpdGgodGVzdCk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -670,6 +670,11 @@ export interface PickerOptions {
|
|
|
670
670
|
* Enable/Disable possibility to multiple file upload
|
|
671
671
|
*/
|
|
672
672
|
multipleFileUpload?: boolean;
|
|
673
|
+
/**
|
|
674
|
+
* Set your own Google Drive Picker App ID. Defaults to Filestack's.
|
|
675
|
+
* This is your Project Number from the Google Cloud console.
|
|
676
|
+
*/
|
|
677
|
+
googleDriveAppID?: string;
|
|
673
678
|
}
|
|
674
679
|
export interface PickerCropOptions {
|
|
675
680
|
/**
|
package/build/main/lib/picker.js
CHANGED
|
@@ -150,4 +150,4 @@ var picker = function (client, options) {
|
|
|
150
150
|
};
|
|
151
151
|
exports.picker = picker;
|
|
152
152
|
|
|
153
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QU0sdUJBQWYsQ0FBZ0I7d0JBQzFDLHFCQUFNLElBQUEsbUJBQVUsRUFBQywwQkFBaUIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUE7O3dCQUF4RCxNQUFNLEdBQUcsU0FBK0M7d0JBQzlELHNCQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBQzs7OztLQUNwQztJQUNILG1CQUFDO0FBQUQsQ0FoREEsQUFnREMsSUFBQTtBQUVEOzs7Ozs7R0FNRztBQUNJLElBQU0sTUFBTSxHQUFHLFVBQUMsTUFBYyxFQUFFLE9BQXVCO0lBQzVELE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQztBQUZXLFFBQUEsTUFBTSxVQUVqQiIsImZpbGUiOiJsaWIvcGlja2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBsb2FkTW9kdWxlLCBGSUxFU1RBQ0tfTU9EVUxFUyB9IGZyb20gJ0BmaWxlc3RhY2svbG9hZGVyJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yLCBGaWxlc3RhY2tFcnJvclR5cGUgfSBmcm9tICcuLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuL2NsaWVudCc7XG5pbXBvcnQgeyBGU1Byb2dyZXNzRXZlbnQsIFVwbG9hZE9wdGlvbnMsIFdvcmtmbG93Q29uZmlnIH0gZnJvbSAnLi9hcGkvdXBsb2FkL3R5cGVzJztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgUGlja2VyUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi8uLi9zY2hlbWEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckluc3RhbmNlIHtcbiAgLyoqXG4gICAqIENsb3NlIHBpY2tlci4gVGhpcyBvcGVyYXRpb24gaXMgaWRlbXBvdGVudC5cbiAgICovXG4gIGNsb3NlOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBDYW5jZWwgcGlja2VyIHVwbG9hZHMuIFRoaXMgb3BlcmF0aW9uIGlzIGlkZW1wb3RlbnQuXG4gICAqL1xuICBjYW5jZWw6ICgpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIE9wZW4gcGlja2VyLiBUaGlzIG9wZXJhdGlvbiBpcyBpZGVtcG90ZW50LlxuICAgKi9cbiAgb3BlbjogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogU3BlY2lmeSBhIGxpc3Qgb2YgZmlsZXMgdG8gb3BlbiBpbiB0aGUgcGlja2VyIGZvciBjcm9wcGluZ1xuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAvLyA8aW5wdXQgaWQ9XCJmaWxlU2VsZWN0XCIgdHlwZT1cImZpbGVcIj5cbiAgICpcbiAgICogY29uc3QgaW5wdXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlU2VsZWN0Jyk7XG4gICAqIGNvbnN0IHBpY2tlciA9IGNsaWVudC5waWNrZXIoe1xuICAgKiAgIG9uVXBsb2FkRG9uZTogcmVzID0+IGNvbnNvbGUubG9nKHJlcyksXG4gICAqIH0pO1xuICAgKlxuICAgKiBpbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7XG4gICAqICAgcGlja2VyLmNyb3AoZS50YXJnZXQuZmlsZXMpO1xuICAgKiB9KTtcbiAgICpcbiAgICogLy8gT3IgcGFzcyBhbiBhcnJheSBvZiBVUkwgc3RyaW5nc1xuICAgKiBjb25zdCB1cmxzID0gW1xuICAgKiAgICdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9mb3hfaW5fZm9yZXN0MS5qcGcnLFxuICAgKiAgICdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9zYWlsLmpwZycsXG4gICAqIF07XG4gICAqIHBpY2tlci5jcm9wKHVybHMpO1xuICAgKiBgYGBcbiAgICovXG4gIGNyb3A6IChmaWxlczogYW55W10pID0+IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyQ3JvcHBlZERhdGEge1xuICBjcm9wQXJlYToge1xuICAgIC8qKlxuICAgICAqIFt4LCB5XVxuICAgICAqL1xuICAgIHBvc2l0aW9uOiBbbnVtYmVyLCBudW1iZXJdO1xuICAgIC8qKlxuICAgICAqIFt3aWR0aCwgaGVpZ2h0XVxuICAgICAqL1xuICAgIHNpemU6IFtudW1iZXIsIG51bWJlcl07XG4gIH07XG4gICAgLyoqXG4gICAgICogW3dpZHRoLCBoZWlnaHRdXG4gICAgICovXG4gIG9yaWdpbmFsSW1hZ2VTaXplOiBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG5leHBvcnQgZW51bSBSb3RhdGVEaXJlY3Rpb24ge1xuICBjdyA9ICdDVycsXG4gIGNjdz0gJ0NDVycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyUm90YXRlZERhdGEge1xuICAvKipcbiAgICogQW1vdW50IHJvdGF0ZWQgaW4gZGVncmVlcy5cbiAgICovXG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBDYW4gYmUgQ1cgb3IgQ0NXIChjbG9ja3dpc2UgLyBjb3VudGVyLWNsb2Nrd2lzZSlcbiAgICovXG4gIGRpcmVjdGlvbjogUm90YXRlRGlyZWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgY2xvdWQgY29udGFpbmVyIGZvciB0aGUgdXBsb2FkZWQgZmlsZS5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGFuZCBzaXplIGluZm9ybWF0aW9uIGZvciBjcm9wcGVkIGltYWdlcy5cbiAgICovXG4gIGNyb3BwZWQ/OiBQaWNrZXJDcm9wcGVkRGF0YTtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBmaWxlbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRmlsZXN0YWNrIGhhbmRsZSBmb3IgdGhlIHVwbG9hZGVkIGZpbGUuXG4gICAqL1xuICBoYW5kbGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBoYXNoLXByZWZpeGVkIGNsb3VkIHN0b3JhZ2UgcGF0aC5cbiAgICovXG4gIGtleT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBtaW1ldHlwZTogc3RyaW5nO1xuICAvKipcbiAgICogUHJvcGVydGllcyBvZiB0aGUgbG9jYWwgYmluYXJ5IGZpbGUuIEFsc28gc2VlIHRoZSBwaWNrIG9wdGlvbiBgZXhwb3NlT3JpZ2luYWxGaWxlYCBpZiB5b3Ugd2FudCB0aGUgdW5kZXJseWluZyBgRmlsZWAgb2JqZWN0LlxuICAgKi9cbiAgb3JpZ2luYWxGaWxlPzogb2JqZWN0IHwgRmlsZTtcbiAgLyoqXG4gICAqIFRoZSBvcmlnaW4gb2YgdGhlIGZpbGUsIGUuZy4gL0ZvbGRlci9maWxlLmpwZy5cbiAgICovXG4gIG9yaWdpbmFsUGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogRGlyZWN0aW9uIGFuZCB2YWx1ZSBpbmZvcm1hdGlvbiBmb3Igcm90YXRlZCBpbWFnZXMuXG4gICAqL1xuICByb3RhdGVkPzogUGlja2VyUm90YXRlZERhdGE7XG4gIC8qKlxuICAgKiBTaXplIGluIGJ5dGVzIG9mIHRoZSB1cGxvYWRlZCBmaWxlLlxuICAgKi9cbiAgc2l6ZTogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBmcm9tIHdoZXJlIHRoZSBmaWxlIHdhcyBwaWNrZWQuXG4gICAqL1xuICBzb3VyY2U6IHN0cmluZztcbiAgLyoqXG4gICAqIEluZGljYXRlcyBGaWxlc3RhY2sgdHJhbnNpdCBzdGF0dXMuXG4gICAqL1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHV1aWQgZm9yIHRyYWNraW5nIHRoaXMgZmlsZSBpbiBjYWxsYmFja3MuXG4gICAqL1xuICB1cGxvYWRJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEZpbGVzdGFjayBDRE4gVVJMIGZvciB0aGUgdXBsb2FkZWQgZmlsZS5cbiAgICovXG4gIHVybDogc3RyaW5nO1xuICAvKipcbiAgICogQWx0IHRleHQgZm9yIGltYWdlc1xuICAgKi9cbiAgYWx0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQXV0aFRleHRPcHRpb25zIHtcbiAgW2tleTogc3RyaW5nXToge1xuICAgIHRvcD86IHN0cmluZ1tdLFxuICAgIGJvdHRvbT86IHN0cmluZ1tdXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyUmVzcG9uc2Uge1xuICBmaWxlc1VwbG9hZGVkOiBQaWNrZXJGaWxlTWV0YWRhdGFbXTtcbiAgZmlsZXNGYWlsZWQ6IFBpY2tlckZpbGVNZXRhZGF0YVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVDYWxsYmFjayB7XG4gIChmaWxlOiBQaWNrZXJGaWxlTWV0YWRhdGEpOiB2b2lkIHwgUHJvbWlzZTxhbnk+O1xufVxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlV2l0aFRva2VuQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhLCB0b2tlbj86IHtwYXVzZT86ICgpID0+IHZvaWQsIHJlc3VtZT86ICgpID0+IHZvaWQsIGNhbmNlbD86ICgpID0+IHZvaWR9KTogdm9pZCB8IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlQ2FuY2VsQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlRXJyb3JDYWxsYmFjayB7XG4gIChmaWxlOiBQaWNrZXJGaWxlTWV0YWRhdGEsIGVycm9yOiBFcnJvcik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRmlsZVByb2dyZXNzQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhLCBldmVudDogRlNQcm9ncmVzc0V2ZW50KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJVcGxvYWRTdGFydGVkQ2FsbGJhY2sge1xuICAoZmlsZXM6IFBpY2tlckZpbGVNZXRhZGF0YVtdKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJVcGxvYWREb25lQ2FsbGJhY2sge1xuICAoZmlsZXM6IFBpY2tlclJlc3BvbnNlKTogdm9pZDtcbn1cblxuZXhwb3J0IGVudW0gUGlja2VyRGlzcGxheU1vZGUge1xuICBpbmxpbmUgPSAnaW5saW5lJyxcbiAgb3ZlcmxheSA9ICdvdmVybGF5JyxcbiAgZHJvcFBhbmUgPSAnZHJvcFBhbmUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckRyb3BQYW5lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGNyb3AgVUkgZm9yIGRyb3BwZWQgZmlsZXMuXG4gICAqL1xuICBjcm9wRmlsZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSB0ZXh0IGNvbnRlbnQgaW4gdGhlIGRyb3AgcGFuZS5cbiAgICovXG4gIGN1c3RvbVRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBmaWxlIGlucHV0IG9uIGNsaWNrLiBUaGlzIGRvZXMgbm90IGRpc2FibGUgdGhlIGBvbkNsaWNrYCBjYWxsYmFjay5cbiAgICovXG4gIGRpc2FibGVDbGljaz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGZ1bGwtcGFnZSBkcm9wIHpvbmUgb3ZlcmxheS5cbiAgICovXG4gIG92ZXJsYXk/OiBib29sZWFuO1xuICBvbkRyYWdFbnRlcj86IChldnQ6IERyYWdFdmVudCkgPT4gdm9pZDtcbiAgb25EcmFnTGVhdmU/OiAoKSA9PiB2b2lkO1xuICBvbkRyYWdPdmVyPzogKGV2dDogRHJhZ0V2ZW50KSA9PiB2b2lkO1xuICBvbkRyb3A/OiAoZXZ0OiBEcmFnRXZlbnQpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBgb25TdWNjZXNzYCBtdXN0IGJlIHVzZWQgaW5zdGVhZCBvZiBgb25VcGxvYWREb25lYC4gVGhlIGRyb3AgcGFuZSB1c2VzIGl0cyBvd24gY2FsbGJhY2tzIGZvciBjb21wYXRpYmlsaXR5IHB1cnBvc2VzLiBUaGlzIG1pZ2h0IGV2ZW50dWFsbHkgY2hhbmdlLlxuICAgKi9cbiAgb25TdWNjZXNzPzogKGZpbGVzOiBQaWNrZXJGaWxlTWV0YWRhdGFbXSkgPT4gdm9pZDtcbiAgb25FcnJvcj86IChmaWxlczogUGlja2VyRmlsZU1ldGFkYXRhW10pID0+IHZvaWQ7XG4gIG9uUHJvZ3Jlc3M/OiAocGVyY2VudDogbnVtYmVyKSA9PiB2b2lkO1xuICBvbkNsaWNrPzogKGV2dDogYW55KSA9PiB2b2lkO1xuICAvKipcbiAgICogVG9nZ2xlIGljb24gZWxlbWVudCBpbiBkcm9wIHBhbmUuXG4gICAqL1xuICBzaG93SWNvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUb2dnbGUgdXBsb2FkIHByb2dyZXNzIGRpc3BsYXkuXG4gICAqL1xuICBzaG93UHJvZ3Jlc3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclN0b3JlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBMb2NhdGlvbiBmb3Igc3RvcmVkIGZpbGUuIE9uZSBvZiAnczMnLCAnZ2NzJywgJ2F6dXJlJywgJ3JhY2tzcGFjZScsIG9yICdkcm9wYm94Jy5cbiAgICovXG4gIGxvY2F0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmeSBzdG9yYWdlIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNldCBjb250YWluZXIgcGF0aC4gSW5kaWNhdGUgYSBmb2xkZXIgYnkgYWRkaW5nIGEgdHJhaWxpbmcgc2xhc2guIFdpdGhvdXQgYSB0cmFpbGluZyBzbGFzaCBhbGwgZmlsZXMgd2lsbCBiZSBzdG9yZWQgdG8gdGhlIHNhbWUgb2JqZWN0LlxuICAgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZnkgUzMgcmVnaW9uLlxuICAgKi9cbiAgcmVnaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogUzMgY29udGFpbmVyIGFjY2Vzcy4gJ3B1YmxpYycgb3IgJ3ByaXZhdGUnLlxuICAgKi9cbiAgYWNjZXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvd3MgaWRzIHRvIHJ1biBhZnRlciB1cGxvYWRcbiAgICovXG4gIHdvcmtmbG93cz86IHN0cmluZ1tdIHwgV29ya2Zsb3dDb25maWdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJDdXN0b21UZXh0IHtcbiAgLy8gQWN0aW9uc1xuICBVcGxvYWQ/OiBzdHJpbmc7XG4gICdVcGxvYWQgbW9yZSc/OiBzdHJpbmc7XG4gICdEZXNlbGVjdCBBbGwnPzogc3RyaW5nO1xuICAnVmlldy9FZGl0IFNlbGVjdGVkJz86IHN0cmluZztcbiAgJ1NpZ24gT3V0Jz86IHN0cmluZztcblxuICAvLyBTb3VyY2UgTGFiZWxzXG4gICdNeSBEZXZpY2UnPzogc3RyaW5nO1xuICAnV2ViIFNlYXJjaCc/OiBzdHJpbmc7XG4gICdUYWtlIFBob3RvJz86IHN0cmluZztcbiAgJ0xpbmsgKFVSTCknPzogc3RyaW5nO1xuICAnUmVjb3JkIFZpZGVvJz86IHN0cmluZztcbiAgJ1JlY29yZCBBdWRpbyc/OiBzdHJpbmc7XG5cbiAgLy8gQ3VzdG9tIFNvdXJjZVxuICAnQ3VzdG9tIFNvdXJjZSc/OiBzdHJpbmc7XG5cbiAgLy8gRm9vdGVyIFRleHRcbiAgQWRkPzogc3RyaW5nO1xuICAnbW9yZSBmaWxlJz86IHN0cmluZztcbiAgJ21vcmUgZmlsZXMnPzogc3RyaW5nO1xuXG4gIC8vIENsb3VkXG4gICdDb25uZWN0IHtwcm92aWRlck5hbWV9Jz86IHN0cmluZztcbiAgJ1NlbGVjdCBGaWxlcyBmcm9tIHtwcm92aWRlck5hbWV9Jz86IHN0cmluZztcbiAgJ1lvdSBuZWVkIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHtwcm92aWRlck5hbWV9Lic/OiBzdHJpbmc7XG4gICdBIG5ldyBwYWdlIHdpbGwgb3BlbiB0byBjb25uZWN0IHlvdXIgYWNjb3VudC4nPzogc3RyaW5nO1xuICAnV2Ugb25seSBleHRyYWN0IGltYWdlcyBhbmQgbmV2ZXIgbW9kaWZ5IG9yIGRlbGV0ZSB0aGVtLic/OiBzdHJpbmc7XG4gICdUbyBkaXNjb25uZWN0IGZyb20ge3Byb3ZpZGVyTmFtZX0gY2xpY2sgXCJTaWduIG91dFwiIGJ1dHRvbiBpbiB0aGUgbWVudS4nPzogc3RyaW5nO1xuICAnU2lnbiBpbiB3aXRoIEdvb2dsZSc/OiBzdHJpbmc7XG4gICdHbyBiYWNrJz86IHN0cmluZztcbiAgJ1RoaXMgZm9sZGVyIGlzIGVtcHR5Lic/OiBzdHJpbmc7XG5cbiAgLy8gU3VtbWFyeVxuICBGaWxlcz86IHN0cmluZztcbiAgSW1hZ2VzPzogc3RyaW5nO1xuICBVcGxvYWRlZD86IHN0cmluZztcbiAgVXBsb2FkaW5nPzogc3RyaW5nO1xuICBDb21wbGV0ZWQ/OiBzdHJpbmc7XG4gIEZpbHRlcj86IHN0cmluZztcbiAgJ0Nyb3BwZWQgSW1hZ2VzJz86IHN0cmluZztcbiAgJ0VkaXRlZCBJbWFnZXMnPzogc3RyaW5nO1xuICAnU2VsZWN0ZWQgRmlsZXMnPzogc3RyaW5nO1xuICAnQ3JvcCBpcyByZXF1aXJlZCBvbiBpbWFnZXMnPzogc3RyaW5nO1xuXG4gIC8vIFRyYW5zZm9ybVxuICBDcm9wPzogc3RyaW5nO1xuICBDaXJjbGU/OiBzdHJpbmc7XG4gIFJvdGF0ZT86IHN0cmluZztcbiAgTWFzaz86IHN0cmluZztcbiAgUmV2ZXJ0Pzogc3RyaW5nO1xuICBFZGl0Pzogc3RyaW5nO1xuICBSZXNldD86IHN0cmluZztcbiAgRG9uZT86IHN0cmluZztcbiAgU2F2ZT86IHN0cmluZztcbiAgTmV4dD86IHN0cmluZztcbiAgJ0VkaXQgSW1hZ2UnPzogc3RyaW5nO1xuICAnVGhpcyBpbWFnZSBjYW5ub3QgYmUgZWRpdGVkJz86IHN0cmluZztcblxuICAvLyBSZXRyeSBtZXNzYWdpbmdcbiAgJ0Nvbm5lY3Rpb24gTG9zdCc/OiBzdHJpbmc7XG4gICdGYWlsZWQgV2hpbGUgVXBsb2FkaW5nJz86IHN0cmluZztcbiAgJ1JldHJ5aW5nIGluJz86IHN0cmluZztcbiAgJ1RyeSBhZ2Fpbic/OiBzdHJpbmc7XG4gICdUcnkgbm93Jz86IHN0cmluZztcblxuICAvLyBMb2NhbCBGaWxlIFNvdXJjZVxuICAnRHJhZyBhbmQgRHJvcCwgQ29weSBhbmQgUGFzdGUgRmlsZXMnPzogc3RyaW5nO1xuICAnb3IgRHJhZyBhbmQgRHJvcCwgQ29weSBhbmQgUGFzdGUgRmlsZXMnPzogc3RyaW5nO1xuICAnU2VsZWN0IEZpbGVzIHRvIFVwbG9hZCc/OiBzdHJpbmc7XG4gICdTZWxlY3QgRnJvbSc/OiBzdHJpbmc7XG4gICdEcm9wIHlvdXIgZmlsZXMgYW55d2hlcmUnPzogc3RyaW5nO1xuXG4gIC8vIElucHV0IHBsYWNlaG9sZGVyc1xuICAnRW50ZXIgYSBVUkwnPzogc3RyaW5nO1xuICAnU2VhcmNoIGltYWdlcyc/OiBzdHJpbmc7XG5cbiAgLy8gV2ViY2FtIFNvdXJjZVxuICAnV2ViY2FtIERpc2FibGVkJz86IHN0cmluZztcbiAgJ1dlYmNhbSBOb3QgU3VwcG9ydGVkJz86IHN0cmluZztcbiAgJ1BsZWFzZSBlbmFibGUgeW91ciB3ZWJjYW0gdG8gdGFrZSBhIHBob3RvLic/OiBzdHJpbmc7XG4gICdZb3VyIGN1cnJlbnQgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHdlYmNhbSBmdW5jdGlvbmFsaXR5Lic/OiBzdHJpbmc7XG4gICdXZSBzdWdnZXN0IHVzaW5nIENocm9tZSBvciBGaXJlZm94Lic/OiBzdHJpbmc7XG5cbiAgLy8gRXJyb3IgTm90aWZpY2F0aW9uc1xuICAnRmlsZSB7ZGlzcGxheU5hbWV9IGlzIG5vdCBhbiBhY2NlcHRlZCBmaWxlIHR5cGUuIFRoZSBhY2NlcHRlZCBmaWxlIHR5cGVzIGFyZSB7dHlwZXN9Jz86IHN0cmluZztcbiAgJ0ZpbGUge2Rpc3BsYXlOYW1lfSBpcyB0b28gYmlnLiBUaGUgYWNjZXB0ZWQgZmlsZSBzaXplIGlzIGxlc3MgdGhhbiB7cm91bmRGaWxlU2l6ZX0nPzogc3RyaW5nO1xuICAnT3VyIGZpbGUgdXBsb2FkIGxpbWl0IGlzIHttYXhGaWxlc30ge2ZpbGVzVGV4dH0nPzogc3RyaW5nO1xuICAnTm8gc2VhcmNoIHJlc3VsdHMgZm91bmQgZm9yIFwie3NlYXJjaH1cIic/OiBzdHJpbmc7XG4gICdBbiBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlck9wdGlvbnMge1xuICAvKipcbiAgICogUmVzdHJpY3QgZmlsZSB0eXBlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHBpY2tlZC4gRm9ybWF0cyBhY2NlcHRlZDpcbiAgICogIC0gLnBkZiA8LSBhbnkgZmlsZSBleHRlbnNpb25cbiAgICogIC0gaW1hZ2UvanBlZyA8LSBhbnkgbWltZSB0eXBlIGNvbW1vbmx5IGtub3duIGJ5IGJyb3dzZXJzXG4gICAqICAtIGltYWdlLyogPC0gYWNjZXB0IGFsbCB0eXBlcyBvZiBpbWFnZXNcbiAgICogIC0gdmlkZW8vKiA8LSBhY2NlcHQgYWxsIHR5cGVzIG9mIHZpZGVvIGZpbGVzXG4gICAqICAtIGF1ZGlvLyogPC0gYWNjZXB0IGFsbCB0eXBlcyBvZiBhdWRpbyBmaWxlc1xuICAgKiAgLSBhcHBsaWNhdGlvbi8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgYXBwbGljYXRpb24gZmlsZXNcbiAgICogIC0gdGV4dC8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgdGV4dCBmaWxlc1xuICAgKi9cbiAgYWNjZXB0Pzogc3RyaW5nIHwgc3RyaW5nW107XG4gIC8qKlxuICAgKiBDdXN0b20gYWNjZXB0IGNoZWNrIGZ1bmN0aW9uXG4gICAqIGBgYGphdmFzY3JpcHRcbiAgICogYWNjZXB0Rm46IChmaWxlLCBvcHRpb25zKSA9PiB7XG4gICAqICByZXR1cm4gb3B0aW9ucy5taW1lRnJvbU1hZ2ljQnl0ZXMoZmlsZS5vcmlnaW5hbEZpbGUpLnRoZW4oKHJlcykgPT4geyAvLyB3ZSBjYW4gY2hlY2sgbWltZXR5cGUgZnJvbSBtYWdpYyBieXRlc1xuICAgKiAgICAvL2NvbnNvbGUubG9nKG9wdGlvbnMubWltZUZyb21FeHRlbnNpb24oZmlsZS5vcmlnaW5hbEZpbGUubmFtZSkpOyAvLyBvciBjaGVjayBleHRlbnNpb24gZnJvbSBmaWxlc3RhY2sgZXh0ZW5zaW9ucyBkYXRhYmFzZVxuICAgKiAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhY2NlcHQgdGhhdCBmaWxlJykgLy8gd2UgY2FuIHRocm93IGV4Y2VwdGlvbiB0byBibG9jayBmaWxlIHVwbG9hZFxuICAgKiAgICAvLyByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0Nhbm5vdCBhY2NlcHQgdGhhdCBmaWxlJycpIC8vIG9yIHJlamVjdCBhIHByb21pc2VcbiAgICogICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgKiAgfSk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBhY2NlcHRGbj86IChQaWNrZXJGaWxlTWV0YWRhdGEsIFBpY2tlckFjY2VwdEZuT3B0aW9ucykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICAvKipcbiAgICogUHJldmVudCBtb2RhbCBjbG9zZSBvbiB1cGxvYWQgZmFpbHVyZSBhbmQgYWxsb3cgdXNlcnMgdG8gcmV0cnkuXG4gICAqL1xuICBhbGxvd01hbnVhbFJldHJ5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqICBWYWxpZCBzb3VyY2VzIGFyZTpcbiAgICogIC0gbG9jYWxfZmlsZV9zeXN0ZW0gLSBEZWZhdWx0XG4gICAqICAtIHVybCAtIERlZmF1bHRcbiAgICogIC0gaW1hZ2VzZWFyY2ggLSBEZWZhdWx0XG4gICAqICAtIGZhY2Vib29rIC0gRGVmYXVsdFxuICAgKiAgLSBpbnN0YWdyYW0gLSBEZWZhdWx0XG4gICAqICAtIGdvb2dsZWRyaXZlIC0gRGVmYXVsdFxuICAgKiAgLSBkcm9wYm94IC0gRGVmYXVsdFxuICAgKiAgLSB3ZWJjYW0gLSBVc2VzIGRldmljZSBtZW51IG9uIG1vYmlsZS4gTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgaW4gU2FmYXJpIGFuZCBJRS5cbiAgICogIC0gdmlkZW8gLSBVc2VzIGRldmljZSBtZW51IG9uIG1vYmlsZS4gTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgaW4gU2FmYXJpIGFuZCBJRS5cbiAgICogIC0gYXVkaW8gLSBVc2VzIGRldmljZSBtZW51IG9uIG1vYmlsZS4gTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgaW4gU2FmYXJpIGFuZCBJRS5cbiAgICogIC0gYm94XG4gICAqICAtIGdpdGh1YlxuICAgKiAgLSBnbWFpbFxuICAgKiAgLSBnb29nbGVwaG90b3NcbiAgICogIC0gb25lZHJpdmVcbiAgICogIC0gb25lZHJpdmVmb3JidXNpbmVzc1xuICAgKiAgLSBjdXN0b21zb3VyY2UgLSBDb25maWd1cmUgdGhpcyBpbiB5b3VyIEZpbGVzdGFjayBEZXYgUG9ydGFsLlxuICAgKiAgLSB1bnNwbGFzaFxuICAgKi9cbiAgZnJvbVNvdXJjZXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFByb3ZpZGUgZGVmYXVsdCB0ZXh0IHZhbHVlIGZvciBJbWFnZSBTZWFyY2hcbiAgICogYGBgamF2YXNjcmlwdFxuICAgKiB3ZWJzZWFyY2g6IHtcbiAgICogIHByZWRlZmluZWRUZXh0OiAnU2FtcGxlIHRleHQnXG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICB3ZWJzZWFyY2g/OiBvYmplY3Q7XG4gIC8qKlxuICAgKiBDb250YWluZXIgd2hlcmUgcGlja2VyIHNob3VsZCBiZSBhcHBlbmRlZC4gT25seSByZWxldmFudCBmb3IgYGlubGluZWAgYW5kIGBkcm9wUGFuZWAgZGlzcGxheSBtb2Rlcy5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZyB8IE5vZGU7XG5cbiAgLyoqXG4gICAqIFR1cm4gb24gY2xlYW5pbmcgSlBFRyBpbWFnZSBleGlmLiBNZXRob2QgY2FuIGtlZXAgaW1hZ2Ugb3JpZW50YXRpb24gb3IgY29sb3IgcHJvZmlsZXNcbiAgICogYGBgamF2YXNjcmlwdFxuICAgKiBjbGVhbnVwSW1hZ2VFeGlmOiB7XG4gICAqICAga2VlcE9yaWVudGF0aW9uOiB0cnVlXG4gICAqICAga2VlcElDQ2FuZEFQUDogdHJ1ZVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgY2xlYW51cEltYWdlRXhpZj86IGJvb2xlYW4gfCB7XG4gICAga2VlcE9yaWVudGF0aW9uPzogYm9vbGVhbixcbiAgICBrZWVwSUNDYW5kQVBQPzogYm9vbGVhblxuICB9O1xuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSB0ZXh0IG9uIHRoZSBjbG91ZCBhdXRoZW50aWNhdGlvbiBzY3JlZW4gaW4gUGlja2VyLlxuICAgKiBVc2UgYSBjbG91ZCBzb3VyY2UgbmFtZSAoc2VlIHtAbGluayBQaWNrZXJPcHRpb25zLmZyb21Tb3VyY2VzfSlcbiAgICogb3IgYSAnZGVmYXVsdCcgYXMgYSBrZXksIHRoZW4gcHV0IHlvdXIgY3VzdG9tIG5vdGljZSBvciBjb25zZW50XG4gICAqIHRvIHRoZSAndG9wJyBvciB0aGUgJ2JvdHRvbScga2V5IHRvIHNob3cgaXQgcmVzcGVjdGl2bHkgYWJvdmUgb3IgdW5kZXIgJ0Nvbm5lY3QgYnV0dG9uJy5cbiAgICpcbiAgICogYGBgamF2YXNjcmlwdFxuICAgKiBjdXN0b21BdXRoVGV4dDoge1xuICAgKiAgIC8vIHVzZSBpdCBmb3IgZXZlcnkgY2xvdWQgYXV0aGVudGljYXRpb24gc2NyZWVuXG4gICAqICAgZGVmYXVsdDoge1xuICAgKiAgICAgdG9wOiBbXG4gICAqICAgICAgICdkZWZhdWx0IHRvcCBmaXJzdCBsaW5lJyxcbiAgICogICAgICAgJ2RlZmF1bHQgdG9wIHNlY29uZCBsaW5lJ1xuICAgKiAgICAgXSxcbiAgICogICAgIGJvdHRvbTogW1xuICAgKiAgICAgICAnZGVmYXVsdCBib3R0b20gZmlyc3QgbGluZScsXG4gICAqICAgICAgICdkZWZhdWx0IGJvdHRvbSBzZWNvbmQgbGluZSdcbiAgICogICAgIF1cbiAgICogICB9LFxuICAgKiAgIC8vIG92ZXJyaWRlIGEgZGVmYXVsdCBib3R0b20gdGV4dCBmb3Igb25seSBnbWFpbFxuICAgKiAgIGdtYWlsOiB7XG4gICAqICAgICBib3R0b206IFtcbiAgICogICAgICAgJ1dlIG5lZWQgeW91ciBwZXJtaXNzaW9uIHRvIGFjY2VzcyB5b3VyIGRhdGEgYW5kJyxcbiAgICogICAgICAgJ3Byb2Nlc3MgaXQgd2l0aCBvdXIgbWFjaGluZSBsZWFybmluZyBzeXN0ZW0uJ1xuICAgKiAgICAgXVxuICAgKiAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGN1c3RvbUF1dGhUZXh0PzogQ3VzdG9tQXV0aFRleHRPcHRpb25zO1xuICAvKipcbiAgICogUGlja2VyIGRpc3BsYXkgbW9kZSwgb25lIG9mIGAnaW5saW5lJ2AsIGAnb3ZlcmxheSdgLCBgJ2Ryb3BQYW5lJ2AgLSBkZWZhdWx0IGlzIGAnb3ZlcmxheSdgLlxuICAgKi9cbiAgZGlzcGxheU1vZGU/OiBQaWNrZXJEaXNwbGF5TW9kZTtcbiAgLyoqXG4gICAqIE1heCBudW1iZXIgb2YgZmlsZXMgdG8gdXBsb2FkIGNvbmN1cnJlbnRseS4gRGVmYXVsdCBpcyA0LlxuICAgKi9cbiAgY29uY3VycmVuY3k/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgY29udGFpbmVyIGZvciB5b3VyIGN1c3RvbSBzb3VyY2UuXG4gICAqL1xuICBjdXN0b21Tb3VyY2VDb250YWluZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgcGF0aCBmb3IgeW91ciBjdXN0b20gc291cmNlIGNvbnRhaW5lci5cbiAgICovXG4gIGN1c3RvbVNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGN1c3RvbSBzb3VyY2UuXG4gICAqL1xuICBjdXN0b21Tb3VyY2VOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogUHJvdmlkZSBhbiBvYmplY3QgZm9yIG1hcHBpbmcgcGlja2VyIHN0cmluZ3MgdG8geW91ciBvd24gc3RyaW5ncy5cbiAgICogU3RyaW5ncyBzdXJyb3VuZGVkIGJ5IGJyYWNrZXRzLCBgeyBmb29iYXIgfWAsIGFyZSBpbnRlcnBvbGF0ZWQgd2l0aCBydW50aW1lIHZhbHVlcy5cbiAgICogU291cmNlIGxhYmVscyBhcmUgYWxzbyBhdmFpbGFibGUgdG8gb3ZlcnJpZGUsIGUuZy4gRmFjZWJvb2ssIEluc3RhZ3JhbSwgRHJvcGJveCwgZXRjLlxuICAgKi9cbiAgY3VzdG9tVGV4dD86IFBpY2tlckN1c3RvbVRleHQ7XG4gIC8qKlxuICAgKiBzZXQgc3VwcG9ydCBlbWFpbCB0byBkaXNwbGF5IGluIGNhc2Ugb2YgZXJyb3JcbiAgICovXG4gIHN1cHBvcnRFbWFpbD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSByZW1vdmVzIHRoZSBoYXNoIHByZWZpeCBvbiBzdG9yZWQgZmlsZXMuXG4gICAqL1xuICBkaXNhYmxlU3RvcmFnZUtleT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgcmVtb3ZlcyBhYmlsaXR5IHRvIGVkaXQgaW1hZ2VzLlxuICAgKi9cbiAgZGlzYWJsZVRyYW5zZm9ybWVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERpc2FibGVzIGFsdCB0ZXh0IHZpZXcvZWRpdCBpbiB0aGUgc3VtbWFyeSBzY3JlZW4uXG4gICAqL1xuICBkaXNhYmxlQWx0VGV4dD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBsb2NhbCBpbWFnZSB0aHVtYm5haWwgcHJldmlld3MgaW4gdGhlIHN1bW1hcnkgc2NyZWVuLlxuICAgKi9cbiAgZGlzYWJsZVRodW1ibmFpbHM/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29uZmlndXJlIHRoZSBkcm9wIHBhbmUgYmVoYXZpb3IsIGkuZS4gd2hlbiBgZGlzcGxheU1vZGVgIGlzIGBkcm9wUGFuZWAuXG4gICAqL1xuICBkcm9wUGFuZT86IFBpY2tlckRyb3BQYW5lT3B0aW9ucztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSB0aGUgYG9yaWdpbmFsRmlsZWAgbWV0YWRhdGEgd2lsbCBiZSB0aGUgYWN0dWFsIGBGaWxlYCBvYmplY3QgaW5zdGVhZCBvZiBhIFBPSk9cbiAgICovXG4gIGV4cG9zZU9yaWdpbmFsRmlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGRyb3Agem9uZSB0byBiZSBhY3RpdmUgb24gYWxsIHZpZXdzLiBEZWZhdWx0IGlzIGFjdGl2ZSBvbmx5IG9uIGxvY2FsIGZpbGUgc291cmNlLlxuICAgKi9cbiAgZ2xvYmFsRHJvcFpvbmU/OiBib29sZWFuO1xuICAvKipcbiAgICogSGlkZSB0aGUgcGlja2VyIG1vZGFsIFVJIG9uY2UgdXBsb2FkaW5nIGJlZ2lucy4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIGhpZGVNb2RhbFdoZW5VcGxvYWRpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGltYWdlIGRpbWVuc2lvbnMuIGUuZy4gWzgwMCwgNjAwXS4gT25seSBmb3IgSlBFRywgUE5HLCBhbmQgQk1QIGZpbGVzLlxuICAgKiBMb2NhbCBhbmQgY3JvcHBlZCBpbWFnZXMgd2lsbCBiZSByZXNpemVkICh1cHNjYWxlZCBvciBkb3duc2NhbGVkKSB0byB0aGUgc3BlY2lmaWVkIGRpbWVuc2lvbnMgYmVmb3JlIHVwbG9hZGluZy5cbiAgICogVGhlIG9yaWdpbmFsIGhlaWdodCB0byB3aWR0aCByYXRpbyBpcyBtYWludGFpbmVkLiBUbyByZXNpemUgYWxsIGltYWdlcyBiYXNlZCBvbiB0aGUgd2lkdGgsIHNldCBbd2lkdGgsIG51bGxdLCBlLmcuIFs4MDAsIG51bGxdLlxuICAgKiBGb3IgdGhlIGhlaWdodCBzZXQgW251bGwsIGhlaWdodF0sIGUuZy4gW251bGwsIDYwMF0uXG4gICAqL1xuICBpbWFnZURpbT86IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBTcGVjaWZ5IG1heGltdW0gaW1hZ2UgZGltZW5zaW9ucy4gZS5nLiBbODAwLCA2MDBdLiBPbmx5IGZvciBKUEVHLCBQTkcsIGFuZCBCTVAgZmlsZXMuXG4gICAqIEltYWdlcyBiaWdnZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGRpbWVuc2lvbnMgd2lsbCBiZSByZXNpemVkIHRvIHRoZSBtYXhpbXVtIHNpemUgd2hpbGUgbWFpbnRhaW5pbmcgdGhlIG9yaWdpbmFsIGFzcGVjdCByYXRpby5cbiAgICogVGhlIG91dHB1dCB3aWxsIG5vdCBiZSBleGFjdGx5IDgwMHg2MDAgdW5sZXNzIHRoZSBpbWFnZU1heCBtYXRjaGVzIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIG9yaWdpbmFsIGltYWdlLlxuICAgKi9cbiAgaW1hZ2VNYXg/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogU3BlY2lmeSBtaW5pbXVtIGltYWdlIGRpbWVuc2lvbnMuIGUuZy4gWzgwMCwgNjAwXS4gT25seSBmb3IgSlBFRywgUE5HLCBhbmQgQk1QIGZpbGVzLlxuICAgKiBJbWFnZXMgc21hbGxlciB0aGFuIHRoZSBzcGVjaWZpZWQgZGltZW5zaW9ucyB3aWxsIGJlIHVwc2NhbGVkIHRvIHRoZSBtaW5pbXVtIHNpemUgd2hpbGUgbWFpbnRhaW5pbmcgdGhlIG9yaWdpbmFsIGFzcGVjdCByYXRpby5cbiAgICogVGhlIG91dHB1dCB3aWxsIG5vdCBiZSBleGFjdGx5IDgwMHg2MDAgdW5sZXNzIHRoZSBpbWFnZU1pbiBtYXRjaGVzIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIG9yaWdpbmFsIGltYWdlLlxuICAgKi9cbiAgaW1hZ2VNaW4/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogU2V0cyBsb2NhbGUuIEFjY2VwdHM6IGNhLCBkYSwgZGUsIGVuLCBlcywgZnIsIGhlLCBpdCwgamEsIGtvLCBubCwgbm8sIHBsLCBwdCwgc3YsIHJ1LCB2aSwgemgsIHRyXG4gICAqL1xuICBsYW5nPzogc3RyaW5nO1xuICAvKipcbiAgICogTWluaW11bSBudW1iZXIgb2YgZmlsZXMgcmVxdWlyZWQgdG8gc3RhcnQgdXBsb2FkaW5nLiBEZWZhdWx0cyB0byAxLlxuICAgKi9cbiAgbWluRmlsZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBmaWxlcyBhbGxvd2VkIHRvIHVwbG9hZC4gRGVmYXVsdHMgdG8gMS5cbiAgICovXG4gIG1heEZpbGVzPzogbnVtYmVyO1xuICAvKipcbiAgICogUmVzdHJpY3Qgc2VsZWN0ZWQgZmlsZXMgdG8gYSBtYXhpbXVtIG51bWJlciBvZiBieXRlcy4gKGUuZy4gMTAgXFwqIDEwMjQgXFwqIDEwMjQgZm9yIDEwTUIgbGltaXQpLlxuICAgKi9cbiAgbWF4U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmYXVsdCB2aWV3IHR5cGUgb3B0aW9uIGZvciBmaWxlIGJyb3dzZXJcbiAgICovXG4gIHZpZXdUeXBlPzogJ2dyaWQnIHwgJ2xpc3QnO1xuXG4gIC8qKlxuICAgKiBUaW1lb3V0IGZvciBlcnJvciBtZXNzYWdlc1xuICAgKi9cbiAgZXJyb3JzVGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFNwZWNpZnkgW3dpZHRoLCBoZWlnaHRdIGluIHBpeGVscyBvZiB0aGUgZGVza3RvcCBtb2RhbC5cbiAgICovXG4gIG1vZGFsU2l6ZT86IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhbGwgdXBsb2FkcyBpbiBhIHBpY2sgYXJlIGNhbmNlbGxlZC5cbiAgICovXG4gIG9uQ2FuY2VsPzogUGlja2VyVXBsb2FkRG9uZUNhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIFVJIGlzIGV4aXRlZC5cbiAgICovXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIFVJIGlzIG1vdW50ZWQuXG4gICAqIEBwYXJhbSBQaWNrZXJJbnN0YW5jZSBhcHBsaWNhdGlvbiBoYW5kbGVcbiAgICovXG4gIG9uT3Blbj86IChoYW5kbGU6IFBpY2tlckluc3RhbmNlKSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW5ldmVyIHVzZXIgc2VsZWN0cyBhIGZpbGUuXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIC8vIFVzaW5nIHRvIHZldG8gZmlsZSBzZWxlY3Rpb25cbiAgICogLy8gSWYgeW91IHRocm93IGFueSBlcnJvciBpbiB0aGlzIGZ1bmN0aW9uIGl0IHdpbGwgcmVqZWN0IHRoZSBmaWxlIHNlbGVjdGlvbi5cbiAgICogLy8gVGhlIGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgYXMgYW4gYWxlcnQuXG4gICAqIG9uRmlsZVNlbGVjdGVkKGZpbGUpIHtcbiAgICogICBpZiAoZmlsZS5zaXplID4gMTAwMCAqIDEwMDApIHtcbiAgICogICAgIHRocm93IG5ldyBFcnJvcignRmlsZSB0b28gYmlnLCBzZWxlY3Qgc29tZXRoaW5nIHNtYWxsZXIgdGhhbiAxTUInKTtcbiAgICogICB9XG4gICAqIH1cbiAgICpcbiAgICogLy8gVXNpbmcgdG8gY2hhbmdlIHNlbGVjdGVkIGZpbGUgbmFtZVxuICAgKiAvLyBOT1RFOiBUaGlzIGN1cnJlbnRseSBvbmx5IHdvcmtzIGZvciBsb2NhbCB1cGxvYWRzXG4gICAqIG9uRmlsZVNlbGVjdGVkKGZpbGUpIHtcbiAgICogICAvLyBJdCdzIGltcG9ydGFudCB0byByZXR1cm4gYSBuZXcgZmlsZSBieSB0aGUgZW5kIG9mIHRoaXMgZnVuY3Rpb24uXG4gICAqICAgcmV0dXJuIHsgLi4uZmlsZSwgbmFtZTogJ2ZvbycgfTtcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbiBhbHNvIHJldHVybiBhIFByb21pc2UgdG8gYWxsb3cgYXN5bmNocm9ub3VzIHZhbGlkYXRpb24gbG9naWMuXG4gICAqIFlvdSBjYW4gcGFzcyBhIGZpbGUgb2JqZWN0IHRvIGByZXNvbHZlYCBmb3IgY2hhbmdpbmcgdGhlIGZpbGUgbmFtZSwgaXQgd2lsbCBiZWhhdmUgdGhlIHNhbWUgYXMgd2hlblxuICAgKiB0aGUgZmlsZSBpcyByZXR1cm5lZCBmcm9tIHRoZSBub24tYXN5bmMgY2FsbGJhY2suXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIG9uRmlsZVNlbGVjdGVkKGZpbGUpIHtcbiAgICogICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgKiAgICAgLy8gRG8gc29tZXRoaW5nIGFzeW5jXG4gICAqICAgICByZXNvbHZlKCk7XG4gICAqICAgICAvLyBPciByZWplY3QgdGhlIHNlbGVjdGlvbiB3aXRoIHJlamVjdCgpXG4gICAqICAgfSk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBvbkZpbGVTZWxlY3RlZD86IFBpY2tlckZpbGVDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGEgZmlsZSB1cGxvYWQgaGFzIGJlZW4gY2FuY2VsZWQuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRDYW5jZWw/OiBQaWNrZXJGaWxlQ2FuY2VsQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIGZpbGUgYmVnaW5zIHVwbG9hZGluZy5cbiAgICovXG4gIG9uRmlsZVVwbG9hZFN0YXJ0ZWQ/OiBQaWNrZXJGaWxlV2l0aFRva2VuQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIGZpbGUgaXMgZG9uZSB1cGxvYWRpbmcuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRGaW5pc2hlZD86IFBpY2tlckZpbGVDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHVwbG9hZGluZyBhIGZpbGUgZmFpbHMuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRGYWlsZWQ/OiBQaWNrZXJGaWxlRXJyb3JDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCBkdXJpbmcgbXVsdGktcGFydCB1cGxvYWQgcHJvZ3Jlc3MgZXZlbnRzLiBMb2NhbCBmaWxlcyBvbmx5LlxuICAgKi9cbiAgb25GaWxlVXBsb2FkUHJvZ3Jlc3M/OiBQaWNrZXJGaWxlUHJvZ3Jlc3NDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGZpbGUgaXMgY3JvcHBlZCBpbiBwaWNrZXJcbiAgICovXG4gIG9uRmlsZUNyb3BwZWQ/OiBQaWNrZXJGaWxlQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB1cGxvYWRpbmcgc3RhcnRzICh1c2VyIGluaXRpYXRlcyB1cGxvYWRpbmcpLlxuICAgKi9cbiAgb25VcGxvYWRTdGFydGVkPzogUGlja2VyVXBsb2FkU3RhcnRlZENhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYWxsIGZpbGVzIGhhdmUgYmVlbiB1cGxvYWRlZC5cbiAgICovXG4gIG9uVXBsb2FkRG9uZT86IFBpY2tlclVwbG9hZERvbmVDYWxsYmFjaztcblxuICAvKipcbiAgICogRGVmaW5lIGEgdW5pcXVlIGlkIGZvciB0aGUgYXBwbGljYXRpb24gbW91bnQgcG9pbnQuXG4gICAqIE1heSBiZSB1c2VmdWwgZm9yIG1vcmUgYWR2YW5jZWQgdXNlIGNhc2VzLlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IHdpc2ggdG8gaGF2ZSBtb3JlIHRoYW4gb25lIHBpY2tlciBpbnN0YW5jZSBvcGVuIGF0IG9uY2UsXG4gICAqIHRoZW4gZWFjaCB3aWxsIG5lZWQgdGhlaXIgb3duIHVuaXF1ZSByb290SWQuXG4gICAqXG4gICAqICoqTm90ZToqKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIHdoZW4gYGRpc3BsYXlNb2RlYCBpcyBgZHJvcFBhbmVgLlxuICAgKi9cbiAgcm9vdElkPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciB0byBzdGFydCB1cGxvYWRpbmcgYXV0b21hdGljYWxseSB3aGVuIG1heEZpbGVzIGlzIGhpdC4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIHN0YXJ0VXBsb2FkaW5nV2hlbk1heEZpbGVzUmVhY2hlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBmaWxlIHN0b3JhZ2UuXG4gICAqL1xuICBzdG9yZVRvPzogUGlja2VyU3RvcmVPcHRpb25zO1xuICAvKipcbiAgICogU3BlY2lmeSBvcHRpb25zIGZvciBpbWFnZXMgcGFzc2VkIHRvIHRoZSBjcm9wIFVJLlxuICAgKi9cbiAgdHJhbnNmb3JtYXRpb25zPzogUGlja2VyVHJhbnNmb3JtYXRpb25PcHRpb25zO1xuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgdGhlIG5ldyB0cmFuc2Zvcm1hdGlvbnMgVUkuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICB0cmFuc2Zvcm1hdGlvbnNVST86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBsb2NhbCBmaWxlIHVwbG9hZHMuXG4gICAqL1xuICB1cGxvYWRDb25maWc/OiBVcGxvYWRPcHRpb25zO1xuICAvKipcbiAgICogU3RhcnQgdXBsb2FkaW5nIGltbWVkaWF0ZWx5IG9uIGZpbGUgc2VsZWN0aW9uLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqIEBpbXBvcnRhbnQgVGhlIGZlYXR1cmUgaXMgY2FuIGJlIGVuYWJsZWQgb25seSBpZiBjcm9wIGlzIGRpc2FibGVkIC0gZGlzYWJsZVRyYW5zZm9ybWVyOiB0cnVlXG4gICAqL1xuICB1cGxvYWRJbkJhY2tncm91bmQ/OiBib29sZWFuO1xuICAvKipcbiAgICogU2V0cyB0aGUgcmVzb2x1dGlvbiBvZiByZWNvcmRlZCB2aWRlby4gT25lIG9mIFwiMzIweDI0MFwiLCBcIjY0MHg0ODBcIiBvciBcIjEyODB4NzIwXCIuIERlZmF1bHQgaXMgYFwiNjQweDQ4MFwiYC5cbiAgICovXG4gIHZpZGVvUmVzb2x1dGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZSBTZW50cnkgQnJlYWRjcnVtYnMgbWVjaGFuaXNtIHRvIGxvZyBpbmZvcm1hdGlvbiBhYm91dCBvY2N1cmVkIGVycm9ycy5cbiAgICogSXQgY2FuIG92ZXJyaWRlIGdsb2JhbCBvYmplY3RzIGxpa2UgY29uc29sZSwgZXJyb3IgZXRjLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICB1c2VTZW50cnlCcmVhZGNydW1icz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoaWNoIFBpY2tlciBpbnN0YW5jZSBzaG91bGQgcmVzcG9uZCB0byBwYXN0ZSBldmVudC5cbiAgICogQnkgZGVmYXVsdCBvbmx5IGhvdmVyZWQgaW5zdGFuY2UgcmVzcG9uZHMgdG8gZXZlbnQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbiA9IGZhbHNlfSBwYXN0ZVRvRmlyc3RJblZpZXdQb3J0IElmIG5vbmUgaW5zdGFuY2UgaXMgaG92ZXJlZCB0YWtlIGZpcnN0IHBpY2tlciBpbnN0YW5jZSBmdWxseSB2aXNpYmxlIGluIHZpZXdwb3J0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbiA9IGZhbHNlfSBwYXN0ZVRvRmlyc3RJbnN0YW5jZSBJZiBub25lIGluc3RhbmNlIGlzIGhvdmVyZWQgdGFrZSBmaXJzdCBwaWNrZXIgaW5zdGFuY2UgdGhhdCBpcyBpbml0aWFsaXplZFxuICAgKiBAcGFzdGVUb0ZpcnN0SW5WaWV3UG9ydCBpcyBjaGVja2VkIGZpcnN0XG4gICAqL1xuICBwYXN0ZU1vZGU/OiB7XG4gICAgcGFzdGVUb0ZpcnN0SW5WaWV3UG9ydD86IGJvb2xlYW4sXG4gICAgcGFzdGVUb0ZpcnN0SW5zdGFuY2U/OiBib29sZWFuXG4gIH07XG4gIC8qKlxuICAgKiBEaXNhYmxlL0VuYWJsZSBwb3NzaWJpbGl0eSB0byB1cGxvYWQgZGlyZWN0b3JpZXMuXG4gICAqL1xuICBkaXNhYmxlRGlyZWN0b3J5VXBsb2FkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVuYWJsZS9EaXNhYmxlIE1pbmkgVXBsb2FkZXJcbiAgICovXG4gIG1pbmlVcGxvYWRlcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGUvRGlzYWJsZSBwb3NzaWJpbGl0eSB0byBtdWx0aXBsZSBmaWxlIHVwbG9hZFxuICAgKi9cbiAgbXVsdGlwbGVGaWxlVXBsb2FkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJDcm9wT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNYWludGFpbiBhc3BlY3QgcmF0aW8gZm9yIGNyb3Agc2VsZWN0aW9uLiAoZS5nLiAxNi85LCA4MDAvNjAwKS5cbiAgICovXG4gIGFzcGVjdFJhdGlvPzogbnVtYmVyO1xuICAvKipcbiAgICogRm9yY2UgYWxsIGltYWdlcyB0byBiZSBjcm9wcGVkIGJlZm9yZSB1cGxvYWRpbmcuXG4gICAqL1xuICBmb3JjZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyVHJhbnNmb3JtYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBjcm9wLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBjcm9wPzogYm9vbGVhbiB8IFBpY2tlckNyb3BPcHRpb25zO1xuICAvKipcbiAgICogRW5hYmxlIGNpcmNsZSBjcm9wLiBEaXNhYmxlZCBpZiBjcm9wLmFzcGVjdFJhdGlvIGlzIGRlZmluZWQgYW5kIG5vdCAxLiBDb252ZXJ0cyB0byBQTkcuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIGNpcmNsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGUgaW1hZ2Ugcm90YXRpb24uIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIHJvdGF0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdsb2JhbCBmb3JjZSBjcm9wIG9wdGlvbi4gQ2FuIGJlIHVzZSBpZSB3aXRoIGNpcmNsZVxuICAgKi9cbiAgZm9yY2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckFjY2VwdEZuT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQcm92aWRlZCBhY2NlcHQgc3RyaW5nXG4gICAqL1xuICBhY2NlcHQ6IHN0cmluZ1tdO1xuICAvKipcbiAgICogQWNjZXB0IHN0cmluZyBjb252ZXJ0ZWQgdG8gbWltZXR5cGVcbiAgICovXG4gIGFjY2VwdE1pbWU6IHN0cmluZ1tdO1xuICAvKipcbiAgICogTWltZXR5cGUgYmFzZWQgbWFnaWMgYnl0ZXNcbiAgICoge0BsaW5rIGh0dHBzOi8vZmlsZXN0YWNrLmdpdGh1Yi5pby9maWxlc3RhY2stanMvZ2xvYmFscy5odG1sI2dldG1pbWV0eXBlfVxuICAgKi9cbiAgbWltZUZyb21NYWdpY0J5dGVzOiBQcm9taXNlPHN0cmluZz47XG4gIC8qKlxuICAgKiBNaW1ldHlwZSBiYXNlZCBvbiBmaWxlIGV4dGVuc2lvblxuICAgKiB7QGxpbmsgaHR0cHM6Ly9maWxlc3RhY2suZ2l0aHViLmlvL2ZpbGVzdGFjay1qcy9nbG9iYWxzLmh0bWwjZXh0ZW5zaW9udG9taW1lfVxuICAgKi9cbiAgbWltZUZyb21FeHRlbnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICogQSBzeW5jaHJvbm91cy1sb29raW5nIHdyYXBwZXIgZm9yIGxvYWRpbmcgdGhlIHBpY2tlciBhbmQgY2FsbGluZyBpdHMgbWV0aG9kcy5cbiAqIFRoaXMgaXMgY3VycmVudGx5IG5lZWRlZCBiZWNhdXNlIHRoZSBwaWNrZXIgbW9kdWxlIGlzIGxvYWRlZCBhc3luY2hyb25vdXNseS5cbiAqIEV2ZW50dWFsbHkgd2Ugc2hvdWxkIG9mZmVyIGEgYnVuZGxlIHdpdGggdGhlIHBpY2tlciBtb2R1bGUgaW5jbHVkZWQuXG4gKi9cbmNsYXNzIFBpY2tlckxvYWRlciB7XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQ6IFByb21pc2U8UGlja2VySW5zdGFuY2U+O1xuICBjb25zdHJ1Y3RvcihjbGllbnQ6IENsaWVudCwgb3B0aW9ucz86IFBpY2tlck9wdGlvbnMpIHtcbiAgICBjb25zdCB2YWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihQaWNrZXJQYXJhbXNTY2hlbWEpKG9wdGlvbnMpO1xuXG4gICAgaWYgKHZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHZhbGlkYXRlUmVzLmVycm9ycy5mb3JFYWNoKGVycm9yID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnBhdGguaW5jbHVkZXMoJ2Zyb21Tb3VyY2VzJykpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFdhcm5pbmc6IEludmFsaWQgc291cmNlIFxcXCIke2Vycm9yLmluc3RhbmNlfVxcXCIgZm91bmQgYW5kIHJlbW92ZWQhYCk7XG4gICAgICAgICAgb3B0aW9ucy5mcm9tU291cmNlcyA9IG9wdGlvbnMuZnJvbVNvdXJjZXMuZmlsdGVyKHNvdXJjZSA9PiBzb3VyY2UgIT09IGVycm9yLmluc3RhbmNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgcGlja2VyIHBhcmFtc2AsIHZhbGlkYXRlUmVzLmVycm9ycywgRmlsZXN0YWNrRXJyb3JUeXBlLlZBTElEQVRJT04pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmICghb3B0aW9ucy5mcm9tU291cmNlcy5sZW5ndGgpIHtcbiAgICAgICAgZGVsZXRlIG9wdGlvbnMuZnJvbVNvdXJjZXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0aGlzLmxvYWRNb2R1bGUoY2xpZW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIG9wZW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLm9wZW4oKTtcbiAgfVxuXG4gIGFzeW5jIGNyb3AoZmlsZXM6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLmNyb3AoZmlsZXMpO1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLmNsb3NlKCk7XG4gIH1cblxuICBhc3luYyBjYW5jZWwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGlja2VyID0gYXdhaXQgdGhpcy5faW5pdGlhbGl6ZWQ7XG4gICAgYXdhaXQgcGlja2VyLmNhbmNlbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkTW9kdWxlKGNsaWVudDogQ2xpZW50LCBvcHRpb25zPzogUGlja2VyT3B0aW9ucyk6IFByb21pc2U8UGlja2VySW5zdGFuY2U+IHtcbiAgICBjb25zdCB7IHNlc3Npb246IHsgdXJsczogeyBwaWNrZXJVcmw6IHVybCB9IH0gfSA9IGNsaWVudDtcbiAgICBjb25zdCBQaWNrZXIgPSBhd2FpdCBsb2FkTW9kdWxlKEZJTEVTVEFDS19NT0RVTEVTLlBJQ0tFUiwgdXJsKTtcbiAgICByZXR1cm4gbmV3IFBpY2tlcihjbGllbnQsIG9wdGlvbnMpO1xuICB9XG59XG5cbi8qKlxuICogTG9hZHMgYW5kIGNyZWF0ZXMgcGlja2VyIGluc3RhbmNlXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBjbGllbnRcbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBwaWNrZXIgPSAoY2xpZW50OiBDbGllbnQsIG9wdGlvbnM/OiBQaWNrZXJPcHRpb25zKTogUGlja2VySW5zdGFuY2UgPT4ge1xuICByZXR1cm4gbmV3IFBpY2tlckxvYWRlcihjbGllbnQsIG9wdGlvbnMpO1xufTtcbiJdfQ==
|
|
153
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QU0sdUJBQWYsQ0FBZ0I7d0JBQzFDLHFCQUFNLElBQUEsbUJBQVUsRUFBQywwQkFBaUIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUE7O3dCQUF4RCxNQUFNLEdBQUcsU0FBK0M7d0JBQzlELHNCQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBQzs7OztLQUNwQztJQUNILG1CQUFDO0FBQUQsQ0FoREEsQUFnREMsSUFBQTtBQUVEOzs7Ozs7R0FNRztBQUNJLElBQU0sTUFBTSxHQUFHLFVBQUMsTUFBYyxFQUFFLE9BQXVCO0lBQzVELE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQztBQUZXLFFBQUEsTUFBTSxVQUVqQiIsImZpbGUiOiJsaWIvcGlja2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2tcbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBsb2FkTW9kdWxlLCBGSUxFU1RBQ0tfTU9EVUxFUyB9IGZyb20gJ0BmaWxlc3RhY2svbG9hZGVyJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yLCBGaWxlc3RhY2tFcnJvclR5cGUgfSBmcm9tICcuLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tICcuL2NsaWVudCc7XG5pbXBvcnQgeyBGU1Byb2dyZXNzRXZlbnQsIFVwbG9hZE9wdGlvbnMsIFdvcmtmbG93Q29uZmlnIH0gZnJvbSAnLi9hcGkvdXBsb2FkL3R5cGVzJztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgUGlja2VyUGFyYW1zU2NoZW1hIH0gZnJvbSAnLi8uLi9zY2hlbWEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckluc3RhbmNlIHtcbiAgLyoqXG4gICAqIENsb3NlIHBpY2tlci4gVGhpcyBvcGVyYXRpb24gaXMgaWRlbXBvdGVudC5cbiAgICovXG4gIGNsb3NlOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBDYW5jZWwgcGlja2VyIHVwbG9hZHMuIFRoaXMgb3BlcmF0aW9uIGlzIGlkZW1wb3RlbnQuXG4gICAqL1xuICBjYW5jZWw6ICgpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIE9wZW4gcGlja2VyLiBUaGlzIG9wZXJhdGlvbiBpcyBpZGVtcG90ZW50LlxuICAgKi9cbiAgb3BlbjogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogU3BlY2lmeSBhIGxpc3Qgb2YgZmlsZXMgdG8gb3BlbiBpbiB0aGUgcGlja2VyIGZvciBjcm9wcGluZ1xuICAgKlxuICAgKiAjIyMgRXhhbXBsZVxuICAgKlxuICAgKiBgYGBqc1xuICAgKiAvLyA8aW5wdXQgaWQ9XCJmaWxlU2VsZWN0XCIgdHlwZT1cImZpbGVcIj5cbiAgICpcbiAgICogY29uc3QgaW5wdXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlU2VsZWN0Jyk7XG4gICAqIGNvbnN0IHBpY2tlciA9IGNsaWVudC5waWNrZXIoe1xuICAgKiAgIG9uVXBsb2FkRG9uZTogcmVzID0+IGNvbnNvbGUubG9nKHJlcyksXG4gICAqIH0pO1xuICAgKlxuICAgKiBpbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7XG4gICAqICAgcGlja2VyLmNyb3AoZS50YXJnZXQuZmlsZXMpO1xuICAgKiB9KTtcbiAgICpcbiAgICogLy8gT3IgcGFzcyBhbiBhcnJheSBvZiBVUkwgc3RyaW5nc1xuICAgKiBjb25zdCB1cmxzID0gW1xuICAgKiAgICdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9mb3hfaW5fZm9yZXN0MS5qcGcnLFxuICAgKiAgICdodHRwczovL2Qxd3RxYWZmYWFqNjN6LmNsb3VkZnJvbnQubmV0L2ltYWdlcy9zYWlsLmpwZycsXG4gICAqIF07XG4gICAqIHBpY2tlci5jcm9wKHVybHMpO1xuICAgKiBgYGBcbiAgICovXG4gIGNyb3A6IChmaWxlczogYW55W10pID0+IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyQ3JvcHBlZERhdGEge1xuICBjcm9wQXJlYToge1xuICAgIC8qKlxuICAgICAqIFt4LCB5XVxuICAgICAqL1xuICAgIHBvc2l0aW9uOiBbbnVtYmVyLCBudW1iZXJdO1xuICAgIC8qKlxuICAgICAqIFt3aWR0aCwgaGVpZ2h0XVxuICAgICAqL1xuICAgIHNpemU6IFtudW1iZXIsIG51bWJlcl07XG4gIH07XG4gICAgLyoqXG4gICAgICogW3dpZHRoLCBoZWlnaHRdXG4gICAgICovXG4gIG9yaWdpbmFsSW1hZ2VTaXplOiBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG5leHBvcnQgZW51bSBSb3RhdGVEaXJlY3Rpb24ge1xuICBjdyA9ICdDVycsXG4gIGNjdz0gJ0NDVycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyUm90YXRlZERhdGEge1xuICAvKipcbiAgICogQW1vdW50IHJvdGF0ZWQgaW4gZGVncmVlcy5cbiAgICovXG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBDYW4gYmUgQ1cgb3IgQ0NXIChjbG9ja3dpc2UgLyBjb3VudGVyLWNsb2Nrd2lzZSlcbiAgICovXG4gIGRpcmVjdGlvbjogUm90YXRlRGlyZWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgY2xvdWQgY29udGFpbmVyIGZvciB0aGUgdXBsb2FkZWQgZmlsZS5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGFuZCBzaXplIGluZm9ybWF0aW9uIGZvciBjcm9wcGVkIGltYWdlcy5cbiAgICovXG4gIGNyb3BwZWQ/OiBQaWNrZXJDcm9wcGVkRGF0YTtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBmaWxlbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRmlsZXN0YWNrIGhhbmRsZSBmb3IgdGhlIHVwbG9hZGVkIGZpbGUuXG4gICAqL1xuICBoYW5kbGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBoYXNoLXByZWZpeGVkIGNsb3VkIHN0b3JhZ2UgcGF0aC5cbiAgICovXG4gIGtleT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBtaW1ldHlwZTogc3RyaW5nO1xuICAvKipcbiAgICogUHJvcGVydGllcyBvZiB0aGUgbG9jYWwgYmluYXJ5IGZpbGUuIEFsc28gc2VlIHRoZSBwaWNrIG9wdGlvbiBgZXhwb3NlT3JpZ2luYWxGaWxlYCBpZiB5b3Ugd2FudCB0aGUgdW5kZXJseWluZyBgRmlsZWAgb2JqZWN0LlxuICAgKi9cbiAgb3JpZ2luYWxGaWxlPzogb2JqZWN0IHwgRmlsZTtcbiAgLyoqXG4gICAqIFRoZSBvcmlnaW4gb2YgdGhlIGZpbGUsIGUuZy4gL0ZvbGRlci9maWxlLmpwZy5cbiAgICovXG4gIG9yaWdpbmFsUGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogRGlyZWN0aW9uIGFuZCB2YWx1ZSBpbmZvcm1hdGlvbiBmb3Igcm90YXRlZCBpbWFnZXMuXG4gICAqL1xuICByb3RhdGVkPzogUGlja2VyUm90YXRlZERhdGE7XG4gIC8qKlxuICAgKiBTaXplIGluIGJ5dGVzIG9mIHRoZSB1cGxvYWRlZCBmaWxlLlxuICAgKi9cbiAgc2l6ZTogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBmcm9tIHdoZXJlIHRoZSBmaWxlIHdhcyBwaWNrZWQuXG4gICAqL1xuICBzb3VyY2U6IHN0cmluZztcbiAgLyoqXG4gICAqIEluZGljYXRlcyBGaWxlc3RhY2sgdHJhbnNpdCBzdGF0dXMuXG4gICAqL1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHV1aWQgZm9yIHRyYWNraW5nIHRoaXMgZmlsZSBpbiBjYWxsYmFja3MuXG4gICAqL1xuICB1cGxvYWRJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEZpbGVzdGFjayBDRE4gVVJMIGZvciB0aGUgdXBsb2FkZWQgZmlsZS5cbiAgICovXG4gIHVybDogc3RyaW5nO1xuICAvKipcbiAgICogQWx0IHRleHQgZm9yIGltYWdlc1xuICAgKi9cbiAgYWx0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQXV0aFRleHRPcHRpb25zIHtcbiAgW2tleTogc3RyaW5nXToge1xuICAgIHRvcD86IHN0cmluZ1tdLFxuICAgIGJvdHRvbT86IHN0cmluZ1tdXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyUmVzcG9uc2Uge1xuICBmaWxlc1VwbG9hZGVkOiBQaWNrZXJGaWxlTWV0YWRhdGFbXTtcbiAgZmlsZXNGYWlsZWQ6IFBpY2tlckZpbGVNZXRhZGF0YVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckZpbGVDYWxsYmFjayB7XG4gIChmaWxlOiBQaWNrZXJGaWxlTWV0YWRhdGEpOiB2b2lkIHwgUHJvbWlzZTxhbnk+O1xufVxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlV2l0aFRva2VuQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhLCB0b2tlbj86IHtwYXVzZT86ICgpID0+IHZvaWQsIHJlc3VtZT86ICgpID0+IHZvaWQsIGNhbmNlbD86ICgpID0+IHZvaWR9KTogdm9pZCB8IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlQ2FuY2VsQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJGaWxlRXJyb3JDYWxsYmFjayB7XG4gIChmaWxlOiBQaWNrZXJGaWxlTWV0YWRhdGEsIGVycm9yOiBFcnJvcik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRmlsZVByb2dyZXNzQ2FsbGJhY2sge1xuICAoZmlsZTogUGlja2VyRmlsZU1ldGFkYXRhLCBldmVudDogRlNQcm9ncmVzc0V2ZW50KTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJVcGxvYWRTdGFydGVkQ2FsbGJhY2sge1xuICAoZmlsZXM6IFBpY2tlckZpbGVNZXRhZGF0YVtdKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJVcGxvYWREb25lQ2FsbGJhY2sge1xuICAoZmlsZXM6IFBpY2tlclJlc3BvbnNlKTogdm9pZDtcbn1cblxuZXhwb3J0IGVudW0gUGlja2VyRGlzcGxheU1vZGUge1xuICBpbmxpbmUgPSAnaW5saW5lJyxcbiAgb3ZlcmxheSA9ICdvdmVybGF5JyxcbiAgZHJvcFBhbmUgPSAnZHJvcFBhbmUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlckRyb3BQYW5lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGNyb3AgVUkgZm9yIGRyb3BwZWQgZmlsZXMuXG4gICAqL1xuICBjcm9wRmlsZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSB0ZXh0IGNvbnRlbnQgaW4gdGhlIGRyb3AgcGFuZS5cbiAgICovXG4gIGN1c3RvbVRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBmaWxlIGlucHV0IG9uIGNsaWNrLiBUaGlzIGRvZXMgbm90IGRpc2FibGUgdGhlIGBvbkNsaWNrYCBjYWxsYmFjay5cbiAgICovXG4gIGRpc2FibGVDbGljaz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGZ1bGwtcGFnZSBkcm9wIHpvbmUgb3ZlcmxheS5cbiAgICovXG4gIG92ZXJsYXk/OiBib29sZWFuO1xuICBvbkRyYWdFbnRlcj86IChldnQ6IERyYWdFdmVudCkgPT4gdm9pZDtcbiAgb25EcmFnTGVhdmU/OiAoKSA9PiB2b2lkO1xuICBvbkRyYWdPdmVyPzogKGV2dDogRHJhZ0V2ZW50KSA9PiB2b2lkO1xuICBvbkRyb3A/OiAoZXZ0OiBEcmFnRXZlbnQpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBgb25TdWNjZXNzYCBtdXN0IGJlIHVzZWQgaW5zdGVhZCBvZiBgb25VcGxvYWREb25lYC4gVGhlIGRyb3AgcGFuZSB1c2VzIGl0cyBvd24gY2FsbGJhY2tzIGZvciBjb21wYXRpYmlsaXR5IHB1cnBvc2VzLiBUaGlzIG1pZ2h0IGV2ZW50dWFsbHkgY2hhbmdlLlxuICAgKi9cbiAgb25TdWNjZXNzPzogKGZpbGVzOiBQaWNrZXJGaWxlTWV0YWRhdGFbXSkgPT4gdm9pZDtcbiAgb25FcnJvcj86IChmaWxlczogUGlja2VyRmlsZU1ldGFkYXRhW10pID0+IHZvaWQ7XG4gIG9uUHJvZ3Jlc3M/OiAocGVyY2VudDogbnVtYmVyKSA9PiB2b2lkO1xuICBvbkNsaWNrPzogKGV2dDogYW55KSA9PiB2b2lkO1xuICAvKipcbiAgICogVG9nZ2xlIGljb24gZWxlbWVudCBpbiBkcm9wIHBhbmUuXG4gICAqL1xuICBzaG93SWNvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUb2dnbGUgdXBsb2FkIHByb2dyZXNzIGRpc3BsYXkuXG4gICAqL1xuICBzaG93UHJvZ3Jlc3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclN0b3JlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBMb2NhdGlvbiBmb3Igc3RvcmVkIGZpbGUuIE9uZSBvZiAnczMnLCAnZ2NzJywgJ2F6dXJlJywgJ3JhY2tzcGFjZScsIG9yICdkcm9wYm94Jy5cbiAgICovXG4gIGxvY2F0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmeSBzdG9yYWdlIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNldCBjb250YWluZXIgcGF0aC4gSW5kaWNhdGUgYSBmb2xkZXIgYnkgYWRkaW5nIGEgdHJhaWxpbmcgc2xhc2guIFdpdGhvdXQgYSB0cmFpbGluZyBzbGFzaCBhbGwgZmlsZXMgd2lsbCBiZSBzdG9yZWQgdG8gdGhlIHNhbWUgb2JqZWN0LlxuICAgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNwZWNpZnkgUzMgcmVnaW9uLlxuICAgKi9cbiAgcmVnaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogUzMgY29udGFpbmVyIGFjY2Vzcy4gJ3B1YmxpYycgb3IgJ3ByaXZhdGUnLlxuICAgKi9cbiAgYWNjZXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvd3MgaWRzIHRvIHJ1biBhZnRlciB1cGxvYWRcbiAgICovXG4gIHdvcmtmbG93cz86IHN0cmluZ1tdIHwgV29ya2Zsb3dDb25maWdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJDdXN0b21UZXh0IHtcbiAgLy8gQWN0aW9uc1xuICBVcGxvYWQ/OiBzdHJpbmc7XG4gICdVcGxvYWQgbW9yZSc/OiBzdHJpbmc7XG4gICdEZXNlbGVjdCBBbGwnPzogc3RyaW5nO1xuICAnVmlldy9FZGl0IFNlbGVjdGVkJz86IHN0cmluZztcbiAgJ1NpZ24gT3V0Jz86IHN0cmluZztcblxuICAvLyBTb3VyY2UgTGFiZWxzXG4gICdNeSBEZXZpY2UnPzogc3RyaW5nO1xuICAnV2ViIFNlYXJjaCc/OiBzdHJpbmc7XG4gICdUYWtlIFBob3RvJz86IHN0cmluZztcbiAgJ0xpbmsgKFVSTCknPzogc3RyaW5nO1xuICAnUmVjb3JkIFZpZGVvJz86IHN0cmluZztcbiAgJ1JlY29yZCBBdWRpbyc/OiBzdHJpbmc7XG5cbiAgLy8gQ3VzdG9tIFNvdXJjZVxuICAnQ3VzdG9tIFNvdXJjZSc/OiBzdHJpbmc7XG5cbiAgLy8gRm9vdGVyIFRleHRcbiAgQWRkPzogc3RyaW5nO1xuICAnbW9yZSBmaWxlJz86IHN0cmluZztcbiAgJ21vcmUgZmlsZXMnPzogc3RyaW5nO1xuXG4gIC8vIENsb3VkXG4gICdDb25uZWN0IHtwcm92aWRlck5hbWV9Jz86IHN0cmluZztcbiAgJ1NlbGVjdCBGaWxlcyBmcm9tIHtwcm92aWRlck5hbWV9Jz86IHN0cmluZztcbiAgJ1lvdSBuZWVkIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHtwcm92aWRlck5hbWV9Lic/OiBzdHJpbmc7XG4gICdBIG5ldyBwYWdlIHdpbGwgb3BlbiB0byBjb25uZWN0IHlvdXIgYWNjb3VudC4nPzogc3RyaW5nO1xuICAnV2Ugb25seSBleHRyYWN0IGltYWdlcyBhbmQgbmV2ZXIgbW9kaWZ5IG9yIGRlbGV0ZSB0aGVtLic/OiBzdHJpbmc7XG4gICdUbyBkaXNjb25uZWN0IGZyb20ge3Byb3ZpZGVyTmFtZX0gY2xpY2sgXCJTaWduIG91dFwiIGJ1dHRvbiBpbiB0aGUgbWVudS4nPzogc3RyaW5nO1xuICAnU2lnbiBpbiB3aXRoIEdvb2dsZSc/OiBzdHJpbmc7XG4gICdHbyBiYWNrJz86IHN0cmluZztcbiAgJ1RoaXMgZm9sZGVyIGlzIGVtcHR5Lic/OiBzdHJpbmc7XG5cbiAgLy8gU3VtbWFyeVxuICBGaWxlcz86IHN0cmluZztcbiAgSW1hZ2VzPzogc3RyaW5nO1xuICBVcGxvYWRlZD86IHN0cmluZztcbiAgVXBsb2FkaW5nPzogc3RyaW5nO1xuICBDb21wbGV0ZWQ/OiBzdHJpbmc7XG4gIEZpbHRlcj86IHN0cmluZztcbiAgJ0Nyb3BwZWQgSW1hZ2VzJz86IHN0cmluZztcbiAgJ0VkaXRlZCBJbWFnZXMnPzogc3RyaW5nO1xuICAnU2VsZWN0ZWQgRmlsZXMnPzogc3RyaW5nO1xuICAnQ3JvcCBpcyByZXF1aXJlZCBvbiBpbWFnZXMnPzogc3RyaW5nO1xuXG4gIC8vIFRyYW5zZm9ybVxuICBDcm9wPzogc3RyaW5nO1xuICBDaXJjbGU/OiBzdHJpbmc7XG4gIFJvdGF0ZT86IHN0cmluZztcbiAgTWFzaz86IHN0cmluZztcbiAgUmV2ZXJ0Pzogc3RyaW5nO1xuICBFZGl0Pzogc3RyaW5nO1xuICBSZXNldD86IHN0cmluZztcbiAgRG9uZT86IHN0cmluZztcbiAgU2F2ZT86IHN0cmluZztcbiAgTmV4dD86IHN0cmluZztcbiAgJ0VkaXQgSW1hZ2UnPzogc3RyaW5nO1xuICAnVGhpcyBpbWFnZSBjYW5ub3QgYmUgZWRpdGVkJz86IHN0cmluZztcblxuICAvLyBSZXRyeSBtZXNzYWdpbmdcbiAgJ0Nvbm5lY3Rpb24gTG9zdCc/OiBzdHJpbmc7XG4gICdGYWlsZWQgV2hpbGUgVXBsb2FkaW5nJz86IHN0cmluZztcbiAgJ1JldHJ5aW5nIGluJz86IHN0cmluZztcbiAgJ1RyeSBhZ2Fpbic/OiBzdHJpbmc7XG4gICdUcnkgbm93Jz86IHN0cmluZztcblxuICAvLyBMb2NhbCBGaWxlIFNvdXJjZVxuICAnRHJhZyBhbmQgRHJvcCwgQ29weSBhbmQgUGFzdGUgRmlsZXMnPzogc3RyaW5nO1xuICAnb3IgRHJhZyBhbmQgRHJvcCwgQ29weSBhbmQgUGFzdGUgRmlsZXMnPzogc3RyaW5nO1xuICAnU2VsZWN0IEZpbGVzIHRvIFVwbG9hZCc/OiBzdHJpbmc7XG4gICdTZWxlY3QgRnJvbSc/OiBzdHJpbmc7XG4gICdEcm9wIHlvdXIgZmlsZXMgYW55d2hlcmUnPzogc3RyaW5nO1xuXG4gIC8vIElucHV0IHBsYWNlaG9sZGVyc1xuICAnRW50ZXIgYSBVUkwnPzogc3RyaW5nO1xuICAnU2VhcmNoIGltYWdlcyc/OiBzdHJpbmc7XG5cbiAgLy8gV2ViY2FtIFNvdXJjZVxuICAnV2ViY2FtIERpc2FibGVkJz86IHN0cmluZztcbiAgJ1dlYmNhbSBOb3QgU3VwcG9ydGVkJz86IHN0cmluZztcbiAgJ1BsZWFzZSBlbmFibGUgeW91ciB3ZWJjYW0gdG8gdGFrZSBhIHBob3RvLic/OiBzdHJpbmc7XG4gICdZb3VyIGN1cnJlbnQgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHdlYmNhbSBmdW5jdGlvbmFsaXR5Lic/OiBzdHJpbmc7XG4gICdXZSBzdWdnZXN0IHVzaW5nIENocm9tZSBvciBGaXJlZm94Lic/OiBzdHJpbmc7XG5cbiAgLy8gRXJyb3IgTm90aWZpY2F0aW9uc1xuICAnRmlsZSB7ZGlzcGxheU5hbWV9IGlzIG5vdCBhbiBhY2NlcHRlZCBmaWxlIHR5cGUuIFRoZSBhY2NlcHRlZCBmaWxlIHR5cGVzIGFyZSB7dHlwZXN9Jz86IHN0cmluZztcbiAgJ0ZpbGUge2Rpc3BsYXlOYW1lfSBpcyB0b28gYmlnLiBUaGUgYWNjZXB0ZWQgZmlsZSBzaXplIGlzIGxlc3MgdGhhbiB7cm91bmRGaWxlU2l6ZX0nPzogc3RyaW5nO1xuICAnT3VyIGZpbGUgdXBsb2FkIGxpbWl0IGlzIHttYXhGaWxlc30ge2ZpbGVzVGV4dH0nPzogc3RyaW5nO1xuICAnTm8gc2VhcmNoIHJlc3VsdHMgZm91bmQgZm9yIFwie3NlYXJjaH1cIic/OiBzdHJpbmc7XG4gICdBbiBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlck9wdGlvbnMge1xuICAvKipcbiAgICogUmVzdHJpY3QgZmlsZSB0eXBlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHBpY2tlZC4gRm9ybWF0cyBhY2NlcHRlZDpcbiAgICogIC0gLnBkZiA8LSBhbnkgZmlsZSBleHRlbnNpb25cbiAgICogIC0gaW1hZ2UvanBlZyA8LSBhbnkgbWltZSB0eXBlIGNvbW1vbmx5IGtub3duIGJ5IGJyb3dzZXJzXG4gICAqICAtIGltYWdlLyogPC0gYWNjZXB0IGFsbCB0eXBlcyBvZiBpbWFnZXNcbiAgICogIC0gdmlkZW8vKiA8LSBhY2NlcHQgYWxsIHR5cGVzIG9mIHZpZGVvIGZpbGVzXG4gICAqICAtIGF1ZGlvLyogPC0gYWNjZXB0IGFsbCB0eXBlcyBvZiBhdWRpbyBmaWxlc1xuICAgKiAgLSBhcHBsaWNhdGlvbi8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgYXBwbGljYXRpb24gZmlsZXNcbiAgICogIC0gdGV4dC8qIDwtIGFjY2VwdCBhbGwgdHlwZXMgb2YgdGV4dCBmaWxlc1xuICAgKi9cbiAgYWNjZXB0Pzogc3RyaW5nIHwgc3RyaW5nW107XG4gIC8qKlxuICAgKiBDdXN0b20gYWNjZXB0IGNoZWNrIGZ1bmN0aW9uXG4gICAqIGBgYGphdmFzY3JpcHRcbiAgICogYWNjZXB0Rm46IChmaWxlLCBvcHRpb25zKSA9PiB7XG4gICAqICByZXR1cm4gb3B0aW9ucy5taW1lRnJvbU1hZ2ljQnl0ZXMoZmlsZS5vcmlnaW5hbEZpbGUpLnRoZW4oKHJlcykgPT4geyAvLyB3ZSBjYW4gY2hlY2sgbWltZXR5cGUgZnJvbSBtYWdpYyBieXRlc1xuICAgKiAgICAvL2NvbnNvbGUubG9nKG9wdGlvbnMubWltZUZyb21FeHRlbnNpb24oZmlsZS5vcmlnaW5hbEZpbGUubmFtZSkpOyAvLyBvciBjaGVjayBleHRlbnNpb24gZnJvbSBmaWxlc3RhY2sgZXh0ZW5zaW9ucyBkYXRhYmFzZVxuICAgKiAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhY2NlcHQgdGhhdCBmaWxlJykgLy8gd2UgY2FuIHRocm93IGV4Y2VwdGlvbiB0byBibG9jayBmaWxlIHVwbG9hZFxuICAgKiAgICAvLyByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0Nhbm5vdCBhY2NlcHQgdGhhdCBmaWxlJycpIC8vIG9yIHJlamVjdCBhIHByb21pc2VcbiAgICogICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgKiAgfSk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBhY2NlcHRGbj86IChQaWNrZXJGaWxlTWV0YWRhdGEsIFBpY2tlckFjY2VwdEZuT3B0aW9ucykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICAvKipcbiAgICogUHJldmVudCBtb2RhbCBjbG9zZSBvbiB1cGxvYWQgZmFpbHVyZSBhbmQgYWxsb3cgdXNlcnMgdG8gcmV0cnkuXG4gICAqL1xuICBhbGxvd01hbnVhbFJldHJ5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqICBWYWxpZCBzb3VyY2VzIGFyZTpcbiAgICogIC0gbG9jYWxfZmlsZV9zeXN0ZW0gLSBEZWZhdWx0XG4gICAqICAtIHVybCAtIERlZmF1bHRcbiAgICogIC0gaW1hZ2VzZWFyY2ggLSBEZWZhdWx0XG4gICAqICAtIGZhY2Vib29rIC0gRGVmYXVsdFxuICAgKiAgLSBpbnN0YWdyYW0gLSBEZWZhdWx0XG4gICAqICAtIGdvb2dsZWRyaXZlIC0gRGVmYXVsdFxuICAgKiAgLSBkcm9wYm94IC0gRGVmYXVsdFxuICAgKiAgLSB3ZWJjYW0gLSBVc2VzIGRldmljZSBtZW51IG9uIG1vYmlsZS4gTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgaW4gU2FmYXJpIGFuZCBJRS5cbiAgICogIC0gdmlkZW8gLSBVc2VzIGRldmljZSBtZW51IG9uIG1vYmlsZS4gTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgaW4gU2FmYXJpIGFuZCBJRS5cbiAgICogIC0gYXVkaW8gLSBVc2VzIGRldmljZSBtZW51IG9uIG1vYmlsZS4gTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgaW4gU2FmYXJpIGFuZCBJRS5cbiAgICogIC0gYm94XG4gICAqICAtIGdpdGh1YlxuICAgKiAgLSBnbWFpbFxuICAgKiAgLSBnb29nbGVwaG90b3NcbiAgICogIC0gb25lZHJpdmVcbiAgICogIC0gb25lZHJpdmVmb3JidXNpbmVzc1xuICAgKiAgLSBjdXN0b21zb3VyY2UgLSBDb25maWd1cmUgdGhpcyBpbiB5b3VyIEZpbGVzdGFjayBEZXYgUG9ydGFsLlxuICAgKiAgLSB1bnNwbGFzaFxuICAgKi9cbiAgZnJvbVNvdXJjZXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFByb3ZpZGUgZGVmYXVsdCB0ZXh0IHZhbHVlIGZvciBJbWFnZSBTZWFyY2hcbiAgICogYGBgamF2YXNjcmlwdFxuICAgKiB3ZWJzZWFyY2g6IHtcbiAgICogIHByZWRlZmluZWRUZXh0OiAnU2FtcGxlIHRleHQnXG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICB3ZWJzZWFyY2g/OiBvYmplY3Q7XG4gIC8qKlxuICAgKiBDb250YWluZXIgd2hlcmUgcGlja2VyIHNob3VsZCBiZSBhcHBlbmRlZC4gT25seSByZWxldmFudCBmb3IgYGlubGluZWAgYW5kIGBkcm9wUGFuZWAgZGlzcGxheSBtb2Rlcy5cbiAgICovXG4gIGNvbnRhaW5lcj86IHN0cmluZyB8IE5vZGU7XG5cbiAgLyoqXG4gICAqIFR1cm4gb24gY2xlYW5pbmcgSlBFRyBpbWFnZSBleGlmLiBNZXRob2QgY2FuIGtlZXAgaW1hZ2Ugb3JpZW50YXRpb24gb3IgY29sb3IgcHJvZmlsZXNcbiAgICogYGBgamF2YXNjcmlwdFxuICAgKiBjbGVhbnVwSW1hZ2VFeGlmOiB7XG4gICAqICAga2VlcE9yaWVudGF0aW9uOiB0cnVlXG4gICAqICAga2VlcElDQ2FuZEFQUDogdHJ1ZVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgY2xlYW51cEltYWdlRXhpZj86IGJvb2xlYW4gfCB7XG4gICAga2VlcE9yaWVudGF0aW9uPzogYm9vbGVhbixcbiAgICBrZWVwSUNDYW5kQVBQPzogYm9vbGVhblxuICB9O1xuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSB0ZXh0IG9uIHRoZSBjbG91ZCBhdXRoZW50aWNhdGlvbiBzY3JlZW4gaW4gUGlja2VyLlxuICAgKiBVc2UgYSBjbG91ZCBzb3VyY2UgbmFtZSAoc2VlIHtAbGluayBQaWNrZXJPcHRpb25zLmZyb21Tb3VyY2VzfSlcbiAgICogb3IgYSAnZGVmYXVsdCcgYXMgYSBrZXksIHRoZW4gcHV0IHlvdXIgY3VzdG9tIG5vdGljZSBvciBjb25zZW50XG4gICAqIHRvIHRoZSAndG9wJyBvciB0aGUgJ2JvdHRvbScga2V5IHRvIHNob3cgaXQgcmVzcGVjdGl2bHkgYWJvdmUgb3IgdW5kZXIgJ0Nvbm5lY3QgYnV0dG9uJy5cbiAgICpcbiAgICogYGBgamF2YXNjcmlwdFxuICAgKiBjdXN0b21BdXRoVGV4dDoge1xuICAgKiAgIC8vIHVzZSBpdCBmb3IgZXZlcnkgY2xvdWQgYXV0aGVudGljYXRpb24gc2NyZWVuXG4gICAqICAgZGVmYXVsdDoge1xuICAgKiAgICAgdG9wOiBbXG4gICAqICAgICAgICdkZWZhdWx0IHRvcCBmaXJzdCBsaW5lJyxcbiAgICogICAgICAgJ2RlZmF1bHQgdG9wIHNlY29uZCBsaW5lJ1xuICAgKiAgICAgXSxcbiAgICogICAgIGJvdHRvbTogW1xuICAgKiAgICAgICAnZGVmYXVsdCBib3R0b20gZmlyc3QgbGluZScsXG4gICAqICAgICAgICdkZWZhdWx0IGJvdHRvbSBzZWNvbmQgbGluZSdcbiAgICogICAgIF1cbiAgICogICB9LFxuICAgKiAgIC8vIG92ZXJyaWRlIGEgZGVmYXVsdCBib3R0b20gdGV4dCBmb3Igb25seSBnbWFpbFxuICAgKiAgIGdtYWlsOiB7XG4gICAqICAgICBib3R0b206IFtcbiAgICogICAgICAgJ1dlIG5lZWQgeW91ciBwZXJtaXNzaW9uIHRvIGFjY2VzcyB5b3VyIGRhdGEgYW5kJyxcbiAgICogICAgICAgJ3Byb2Nlc3MgaXQgd2l0aCBvdXIgbWFjaGluZSBsZWFybmluZyBzeXN0ZW0uJ1xuICAgKiAgICAgXVxuICAgKiAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGN1c3RvbUF1dGhUZXh0PzogQ3VzdG9tQXV0aFRleHRPcHRpb25zO1xuICAvKipcbiAgICogUGlja2VyIGRpc3BsYXkgbW9kZSwgb25lIG9mIGAnaW5saW5lJ2AsIGAnb3ZlcmxheSdgLCBgJ2Ryb3BQYW5lJ2AgLSBkZWZhdWx0IGlzIGAnb3ZlcmxheSdgLlxuICAgKi9cbiAgZGlzcGxheU1vZGU/OiBQaWNrZXJEaXNwbGF5TW9kZTtcbiAgLyoqXG4gICAqIE1heCBudW1iZXIgb2YgZmlsZXMgdG8gdXBsb2FkIGNvbmN1cnJlbnRseS4gRGVmYXVsdCBpcyA0LlxuICAgKi9cbiAgY29uY3VycmVuY3k/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgY29udGFpbmVyIGZvciB5b3VyIGN1c3RvbSBzb3VyY2UuXG4gICAqL1xuICBjdXN0b21Tb3VyY2VDb250YWluZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgcGF0aCBmb3IgeW91ciBjdXN0b20gc291cmNlIGNvbnRhaW5lci5cbiAgICovXG4gIGN1c3RvbVNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGN1c3RvbSBzb3VyY2UuXG4gICAqL1xuICBjdXN0b21Tb3VyY2VOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogUHJvdmlkZSBhbiBvYmplY3QgZm9yIG1hcHBpbmcgcGlja2VyIHN0cmluZ3MgdG8geW91ciBvd24gc3RyaW5ncy5cbiAgICogU3RyaW5ncyBzdXJyb3VuZGVkIGJ5IGJyYWNrZXRzLCBgeyBmb29iYXIgfWAsIGFyZSBpbnRlcnBvbGF0ZWQgd2l0aCBydW50aW1lIHZhbHVlcy5cbiAgICogU291cmNlIGxhYmVscyBhcmUgYWxzbyBhdmFpbGFibGUgdG8gb3ZlcnJpZGUsIGUuZy4gRmFjZWJvb2ssIEluc3RhZ3JhbSwgRHJvcGJveCwgZXRjLlxuICAgKi9cbiAgY3VzdG9tVGV4dD86IFBpY2tlckN1c3RvbVRleHQ7XG4gIC8qKlxuICAgKiBzZXQgc3VwcG9ydCBlbWFpbCB0byBkaXNwbGF5IGluIGNhc2Ugb2YgZXJyb3JcbiAgICovXG4gIHN1cHBvcnRFbWFpbD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSByZW1vdmVzIHRoZSBoYXNoIHByZWZpeCBvbiBzdG9yZWQgZmlsZXMuXG4gICAqL1xuICBkaXNhYmxlU3RvcmFnZUtleT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGVuIHRydWUgcmVtb3ZlcyBhYmlsaXR5IHRvIGVkaXQgaW1hZ2VzLlxuICAgKi9cbiAgZGlzYWJsZVRyYW5zZm9ybWVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERpc2FibGVzIGFsdCB0ZXh0IHZpZXcvZWRpdCBpbiB0aGUgc3VtbWFyeSBzY3JlZW4uXG4gICAqL1xuICBkaXNhYmxlQWx0VGV4dD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBsb2NhbCBpbWFnZSB0aHVtYm5haWwgcHJldmlld3MgaW4gdGhlIHN1bW1hcnkgc2NyZWVuLlxuICAgKi9cbiAgZGlzYWJsZVRodW1ibmFpbHM/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29uZmlndXJlIHRoZSBkcm9wIHBhbmUgYmVoYXZpb3IsIGkuZS4gd2hlbiBgZGlzcGxheU1vZGVgIGlzIGBkcm9wUGFuZWAuXG4gICAqL1xuICBkcm9wUGFuZT86IFBpY2tlckRyb3BQYW5lT3B0aW9ucztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSB0aGUgYG9yaWdpbmFsRmlsZWAgbWV0YWRhdGEgd2lsbCBiZSB0aGUgYWN0dWFsIGBGaWxlYCBvYmplY3QgaW5zdGVhZCBvZiBhIFBPSk9cbiAgICovXG4gIGV4cG9zZU9yaWdpbmFsRmlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGRyb3Agem9uZSB0byBiZSBhY3RpdmUgb24gYWxsIHZpZXdzLiBEZWZhdWx0IGlzIGFjdGl2ZSBvbmx5IG9uIGxvY2FsIGZpbGUgc291cmNlLlxuICAgKi9cbiAgZ2xvYmFsRHJvcFpvbmU/OiBib29sZWFuO1xuICAvKipcbiAgICogSGlkZSB0aGUgcGlja2VyIG1vZGFsIFVJIG9uY2UgdXBsb2FkaW5nIGJlZ2lucy4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIGhpZGVNb2RhbFdoZW5VcGxvYWRpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGltYWdlIGRpbWVuc2lvbnMuIGUuZy4gWzgwMCwgNjAwXS4gT25seSBmb3IgSlBFRywgUE5HLCBhbmQgQk1QIGZpbGVzLlxuICAgKiBMb2NhbCBhbmQgY3JvcHBlZCBpbWFnZXMgd2lsbCBiZSByZXNpemVkICh1cHNjYWxlZCBvciBkb3duc2NhbGVkKSB0byB0aGUgc3BlY2lmaWVkIGRpbWVuc2lvbnMgYmVmb3JlIHVwbG9hZGluZy5cbiAgICogVGhlIG9yaWdpbmFsIGhlaWdodCB0byB3aWR0aCByYXRpbyBpcyBtYWludGFpbmVkLiBUbyByZXNpemUgYWxsIGltYWdlcyBiYXNlZCBvbiB0aGUgd2lkdGgsIHNldCBbd2lkdGgsIG51bGxdLCBlLmcuIFs4MDAsIG51bGxdLlxuICAgKiBGb3IgdGhlIGhlaWdodCBzZXQgW251bGwsIGhlaWdodF0sIGUuZy4gW251bGwsIDYwMF0uXG4gICAqL1xuICBpbWFnZURpbT86IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBTcGVjaWZ5IG1heGltdW0gaW1hZ2UgZGltZW5zaW9ucy4gZS5nLiBbODAwLCA2MDBdLiBPbmx5IGZvciBKUEVHLCBQTkcsIGFuZCBCTVAgZmlsZXMuXG4gICAqIEltYWdlcyBiaWdnZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGRpbWVuc2lvbnMgd2lsbCBiZSByZXNpemVkIHRvIHRoZSBtYXhpbXVtIHNpemUgd2hpbGUgbWFpbnRhaW5pbmcgdGhlIG9yaWdpbmFsIGFzcGVjdCByYXRpby5cbiAgICogVGhlIG91dHB1dCB3aWxsIG5vdCBiZSBleGFjdGx5IDgwMHg2MDAgdW5sZXNzIHRoZSBpbWFnZU1heCBtYXRjaGVzIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIG9yaWdpbmFsIGltYWdlLlxuICAgKi9cbiAgaW1hZ2VNYXg/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogU3BlY2lmeSBtaW5pbXVtIGltYWdlIGRpbWVuc2lvbnMuIGUuZy4gWzgwMCwgNjAwXS4gT25seSBmb3IgSlBFRywgUE5HLCBhbmQgQk1QIGZpbGVzLlxuICAgKiBJbWFnZXMgc21hbGxlciB0aGFuIHRoZSBzcGVjaWZpZWQgZGltZW5zaW9ucyB3aWxsIGJlIHVwc2NhbGVkIHRvIHRoZSBtaW5pbXVtIHNpemUgd2hpbGUgbWFpbnRhaW5pbmcgdGhlIG9yaWdpbmFsIGFzcGVjdCByYXRpby5cbiAgICogVGhlIG91dHB1dCB3aWxsIG5vdCBiZSBleGFjdGx5IDgwMHg2MDAgdW5sZXNzIHRoZSBpbWFnZU1pbiBtYXRjaGVzIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIG9yaWdpbmFsIGltYWdlLlxuICAgKi9cbiAgaW1hZ2VNaW4/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogU2V0cyBsb2NhbGUuIEFjY2VwdHM6IGNhLCBkYSwgZGUsIGVuLCBlcywgZnIsIGhlLCBpdCwgamEsIGtvLCBubCwgbm8sIHBsLCBwdCwgc3YsIHJ1LCB2aSwgemgsIHRyXG4gICAqL1xuICBsYW5nPzogc3RyaW5nO1xuICAvKipcbiAgICogTWluaW11bSBudW1iZXIgb2YgZmlsZXMgcmVxdWlyZWQgdG8gc3RhcnQgdXBsb2FkaW5nLiBEZWZhdWx0cyB0byAxLlxuICAgKi9cbiAgbWluRmlsZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBmaWxlcyBhbGxvd2VkIHRvIHVwbG9hZC4gRGVmYXVsdHMgdG8gMS5cbiAgICovXG4gIG1heEZpbGVzPzogbnVtYmVyO1xuICAvKipcbiAgICogUmVzdHJpY3Qgc2VsZWN0ZWQgZmlsZXMgdG8gYSBtYXhpbXVtIG51bWJlciBvZiBieXRlcy4gKGUuZy4gMTAgXFwqIDEwMjQgXFwqIDEwMjQgZm9yIDEwTUIgbGltaXQpLlxuICAgKi9cbiAgbWF4U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmYXVsdCB2aWV3IHR5cGUgb3B0aW9uIGZvciBmaWxlIGJyb3dzZXJcbiAgICovXG4gIHZpZXdUeXBlPzogJ2dyaWQnIHwgJ2xpc3QnO1xuXG4gIC8qKlxuICAgKiBUaW1lb3V0IGZvciBlcnJvciBtZXNzYWdlc1xuICAgKi9cbiAgZXJyb3JzVGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFNwZWNpZnkgW3dpZHRoLCBoZWlnaHRdIGluIHBpeGVscyBvZiB0aGUgZGVza3RvcCBtb2RhbC5cbiAgICovXG4gIG1vZGFsU2l6ZT86IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhbGwgdXBsb2FkcyBpbiBhIHBpY2sgYXJlIGNhbmNlbGxlZC5cbiAgICovXG4gIG9uQ2FuY2VsPzogUGlja2VyVXBsb2FkRG9uZUNhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIFVJIGlzIGV4aXRlZC5cbiAgICovXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIFVJIGlzIG1vdW50ZWQuXG4gICAqIEBwYXJhbSBQaWNrZXJJbnN0YW5jZSBhcHBsaWNhdGlvbiBoYW5kbGVcbiAgICovXG4gIG9uT3Blbj86IChoYW5kbGU6IFBpY2tlckluc3RhbmNlKSA9PiB2b2lkO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW5ldmVyIHVzZXIgc2VsZWN0cyBhIGZpbGUuXG4gICAqICMjIyBFeGFtcGxlXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIC8vIFVzaW5nIHRvIHZldG8gZmlsZSBzZWxlY3Rpb25cbiAgICogLy8gSWYgeW91IHRocm93IGFueSBlcnJvciBpbiB0aGlzIGZ1bmN0aW9uIGl0IHdpbGwgcmVqZWN0IHRoZSBmaWxlIHNlbGVjdGlvbi5cbiAgICogLy8gVGhlIGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgYXMgYW4gYWxlcnQuXG4gICAqIG9uRmlsZVNlbGVjdGVkKGZpbGUpIHtcbiAgICogICBpZiAoZmlsZS5zaXplID4gMTAwMCAqIDEwMDApIHtcbiAgICogICAgIHRocm93IG5ldyBFcnJvcignRmlsZSB0b28gYmlnLCBzZWxlY3Qgc29tZXRoaW5nIHNtYWxsZXIgdGhhbiAxTUInKTtcbiAgICogICB9XG4gICAqIH1cbiAgICpcbiAgICogLy8gVXNpbmcgdG8gY2hhbmdlIHNlbGVjdGVkIGZpbGUgbmFtZVxuICAgKiAvLyBOT1RFOiBUaGlzIGN1cnJlbnRseSBvbmx5IHdvcmtzIGZvciBsb2NhbCB1cGxvYWRzXG4gICAqIG9uRmlsZVNlbGVjdGVkKGZpbGUpIHtcbiAgICogICAvLyBJdCdzIGltcG9ydGFudCB0byByZXR1cm4gYSBuZXcgZmlsZSBieSB0aGUgZW5kIG9mIHRoaXMgZnVuY3Rpb24uXG4gICAqICAgcmV0dXJuIHsgLi4uZmlsZSwgbmFtZTogJ2ZvbycgfTtcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbiBhbHNvIHJldHVybiBhIFByb21pc2UgdG8gYWxsb3cgYXN5bmNocm9ub3VzIHZhbGlkYXRpb24gbG9naWMuXG4gICAqIFlvdSBjYW4gcGFzcyBhIGZpbGUgb2JqZWN0IHRvIGByZXNvbHZlYCBmb3IgY2hhbmdpbmcgdGhlIGZpbGUgbmFtZSwgaXQgd2lsbCBiZWhhdmUgdGhlIHNhbWUgYXMgd2hlblxuICAgKiB0aGUgZmlsZSBpcyByZXR1cm5lZCBmcm9tIHRoZSBub24tYXN5bmMgY2FsbGJhY2suXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIG9uRmlsZVNlbGVjdGVkKGZpbGUpIHtcbiAgICogICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgKiAgICAgLy8gRG8gc29tZXRoaW5nIGFzeW5jXG4gICAqICAgICByZXNvbHZlKCk7XG4gICAqICAgICAvLyBPciByZWplY3QgdGhlIHNlbGVjdGlvbiB3aXRoIHJlamVjdCgpXG4gICAqICAgfSk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBvbkZpbGVTZWxlY3RlZD86IFBpY2tlckZpbGVDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGEgZmlsZSB1cGxvYWQgaGFzIGJlZW4gY2FuY2VsZWQuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRDYW5jZWw/OiBQaWNrZXJGaWxlQ2FuY2VsQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIGZpbGUgYmVnaW5zIHVwbG9hZGluZy5cbiAgICovXG4gIG9uRmlsZVVwbG9hZFN0YXJ0ZWQ/OiBQaWNrZXJGaWxlV2l0aFRva2VuQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIGZpbGUgaXMgZG9uZSB1cGxvYWRpbmcuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRGaW5pc2hlZD86IFBpY2tlckZpbGVDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHVwbG9hZGluZyBhIGZpbGUgZmFpbHMuXG4gICAqL1xuICBvbkZpbGVVcGxvYWRGYWlsZWQ/OiBQaWNrZXJGaWxlRXJyb3JDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCBkdXJpbmcgbXVsdGktcGFydCB1cGxvYWQgcHJvZ3Jlc3MgZXZlbnRzLiBMb2NhbCBmaWxlcyBvbmx5LlxuICAgKi9cbiAgb25GaWxlVXBsb2FkUHJvZ3Jlc3M/OiBQaWNrZXJGaWxlUHJvZ3Jlc3NDYWxsYmFjaztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGZpbGUgaXMgY3JvcHBlZCBpbiBwaWNrZXJcbiAgICovXG4gIG9uRmlsZUNyb3BwZWQ/OiBQaWNrZXJGaWxlQ2FsbGJhY2s7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB1cGxvYWRpbmcgc3RhcnRzICh1c2VyIGluaXRpYXRlcyB1cGxvYWRpbmcpLlxuICAgKi9cbiAgb25VcGxvYWRTdGFydGVkPzogUGlja2VyVXBsb2FkU3RhcnRlZENhbGxiYWNrO1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYWxsIGZpbGVzIGhhdmUgYmVlbiB1cGxvYWRlZC5cbiAgICovXG4gIG9uVXBsb2FkRG9uZT86IFBpY2tlclVwbG9hZERvbmVDYWxsYmFjaztcblxuICAvKipcbiAgICogRGVmaW5lIGEgdW5pcXVlIGlkIGZvciB0aGUgYXBwbGljYXRpb24gbW91bnQgcG9pbnQuXG4gICAqIE1heSBiZSB1c2VmdWwgZm9yIG1vcmUgYWR2YW5jZWQgdXNlIGNhc2VzLlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IHdpc2ggdG8gaGF2ZSBtb3JlIHRoYW4gb25lIHBpY2tlciBpbnN0YW5jZSBvcGVuIGF0IG9uY2UsXG4gICAqIHRoZW4gZWFjaCB3aWxsIG5lZWQgdGhlaXIgb3duIHVuaXF1ZSByb290SWQuXG4gICAqXG4gICAqICoqTm90ZToqKiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIHdoZW4gYGRpc3BsYXlNb2RlYCBpcyBgZHJvcFBhbmVgLlxuICAgKi9cbiAgcm9vdElkPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciB0byBzdGFydCB1cGxvYWRpbmcgYXV0b21hdGljYWxseSB3aGVuIG1heEZpbGVzIGlzIGhpdC4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIHN0YXJ0VXBsb2FkaW5nV2hlbk1heEZpbGVzUmVhY2hlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBmaWxlIHN0b3JhZ2UuXG4gICAqL1xuICBzdG9yZVRvPzogUGlja2VyU3RvcmVPcHRpb25zO1xuICAvKipcbiAgICogU3BlY2lmeSBvcHRpb25zIGZvciBpbWFnZXMgcGFzc2VkIHRvIHRoZSBjcm9wIFVJLlxuICAgKi9cbiAgdHJhbnNmb3JtYXRpb25zPzogUGlja2VyVHJhbnNmb3JtYXRpb25PcHRpb25zO1xuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgdGhlIG5ldyB0cmFuc2Zvcm1hdGlvbnMgVUkuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICB0cmFuc2Zvcm1hdGlvbnNVST86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBsb2NhbCBmaWxlIHVwbG9hZHMuXG4gICAqL1xuICB1cGxvYWRDb25maWc/OiBVcGxvYWRPcHRpb25zO1xuICAvKipcbiAgICogU3RhcnQgdXBsb2FkaW5nIGltbWVkaWF0ZWx5IG9uIGZpbGUgc2VsZWN0aW9uLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqIEBpbXBvcnRhbnQgVGhlIGZlYXR1cmUgaXMgY2FuIGJlIGVuYWJsZWQgb25seSBpZiBjcm9wIGlzIGRpc2FibGVkIC0gZGlzYWJsZVRyYW5zZm9ybWVyOiB0cnVlXG4gICAqL1xuICB1cGxvYWRJbkJhY2tncm91bmQ/OiBib29sZWFuO1xuICAvKipcbiAgICogU2V0cyB0aGUgcmVzb2x1dGlvbiBvZiByZWNvcmRlZCB2aWRlby4gT25lIG9mIFwiMzIweDI0MFwiLCBcIjY0MHg0ODBcIiBvciBcIjEyODB4NzIwXCIuIERlZmF1bHQgaXMgYFwiNjQweDQ4MFwiYC5cbiAgICovXG4gIHZpZGVvUmVzb2x1dGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZSBTZW50cnkgQnJlYWRjcnVtYnMgbWVjaGFuaXNtIHRvIGxvZyBpbmZvcm1hdGlvbiBhYm91dCBvY2N1cmVkIGVycm9ycy5cbiAgICogSXQgY2FuIG92ZXJyaWRlIGdsb2JhbCBvYmplY3RzIGxpa2UgY29uc29sZSwgZXJyb3IgZXRjLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICB1c2VTZW50cnlCcmVhZGNydW1icz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoaWNoIFBpY2tlciBpbnN0YW5jZSBzaG91bGQgcmVzcG9uZCB0byBwYXN0ZSBldmVudC5cbiAgICogQnkgZGVmYXVsdCBvbmx5IGhvdmVyZWQgaW5zdGFuY2UgcmVzcG9uZHMgdG8gZXZlbnQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbiA9IGZhbHNlfSBwYXN0ZVRvRmlyc3RJblZpZXdQb3J0IElmIG5vbmUgaW5zdGFuY2UgaXMgaG92ZXJlZCB0YWtlIGZpcnN0IHBpY2tlciBpbnN0YW5jZSBmdWxseSB2aXNpYmxlIGluIHZpZXdwb3J0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbiA9IGZhbHNlfSBwYXN0ZVRvRmlyc3RJbnN0YW5jZSBJZiBub25lIGluc3RhbmNlIGlzIGhvdmVyZWQgdGFrZSBmaXJzdCBwaWNrZXIgaW5zdGFuY2UgdGhhdCBpcyBpbml0aWFsaXplZFxuICAgKiBAcGFzdGVUb0ZpcnN0SW5WaWV3UG9ydCBpcyBjaGVja2VkIGZpcnN0XG4gICAqL1xuICBwYXN0ZU1vZGU/OiB7XG4gICAgcGFzdGVUb0ZpcnN0SW5WaWV3UG9ydD86IGJvb2xlYW4sXG4gICAgcGFzdGVUb0ZpcnN0SW5zdGFuY2U/OiBib29sZWFuXG4gIH07XG4gIC8qKlxuICAgKiBEaXNhYmxlL0VuYWJsZSBwb3NzaWJpbGl0eSB0byB1cGxvYWQgZGlyZWN0b3JpZXMuXG4gICAqL1xuICBkaXNhYmxlRGlyZWN0b3J5VXBsb2FkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVuYWJsZS9EaXNhYmxlIE1pbmkgVXBsb2FkZXJcbiAgICovXG4gIG1pbmlVcGxvYWRlcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGUvRGlzYWJsZSBwb3NzaWJpbGl0eSB0byBtdWx0aXBsZSBmaWxlIHVwbG9hZFxuICAgKi9cbiAgbXVsdGlwbGVGaWxlVXBsb2FkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNldCB5b3VyIG93biBHb29nbGUgRHJpdmUgUGlja2VyIEFwcCBJRC4gRGVmYXVsdHMgdG8gRmlsZXN0YWNrJ3MuXG4gICAqIFRoaXMgaXMgeW91ciBQcm9qZWN0IE51bWJlciBmcm9tIHRoZSBHb29nbGUgQ2xvdWQgY29uc29sZS5cbiAgICovXG4gIGdvb2dsZURyaXZlQXBwSUQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyQ3JvcE9wdGlvbnMge1xuICAvKipcbiAgICogTWFpbnRhaW4gYXNwZWN0IHJhdGlvIGZvciBjcm9wIHNlbGVjdGlvbi4gKGUuZy4gMTYvOSwgODAwLzYwMCkuXG4gICAqL1xuICBhc3BlY3RSYXRpbz86IG51bWJlcjtcbiAgLyoqXG4gICAqIEZvcmNlIGFsbCBpbWFnZXMgdG8gYmUgY3JvcHBlZCBiZWZvcmUgdXBsb2FkaW5nLlxuICAgKi9cbiAgZm9yY2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlclRyYW5zZm9ybWF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFbmFibGUgY3JvcC4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgY3JvcD86IGJvb2xlYW4gfCBQaWNrZXJDcm9wT3B0aW9ucztcbiAgLyoqXG4gICAqIEVuYWJsZSBjaXJjbGUgY3JvcC4gRGlzYWJsZWQgaWYgY3JvcC5hc3BlY3RSYXRpbyBpcyBkZWZpbmVkIGFuZCBub3QgMS4gQ29udmVydHMgdG8gUE5HLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBjaXJjbGU/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIGltYWdlIHJvdGF0aW9uLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICByb3RhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHbG9iYWwgZm9yY2UgY3JvcCBvcHRpb24uIENhbiBiZSB1c2UgaWUgd2l0aCBjaXJjbGVcbiAgICovXG4gIGZvcmNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJBY2NlcHRGbk9wdGlvbnMge1xuICAvKipcbiAgICogUHJvdmlkZWQgYWNjZXB0IHN0cmluZ1xuICAgKi9cbiAgYWNjZXB0OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEFjY2VwdCBzdHJpbmcgY29udmVydGVkIHRvIG1pbWV0eXBlXG4gICAqL1xuICBhY2NlcHRNaW1lOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIE1pbWV0eXBlIGJhc2VkIG1hZ2ljIGJ5dGVzXG4gICAqIHtAbGluayBodHRwczovL2ZpbGVzdGFjay5naXRodWIuaW8vZmlsZXN0YWNrLWpzL2dsb2JhbHMuaHRtbCNnZXRtaW1ldHlwZX1cbiAgICovXG4gIG1pbWVGcm9tTWFnaWNCeXRlczogUHJvbWlzZTxzdHJpbmc+O1xuICAvKipcbiAgICogTWltZXR5cGUgYmFzZWQgb24gZmlsZSBleHRlbnNpb25cbiAgICoge0BsaW5rIGh0dHBzOi8vZmlsZXN0YWNrLmdpdGh1Yi5pby9maWxlc3RhY2stanMvZ2xvYmFscy5odG1sI2V4dGVuc2lvbnRvbWltZX1cbiAgICovXG4gIG1pbWVGcm9tRXh0ZW5zaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqIEEgc3luY2hyb25vdXMtbG9va2luZyB3cmFwcGVyIGZvciBsb2FkaW5nIHRoZSBwaWNrZXIgYW5kIGNhbGxpbmcgaXRzIG1ldGhvZHMuXG4gKiBUaGlzIGlzIGN1cnJlbnRseSBuZWVkZWQgYmVjYXVzZSB0aGUgcGlja2VyIG1vZHVsZSBpcyBsb2FkZWQgYXN5bmNocm9ub3VzbHkuXG4gKiBFdmVudHVhbGx5IHdlIHNob3VsZCBvZmZlciBhIGJ1bmRsZSB3aXRoIHRoZSBwaWNrZXIgbW9kdWxlIGluY2x1ZGVkLlxuICovXG5jbGFzcyBQaWNrZXJMb2FkZXIge1xuXG4gIHByaXZhdGUgX2luaXRpYWxpemVkOiBQcm9taXNlPFBpY2tlckluc3RhbmNlPjtcbiAgY29uc3RydWN0b3IoY2xpZW50OiBDbGllbnQsIG9wdGlvbnM/OiBQaWNrZXJPcHRpb25zKSB7XG4gICAgY29uc3QgdmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoUGlja2VyUGFyYW1zU2NoZW1hKShvcHRpb25zKTtcblxuICAgIGlmICh2YWxpZGF0ZVJlcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICB2YWxpZGF0ZVJlcy5lcnJvcnMuZm9yRWFjaChlcnJvciA9PiB7XG4gICAgICAgIGlmIChlcnJvci5wYXRoLmluY2x1ZGVzKCdmcm9tU291cmNlcycpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGBXYXJuaW5nOiBJbnZhbGlkIHNvdXJjZSBcXFwiJHtlcnJvci5pbnN0YW5jZX1cXFwiIGZvdW5kIGFuZCByZW1vdmVkIWApO1xuICAgICAgICAgIG9wdGlvbnMuZnJvbVNvdXJjZXMgPSBvcHRpb25zLmZyb21Tb3VyY2VzLmZpbHRlcihzb3VyY2UgPT4gc291cmNlICE9PSBlcnJvci5pbnN0YW5jZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHBpY2tlciBwYXJhbXNgLCB2YWxpZGF0ZVJlcy5lcnJvcnMsIEZpbGVzdGFja0Vycm9yVHlwZS5WQUxJREFUSU9OKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoIW9wdGlvbnMuZnJvbVNvdXJjZXMubGVuZ3RoKSB7XG4gICAgICAgIGRlbGV0ZSBvcHRpb25zLmZyb21Tb3VyY2VzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2luaXRpYWxpemVkID0gdGhpcy5sb2FkTW9kdWxlKGNsaWVudCwgb3B0aW9ucyk7XG4gIH1cblxuICBhc3luYyBvcGVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBpY2tlciA9IGF3YWl0IHRoaXMuX2luaXRpYWxpemVkO1xuICAgIGF3YWl0IHBpY2tlci5vcGVuKCk7XG4gIH1cblxuICBhc3luYyBjcm9wKGZpbGVzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBpY2tlciA9IGF3YWl0IHRoaXMuX2luaXRpYWxpemVkO1xuICAgIGF3YWl0IHBpY2tlci5jcm9wKGZpbGVzKTtcbiAgfVxuXG4gIGFzeW5jIGNsb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBpY2tlciA9IGF3YWl0IHRoaXMuX2luaXRpYWxpemVkO1xuICAgIGF3YWl0IHBpY2tlci5jbG9zZSgpO1xuICB9XG5cbiAgYXN5bmMgY2FuY2VsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBpY2tlciA9IGF3YWl0IHRoaXMuX2luaXRpYWxpemVkO1xuICAgIGF3YWl0IHBpY2tlci5jYW5jZWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE1vZHVsZShjbGllbnQ6IENsaWVudCwgb3B0aW9ucz86IFBpY2tlck9wdGlvbnMpOiBQcm9taXNlPFBpY2tlckluc3RhbmNlPiB7XG4gICAgY29uc3QgeyBzZXNzaW9uOiB7IHVybHM6IHsgcGlja2VyVXJsOiB1cmwgfSB9IH0gPSBjbGllbnQ7XG4gICAgY29uc3QgUGlja2VyID0gYXdhaXQgbG9hZE1vZHVsZShGSUxFU1RBQ0tfTU9EVUxFUy5QSUNLRVIsIHVybCk7XG4gICAgcmV0dXJuIG5ldyBQaWNrZXIoY2xpZW50LCBvcHRpb25zKTtcbiAgfVxufVxuXG4vKipcbiAqIExvYWRzIGFuZCBjcmVhdGVzIHBpY2tlciBpbnN0YW5jZVxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gY2xpZW50XG4gKiBAcGFyYW0gb3B0aW9uc1xuICovXG5leHBvcnQgY29uc3QgcGlja2VyID0gKGNsaWVudDogQ2xpZW50LCBvcHRpb25zPzogUGlja2VyT3B0aW9ucyk6IFBpY2tlckluc3RhbmNlID0+IHtcbiAgcmV0dXJuIG5ldyBQaWNrZXJMb2FkZXIoY2xpZW50LCBvcHRpb25zKTtcbn07XG4iXX0=
|
|
@@ -21,7 +21,7 @@ var utils = tslib_1.__importStar(require("./index"));
|
|
|
21
21
|
describe('utils:index', function () {
|
|
22
22
|
describe('getVersion', function () {
|
|
23
23
|
it('should return version string to replace', function () {
|
|
24
|
-
expect(utils.getVersion()).toEqual("JS-4.
|
|
24
|
+
expect(utils.getVersion()).toEqual("JS-4.2.4");
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
27
|
describe('isFacebook', function () {
|
|
@@ -437,10 +437,6 @@ export declare const PickerParamsSchema: {
|
|
|
437
437
|
disableIntegrityCheck: {
|
|
438
438
|
type: string;
|
|
439
439
|
};
|
|
440
|
-
altText: {
|
|
441
|
-
type: string[];
|
|
442
|
-
maxLength: number;
|
|
443
|
-
};
|
|
444
440
|
};
|
|
445
441
|
};
|
|
446
442
|
useSentryBreadcrumbs: {
|
|
@@ -470,5 +466,8 @@ export declare const PickerParamsSchema: {
|
|
|
470
466
|
multipleFileUpload: {
|
|
471
467
|
type: string;
|
|
472
468
|
};
|
|
469
|
+
googleDriveAppID: {
|
|
470
|
+
type: string;
|
|
471
|
+
};
|
|
473
472
|
};
|
|
474
473
|
};
|