@angular/compiler-cli 12.2.0 → 12.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/linker/src/file_linker/partial_linkers/partial_linker_selector.js +2 -2
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/build_marker.js +1 -1
- package/package.json +2 -2
- package/src/ngtsc/annotations/src/component.d.ts +2 -0
- package/src/ngtsc/annotations/src/component.js +4 -1
- package/src/ngtsc/core/api/src/interfaces.d.ts +1 -1
- package/src/ngtsc/core/api/src/interfaces.js +1 -1
- package/src/ngtsc/core/api/src/options.d.ts +10 -1
- package/src/ngtsc/core/api/src/options.js +1 -1
- package/src/ngtsc/core/src/compiler.d.ts +11 -0
- package/src/ngtsc/core/src/compiler.js +77 -12
- package/src/ngtsc/diagnostics/src/error_code.d.ts +18 -0
- package/src/ngtsc/diagnostics/src/error_code.js +19 -1
- package/src/ngtsc/program.d.ts +0 -1
- package/src/ngtsc/program.js +1 -2
- package/src/ngtsc/transform/src/api.d.ts +2 -0
- package/src/ngtsc/transform/src/api.js +1 -1
- package/src/ngtsc/transform/src/compilation.d.ts +2 -0
- package/src/ngtsc/transform/src/compilation.js +75 -33
- package/src/ngtsc/typecheck/api/api.d.ts +21 -0
- package/src/ngtsc/typecheck/api/api.js +1 -1
- package/src/ngtsc/typecheck/api/checker.d.ts +3 -3
- package/src/ngtsc/typecheck/api/checker.js +1 -1
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +1 -15
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +1 -1
- package/src/ngtsc/typecheck/extended/api/api.d.ts +50 -0
- package/src/ngtsc/typecheck/extended/api/api.js +124 -0
- package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +19 -0
- package/src/ngtsc/typecheck/extended/api/extended_template_checker.js +20 -0
- package/src/ngtsc/{core/src/config.d.ts → typecheck/extended/api/index.d.ts} +3 -2
- package/src/ngtsc/typecheck/extended/api/index.js +23 -0
- package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +22 -0
- package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.js +52 -0
- package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +23 -0
- package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.js +64 -0
- package/src/ngtsc/typecheck/extended/index.d.ts +9 -0
- package/src/ngtsc/typecheck/extended/index.js +23 -0
- package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +18 -0
- package/src/ngtsc/typecheck/extended/src/extended_template_checker.js +55 -0
- package/src/ngtsc/typecheck/src/checker.d.ts +3 -4
- package/src/ngtsc/typecheck/src/checker.js +8 -7
- package/src/ngtsc/typecheck/src/context.d.ts +1 -2
- package/src/ngtsc/typecheck/src/context.js +1 -1
- package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -2
- package/src/ngtsc/typecheck/src/diagnostics.js +1 -1
- package/src/ngtsc/typecheck/src/dom.d.ts +1 -2
- package/src/ngtsc/typecheck/src/dom.js +1 -1
- package/src/ngtsc/typecheck/src/oob.d.ts +1 -2
- package/src/ngtsc/typecheck/src/oob.js +1 -1
- package/src/transformers/downlevel_decorators_transform.js +85 -91
- package/src/version.js +1 -1
- package/src/ngtsc/core/src/config.js +0 -28
|
@@ -144,6 +144,24 @@ export declare enum ErrorCode {
|
|
|
144
144
|
* in which the input and output are going to different places.
|
|
145
145
|
*/
|
|
146
146
|
SPLIT_TWO_WAY_BINDING = 8007,
|
|
147
|
+
/**
|
|
148
|
+
* A two way binding in a template has an incorrect syntax,
|
|
149
|
+
* parentheses outside brackets. For example:
|
|
150
|
+
*
|
|
151
|
+
* ```
|
|
152
|
+
* <div ([foo])="bar" />
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
INVALID_BANANA_IN_BOX = 8101,
|
|
156
|
+
/**
|
|
157
|
+
* The left side of a nullish coalescing operation is not nullable.
|
|
158
|
+
*
|
|
159
|
+
* ```
|
|
160
|
+
* {{ foo ?? bar }}
|
|
161
|
+
* ```
|
|
162
|
+
* When the type of foo doesn't include `null` or `undefined`.
|
|
163
|
+
*/
|
|
164
|
+
NULLISH_COALESCING_NOT_NULLABLE = 8102,
|
|
147
165
|
/**
|
|
148
166
|
* The template type-checking engine would need to generate an inline type check block for a
|
|
149
167
|
* component, but the current type-checking environment doesn't support it.
|
|
@@ -156,6 +156,24 @@
|
|
|
156
156
|
* in which the input and output are going to different places.
|
|
157
157
|
*/
|
|
158
158
|
ErrorCode[ErrorCode["SPLIT_TWO_WAY_BINDING"] = 8007] = "SPLIT_TWO_WAY_BINDING";
|
|
159
|
+
/**
|
|
160
|
+
* A two way binding in a template has an incorrect syntax,
|
|
161
|
+
* parentheses outside brackets. For example:
|
|
162
|
+
*
|
|
163
|
+
* ```
|
|
164
|
+
* <div ([foo])="bar" />
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
ErrorCode[ErrorCode["INVALID_BANANA_IN_BOX"] = 8101] = "INVALID_BANANA_IN_BOX";
|
|
168
|
+
/**
|
|
169
|
+
* The left side of a nullish coalescing operation is not nullable.
|
|
170
|
+
*
|
|
171
|
+
* ```
|
|
172
|
+
* {{ foo ?? bar }}
|
|
173
|
+
* ```
|
|
174
|
+
* When the type of foo doesn't include `null` or `undefined`.
|
|
175
|
+
*/
|
|
176
|
+
ErrorCode[ErrorCode["NULLISH_COALESCING_NOT_NULLABLE"] = 8102] = "NULLISH_COALESCING_NOT_NULLABLE";
|
|
159
177
|
/**
|
|
160
178
|
* The template type-checking engine would need to generate an inline type check block for a
|
|
161
179
|
* component, but the current type-checking environment doesn't support it.
|
|
@@ -214,4 +232,4 @@
|
|
|
214
232
|
}
|
|
215
233
|
exports.ngErrorCode = ngErrorCode;
|
|
216
234
|
});
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JfY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZGlhZ25vc3RpY3Mvc3JjL2Vycm9yX2NvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBRUg7O09BRUc7SUFDSCxJQUFZLFNBb01YO0lBcE1ELFdBQVksU0FBUztRQUNuQixzRkFBZ0MsQ0FBQTtRQUNoQyw4RUFBNEIsQ0FBQTtRQUM1Qiw0RUFBMkIsQ0FBQTtRQUMzQiw0RkFBbUMsQ0FBQTtRQUNuQyw0RUFBMkIsQ0FBQTtRQUUzQjs7V0FFRztRQUNILDBFQUEwQixDQUFBO1FBRTFCLDRFQUEyQixDQUFBO1FBQzNCLHNFQUF3QixDQUFBO1FBRXhCLHdGQUFpQyxDQUFBO1FBQ2pDLHNFQUF3QixDQUFBO1FBQ3hCLDBFQUEwQixDQUFBO1FBQzFCLHdGQUFpQyxDQUFBO1FBRWpDLDhGQUE4RjtRQUM5Riw0RUFBMkIsQ0FBQTtRQUUzQjs7O1dBR0c7UUFDSCwwR0FBMEMsQ0FBQTtRQUUxQzs7O1dBR0c7UUFDSCxvSEFBK0MsQ0FBQTtRQUUvQzs7O1dBR0c7UUFDSCw0RkFBbUMsQ0FBQTtRQUVuQzs7O1dBR0c7UUFDSCw4R0FBNEMsQ0FBQTtRQUU1QywwRUFBMEIsQ0FBQTtRQUMxQiw0R0FBMkMsQ0FBQTtRQUMzQzs7O1dBR0c7UUFDSCw4RUFBNEIsQ0FBQTtRQUU1QiwwRkFBa0MsQ0FBQTtRQUNsQyxrSkFBOEQsQ0FBQTtRQUU5RDs7O1dBR0c7UUFDSCxvRkFBK0IsQ0FBQTtRQUUvQjs7V0FFRztRQUNILDRFQUEyQixDQUFBO1FBRTNCOztXQUVHO1FBQ0gsNEZBQW1DLENBQUE7UUFFbkM7O1dBRUc7UUFDSCxrRkFBOEIsQ0FBQTtRQUU5Qjs7V0FFRztRQUNILGtGQUE4QixDQUFBO1FBRTlCOzs7V0FHRztRQUNILHNGQUFnQyxDQUFBO1FBRWhDOzs7V0FHRztRQUNILGdJQUFxRCxDQUFBO1FBRXJEOzs7V0FHRztRQUNILG9HQUF1QyxDQUFBO1FBRXZDOztXQUVHO1FBQ0gsa0dBQXNDLENBQUE7UUFFdEM7OztXQUdHO1FBQ0gsc0dBQXdDLENBQUE7UUFFeEM7O1dBRUc7UUFDSCxnRkFBNkIsQ0FBQTtRQUU3Qjs7V0FFRztRQUNILG9GQUErQixDQUFBO1FBRS9COztXQUVHO1FBQ0gsb0ZBQStCLENBQUE7UUFFL0I7O1dBRUc7UUFDSCw0REFBbUIsQ0FBQTtRQUVuQjs7Ozs7Ozs7Ozs7V0FXRztRQUNILDBGQUFrQyxDQUFBO1FBRWxDOzs7Ozs7O1dBT0c7UUFDSCxnR0FBcUMsQ0FBQTtRQUVyQzs7O1dBR0c7UUFDSCw4RUFBNEIsQ0FBQTtRQUU1Qjs7O1dBR0c7UUFDSCwwRUFBMEIsQ0FBQTtRQUUxQjs7O1dBR0c7UUFDSCxzRkFBZ0MsQ0FBQTtRQUVoQzs7V0FFRztRQUNILHNGQUFnQyxDQUFBO1FBRWhDLDRFQUE0RTtRQUM1RSxpR0FBaUc7UUFDakcsc0ZBQXNGO1FBRXRGOzs7V0FHRztRQUNILHFGQUFnQyxDQUFBO1FBRWhDOzs7O1dBSUc7UUFDSCx1R0FBeUMsQ0FBQTtJQUMzQyxDQUFDLEVBcE1XLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBb01wQjtJQUVEOzs7OztPQUtHO0lBQ1UsUUFBQSwyQkFBMkIsR0FBRywyQkFBMkIsQ0FBQztJQUV2RTs7OztPQUlHO0lBQ1UsUUFBQSwyQkFBMkIsR0FBRyxJQUFJLEdBQUcsQ0FBQztRQUNqRCxTQUFTLENBQUMseUJBQXlCO1FBQ25DLFNBQVMsQ0FBQyxxQkFBcUI7UUFDL0IsU0FBUyxDQUFDLG1CQUFtQjtRQUM3QixTQUFTLENBQUMsc0JBQXNCO1FBQ2hDLFNBQVMsQ0FBQyx3QkFBd0I7UUFDbEMsU0FBUyxDQUFDLHdCQUF3QjtRQUNsQyxTQUFTLENBQUMscUNBQXFDO0tBQ2hELENBQUMsQ0FBQztJQUVIOztPQUVHO0lBQ0gsU0FBZ0IsV0FBVyxDQUFDLElBQWU7UUFDekMsT0FBTyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFGRCxrQ0FFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGVudW0gRXJyb3JDb2RlIHtcbiAgREVDT1JBVE9SX0FSR19OT1RfTElURVJBTCA9IDEwMDEsXG4gIERFQ09SQVRPUl9BUklUWV9XUk9ORyA9IDEwMDIsXG4gIERFQ09SQVRPUl9OT1RfQ0FMTEVEID0gMTAwMyxcbiAgREVDT1JBVE9SX09OX0FOT05ZTU9VU19DTEFTUyA9IDEwMDQsXG4gIERFQ09SQVRPUl9VTkVYUEVDVEVEID0gMTAwNSxcblxuICAvKipcbiAgICogVGhpcyBlcnJvciBjb2RlIGluZGljYXRlcyB0aGF0IHRoZXJlIGFyZSBpbmNvbXBhdGlibGUgZGVjb3JhdG9ycyBvbiBhIHR5cGUgb3IgYSBjbGFzcyBmaWVsZC5cbiAgICovXG4gIERFQ09SQVRPUl9DT0xMSVNJT04gPSAxMDA2LFxuXG4gIFZBTFVFX0hBU19XUk9OR19UWVBFID0gMTAxMCxcbiAgVkFMVUVfTk9UX0xJVEVSQUwgPSAxMDExLFxuXG4gIENPTVBPTkVOVF9NSVNTSU5HX1RFTVBMQVRFID0gMjAwMSxcbiAgUElQRV9NSVNTSU5HX05BTUUgPSAyMDAyLFxuICBQQVJBTV9NSVNTSU5HX1RPS0VOID0gMjAwMyxcbiAgRElSRUNUSVZFX01JU1NJTkdfU0VMRUNUT1IgPSAyMDA0LFxuXG4gIC8qKiBSYWlzZWQgd2hlbiBhbiB1bmRlY29yYXRlZCBjbGFzcyBpcyBwYXNzZWQgaW4gYXMgYSBwcm92aWRlciB0byBhIG1vZHVsZSBvciBhIGRpcmVjdGl2ZS4gKi9cbiAgVU5ERUNPUkFURURfUFJPVklERVIgPSAyMDA1LFxuXG4gIC8qKlxuICAgKiBSYWlzZWQgd2hlbiBhIERpcmVjdGl2ZSBpbmhlcml0cyBpdHMgY29uc3RydWN0b3IgZnJvbSBhIGJhc2UgY2xhc3Mgd2l0aG91dCBhbiBBbmd1bGFyXG4gICAqIGRlY29yYXRvci5cbiAgICovXG4gIERJUkVDVElWRV9JTkhFUklUU19VTkRFQ09SQVRFRF9DVE9SID0gMjAwNixcblxuICAvKipcbiAgICogUmFpc2VkIHdoZW4gYW4gdW5kZWNvcmF0ZWQgY2xhc3MgdGhhdCBpcyB1c2luZyBBbmd1bGFyIGZlYXR1cmVzXG4gICAqIGhhcyBiZWVuIGRpc2NvdmVyZWQuXG4gICAqL1xuICBVTkRFQ09SQVRFRF9DTEFTU19VU0lOR19BTkdVTEFSX0ZFQVRVUkVTID0gMjAwNyxcblxuICAvKipcbiAgICogUmFpc2VkIHdoZW4gYW4gY29tcG9uZW50IGNhbm5vdCByZXNvbHZlIGFuIGV4dGVybmFsIHJlc291cmNlLCBzdWNoIGFzIGEgdGVtcGxhdGUgb3IgYSBzdHlsZVxuICAgKiBzaGVldC5cbiAgICovXG4gIENPTVBPTkVOVF9SRVNPVVJDRV9OT1RfRk9VTkQgPSAyMDA4LFxuXG4gIC8qKlxuICAgKiBSYWlzZWQgd2hlbiBhIGNvbXBvbmVudCB1c2VzIGBTaGFkb3dEb21gIHZpZXcgZW5jYXBzdWxhdGlvbiwgYnV0IGl0cyBzZWxlY3RvclxuICAgKiBkb2VzIG5vdCBtYXRjaCB0aGUgc2hhZG93IERPTSB0YWcgbmFtZSByZXF1aXJlbWVudHMuXG4gICAqL1xuICBDT01QT05FTlRfSU5WQUxJRF9TSEFET1dfRE9NX1NFTEVDVE9SID0gMjAwOSxcblxuICBTWU1CT0xfTk9UX0VYUE9SVEVEID0gMzAwMSxcbiAgU1lNQk9MX0VYUE9SVEVEX1VOREVSX0RJRkZFUkVOVF9OQU1FID0gMzAwMixcbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIGEgcmVsYXRpb25zaGlwIGJldHdlZW4gZGlyZWN0aXZlcyBhbmQvb3IgcGlwZXMgd291bGQgY2F1c2UgYSBjeWNsaWMgaW1wb3J0IHRvIGJlXG4gICAqIGNyZWF0ZWQgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCwgc3VjaCBhcyBpbiBwYXJ0aWFsIGNvbXBpbGF0aW9uIG1vZGUuXG4gICAqL1xuICBJTVBPUlRfQ1lDTEVfREVURUNURUQgPSAzMDAzLFxuXG4gIENPTkZJR19GTEFUX01PRFVMRV9OT19JTkRFWCA9IDQwMDEsXG4gIENPTkZJR19TVFJJQ1RfVEVNUExBVEVTX0lNUExJRVNfRlVMTF9URU1QTEFURV9UWVBFQ0hFQ0sgPSA0MDAyLFxuXG4gIC8qKlxuICAgKiBSYWlzZWQgd2hlbiBhIGhvc3QgZXhwcmVzc2lvbiBoYXMgYSBwYXJzZSBlcnJvciwgc3VjaCBhcyBhIGhvc3QgbGlzdGVuZXIgb3IgaG9zdCBiaW5kaW5nXG4gICAqIGV4cHJlc3Npb24gY29udGFpbmluZyBhIHBpcGUuXG4gICAqL1xuICBIT1NUX0JJTkRJTkdfUEFSU0VfRVJST1IgPSA1MDAxLFxuXG4gIC8qKlxuICAgKiBSYWlzZWQgd2hlbiB0aGUgY29tcGlsZXIgY2Fubm90IHBhcnNlIGEgY29tcG9uZW50J3MgdGVtcGxhdGUuXG4gICAqL1xuICBURU1QTEFURV9QQVJTRV9FUlJPUiA9IDUwMDIsXG5cbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIGFuIE5nTW9kdWxlIGNvbnRhaW5zIGFuIGludmFsaWQgcmVmZXJlbmNlIGluIGBkZWNsYXJhdGlvbnNgLlxuICAgKi9cbiAgTkdNT0RVTEVfSU5WQUxJRF9ERUNMQVJBVElPTiA9IDYwMDEsXG5cbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIGFuIE5nTW9kdWxlIGNvbnRhaW5zIGFuIGludmFsaWQgdHlwZSBpbiBgaW1wb3J0c2AuXG4gICAqL1xuICBOR01PRFVMRV9JTlZBTElEX0lNUE9SVCA9IDYwMDIsXG5cbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIGFuIE5nTW9kdWxlIGNvbnRhaW5zIGFuIGludmFsaWQgdHlwZSBpbiBgZXhwb3J0c2AuXG4gICAqL1xuICBOR01PRFVMRV9JTlZBTElEX0VYUE9SVCA9IDYwMDMsXG5cbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIGFuIE5nTW9kdWxlIGNvbnRhaW5zIGEgdHlwZSBpbiBgZXhwb3J0c2Agd2hpY2ggaXMgbmVpdGhlciBpbiBgZGVjbGFyYXRpb25zYCBub3JcbiAgICogb3RoZXJ3aXNlIGltcG9ydGVkLlxuICAgKi9cbiAgTkdNT0RVTEVfSU5WQUxJRF9SRUVYUE9SVCA9IDYwMDQsXG5cbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIGEgYE1vZHVsZVdpdGhQcm92aWRlcnNgIHdpdGggYSBtaXNzaW5nXG4gICAqIGdlbmVyaWMgdHlwZSBhcmd1bWVudCBpcyBwYXNzZWQgaW50byBhbiBgTmdNb2R1bGVgLlxuICAgKi9cbiAgTkdNT0RVTEVfTU9EVUxFX1dJVEhfUFJPVklERVJTX01JU1NJTkdfR0VORVJJQyA9IDYwMDUsXG5cbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIGFuIE5nTW9kdWxlIGV4cG9ydHMgbXVsdGlwbGUgZGlyZWN0aXZlcy9waXBlcyBvZiB0aGUgc2FtZSBuYW1lIGFuZCB0aGUgY29tcGlsZXJcbiAgICogYXR0ZW1wdHMgdG8gZ2VuZXJhdGUgcHJpdmF0ZSByZS1leHBvcnRzIHdpdGhpbiB0aGUgTmdNb2R1bGUgZmlsZS5cbiAgICovXG4gIE5HTU9EVUxFX1JFRVhQT1JUX05BTUVfQ09MTElTSU9OID0gNjAwNixcblxuICAvKipcbiAgICogUmFpc2VkIHdoZW4gYSBkaXJlY3RpdmUvcGlwZSBpcyBwYXJ0IG9mIHRoZSBkZWNsYXJhdGlvbnMgb2YgdHdvIG9yIG1vcmUgTmdNb2R1bGVzLlxuICAgKi9cbiAgTkdNT0RVTEVfREVDTEFSQVRJT05fTk9UX1VOSVFVRSA9IDYwMDcsXG5cbiAgLyoqXG4gICAqIE5vdCBhY3R1YWxseSByYWlzZWQgYnkgdGhlIGNvbXBpbGVyLCBidXQgcmVzZXJ2ZWQgZm9yIGRvY3VtZW50YXRpb24gb2YgYSBWaWV3IEVuZ2luZSBlcnJvciB3aGVuXG4gICAqIGEgVmlldyBFbmdpbmUgYnVpbGQgZGVwZW5kcyBvbiBhbiBJdnktY29tcGlsZWQgTmdNb2R1bGUuXG4gICAqL1xuICBOR01PRFVMRV9WRV9ERVBFTkRFTkNZX09OX0lWWV9MSUIgPSA2OTk5LFxuXG4gIC8qKlxuICAgKiBBbiBlbGVtZW50IG5hbWUgZmFpbGVkIHZhbGlkYXRpb24gYWdhaW5zdCB0aGUgRE9NIHNjaGVtYS5cbiAgICovXG4gIFNDSEVNQV9JTlZBTElEX0VMRU1FTlQgPSA4MDAxLFxuXG4gIC8qKlxuICAgKiBBbiBlbGVtZW50J3MgYXR0cmlidXRlIG5hbWUgZmFpbGVkIHZhbGlkYXRpb24gYWdhaW5zdCB0aGUgRE9NIHNjaGVtYS5cbiAgICovXG4gIFNDSEVNQV9JTlZBTElEX0FUVFJJQlVURSA9IDgwMDIsXG5cbiAgLyoqXG4gICAqIE5vIG1hdGNoaW5nIGRpcmVjdGl2ZSB3YXMgZm91bmQgZm9yIGEgYCNyZWY9XCJ0YXJnZXRcImAgZXhwcmVzc2lvbi5cbiAgICovXG4gIE1JU1NJTkdfUkVGRVJFTkNFX1RBUkdFVCA9IDgwMDMsXG5cbiAgLyoqXG4gICAqIE5vIG1hdGNoaW5nIHBpcGUgd2FzIGZvdW5kIGZvciBhXG4gICAqL1xuICBNSVNTSU5HX1BJUEUgPSA4MDA0LFxuXG4gIC8qKlxuICAgKiBUaGUgbGVmdC1oYW5kIHNpZGUgb2YgYW4gYXNzaWdubWVudCBleHByZXNzaW9uIHdhcyBhIHRlbXBsYXRlIHZhcmlhYmxlLiBFZmZlY3RpdmVseSwgdGhlXG4gICAqIHRlbXBsYXRlIGxvb2tlZCBsaWtlOlxuICAgKlxuICAgKiBgYGBcbiAgICogPG5nLXRlbXBsYXRlIGxldC1zb21ldGhpbmc+XG4gICAqICAgPGJ1dHRvbiAoY2xpY2spPVwic29tZXRoaW5nID0gLi4uXCI+Li4uPC9idXR0b24+XG4gICAqIDwvbmctdGVtcGxhdGU+XG4gICAqIGBgYFxuICAgKlxuICAgKiBUZW1wbGF0ZSB2YXJpYWJsZXMgYXJlIHJlYWQtb25seS5cbiAgICovXG4gIFdSSVRFX1RPX1JFQURfT05MWV9WQVJJQUJMRSA9IDgwMDUsXG5cbiAgLyoqXG4gICAqIEEgdGVtcGxhdGUgdmFyaWFibGUgd2FzIGRlY2xhcmVkIHR3aWNlLiBGb3IgZXhhbXBsZTpcbiAgICpcbiAgICogYGBgaHRtbFxuICAgKiA8ZGl2ICpuZ0Zvcj1cImxldCBpIG9mIGl0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAqIDwvZGl2PlxuICAgKiBgYGBcbiAgICovXG4gIERVUExJQ0FURV9WQVJJQUJMRV9ERUNMQVJBVElPTiA9IDgwMDYsXG5cbiAgLyoqXG4gICAqIEEgdGVtcGxhdGUgaGFzIGEgdHdvIHdheSBiaW5kaW5nICh0d28gYmluZGluZ3MgY3JlYXRlZCBieSBhIHNpbmdsZSBzeW50YWN0aWFsIGVsZW1lbnQpXG4gICAqIGluIHdoaWNoIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGFyZSBnb2luZyB0byBkaWZmZXJlbnQgcGxhY2VzLlxuICAgKi9cbiAgU1BMSVRfVFdPX1dBWV9CSU5ESU5HID0gODAwNyxcblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgZW5naW5lIHdvdWxkIG5lZWQgdG8gZ2VuZXJhdGUgYW4gaW5saW5lIHR5cGUgY2hlY2sgYmxvY2sgZm9yIGFcbiAgICogY29tcG9uZW50LCBidXQgdGhlIGN1cnJlbnQgdHlwZS1jaGVja2luZyBlbnZpcm9ubWVudCBkb2Vzbid0IHN1cHBvcnQgaXQuXG4gICAqL1xuICBJTkxJTkVfVENCX1JFUVVJUkVEID0gODkwMCxcblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgZW5naW5lIHdvdWxkIG5lZWQgdG8gZ2VuZXJhdGUgYW4gaW5saW5lIHR5cGUgY29uc3RydWN0b3IgZm9yIGFcbiAgICogZGlyZWN0aXZlIG9yIGNvbXBvbmVudCwgYnV0IHRoZSBjdXJyZW50IHR5cGUtY2hlY2tpbmcgZW52aXJvbm1lbnQgZG9lc24ndCBzdXBwb3J0IGl0LlxuICAgKi9cbiAgSU5MSU5FX1RZUEVfQ1RPUl9SRVFVSVJFRCA9IDg5MDEsXG5cbiAgLyoqXG4gICAqIEFuIGluamVjdGFibGUgYWxyZWFkeSBoYXMgYSBgybVwcm92YCBwcm9wZXJ0eS5cbiAgICovXG4gIElOSkVDVEFCTEVfRFVQTElDQVRFX1BST1YgPSA5MDAxLFxuXG4gIC8vIDEwWFhYIGVycm9yIGNvZGVzIGFyZSByZXNlcnZlZCBmb3IgZGlhZ25vc3RpY3Mgd2l0aCBjYXRlZ29yaWVzIG90aGVyIHRoYW5cbiAgLy8gYHRzLkRpYWdub3N0aWNDYXRlZ29yeS5FcnJvcmAuIFRoZXNlIGRpYWdub3N0aWNzIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIGNvbXBpbGVyIHdoZW4gY29uZmlndXJlZFxuICAvLyB0byBkbyBzbyBieSBhIHRvb2wgc3VjaCBhcyB0aGUgTGFuZ3VhZ2UgU2VydmljZSwgb3IgYnkgdGhlIExhbmd1YWdlIFNlcnZpY2UgaXRzZWxmLlxuXG4gIC8qKlxuICAgKiBTdWdnZXN0IHVzZXJzIHRvIGVuYWJsZSBgc3RyaWN0VGVtcGxhdGVzYCB0byBtYWtlIHVzZSBvZiBmdWxsIGNhcGFiaWxpdGllc1xuICAgKiBwcm92aWRlZCBieSBBbmd1bGFyIGxhbmd1YWdlIHNlcnZpY2UuXG4gICAqL1xuICBTVUdHRVNUX1NUUklDVF9URU1QTEFURVMgPSAxMDAwMSxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgYSBwYXJ0aWN1bGFyIHN0cnVjdHVyYWwgZGlyZWN0aXZlIHByb3ZpZGVzIGFkdmFuY2VkIHR5cGUgbmFycm93aW5nXG4gICAqIGZ1bmN0aW9uYWxpdHksIGJ1dCB0aGUgY3VycmVudCB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIGNvbmZpZ3VyYXRpb24gZG9lcyBub3QgYWxsb3cgaXRzIHVzYWdlIGluXG4gICAqIHR5cGUgaW5mZXJlbmNlLlxuICAgKi9cbiAgU1VHR0VTVF9TVUJPUFRJTUFMX1RZUEVfSU5GRVJFTkNFID0gMTAwMDIsXG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBCYXNlIFVSTCBmb3IgdGhlIGVycm9yIGRldGFpbHMgcGFnZS5cbiAqIEtlZXAgdGhpcyB2YWx1ZSBpbiBzeW5jIHdpdGggYSBzaW1pbGFyIGNvbnN0IGluXG4gKiBgcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9lcnJvcl9jb2RlLnRzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IEVSUk9SX0RFVEFJTFNfUEFHRV9CQVNFX1VSTCA9ICdodHRwczovL2FuZ3VsYXIuaW8vZXJyb3JzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIENvbnRhaW5zIGEgc2V0IG9mIGVycm9yIG1lc3NhZ2VzIHRoYXQgaGF2ZSBkZXRhaWxlZCBndWlkZXMgYXQgYW5ndWxhci5pby5cbiAqIEZ1bGwgbGlzdCBvZiBhdmFpbGFibGUgZXJyb3IgZ3VpZGVzIGNhbiBiZSBmb3VuZCBhdCBodHRwczovL2FuZ3VsYXIuaW8vZXJyb3JzXG4gKi9cbmV4cG9ydCBjb25zdCBDT01QSUxFUl9FUlJPUlNfV0lUSF9HVUlERVMgPSBuZXcgU2V0KFtcbiAgRXJyb3JDb2RlLkRFQ09SQVRPUl9BUkdfTk9UX0xJVEVSQUwsXG4gIEVycm9yQ29kZS5JTVBPUlRfQ1lDTEVfREVURUNURUQsXG4gIEVycm9yQ29kZS5QQVJBTV9NSVNTSU5HX1RPS0VOLFxuICBFcnJvckNvZGUuU0NIRU1BX0lOVkFMSURfRUxFTUVOVCxcbiAgRXJyb3JDb2RlLlNDSEVNQV9JTlZBTElEX0FUVFJJQlVURSxcbiAgRXJyb3JDb2RlLk1JU1NJTkdfUkVGRVJFTkNFX1RBUkdFVCxcbiAgRXJyb3JDb2RlLkNPTVBPTkVOVF9JTlZBTElEX1NIQURPV19ET01fU0VMRUNUT1IsXG5dKTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5nRXJyb3JDb2RlKGNvZGU6IEVycm9yQ29kZSk6IG51bWJlciB7XG4gIHJldHVybiBwYXJzZUludCgnLTk5JyArIGNvZGUpO1xufVxuIl19
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JfY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZGlhZ25vc3RpY3Mvc3JjL2Vycm9yX2NvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBRUg7O09BRUc7SUFDSCxJQUFZLFNBd05YO0lBeE5ELFdBQVksU0FBUztRQUNuQixzRkFBZ0MsQ0FBQTtRQUNoQyw4RUFBNEIsQ0FBQTtRQUM1Qiw0RUFBMkIsQ0FBQTtRQUMzQiw0RkFBbUMsQ0FBQTtRQUNuQyw0RUFBMkIsQ0FBQTtRQUUzQjs7V0FFRztRQUNILDBFQUEwQixDQUFBO1FBRTFCLDRFQUEyQixDQUFBO1FBQzNCLHNFQUF3QixDQUFBO1FBRXhCLHdGQUFpQyxDQUFBO1FBQ2pDLHNFQUF3QixDQUFBO1FBQ3hCLDBFQUEwQixDQUFBO1FBQzFCLHdGQUFpQyxDQUFBO1FBRWpDLDhGQUE4RjtRQUM5Riw0RUFBMkIsQ0FBQTtRQUUzQjs7O1dBR0c7UUFDSCwwR0FBMEMsQ0FBQTtRQUUxQzs7O1dBR0c7UUFDSCxvSEFBK0MsQ0FBQTtRQUUvQzs7O1dBR0c7UUFDSCw0RkFBbUMsQ0FBQTtRQUVuQzs7O1dBR0c7UUFDSCw4R0FBNEMsQ0FBQTtRQUU1QywwRUFBMEIsQ0FBQTtRQUMxQiw0R0FBMkMsQ0FBQTtRQUMzQzs7O1dBR0c7UUFDSCw4RUFBNEIsQ0FBQTtRQUU1QiwwRkFBa0MsQ0FBQTtRQUNsQyxrSkFBOEQsQ0FBQTtRQUU5RDs7O1dBR0c7UUFDSCxvRkFBK0IsQ0FBQTtRQUUvQjs7V0FFRztRQUNILDRFQUEyQixDQUFBO1FBRTNCOztXQUVHO1FBQ0gsNEZBQW1DLENBQUE7UUFFbkM7O1dBRUc7UUFDSCxrRkFBOEIsQ0FBQTtRQUU5Qjs7V0FFRztRQUNILGtGQUE4QixDQUFBO1FBRTlCOzs7V0FHRztRQUNILHNGQUFnQyxDQUFBO1FBRWhDOzs7V0FHRztRQUNILGdJQUFxRCxDQUFBO1FBRXJEOzs7V0FHRztRQUNILG9HQUF1QyxDQUFBO1FBRXZDOztXQUVHO1FBQ0gsa0dBQXNDLENBQUE7UUFFdEM7OztXQUdHO1FBQ0gsc0dBQXdDLENBQUE7UUFFeEM7O1dBRUc7UUFDSCxnRkFBNkIsQ0FBQTtRQUU3Qjs7V0FFRztRQUNILG9GQUErQixDQUFBO1FBRS9COztXQUVHO1FBQ0gsb0ZBQStCLENBQUE7UUFFL0I7O1dBRUc7UUFDSCw0REFBbUIsQ0FBQTtRQUVuQjs7Ozs7Ozs7Ozs7V0FXRztRQUNILDBGQUFrQyxDQUFBO1FBRWxDOzs7Ozs7O1dBT0c7UUFDSCxnR0FBcUMsQ0FBQTtRQUVyQzs7O1dBR0c7UUFDSCw4RUFBNEIsQ0FBQTtRQUU1Qjs7Ozs7OztXQU9HO1FBQ0gsOEVBQTRCLENBQUE7UUFFNUI7Ozs7Ozs7V0FPRztRQUNILGtHQUFzQyxDQUFBO1FBRXRDOzs7V0FHRztRQUNILDBFQUEwQixDQUFBO1FBRTFCOzs7V0FHRztRQUNILHNGQUFnQyxDQUFBO1FBRWhDOztXQUVHO1FBQ0gsc0ZBQWdDLENBQUE7UUFFaEMsNEVBQTRFO1FBQzVFLGlHQUFpRztRQUNqRyxzRkFBc0Y7UUFFdEY7OztXQUdHO1FBQ0gscUZBQWdDLENBQUE7UUFFaEM7Ozs7V0FJRztRQUNILHVHQUF5QyxDQUFBO0lBQzNDLENBQUMsRUF4TlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUF3TnBCO0lBRUQ7Ozs7O09BS0c7SUFDVSxRQUFBLDJCQUEyQixHQUFHLDJCQUEyQixDQUFDO0lBRXZFOzs7O09BSUc7SUFDVSxRQUFBLDJCQUEyQixHQUFHLElBQUksR0FBRyxDQUFDO1FBQ2pELFNBQVMsQ0FBQyx5QkFBeUI7UUFDbkMsU0FBUyxDQUFDLHFCQUFxQjtRQUMvQixTQUFTLENBQUMsbUJBQW1CO1FBQzdCLFNBQVMsQ0FBQyxzQkFBc0I7UUFDaEMsU0FBUyxDQUFDLHdCQUF3QjtRQUNsQyxTQUFTLENBQUMsd0JBQXdCO1FBQ2xDLFNBQVMsQ0FBQyxxQ0FBcUM7S0FDaEQsQ0FBQyxDQUFDO0lBRUg7O09BRUc7SUFDSCxTQUFnQixXQUFXLENBQUMsSUFBZTtRQUN6QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUZELGtDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgZW51bSBFcnJvckNvZGUge1xuICBERUNPUkFUT1JfQVJHX05PVF9MSVRFUkFMID0gMTAwMSxcbiAgREVDT1JBVE9SX0FSSVRZX1dST05HID0gMTAwMixcbiAgREVDT1JBVE9SX05PVF9DQUxMRUQgPSAxMDAzLFxuICBERUNPUkFUT1JfT05fQU5PTllNT1VTX0NMQVNTID0gMTAwNCxcbiAgREVDT1JBVE9SX1VORVhQRUNURUQgPSAxMDA1LFxuXG4gIC8qKlxuICAgKiBUaGlzIGVycm9yIGNvZGUgaW5kaWNhdGVzIHRoYXQgdGhlcmUgYXJlIGluY29tcGF0aWJsZSBkZWNvcmF0b3JzIG9uIGEgdHlwZSBvciBhIGNsYXNzIGZpZWxkLlxuICAgKi9cbiAgREVDT1JBVE9SX0NPTExJU0lPTiA9IDEwMDYsXG5cbiAgVkFMVUVfSEFTX1dST05HX1RZUEUgPSAxMDEwLFxuICBWQUxVRV9OT1RfTElURVJBTCA9IDEwMTEsXG5cbiAgQ09NUE9ORU5UX01JU1NJTkdfVEVNUExBVEUgPSAyMDAxLFxuICBQSVBFX01JU1NJTkdfTkFNRSA9IDIwMDIsXG4gIFBBUkFNX01JU1NJTkdfVE9LRU4gPSAyMDAzLFxuICBESVJFQ1RJVkVfTUlTU0lOR19TRUxFQ1RPUiA9IDIwMDQsXG5cbiAgLyoqIFJhaXNlZCB3aGVuIGFuIHVuZGVjb3JhdGVkIGNsYXNzIGlzIHBhc3NlZCBpbiBhcyBhIHByb3ZpZGVyIHRvIGEgbW9kdWxlIG9yIGEgZGlyZWN0aXZlLiAqL1xuICBVTkRFQ09SQVRFRF9QUk9WSURFUiA9IDIwMDUsXG5cbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIGEgRGlyZWN0aXZlIGluaGVyaXRzIGl0cyBjb25zdHJ1Y3RvciBmcm9tIGEgYmFzZSBjbGFzcyB3aXRob3V0IGFuIEFuZ3VsYXJcbiAgICogZGVjb3JhdG9yLlxuICAgKi9cbiAgRElSRUNUSVZFX0lOSEVSSVRTX1VOREVDT1JBVEVEX0NUT1IgPSAyMDA2LFxuXG4gIC8qKlxuICAgKiBSYWlzZWQgd2hlbiBhbiB1bmRlY29yYXRlZCBjbGFzcyB0aGF0IGlzIHVzaW5nIEFuZ3VsYXIgZmVhdHVyZXNcbiAgICogaGFzIGJlZW4gZGlzY292ZXJlZC5cbiAgICovXG4gIFVOREVDT1JBVEVEX0NMQVNTX1VTSU5HX0FOR1VMQVJfRkVBVFVSRVMgPSAyMDA3LFxuXG4gIC8qKlxuICAgKiBSYWlzZWQgd2hlbiBhbiBjb21wb25lbnQgY2Fubm90IHJlc29sdmUgYW4gZXh0ZXJuYWwgcmVzb3VyY2UsIHN1Y2ggYXMgYSB0ZW1wbGF0ZSBvciBhIHN0eWxlXG4gICAqIHNoZWV0LlxuICAgKi9cbiAgQ09NUE9ORU5UX1JFU09VUkNFX05PVF9GT1VORCA9IDIwMDgsXG5cbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIGEgY29tcG9uZW50IHVzZXMgYFNoYWRvd0RvbWAgdmlldyBlbmNhcHN1bGF0aW9uLCBidXQgaXRzIHNlbGVjdG9yXG4gICAqIGRvZXMgbm90IG1hdGNoIHRoZSBzaGFkb3cgRE9NIHRhZyBuYW1lIHJlcXVpcmVtZW50cy5cbiAgICovXG4gIENPTVBPTkVOVF9JTlZBTElEX1NIQURPV19ET01fU0VMRUNUT1IgPSAyMDA5LFxuXG4gIFNZTUJPTF9OT1RfRVhQT1JURUQgPSAzMDAxLFxuICBTWU1CT0xfRVhQT1JURURfVU5ERVJfRElGRkVSRU5UX05BTUUgPSAzMDAyLFxuICAvKipcbiAgICogUmFpc2VkIHdoZW4gYSByZWxhdGlvbnNoaXAgYmV0d2VlbiBkaXJlY3RpdmVzIGFuZC9vciBwaXBlcyB3b3VsZCBjYXVzZSBhIGN5Y2xpYyBpbXBvcnQgdG8gYmVcbiAgICogY3JlYXRlZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkLCBzdWNoIGFzIGluIHBhcnRpYWwgY29tcGlsYXRpb24gbW9kZS5cbiAgICovXG4gIElNUE9SVF9DWUNMRV9ERVRFQ1RFRCA9IDMwMDMsXG5cbiAgQ09ORklHX0ZMQVRfTU9EVUxFX05PX0lOREVYID0gNDAwMSxcbiAgQ09ORklHX1NUUklDVF9URU1QTEFURVNfSU1QTElFU19GVUxMX1RFTVBMQVRFX1RZUEVDSEVDSyA9IDQwMDIsXG5cbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIGEgaG9zdCBleHByZXNzaW9uIGhhcyBhIHBhcnNlIGVycm9yLCBzdWNoIGFzIGEgaG9zdCBsaXN0ZW5lciBvciBob3N0IGJpbmRpbmdcbiAgICogZXhwcmVzc2lvbiBjb250YWluaW5nIGEgcGlwZS5cbiAgICovXG4gIEhPU1RfQklORElOR19QQVJTRV9FUlJPUiA9IDUwMDEsXG5cbiAgLyoqXG4gICAqIFJhaXNlZCB3aGVuIHRoZSBjb21waWxlciBjYW5ub3QgcGFyc2UgYSBjb21wb25lbnQncyB0ZW1wbGF0ZS5cbiAgICovXG4gIFRFTVBMQVRFX1BBUlNFX0VSUk9SID0gNTAwMixcblxuICAvKipcbiAgICogUmFpc2VkIHdoZW4gYW4gTmdNb2R1bGUgY29udGFpbnMgYW4gaW52YWxpZCByZWZlcmVuY2UgaW4gYGRlY2xhcmF0aW9uc2AuXG4gICAqL1xuICBOR01PRFVMRV9JTlZBTElEX0RFQ0xBUkFUSU9OID0gNjAwMSxcblxuICAvKipcbiAgICogUmFpc2VkIHdoZW4gYW4gTmdNb2R1bGUgY29udGFpbnMgYW4gaW52YWxpZCB0eXBlIGluIGBpbXBvcnRzYC5cbiAgICovXG4gIE5HTU9EVUxFX0lOVkFMSURfSU1QT1JUID0gNjAwMixcblxuICAvKipcbiAgICogUmFpc2VkIHdoZW4gYW4gTmdNb2R1bGUgY29udGFpbnMgYW4gaW52YWxpZCB0eXBlIGluIGBleHBvcnRzYC5cbiAgICovXG4gIE5HTU9EVUxFX0lOVkFMSURfRVhQT1JUID0gNjAwMyxcblxuICAvKipcbiAgICogUmFpc2VkIHdoZW4gYW4gTmdNb2R1bGUgY29udGFpbnMgYSB0eXBlIGluIGBleHBvcnRzYCB3aGljaCBpcyBuZWl0aGVyIGluIGBkZWNsYXJhdGlvbnNgIG5vclxuICAgKiBvdGhlcndpc2UgaW1wb3J0ZWQuXG4gICAqL1xuICBOR01PRFVMRV9JTlZBTElEX1JFRVhQT1JUID0gNjAwNCxcblxuICAvKipcbiAgICogUmFpc2VkIHdoZW4gYSBgTW9kdWxlV2l0aFByb3ZpZGVyc2Agd2l0aCBhIG1pc3NpbmdcbiAgICogZ2VuZXJpYyB0eXBlIGFyZ3VtZW50IGlzIHBhc3NlZCBpbnRvIGFuIGBOZ01vZHVsZWAuXG4gICAqL1xuICBOR01PRFVMRV9NT0RVTEVfV0lUSF9QUk9WSURFUlNfTUlTU0lOR19HRU5FUklDID0gNjAwNSxcblxuICAvKipcbiAgICogUmFpc2VkIHdoZW4gYW4gTmdNb2R1bGUgZXhwb3J0cyBtdWx0aXBsZSBkaXJlY3RpdmVzL3BpcGVzIG9mIHRoZSBzYW1lIG5hbWUgYW5kIHRoZSBjb21waWxlclxuICAgKiBhdHRlbXB0cyB0byBnZW5lcmF0ZSBwcml2YXRlIHJlLWV4cG9ydHMgd2l0aGluIHRoZSBOZ01vZHVsZSBmaWxlLlxuICAgKi9cbiAgTkdNT0RVTEVfUkVFWFBPUlRfTkFNRV9DT0xMSVNJT04gPSA2MDA2LFxuXG4gIC8qKlxuICAgKiBSYWlzZWQgd2hlbiBhIGRpcmVjdGl2ZS9waXBlIGlzIHBhcnQgb2YgdGhlIGRlY2xhcmF0aW9ucyBvZiB0d28gb3IgbW9yZSBOZ01vZHVsZXMuXG4gICAqL1xuICBOR01PRFVMRV9ERUNMQVJBVElPTl9OT1RfVU5JUVVFID0gNjAwNyxcblxuICAvKipcbiAgICogTm90IGFjdHVhbGx5IHJhaXNlZCBieSB0aGUgY29tcGlsZXIsIGJ1dCByZXNlcnZlZCBmb3IgZG9jdW1lbnRhdGlvbiBvZiBhIFZpZXcgRW5naW5lIGVycm9yIHdoZW5cbiAgICogYSBWaWV3IEVuZ2luZSBidWlsZCBkZXBlbmRzIG9uIGFuIEl2eS1jb21waWxlZCBOZ01vZHVsZS5cbiAgICovXG4gIE5HTU9EVUxFX1ZFX0RFUEVOREVOQ1lfT05fSVZZX0xJQiA9IDY5OTksXG5cbiAgLyoqXG4gICAqIEFuIGVsZW1lbnQgbmFtZSBmYWlsZWQgdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBET00gc2NoZW1hLlxuICAgKi9cbiAgU0NIRU1BX0lOVkFMSURfRUxFTUVOVCA9IDgwMDEsXG5cbiAgLyoqXG4gICAqIEFuIGVsZW1lbnQncyBhdHRyaWJ1dGUgbmFtZSBmYWlsZWQgdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBET00gc2NoZW1hLlxuICAgKi9cbiAgU0NIRU1BX0lOVkFMSURfQVRUUklCVVRFID0gODAwMixcblxuICAvKipcbiAgICogTm8gbWF0Y2hpbmcgZGlyZWN0aXZlIHdhcyBmb3VuZCBmb3IgYSBgI3JlZj1cInRhcmdldFwiYCBleHByZXNzaW9uLlxuICAgKi9cbiAgTUlTU0lOR19SRUZFUkVOQ0VfVEFSR0VUID0gODAwMyxcblxuICAvKipcbiAgICogTm8gbWF0Y2hpbmcgcGlwZSB3YXMgZm91bmQgZm9yIGFcbiAgICovXG4gIE1JU1NJTkdfUElQRSA9IDgwMDQsXG5cbiAgLyoqXG4gICAqIFRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhbiBhc3NpZ25tZW50IGV4cHJlc3Npb24gd2FzIGEgdGVtcGxhdGUgdmFyaWFibGUuIEVmZmVjdGl2ZWx5LCB0aGVcbiAgICogdGVtcGxhdGUgbG9va2VkIGxpa2U6XG4gICAqXG4gICAqIGBgYFxuICAgKiA8bmctdGVtcGxhdGUgbGV0LXNvbWV0aGluZz5cbiAgICogICA8YnV0dG9uIChjbGljayk9XCJzb21ldGhpbmcgPSAuLi5cIj4uLi48L2J1dHRvbj5cbiAgICogPC9uZy10ZW1wbGF0ZT5cbiAgICogYGBgXG4gICAqXG4gICAqIFRlbXBsYXRlIHZhcmlhYmxlcyBhcmUgcmVhZC1vbmx5LlxuICAgKi9cbiAgV1JJVEVfVE9fUkVBRF9PTkxZX1ZBUklBQkxFID0gODAwNSxcblxuICAvKipcbiAgICogQSB0ZW1wbGF0ZSB2YXJpYWJsZSB3YXMgZGVjbGFyZWQgdHdpY2UuIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiBgYGBodG1sXG4gICAqIDxkaXYgKm5nRm9yPVwibGV0IGkgb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICogPC9kaXY+XG4gICAqIGBgYFxuICAgKi9cbiAgRFVQTElDQVRFX1ZBUklBQkxFX0RFQ0xBUkFUSU9OID0gODAwNixcblxuICAvKipcbiAgICogQSB0ZW1wbGF0ZSBoYXMgYSB0d28gd2F5IGJpbmRpbmcgKHR3byBiaW5kaW5ncyBjcmVhdGVkIGJ5IGEgc2luZ2xlIHN5bnRhY3RpYWwgZWxlbWVudClcbiAgICogaW4gd2hpY2ggdGhlIGlucHV0IGFuZCBvdXRwdXQgYXJlIGdvaW5nIHRvIGRpZmZlcmVudCBwbGFjZXMuXG4gICAqL1xuICBTUExJVF9UV09fV0FZX0JJTkRJTkcgPSA4MDA3LFxuXG4gIC8qKlxuICAgKiBBIHR3byB3YXkgYmluZGluZyBpbiBhIHRlbXBsYXRlIGhhcyBhbiBpbmNvcnJlY3Qgc3ludGF4LFxuICAgKiBwYXJlbnRoZXNlcyBvdXRzaWRlIGJyYWNrZXRzLiBGb3IgZXhhbXBsZTpcbiAgICpcbiAgICogYGBgXG4gICAqIDxkaXYgKFtmb29dKT1cImJhclwiIC8+XG4gICAqIGBgYFxuICAgKi9cbiAgSU5WQUxJRF9CQU5BTkFfSU5fQk9YID0gODEwMSxcblxuICAvKipcbiAgICogVGhlIGxlZnQgc2lkZSBvZiBhIG51bGxpc2ggY29hbGVzY2luZyBvcGVyYXRpb24gaXMgbm90IG51bGxhYmxlLlxuICAgKlxuICAgKiBgYGBcbiAgICoge3sgZm9vID8/IGJhciB9fVxuICAgKiBgYGBcbiAgICogV2hlbiB0aGUgdHlwZSBvZiBmb28gZG9lc24ndCBpbmNsdWRlIGBudWxsYCBvciBgdW5kZWZpbmVkYC5cbiAgICovXG4gIE5VTExJU0hfQ09BTEVTQ0lOR19OT1RfTlVMTEFCTEUgPSA4MTAyLFxuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdHlwZS1jaGVja2luZyBlbmdpbmUgd291bGQgbmVlZCB0byBnZW5lcmF0ZSBhbiBpbmxpbmUgdHlwZSBjaGVjayBibG9jayBmb3IgYVxuICAgKiBjb21wb25lbnQsIGJ1dCB0aGUgY3VycmVudCB0eXBlLWNoZWNraW5nIGVudmlyb25tZW50IGRvZXNuJ3Qgc3VwcG9ydCBpdC5cbiAgICovXG4gIElOTElORV9UQ0JfUkVRVUlSRUQgPSA4OTAwLFxuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdHlwZS1jaGVja2luZyBlbmdpbmUgd291bGQgbmVlZCB0byBnZW5lcmF0ZSBhbiBpbmxpbmUgdHlwZSBjb25zdHJ1Y3RvciBmb3IgYVxuICAgKiBkaXJlY3RpdmUgb3IgY29tcG9uZW50LCBidXQgdGhlIGN1cnJlbnQgdHlwZS1jaGVja2luZyBlbnZpcm9ubWVudCBkb2Vzbid0IHN1cHBvcnQgaXQuXG4gICAqL1xuICBJTkxJTkVfVFlQRV9DVE9SX1JFUVVJUkVEID0gODkwMSxcblxuICAvKipcbiAgICogQW4gaW5qZWN0YWJsZSBhbHJlYWR5IGhhcyBhIGDJtXByb3ZgIHByb3BlcnR5LlxuICAgKi9cbiAgSU5KRUNUQUJMRV9EVVBMSUNBVEVfUFJPViA9IDkwMDEsXG5cbiAgLy8gMTBYWFggZXJyb3IgY29kZXMgYXJlIHJlc2VydmVkIGZvciBkaWFnbm9zdGljcyB3aXRoIGNhdGVnb3JpZXMgb3RoZXIgdGhhblxuICAvLyBgdHMuRGlhZ25vc3RpY0NhdGVnb3J5LkVycm9yYC4gVGhlc2UgZGlhZ25vc3RpY3MgYXJlIGdlbmVyYXRlZCBieSB0aGUgY29tcGlsZXIgd2hlbiBjb25maWd1cmVkXG4gIC8vIHRvIGRvIHNvIGJ5IGEgdG9vbCBzdWNoIGFzIHRoZSBMYW5ndWFnZSBTZXJ2aWNlLCBvciBieSB0aGUgTGFuZ3VhZ2UgU2VydmljZSBpdHNlbGYuXG5cbiAgLyoqXG4gICAqIFN1Z2dlc3QgdXNlcnMgdG8gZW5hYmxlIGBzdHJpY3RUZW1wbGF0ZXNgIHRvIG1ha2UgdXNlIG9mIGZ1bGwgY2FwYWJpbGl0aWVzXG4gICAqIHByb3ZpZGVkIGJ5IEFuZ3VsYXIgbGFuZ3VhZ2Ugc2VydmljZS5cbiAgICovXG4gIFNVR0dFU1RfU1RSSUNUX1RFTVBMQVRFUyA9IDEwMDAxLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBhIHBhcnRpY3VsYXIgc3RydWN0dXJhbCBkaXJlY3RpdmUgcHJvdmlkZXMgYWR2YW5jZWQgdHlwZSBuYXJyb3dpbmdcbiAgICogZnVuY3Rpb25hbGl0eSwgYnV0IHRoZSBjdXJyZW50IHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgY29uZmlndXJhdGlvbiBkb2VzIG5vdCBhbGxvdyBpdHMgdXNhZ2UgaW5cbiAgICogdHlwZSBpbmZlcmVuY2UuXG4gICAqL1xuICBTVUdHRVNUX1NVQk9QVElNQUxfVFlQRV9JTkZFUkVOQ0UgPSAxMDAwMixcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEJhc2UgVVJMIGZvciB0aGUgZXJyb3IgZGV0YWlscyBwYWdlLlxuICogS2VlcCB0aGlzIHZhbHVlIGluIHN5bmMgd2l0aCBhIHNpbWlsYXIgY29uc3QgaW5cbiAqIGBwYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2Vycm9yX2NvZGUudHNgLlxuICovXG5leHBvcnQgY29uc3QgRVJST1JfREVUQUlMU19QQUdFX0JBU0VfVVJMID0gJ2h0dHBzOi8vYW5ndWxhci5pby9lcnJvcnMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQ29udGFpbnMgYSBzZXQgb2YgZXJyb3IgbWVzc2FnZXMgdGhhdCBoYXZlIGRldGFpbGVkIGd1aWRlcyBhdCBhbmd1bGFyLmlvLlxuICogRnVsbCBsaXN0IG9mIGF2YWlsYWJsZSBlcnJvciBndWlkZXMgY2FuIGJlIGZvdW5kIGF0IGh0dHBzOi8vYW5ndWxhci5pby9lcnJvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IENPTVBJTEVSX0VSUk9SU19XSVRIX0dVSURFUyA9IG5ldyBTZXQoW1xuICBFcnJvckNvZGUuREVDT1JBVE9SX0FSR19OT1RfTElURVJBTCxcbiAgRXJyb3JDb2RlLklNUE9SVF9DWUNMRV9ERVRFQ1RFRCxcbiAgRXJyb3JDb2RlLlBBUkFNX01JU1NJTkdfVE9LRU4sXG4gIEVycm9yQ29kZS5TQ0hFTUFfSU5WQUxJRF9FTEVNRU5ULFxuICBFcnJvckNvZGUuU0NIRU1BX0lOVkFMSURfQVRUUklCVVRFLFxuICBFcnJvckNvZGUuTUlTU0lOR19SRUZFUkVOQ0VfVEFSR0VULFxuICBFcnJvckNvZGUuQ09NUE9ORU5UX0lOVkFMSURfU0hBRE9XX0RPTV9TRUxFQ1RPUixcbl0pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gbmdFcnJvckNvZGUoY29kZTogRXJyb3JDb2RlKTogbnVtYmVyIHtcbiAgcmV0dXJuIHBhcnNlSW50KCctOTknICsgY29kZSk7XG59XG4iXX0=
|
package/src/ngtsc/program.d.ts
CHANGED
|
@@ -25,7 +25,6 @@ export declare class NgtscProgram implements api.Program {
|
|
|
25
25
|
* The primary TypeScript program, which is used for analysis and emit.
|
|
26
26
|
*/
|
|
27
27
|
private tsProgram;
|
|
28
|
-
private closureCompilerEnabled;
|
|
29
28
|
private host;
|
|
30
29
|
private incrementalStrategy;
|
|
31
30
|
constructor(rootNames: ReadonlyArray<string>, options: NgCompilerOptions, delegateHost: api.CompilerHost, oldProgram?: NgtscProgram);
|
package/src/ngtsc/program.js
CHANGED
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
if (!options.disableTypeScriptVersionCheck) {
|
|
47
47
|
typescript_support_1.verifySupportedTypeScriptVersion();
|
|
48
48
|
}
|
|
49
|
-
this.closureCompilerEnabled = !!options.annotateForClosureCompiler;
|
|
50
49
|
var reuseProgram = oldProgram === null || oldProgram === void 0 ? void 0 : oldProgram.compiler.getCurrentProgram();
|
|
51
50
|
this.host = core_1.NgCompilerHost.wrap(delegateHost, rootNames, options, reuseProgram !== null && reuseProgram !== void 0 ? reuseProgram : null);
|
|
52
51
|
if (reuseProgram !== undefined) {
|
|
@@ -358,4 +357,4 @@
|
|
|
358
357
|
return { diagnostics: diagnostics, emitSkipped: emitSkipped, emittedFiles: emittedFiles };
|
|
359
358
|
}
|
|
360
359
|
});
|
|
361
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcHJvZ3JhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBRUgsOENBQTJFO0lBQzNFLCtCQUFpQztJQUVqQyxnRUFBMkM7SUFDM0Msb0VBQWlEO0lBQ2pELG1GQUF1RTtJQUV2RSw2REFBNEg7SUFFNUgsMkVBQW1GO0lBQ25GLDJFQUE4RDtJQUU5RCw2REFBa0c7SUFDbEcsaUZBQXVEO0lBRXZELCtEQUF5RDtJQUN6RCxxRUFBNEM7SUFFNUM7Ozs7T0FJRztJQUNIO1FBWUUsc0JBQ0ksU0FBZ0MsRUFBVSxPQUEwQixFQUNwRSxZQUE4QixFQUFFLFVBQXlCOztZQUY3RCxpQkF5RUM7WUF4RTZDLFlBQU8sR0FBUCxPQUFPLENBQW1CO1lBRXRFLElBQU0sWUFBWSxHQUFHLHlCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRXRELFlBQVksQ0FBQyxLQUFLLENBQUMsZ0JBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwQyw0REFBNEQ7WUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsRUFBRTtnQkFDMUMscURBQWdDLEVBQUUsQ0FBQzthQUNwQztZQUVELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDO1lBRW5FLElBQU0sWUFBWSxHQUFHLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsSUFBSSxHQUFHLHFCQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksYUFBWixZQUFZLGNBQVosWUFBWSxHQUFJLElBQUksQ0FBQyxDQUFDO1lBRXhGLElBQUksWUFB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QUFTLGdCQUFnQixDQUFDLFdBQTRCOztRQUNwRCxJQUFNLFdBQVcsR0FBb0IsRUFBRSxDQUFDO1FBQ3hDLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFNLFlBQVksR0FBYSxFQUFFLENBQUM7O1lBQ2xDLEtBQWlCLElBQUEsZ0JBQUEsaUJBQUEsV0FBVyxDQUFBLHdDQUFBLGlFQUFFO2dCQUF6QixJQUFNLEVBQUUsd0JBQUE7Z0JBQ1gsV0FBVyxDQUFDLElBQUksT0FBaEIsV0FBVywyQ0FBUyxFQUFFLENBQUMsV0FBVyxJQUFFO2dCQUNwQyxXQUFXLEdBQUcsV0FBVyxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7Z0JBQzVDLFlBQVksQ0FBQyxJQUFJLE9BQWpCLFlBQVksMkNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxJQUFFO2FBQy9DOzs7Ozs7Ozs7UUFFRCxPQUFPLEVBQUMsV0FBVyxhQUFBLEVBQUUsV0FBVyxhQUFBLEVBQUUsWUFBWSxjQUFBLEVBQUMsQ0FBQztJQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7R2VuZXJhdGVkRmlsZSwgSHRtbFBhcnNlciwgTWVzc2FnZUJ1bmRsZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCAqIGFzIGFwaSBmcm9tICcuLi90cmFuc2Zvcm1lcnMvYXBpJztcbmltcG9ydCB7aTE4bkV4dHJhY3R9IGZyb20gJy4uL3RyYW5zZm9ybWVycy9pMThuJztcbmltcG9ydCB7dmVyaWZ5U3VwcG9ydGVkVHlwZVNjcmlwdFZlcnNpb259IGZyb20gJy4uL3R5cGVzY3JpcHRfc3VwcG9ydCc7XG5cbmltcG9ydCB7Q29tcGlsYXRpb25UaWNrZXQsIGZyZXNoQ29tcGlsYXRpb25UaWNrZXQsIGluY3JlbWVudGFsRnJvbUNvbXBpbGVyVGlja2V0LCBOZ0NvbXBpbGVyLCBOZ0NvbXBpbGVySG9zdH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7TmdDb21waWxlck9wdGlvbnN9IGZyb20gJy4vY29yZS9hcGknO1xuaW1wb3J0IHthYnNvbHV0ZUZyb20sIEFic29sdXRlRnNQYXRoLCBnZXRGaWxlU3lzdGVtLCByZXNvbHZlfSBmcm9tICcuL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7VHJhY2tlZEluY3JlbWVudGFsQnVpbGRTdHJhdGVneX0gZnJvbSAnLi9pbmNyZW1lbnRhbCc7XG5pbXBvcnQge0luZGV4ZWRDb21wb25lbnR9IGZyb20gJy4vaW5kZXhlcic7XG5pbXBvcnQge0FjdGl2ZVBlcmZSZWNvcmRlciwgUGVyZkNoZWNrcG9pbnQgYXMgUGVyZkNoZWNrcG9pbnQsIFBlcmZFdmVudCwgUGVyZlBoYXNlfSBmcm9tICcuL3BlcmYnO1xuaW1wb3J0IHtUc0NyZWF0ZVByb2dyYW1Ecml2ZXJ9IGZyb20gJy4vcHJvZ3JhbV9kcml2ZXInO1xuaW1wb3J0IHtEZWNsYXJhdGlvbk5vZGV9IGZyb20gJy4vcmVmbGVjdGlvbic7XG5pbXBvcnQge3JldGFnQWxsVHNGaWxlcywgdW50YWdBbGxUc0ZpbGVzfSBmcm9tICcuL3NoaW1zJztcbmltcG9ydCB7T3B0aW1pemVGb3J9IGZyb20gJy4vdHlwZWNoZWNrL2FwaSc7XG5cbi8qKlxuICogRW50cnlwb2ludCB0byB0aGUgQW5ndWxhciBDb21waWxlciAoSXZ5Kykgd2hpY2ggc2l0cyBiZWhpbmQgdGhlIGBhcGkuUHJvZ3JhbWAgaW50ZXJmYWNlLCBhbGxvd2luZ1xuICogaXQgdG8gYmUgYSBkcm9wLWluIHJlcGxhY2VtZW50IGZvciB0aGUgbGVnYWN5IFZpZXcgRW5naW5lIGNvbXBpbGVyIHRvIHRvb2xpbmcgc3VjaCBhcyB0aGVcbiAqIGNvbW1hbmQtbGluZSBtYWluKCkgZnVuY3Rpb24gb3IgdGhlIEFuZ3VsYXIgQ0xJLlxuICovXG5leHBvcnQgY2xhc3MgTmd0c2NQcm9ncmFtIGltcGxlbWVudHMgYXBpLlByb2dyYW0ge1xuICByZWFkb25seSBjb21waWxlcjogTmdDb21waWxlcjtcblxuICAvKipcbiAgICogVGhlIHByaW1hcnkgVHlwZVNjcmlwdCBwcm9ncmFtLCB3aGljaCBpcyB1c2VkIGZvciBhbmFseXNpcyBhbmQgZW1pdC5cbiAgICovXG4gIHByaXZhdGUgdHNQcm9ncmFtOiB0cy5Qcm9ncmFtO1xuXG4gIHByaXZhdGUgY2xvc3VyZUNvbXBpbGVyRW5hYmxlZDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBob3N0OiBOZ0NvbXBpbGVySG9zdDtcbiAgcHJpdmF0ZSBpbmNyZW1lbnRhbFN0cmF0ZWd5OiBUcmFja2VkSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcm9vdE5hbWVzOiBSZWFkb25seUFycmF5PHN0cmluZz4sIHByaXZhdGUgb3B0aW9uczogTmdDb21waWxlck9wdGlvbnMsXG4gICAgICBkZWxlZ2F0ZUhvc3Q6IGFwaS5Db21waWxlckhvc3QsIG9sZFByb2dyYW0/OiBOZ3RzY1Byb2dyYW0pIHtcbiAgICBjb25zdCBwZXJmUmVjb3JkZXIgPSBBY3RpdmVQZXJmUmVjb3JkZXIuemVyb2VkVG9Ob3coKTtcblxuICAgIHBlcmZSZWNvcmRlci5waGFzZShQZXJmUGhhc2UuU2V0dXApO1xuXG4gICAgLy8gRmlyc3QsIGNoZWNrIHdoZXRoZXIgdGhlIGN1cnJlbnQgVFMgdmVyc2lvbiBpcyBzdXBwb3J0ZWQuXG4gICAgaWYgKCFvcHRpb25zLmRpc2FibGVUeXBlU2NyaXB0VmVyc2lvbkNoZWNrKSB7XG4gICAgICB2ZXJpZnlTdXBwb3J0ZWRUeXBlU2NyaXB0VmVyc2lvbigpO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc3VyZUNvbXBpbGVyRW5hYmxlZCA9ICEhb3B0aW9ucy5hbm5vdGF0ZUZvckNsb3N1cmVDb21waWxlcjtcblxuICAgIGNvbnN0IHJldXNlUHJvZ3JhbSA9IG9sZFByb2dyYW0/LmNvbXBpbGVyLmdldEN1cnJlbnRQcm9ncmFtKCk7XG4gICAgdGhpcy5ob3N0ID0gTmdDb21waWxlckhvc3Qud3JhcChkZWxlZ2F0ZUhvc3QsIHJvb3ROYW1lcywgb3B0aW9ucywgcmV1c2VQcm9ncmFtID8/IG51bGwpO1xuXG4gICAgaWYgKHJldXNlUHJvZ3JhbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBQcmlvciB0byByZXVzaW5nIHRoZSBvbGQgcHJvZ3JhbSwgcmVzdG9yZSBzaGltIHRhZ2dpbmcgZm9yIGFsbCBpdHMgYHRzLlNvdXJjZUZpbGVgcy5cbiAgICAgIC8vIFR5cGVTY3JpcHQgY2hlY2tzIHRoZSBgcmVmZXJlbmNlZEZpbGVzYCBvZiBgdHMuU291cmNlRmlsZWBzIGZvciBjaGFuZ2VzIHdoZW4gZXZhbHVhdGluZ1xuICAgICAgLy8gaW5jcmVtZW50YWwgcmV1c2Ugb2YgZGF0YSBmcm9tIHRoZSBvbGQgcHJvZ3JhbSwgc28gaXQncyBpbXBvcnRhbnQgdGhhdCB0aGVzZSBtYXRjaCBpbiBvcmRlclxuICAgICAgLy8gdG8gZ2V0IHRoZSBtb3N0IGJlbmVmaXQgb3V0IG9mIHJldXNlLlxuICAgICAgcmV0YWdBbGxUc0ZpbGVzKHJldXNlUHJvZ3JhbSk7XG4gICAgfVxuXG4gICAgdGhpcy50c1Byb2dyYW0gPSBwZXJmUmVjb3JkZXIuaW5QaGFzZShcbiAgICAgICAgUGVyZlBoYXNlLlR5cGVTY3JpcHRQcm9ncmFtQ3JlYXRlLFxuICAgICAgICAoKSA9PiB0cy5jcmVhdGVQcm9ncmFtKHRoaXMuaG9zdC5pbnB1dEZpbGVzLCBvcHRpb25zLCB0aGlzLmhvc3QsIHJldXNlUHJvZ3JhbSkpO1xuXG4gICAgcGVyZlJlY29yZGVyLnBoYXNlKFBlcmZQaGFzZS5VbmFjY291bnRlZCk7XG4gICAgcGVyZlJlY29yZGVyLm1lbW9yeShQZXJmQ2hlY2twb2ludC5UeXBlU2NyaXB0UHJvZ3JhbUNyZWF0ZSk7XG5cbiAgICB0aGlzLmhvc3QucG9zdFByb2dyYW1DcmVhdGlvbkNsZWFudXAoKTtcblxuICAgIC8vIFNoaW0gdGFnZ2luZyBoYXMgc2VydmVkIGl0cyBwdXJwb3NlLCBhbmQgdGFncyBjYW4gbm93IGJlIHJlbW92ZWQgZnJvbSBhbGwgYHRzLlNvdXJjZUZpbGVgcyBpblxuICAgIC8vIHRoZSBwcm9ncmFtLlxuICAgIHVudGFnQWxsVHNGaWxlcyh0aGlzLnRzUHJvZ3JhbSk7XG5cbiAgICBjb25zdCBwcm9ncmFtRHJpdmVyID0gbmV3IFRzQ3JlYXRlUHJvZ3JhbURyaXZlcihcbiAgICAgICAgdGhpcy50c1Byb2dyYW0sIHRoaXMuaG9zdCwgdGhpcy5vcHRpb25zLCB0aGlzLmhvc3Quc2hpbUV4dGVuc2lvblByZWZpeGVzKTtcblxuICAgIHRoaXMuaW5jcmVtZW50YWxTdHJhdGVneSA9IG9sZFByb2dyYW0gIT09IHVuZGVmaW5lZCA/XG4gICAgICAgIG9sZFByb2dyYW0uaW5jcmVtZW50YWxTdHJhdGVneS50b05leHRCdWlsZFN0cmF0ZWd5KCkgOlxuICAgICAgICBuZXcgVHJhY2tlZEluY3JlbWVudGFsQnVpbGRTdHJhdGVneSgpO1xuICAgIGNvbnN0IG1vZGlmaWVkUmVzb3VyY2VGaWxlcyA9IG5ldyBTZXQ8QWJzb2x1dGVGc1BhdGg+KCk7XG4gICAgaWYgKHRoaXMuaG9zdC5nZXRNb2RpZmllZFJlc291cmNlRmlsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qgc3RyaW5ncyA9IHRoaXMuaG9zdC5nZXRNb2RpZmllZFJlc291cmNlRmlsZXMoKTtcbiAgICAgIGlmIChzdHJpbmdzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlU3RyaW5nIG9mIHN0cmluZ3MpIHtcbiAgICAgICAgICBtb2RpZmllZFJlc291cmNlRmlsZXMuYWRkKGFic29sdXRlRnJvbShmaWxlU3RyaW5nKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgdGlja2V0OiBDb21waWxhdGlvblRpY2tldDtcbiAgICBpZiAob2xkUHJvZ3JhbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aWNrZXQgPSBmcmVzaENvbXBpbGF0aW9uVGlja2V0KFxuICAgICAgICAgIHRoaXMudHNQcm9ncmFtLCBvcHRpb25zLCB0aGlzLmluY3JlbWVudGFsU3RyYXRlZ3ksIHByb2dyYW1Ecml2ZXIsIHBlcmZSZWNvcmRlcixcbiAgICAgICAgICAvKiBlbmFibGVUZW1wbGF0ZVR5cGVDaGVja2VyICovIGZhbHNlLCAvKiB1c2VQb2lzb25lZERhdGEgKi8gZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aWNrZXQgPSBpbmNyZW1lbnRhbEZyb21Db21waWxlclRpY2tldChcbiAgICAgICAgICBvbGRQcm9ncmFtLmNvbXBpbGVyLFxuICAgICAgICAgIHRoaXMudHNQcm9ncmFtLFxuICAgICAgICAgIHRoaXMuaW5jcmVtZW50YWxTdHJhdGVneSxcbiAgICAgICAgICBwcm9ncmFtRHJpdmVyLFxuICAgICAgICAgIG1vZGlmaWVkUmVzb3VyY2VGaWxlcyxcbiAgICAgICAgICBwZXJmUmVjb3JkZXIsXG4gICAgICApO1xuICAgIH1cblxuXG4gICAgLy8gQ3JlYXRlIHRoZSBOZ0NvbXBpbGVyIHdoaWNoIHdpbGwgZHJpdmUgdGhlIHJlc3Qgb2YgdGhlIGNvbXBpbGF0aW9uLlxuICAgIHRoaXMuY29tcGlsZXIgPSBOZ0NvbXBpbGVyLmZyb21UaWNrZXQodGlja2V0LCB0aGlzLmhvc3QpO1xuICB9XG5cbiAgZ2V0VHNQcm9ncmFtKCk6IHRzLlByb2dyYW0ge1xuICAgIHJldHVybiB0aGlzLnRzUHJvZ3JhbTtcbiAgfVxuXG4gIGdldFJldXNlVHNQcm9ncmFtKCk6IHRzLlByb2dyYW0ge1xuICAgIHJldHVybiB0aGlzLmNvbXBpbGVyLmdldEN1cnJlbnRQcm9ncmFtKCk7XG4gIH1cblxuICBnZXRUc09wdGlvbkRpYWdub3N0aWNzKGNhbmNlbGxhdGlvblRva2VuPzogdHMuQ2FuY2VsbGF0aW9uVG9rZW58XG4gICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkKTogcmVhZG9ubHkgdHMuRGlhZ25vc3RpY1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb21waWxlci5wZXJmUmVjb3JkZXIuaW5QaGFzZShcbiAgICAgICAgUGVyZlBoYXNlLlR5cGVTY3JpcHREaWFnbm9zdGljcyxcbiAgICAgICAgKCkgPT4gdGhpcy50c1Byb2dyYW0uZ2V0T3B0aW9uc0RpYWdub3N0aWNzKGNhbmNlbGxhdGlvblRva2VuKSk7XG4gIH1cblxuICBnZXRUc1N5bnRhY3RpY0RpYWdub3N0aWNzKFxuICAgICAgc291cmNlRmlsZT86IHRzLlNvdXJjZUZpbGV8dW5kZWZpbmVkLFxuICAgICAgY2FuY2VsbGF0aW9uVG9rZW4/OiB0cy5DYW5jZWxsYXRpb25Ub2tlbnx1bmRlZmluZWQpOiByZWFkb25seSB0cy5EaWFnbm9zdGljW10ge1xuICAgIHJldHVybiB0aGlzLmNvbXBpbGVyLnBlcmZSZWNvcmRlci5pblBoYXNlKFBlcmZQaGFzZS5UeXBlU2NyaXB0RGlhZ25vc3RpY3MsICgpID0+IHtcbiAgICAgIGNvbnN0IGlnbm9yZWRGaWxlcyA9IHRoaXMuY29tcGlsZXIuaWdub3JlRm9yRGlhZ25vc3RpY3M7XG4gICAgICBsZXQgcmVzOiByZWFkb25seSB0cy5EaWFnbm9zdGljW107XG4gICAgICBpZiAoc291cmNlRmlsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChpZ25vcmVkRmlsZXMuaGFzKHNvdXJjZUZpbGUpKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzID0gdGhpcy50c1Byb2dyYW0uZ2V0U3ludGFjdGljRGlhZ25vc3RpY3Moc291cmNlRmlsZSwgY2FuY2VsbGF0aW9uVG9rZW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGlhZ25vc3RpY3M6IHRzLkRpYWdub3N0aWNbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHNmIG9mIHRoaXMudHNQcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkpIHtcbiAgICAgICAgICBpZiAoIWlnbm9yZWRGaWxlcy5oYXMoc2YpKSB7XG4gICAgICAgICAgICBkaWFnbm9zdGljcy5wdXNoKC4uLnRoaXMudHNQcm9ncmFtLmdldFN5bnRhY3RpY0RpYWdub3N0aWNzKHNmLCBjYW5jZWxsYXRpb25Ub2tlbikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXMgPSBkaWFnbm9zdGljcztcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXM7XG4gICAgfSk7XG4gIH1cblxuICBnZXRUc1NlbWFudGljRGlhZ25vc3RpY3MoXG4gICAgICBzb3VyY2VGaWxlPzogdHMuU291cmNlRmlsZXx1bmRlZmluZWQsXG4gICAgICBjYW5jZWxsYXRpb25Ub2tlbj86IHRzLkNhbmNlbGxhdGlvblRva2VufHVuZGVmaW5lZCk6IHJlYWRvbmx5IHRzLkRpYWdub3N0aWNbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZXIucGVyZlJlY29yZGVyLmluUGhhc2UoUGVyZlBoYXNlLlR5cGVTY3JpcHREaWFnbm9zdGljcywgKCkgPT4ge1xuICAgICAgY29uc3QgaWdub3JlZEZpbGVzID0gdGhpcy5jb21waWxlci5pZ25vcmVGb3JEaWFnbm9zdGljcztcbiAgICAgIGxldCByZXM6IHJlYWRvbmx5IHRzLkRpYWdub3N0aWNbXTtcbiAgICAgIGlmIChzb3VyY2VGaWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGlnbm9yZWRGaWxlcy5oYXMoc291cmNlRmlsZSkpIHtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXMgPSB0aGlzLnRzUHJvZ3JhbS5nZXRTZW1hbnRpY0RpYWdub3N0aWNzKHNvdXJjZUZpbGUsIGNhbmNlbGxhdGlvblRva2VuKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRpYWdub3N0aWNzOiB0cy5EaWFnbm9zdGljW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzZiBvZiB0aGlzLnRzUHJvZ3JhbS5nZXRTb3VyY2VGaWxlcygpKSB7XG4gICAgICAgICAgaWYgKCFpZ25vcmVkRmlsZXMuaGFzKHNmKSkge1xuICAgICAgICAgICAgZGlhZ25vc3RpY3MucHVzaCguLi50aGlzLnRzUHJvZ3JhbS5nZXRTZW1hbnRpY0RpYWdub3N0aWNzKHNmLCBjYW5jZWxsYXRpb25Ub2tlbikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXMgPSBkaWFnbm9zdGljcztcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXM7XG4gICAgfSk7XG4gIH1cblxuICBnZXROZ09wdGlvbkRpYWdub3N0aWNzKGNhbmNlbGxhdGlvblRva2VuPzogdHMuQ2FuY2VsbGF0aW9uVG9rZW58XG4gICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkKTogcmVhZG9ubHkodHMuRGlhZ25vc3RpY3xhcGkuRGlhZ25vc3RpYylbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuZ2V0T3B0aW9uRGlhZ25vc3RpY3MoKTtcbiAgfVxuXG4gIGdldE5nU3RydWN0dXJhbERpYWdub3N0aWNzKGNhbmNlbGxhdGlvblRva2VuPzogdHMuQ2FuY2VsbGF0aW9uVG9rZW58XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCk6IHJlYWRvbmx5IGFwaS5EaWFnbm9zdGljW10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldE5nU2VtYW50aWNEaWFnbm9zdGljcyhcbiAgICAgIGZpbGVOYW1lPzogc3RyaW5nfHVuZGVmaW5lZCwgY2FuY2VsbGF0aW9uVG9rZW4/OiB0cy5DYW5jZWxsYXRpb25Ub2tlbnx1bmRlZmluZWQpOlxuICAgICAgcmVhZG9ubHkodHMuRGlhZ25vc3RpY3xhcGkuRGlhZ25vc3RpYylbXSB7XG4gICAgbGV0IHNmOiB0cy5Tb3VyY2VGaWxlfHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoZmlsZU5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2YgPSB0aGlzLnRzUHJvZ3JhbS5nZXRTb3VyY2VGaWxlKGZpbGVOYW1lKTtcbiAgICAgIGlmIChzZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIFRoZXJlIGFyZSBubyBkaWFnbm9zdGljcyBmb3IgZmlsZXMgd2hpY2ggZG9uJ3QgZXhpc3QgaW4gdGhlIHByb2dyYW0gLSBtYXliZSB0aGUgY2FsbGVyXG4gICAgICAgIC8vIGhhcyBzdGFsZSBkYXRhP1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBpbGVyLmdldERpYWdub3N0aWNzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBpbGVyLmdldERpYWdub3N0aWNzRm9yRmlsZShzZiwgT3B0aW1pemVGb3IuV2hvbGVQcm9ncmFtKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlIHRoYXQgdGhlIGBOZ0NvbXBpbGVyYCBoYXMgcHJvcGVybHkgYW5hbHl6ZWQgdGhlIHByb2dyYW0sIGFuZCBhbGxvdyBmb3IgdGhlIGFzeW5jaHJvbm91c1xuICAgKiBsb2FkaW5nIG9mIGFueSByZXNvdXJjZXMgZHVyaW5nIHRoZSBwcm9jZXNzLlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWQgYnkgdGhlIEFuZ3VsYXIgQ0xJIHRvIGFsbG93IGZvciBzcGF3bmluZyAoYXN5bmMpIGNoaWxkIGNvbXBpbGF0aW9ucyBmb3IgdGhpbmdzXG4gICAqIGxpa2UgU0FTUyBmaWxlcyB1c2VkIGluIGBzdHlsZVVybHNgLlxuICAgKi9cbiAgbG9hZE5nU3RydWN0dXJlQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuYW5hbHl6ZUFzeW5jKCk7XG4gIH1cblxuICBsaXN0TGF6eVJvdXRlcyhlbnRyeVJvdXRlPzogc3RyaW5nfHVuZGVmaW5lZCk6IGFwaS5MYXp5Um91dGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZXIubGlzdExhenlSb3V0ZXMoZW50cnlSb3V0ZSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRYaTE4bigpOiB2b2lkIHtcbiAgICBjb25zdCBjdHggPSBuZXcgTWVzc2FnZUJ1bmRsZShuZXcgSHRtbFBhcnNlcigpLCBbXSwge30sIHRoaXMub3B0aW9ucy5pMThuT3V0TG9jYWxlID8/IG51bGwpO1xuICAgIHRoaXMuY29tcGlsZXIueGkxOG4oY3R4KTtcbiAgICBpMThuRXh0cmFjdChcbiAgICAgICAgdGhpcy5vcHRpb25zLmkxOG5PdXRGb3JtYXQgPz8gbnVsbCwgdGhpcy5vcHRpb25zLmkxOG5PdXRGaWxlID8/IG51bGwsIHRoaXMuaG9zdCxcbiAgICAgICAgdGhpcy5vcHRpb25zLCBjdHgsIHJlc29sdmUpO1xuICB9XG5cbiAgZW1pdChvcHRzPzoge1xuICAgIGVtaXRGbGFncz86IGFwaS5FbWl0RmxhZ3N8dW5kZWZpbmVkO1xuICAgIGNhbmNlbGxhdGlvblRva2VuPzogdHMuQ2FuY2VsbGF0aW9uVG9rZW4gfCB1bmRlZmluZWQ7XG4gICAgY3VzdG9tVHJhbnNmb3JtZXJzPzogYXBpLkN1c3RvbVRyYW5zZm9ybWVycyB8IHVuZGVmaW5lZDtcbiAgICBlbWl0Q2FsbGJhY2s/OiBhcGkuVHNFbWl0Q2FsbGJhY2sgfCB1bmRlZmluZWQ7XG4gICAgbWVyZ2VFbWl0UmVzdWx0c0NhbGxiYWNrPzogYXBpLlRzTWVyZ2VFbWl0UmVzdWx0c0NhbGxiYWNrIHwgdW5kZWZpbmVkO1xuICB9fHVuZGVmaW5lZCk6IHRzLkVtaXRSZXN1bHQge1xuICAgIC8vIENoZWNrIGlmIGVtaXNzaW9uIG9mIHRoZSBpMThuIG1lc3NhZ2VzIGJ1bmRsZSB3YXMgcmVxdWVzdGVkLlxuICAgIGlmIChvcHRzICE9PSB1bmRlZmluZWQgJiYgb3B0cy5lbWl0RmxhZ3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBvcHRzLmVtaXRGbGFncyAmIGFwaS5FbWl0RmxhZ3MuSTE4bkJ1bmRsZSkge1xuICAgICAgdGhpcy5lbWl0WGkxOG4oKTtcblxuICAgICAgLy8gYGFwaS5FbWl0RmxhZ3NgIGlzIGEgVmlldyBFbmdpbmUgY29tcGlsZXIgY29uY2VwdC4gV2Ugb25seSBwYXkgYXR0ZW50aW9uIHRvIHRoZSBhYnNlbmNlIG9mXG4gICAgICAvLyB0aGUgb3RoZXIgZmxhZ3MgaGVyZSBpZiBpMThuIGVtaXQgd2FzIHJlcXVlc3RlZCAoc2luY2UgdGhpcyBpcyB1c3VhbGx5IGRvbmUgaW4gdGhlIHhpMThuXG4gICAgICAvLyBmbG93LCB3aGVyZSB3ZSBkb24ndCB3YW50IHRvIGVtaXQgSlMgYXQgYWxsKS5cbiAgICAgIGlmICghKG9wdHMuZW1pdEZsYWdzICYgYXBpLkVtaXRGbGFncy5KUykpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkaWFnbm9zdGljczogW10sXG4gICAgICAgICAgZW1pdFNraXBwZWQ6IHRydWUsXG4gICAgICAgICAgZW1pdHRlZEZpbGVzOiBbXSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNvbXBpbGVyLnBlcmZSZWNvcmRlci5tZW1vcnkoUGVyZkNoZWNrcG9pbnQuUHJlRW1pdCk7XG5cbiAgICBjb25zdCByZXMgPSB0aGlzLmNvbXBpbGVyLnBlcmZSZWNvcmRlci5pblBoYXNlKFBlcmZQaGFzZS5UeXBlU2NyaXB0RW1pdCwgKCkgPT4ge1xuICAgICAgY29uc3Qge3RyYW5zZm9ybWVyc30gPSB0aGlzLmNvbXBpbGVyLnByZXBhcmVFbWl0KCk7XG4gICAgICBjb25zdCBpZ25vcmVGaWxlcyA9IHRoaXMuY29tcGlsZXIuaWdub3JlRm9yRW1pdDtcbiAgICAgIGNvbnN0IGVtaXRDYWxsYmFjayA9IG9wdHMgJiYgb3B0cy5lbWl0Q2FsbGJhY2sgfHwgZGVmYXVsdEVtaXRDYWxsYmFjaztcblxuICAgICAgY29uc3Qgd3JpdGVGaWxlOiB0cy5Xcml0ZUZpbGVDYWxsYmFjayA9XG4gICAgICAgICAgKGZpbGVOYW1lOiBzdHJpbmcsIGRhdGE6IHN0cmluZywgd3JpdGVCeXRlT3JkZXJNYXJrOiBib29sZWFuLFxuICAgICAgICAgICBvbkVycm9yOiAoKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCl8dW5kZWZpbmVkLFxuICAgICAgICAgICBzb3VyY2VGaWxlczogUmVhZG9ubHlBcnJheTx0cy5Tb3VyY2VGaWxlPnx1bmRlZmluZWQpID0+IHtcbiAgICAgICAgICAgIGlmIChzb3VyY2VGaWxlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIC8vIFJlY29yZCBzdWNjZXNzZnVsIHdyaXRlcyBmb3IgYW55IGB0cy5Tb3VyY2VGaWxlYCAodGhhdCdzIG5vdCBhIGRlY2xhcmF0aW9uIGZpbGUpXG4gICAgICAgICAgICAgIC8vIHRoYXQncyBhbiBpbnB1dCB0byB0aGlzIHdyaXRlLlxuICAgICAgICAgICAgICBmb3IgKGNvbnN0IHdyaXR0ZW5TZiBvZiBzb3VyY2VGaWxlcykge1xuICAgICAgICAgICAgICAgIGlmICh3cml0dGVuU2YuaXNEZWNsYXJhdGlvbkZpbGUpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuY29tcGlsZXIuaW5jcmVtZW50YWxDb21waWxhdGlvbi5yZWNvcmRTdWNjZXNzZnVsRW1pdCh3cml0dGVuU2YpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhvc3Qud3JpdGVGaWxlKGZpbGVOYW1lLCBkYXRhLCB3cml0ZUJ5dGVPcmRlck1hcmssIG9uRXJyb3IsIHNvdXJjZUZpbGVzKTtcbiAgICAgICAgICB9O1xuXG4gICAgICBjb25zdCBjdXN0b21UcmFuc2Zvcm1zID0gb3B0cyAmJiBvcHRzLmN1c3RvbVRyYW5zZm9ybWVycztcbiAgICAgIGNvbnN0IGJlZm9yZVRyYW5zZm9ybXMgPSB0cmFuc2Zvcm1lcnMuYmVmb3JlIHx8IFtdO1xuICAgICAgY29uc3QgYWZ0ZXJEZWNsYXJhdGlvbnNUcmFuc2Zvcm1zID0gdHJhbnNmb3JtZXJzLmFmdGVyRGVjbGFyYXRpb25zO1xuXG4gICAgICBpZiAoY3VzdG9tVHJhbnNmb3JtcyAhPT0gdW5kZWZpbmVkICYmIGN1c3RvbVRyYW5zZm9ybXMuYmVmb3JlVHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBiZWZvcmVUcmFuc2Zvcm1zLnB1c2goLi4uY3VzdG9tVHJhbnNmb3Jtcy5iZWZvcmVUcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVtaXRSZXN1bHRzOiB0cy5FbWl0UmVzdWx0W10gPSBbXTtcblxuICAgICAgZm9yIChjb25zdCB0YXJnZXRTb3VyY2VGaWxlIG9mIHRoaXMudHNQcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkpIHtcbiAgICAgICAgaWYgKHRhcmdldFNvdXJjZUZpbGUuaXNEZWNsYXJhdGlvbkZpbGUgfHwgaWdub3JlRmlsZXMuaGFzKHRhcmdldFNvdXJjZUZpbGUpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb21waWxlci5pbmNyZW1lbnRhbENvbXBpbGF0aW9uLnNhZmVUb1NraXBFbWl0KHRhcmdldFNvdXJjZUZpbGUpKSB7XG4gICAgICAgICAgdGhpcy5jb21waWxlci5wZXJmUmVjb3JkZXIuZXZlbnRDb3VudChQZXJmRXZlbnQuRW1pdFNraXBTb3VyY2VGaWxlKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29tcGlsZXIucGVyZlJlY29yZGVyLmV2ZW50Q291bnQoUGVyZkV2ZW50LkVtaXRTb3VyY2VGaWxlKTtcblxuICAgICAgICBlbWl0UmVzdWx0cy5wdXNoKGVtaXRDYWxsYmFjayh7XG4gICAgICAgICAgdGFyZ2V0U291cmNlRmlsZSxcbiAgICAgICAgICBwcm9ncmFtOiB0aGlzLnRzUHJvZ3JhbSxcbiAgICAgICAgICBob3N0OiB0aGlzLmhvc3QsXG4gICAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICAgIGVtaXRPbmx5RHRzRmlsZXM6IGZhbHNlLFxuICAgICAgICAgIHdyaXRlRmlsZSxcbiAgICAgICAgICBjdXN0b21UcmFuc2Zvcm1lcnM6IHtcbiAgICAgICAgICAgIGJlZm9yZTogYmVmb3JlVHJhbnNmb3JtcyxcbiAgICAgICAgICAgIGFmdGVyOiBjdXN0b21UcmFuc2Zvcm1zICYmIGN1c3RvbVRyYW5zZm9ybXMuYWZ0ZXJUcyxcbiAgICAgICAgICAgIGFmdGVyRGVjbGFyYXRpb25zOiBhZnRlckRlY2xhcmF0aW9uc1RyYW5zZm9ybXMsXG4gICAgICAgICAgfSBhcyBhbnksXG4gICAgICAgIH0pKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb21waWxlci5wZXJmUmVjb3JkZXIubWVtb3J5KFBlcmZDaGVja3BvaW50LkVtaXQpO1xuXG4gICAgICAvLyBSdW4gdGhlIGVtaXQsIGluY2x1ZGluZyBhIGN1c3RvbSB0cmFuc2Zvcm1lciB0aGF0IHdpbGwgZG93bmxldmVsIHRoZSBJdnkgZGVjb3JhdG9ycyBpblxuICAgICAgLy8gY29kZS5cbiAgICAgIHJldHVybiAoKG9wdHMgJiYgb3B0cy5tZXJnZUVtaXRSZXN1bHRzQ2FsbGJhY2spIHx8IG1lcmdlRW1pdFJlc3VsdHMpKGVtaXRSZXN1bHRzKTtcbiAgICB9KTtcblxuICAgIC8vIFJlY29yZCBwZXJmb3JtYW5jZSBhbmFseXNpcyBpbmZvcm1hdGlvbiB0byBkaXNrIGlmIHdlJ3ZlIGJlZW4gYXNrZWQgdG8gZG8gc28uXG4gICAgaWYgKHRoaXMub3B0aW9ucy50cmFjZVBlcmZvcm1hbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHBlcmYgPSB0aGlzLmNvbXBpbGVyLnBlcmZSZWNvcmRlci5maW5hbGl6ZSgpO1xuICAgICAgZ2V0RmlsZVN5c3RlbSgpLndyaXRlRmlsZShcbiAgICAgICAgICBnZXRGaWxlU3lzdGVtKCkucmVzb2x2ZSh0aGlzLm9wdGlvbnMudHJhY2VQZXJmb3JtYW5jZSksIEpTT04uc3RyaW5naWZ5KHBlcmYsIG51bGwsIDIpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGdldEluZGV4ZWRDb21wb25lbnRzKCk6IE1hcDxEZWNsYXJhdGlvbk5vZGUsIEluZGV4ZWRDb21wb25lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb21waWxlci5nZXRJbmRleGVkQ29tcG9uZW50cygpO1xuICB9XG5cbiAgZ2V0TGlicmFyeVN1bW1hcmllcygpOiBNYXA8c3RyaW5nLCBhcGkuTGlicmFyeVN1bW1hcnk+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBnZXRFbWl0dGVkR2VuZXJhdGVkRmlsZXMoKTogTWFwPHN0cmluZywgR2VuZXJhdGVkRmlsZT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGdldEVtaXR0ZWRTb3VyY2VGaWxlcygpOiBNYXA8c3RyaW5nLCB0cy5Tb3VyY2VGaWxlPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG59XG5cbmNvbnN0IGRlZmF1bHRFbWl0Q2FsbGJhY2s6IGFwaS5Uc0VtaXRDYWxsYmFjayA9ICh7XG4gIHByb2dyYW0sXG4gIHRhcmdldFNvdXJjZUZpbGUsXG4gIHdyaXRlRmlsZSxcbiAgY2FuY2VsbGF0aW9uVG9rZW4sXG4gIGVtaXRPbmx5RHRzRmlsZXMsXG4gIGN1c3RvbVRyYW5zZm9ybWVyc1xufSkgPT5cbiAgICBwcm9ncmFtLmVtaXQoXG4gICAgICAgIHRhcmdldFNvdXJjZUZpbGUsIHdyaXRlRmlsZSwgY2FuY2VsbGF0aW9uVG9rZW4sIGVtaXRPbmx5RHRzRmlsZXMsIGN1c3RvbVRyYW5zZm9ybWVycyk7XG5cbmZ1bmN0aW9uIG1lcmdlRW1pdFJlc3VsdHMoZW1pdFJlc3VsdHM6IHRzLkVtaXRSZXN1bHRbXSk6IHRzLkVtaXRSZXN1bHQge1xuICBjb25zdCBkaWFnbm9zdGljczogdHMuRGlhZ25vc3RpY1tdID0gW107XG4gIGxldCBlbWl0U2tpcHBlZCA9IGZhbHNlO1xuICBjb25zdCBlbWl0dGVkRmlsZXM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgZXIgb2YgZW1pdFJlc3VsdHMpIHtcbiAgICBkaWFnbm9zdGljcy5wdXNoKC4uLmVyLmRpYWdub3N0aWNzKTtcbiAgICBlbWl0U2tpcHBlZCA9IGVtaXRTa2lwcGVkIHx8IGVyLmVtaXRTa2lwcGVkO1xuICAgIGVtaXR0ZWRGaWxlcy5wdXNoKC4uLihlci5lbWl0dGVkRmlsZXMgfHwgW10pKTtcbiAgfVxuXG4gIHJldHVybiB7ZGlhZ25vc3RpY3MsIGVtaXRTa2lwcGVkLCBlbWl0dGVkRmlsZXN9O1xufVxuIl19
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcHJvZ3JhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBRUgsOENBQTJFO0lBQzNFLCtCQUFpQztJQUVqQyxnRUFBMkM7SUFDM0Msb0VBQWlEO0lBQ2pELG1GQUF1RTtJQUV2RSw2REFBNEg7SUFFNUgsMkVBQW1GO0lBQ25GLDJFQUE4RDtJQUU5RCw2REFBa0c7SUFDbEcsaUZBQXVEO0lBRXZELCtEQUF5RDtJQUN6RCxxRUFBNEM7SUFFNUM7Ozs7T0FJRztJQUNIO1FBV0Usc0JBQ0ksU0FBZ0MsRUFBVSxPQUEwQixFQUNwRSxZQUE4QixFQUFFLFVBQXlCOztZQUY3RCxpQkF1RUM7WUF0RTZDLFlBQU8sR0FBUCxPQUFPLENBQW1CO1lBRXRFLElBQU0sWUFBWSxHQUFHLHlCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRXRELFlBQVksQ0FBQyxLQUFLLENBQUMsZ0JBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwQyw0REFBNEQ7WUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsRUFBRTtnQkFDMUMscURBQWdDLEVBQUUsQ0FBQzthQUNwQztZQUVELElBQU0sWUFBWSxHQUFHLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsSUFBSSxHQUFHLHFCQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksYUFBWixZQUFZLGNBQVosWUFBWSxHQUFJLElBQUksQ0FBQyxDQUFDO1lBRXhGLElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRTtnQkFDOUIsdUZBQXVGO2dCQUN2RiwwRkFBMEY7Z0JBQzFGLDhGQUE4Rjtn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LElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFNLFlBQVksR0FBYSxFQUFFLENBQUM7O1lBQ2xDLEtBQWlCLElBQUEsZ0JBQUEsaUJBQUEsV0FBVyxDQUFBLHdDQUFBLGlFQUFFO2dCQUF6QixJQUFNLEVBQUUsd0JBQUE7Z0JBQ1gsV0FBVyxDQUFDLElBQUksT0FBaEIsV0FBVywyQ0FBUyxFQUFFLENBQUMsV0FBVyxJQUFFO2dCQUNwQyxXQUFXLEdBQUcsV0FBVyxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7Z0JBQzVDLFlBQVksQ0FBQyxJQUFJLE9BQWpCLFlBQVksMkNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxJQUFFO2FBQy9DOzs7Ozs7Ozs7UUFFRCxPQUFPLEVBQUMsV0FBVyxhQUFBLEVBQUUsV0FBVyxhQUFBLEVBQUUsWUFBWSxjQUFBLEVBQUMsQ0FBQztJQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7R2VuZXJhdGVkRmlsZSwgSHRtbFBhcnNlciwgTWVzc2FnZUJ1bmRsZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCAqIGFzIGFwaSBmcm9tICcuLi90cmFuc2Zvcm1lcnMvYXBpJztcbmltcG9ydCB7aTE4bkV4dHJhY3R9IGZyb20gJy4uL3RyYW5zZm9ybWVycy9pMThuJztcbmltcG9ydCB7dmVyaWZ5U3VwcG9ydGVkVHlwZVNjcmlwdFZlcnNpb259IGZyb20gJy4uL3R5cGVzY3JpcHRfc3VwcG9ydCc7XG5cbmltcG9ydCB7Q29tcGlsYXRpb25UaWNrZXQsIGZyZXNoQ29tcGlsYXRpb25UaWNrZXQsIGluY3JlbWVudGFsRnJvbUNvbXBpbGVyVGlja2V0LCBOZ0NvbXBpbGVyLCBOZ0NvbXBpbGVySG9zdH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7TmdDb21waWxlck9wdGlvbnN9IGZyb20gJy4vY29yZS9hcGknO1xuaW1wb3J0IHthYnNvbHV0ZUZyb20sIEFic29sdXRlRnNQYXRoLCBnZXRGaWxlU3lzdGVtLCByZXNvbHZlfSBmcm9tICcuL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7VHJhY2tlZEluY3JlbWVudGFsQnVpbGRTdHJhdGVneX0gZnJvbSAnLi9pbmNyZW1lbnRhbCc7XG5pbXBvcnQge0luZGV4ZWRDb21wb25lbnR9IGZyb20gJy4vaW5kZXhlcic7XG5pbXBvcnQge0FjdGl2ZVBlcmZSZWNvcmRlciwgUGVyZkNoZWNrcG9pbnQgYXMgUGVyZkNoZWNrcG9pbnQsIFBlcmZFdmVudCwgUGVyZlBoYXNlfSBmcm9tICcuL3BlcmYnO1xuaW1wb3J0IHtUc0NyZWF0ZVByb2dyYW1Ecml2ZXJ9IGZyb20gJy4vcHJvZ3JhbV9kcml2ZXInO1xuaW1wb3J0IHtEZWNsYXJhdGlvbk5vZGV9IGZyb20gJy4vcmVmbGVjdGlvbic7XG5pbXBvcnQge3JldGFnQWxsVHNGaWxlcywgdW50YWdBbGxUc0ZpbGVzfSBmcm9tICcuL3NoaW1zJztcbmltcG9ydCB7T3B0aW1pemVGb3J9IGZyb20gJy4vdHlwZWNoZWNrL2FwaSc7XG5cbi8qKlxuICogRW50cnlwb2ludCB0byB0aGUgQW5ndWxhciBDb21waWxlciAoSXZ5Kykgd2hpY2ggc2l0cyBiZWhpbmQgdGhlIGBhcGkuUHJvZ3JhbWAgaW50ZXJmYWNlLCBhbGxvd2luZ1xuICogaXQgdG8gYmUgYSBkcm9wLWluIHJlcGxhY2VtZW50IGZvciB0aGUgbGVnYWN5IFZpZXcgRW5naW5lIGNvbXBpbGVyIHRvIHRvb2xpbmcgc3VjaCBhcyB0aGVcbiAqIGNvbW1hbmQtbGluZSBtYWluKCkgZnVuY3Rpb24gb3IgdGhlIEFuZ3VsYXIgQ0xJLlxuICovXG5leHBvcnQgY2xhc3MgTmd0c2NQcm9ncmFtIGltcGxlbWVudHMgYXBpLlByb2dyYW0ge1xuICByZWFkb25seSBjb21waWxlcjogTmdDb21waWxlcjtcblxuICAvKipcbiAgICogVGhlIHByaW1hcnkgVHlwZVNjcmlwdCBwcm9ncmFtLCB3aGljaCBpcyB1c2VkIGZvciBhbmFseXNpcyBhbmQgZW1pdC5cbiAgICovXG4gIHByaXZhdGUgdHNQcm9ncmFtOiB0cy5Qcm9ncmFtO1xuXG4gIHByaXZhdGUgaG9zdDogTmdDb21waWxlckhvc3Q7XG4gIHByaXZhdGUgaW5jcmVtZW50YWxTdHJhdGVneTogVHJhY2tlZEluY3JlbWVudGFsQnVpbGRTdHJhdGVneTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHJvb3ROYW1lczogUmVhZG9ubHlBcnJheTxzdHJpbmc+LCBwcml2YXRlIG9wdGlvbnM6IE5nQ29tcGlsZXJPcHRpb25zLFxuICAgICAgZGVsZWdhdGVIb3N0OiBhcGkuQ29tcGlsZXJIb3N0LCBvbGRQcm9ncmFtPzogTmd0c2NQcm9ncmFtKSB7XG4gICAgY29uc3QgcGVyZlJlY29yZGVyID0gQWN0aXZlUGVyZlJlY29yZGVyLnplcm9lZFRvTm93KCk7XG5cbiAgICBwZXJmUmVjb3JkZXIucGhhc2UoUGVyZlBoYXNlLlNldHVwKTtcblxuICAgIC8vIEZpcnN0LCBjaGVjayB3aGV0aGVyIHRoZSBjdXJyZW50IFRTIHZlcnNpb24gaXMgc3VwcG9ydGVkLlxuICAgIGlmICghb3B0aW9ucy5kaXNhYmxlVHlwZVNjcmlwdFZlcnNpb25DaGVjaykge1xuICAgICAgdmVyaWZ5U3VwcG9ydGVkVHlwZVNjcmlwdFZlcnNpb24oKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXVzZVByb2dyYW0gPSBvbGRQcm9ncmFtPy5jb21waWxlci5nZXRDdXJyZW50UHJvZ3JhbSgpO1xuICAgIHRoaXMuaG9zdCA9IE5nQ29tcGlsZXJIb3N0LndyYXAoZGVsZWdhdGVIb3N0LCByb290TmFtZXMsIG9wdGlvbnMsIHJldXNlUHJvZ3JhbSA/PyBudWxsKTtcblxuICAgIGlmIChyZXVzZVByb2dyYW0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gUHJpb3IgdG8gcmV1c2luZyB0aGUgb2xkIHByb2dyYW0sIHJlc3RvcmUgc2hpbSB0YWdnaW5nIGZvciBhbGwgaXRzIGB0cy5Tb3VyY2VGaWxlYHMuXG4gICAgICAvLyBUeXBlU2NyaXB0IGNoZWNrcyB0aGUgYHJlZmVyZW5jZWRGaWxlc2Agb2YgYHRzLlNvdXJjZUZpbGVgcyBmb3IgY2hhbmdlcyB3aGVuIGV2YWx1YXRpbmdcbiAgICAgIC8vIGluY3JlbWVudGFsIHJldXNlIG9mIGRhdGEgZnJvbSB0aGUgb2xkIHByb2dyYW0sIHNvIGl0J3MgaW1wb3J0YW50IHRoYXQgdGhlc2UgbWF0Y2ggaW4gb3JkZXJcbiAgICAgIC8vIHRvIGdldCB0aGUgbW9zdCBiZW5lZml0IG91dCBvZiByZXVzZS5cbiAgICAgIHJldGFnQWxsVHNGaWxlcyhyZXVzZVByb2dyYW0pO1xuICAgIH1cblxuICAgIHRoaXMudHNQcm9ncmFtID0gcGVyZlJlY29yZGVyLmluUGhhc2UoXG4gICAgICAgIFBlcmZQaGFzZS5UeXBlU2NyaXB0UHJvZ3JhbUNyZWF0ZSxcbiAgICAgICAgKCkgPT4gdHMuY3JlYXRlUHJvZ3JhbSh0aGlzLmhvc3QuaW5wdXRGaWxlcywgb3B0aW9ucywgdGhpcy5ob3N0LCByZXVzZVByb2dyYW0pKTtcblxuICAgIHBlcmZSZWNvcmRlci5waGFzZShQZXJmUGhhc2UuVW5hY2NvdW50ZWQpO1xuICAgIHBlcmZSZWNvcmRlci5tZW1vcnkoUGVyZkNoZWNrcG9pbnQuVHlwZVNjcmlwdFByb2dyYW1DcmVhdGUpO1xuXG4gICAgdGhpcy5ob3N0LnBvc3RQcm9ncmFtQ3JlYXRpb25DbGVhbnVwKCk7XG5cbiAgICAvLyBTaGltIHRhZ2dpbmcgaGFzIHNlcnZlZCBpdHMgcHVycG9zZSwgYW5kIHRhZ3MgY2FuIG5vdyBiZSByZW1vdmVkIGZyb20gYWxsIGB0cy5Tb3VyY2VGaWxlYHMgaW5cbiAgICAvLyB0aGUgcHJvZ3JhbS5cbiAgICB1bnRhZ0FsbFRzRmlsZXModGhpcy50c1Byb2dyYW0pO1xuXG4gICAgY29uc3QgcHJvZ3JhbURyaXZlciA9IG5ldyBUc0NyZWF0ZVByb2dyYW1Ecml2ZXIoXG4gICAgICAgIHRoaXMudHNQcm9ncmFtLCB0aGlzLmhvc3QsIHRoaXMub3B0aW9ucywgdGhpcy5ob3N0LnNoaW1FeHRlbnNpb25QcmVmaXhlcyk7XG5cbiAgICB0aGlzLmluY3JlbWVudGFsU3RyYXRlZ3kgPSBvbGRQcm9ncmFtICE9PSB1bmRlZmluZWQgP1xuICAgICAgICBvbGRQcm9ncmFtLmluY3JlbWVudGFsU3RyYXRlZ3kudG9OZXh0QnVpbGRTdHJhdGVneSgpIDpcbiAgICAgICAgbmV3IFRyYWNrZWRJbmNyZW1lbnRhbEJ1aWxkU3RyYXRlZ3koKTtcbiAgICBjb25zdCBtb2RpZmllZFJlc291cmNlRmlsZXMgPSBuZXcgU2V0PEFic29sdXRlRnNQYXRoPigpO1xuICAgIGlmICh0aGlzLmhvc3QuZ2V0TW9kaWZpZWRSZXNvdXJjZUZpbGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHN0cmluZ3MgPSB0aGlzLmhvc3QuZ2V0TW9kaWZpZWRSZXNvdXJjZUZpbGVzKCk7XG4gICAgICBpZiAoc3RyaW5ncyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZVN0cmluZyBvZiBzdHJpbmdzKSB7XG4gICAgICAgICAgbW9kaWZpZWRSZXNvdXJjZUZpbGVzLmFkZChhYnNvbHV0ZUZyb20oZmlsZVN0cmluZykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHRpY2tldDogQ29tcGlsYXRpb25UaWNrZXQ7XG4gICAgaWYgKG9sZFByb2dyYW0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGlja2V0ID0gZnJlc2hDb21waWxhdGlvblRpY2tldChcbiAgICAgICAgICB0aGlzLnRzUHJvZ3JhbSwgb3B0aW9ucywgdGhpcy5pbmNyZW1lbnRhbFN0cmF0ZWd5LCBwcm9ncmFtRHJpdmVyLCBwZXJmUmVjb3JkZXIsXG4gICAgICAgICAgLyogZW5hYmxlVGVtcGxhdGVUeXBlQ2hlY2tlciAqLyBmYWxzZSwgLyogdXNlUG9pc29uZWREYXRhICovIGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGlja2V0ID0gaW5jcmVtZW50YWxGcm9tQ29tcGlsZXJUaWNrZXQoXG4gICAgICAgICAgb2xkUHJvZ3JhbS5jb21waWxlcixcbiAgICAgICAgICB0aGlzLnRzUHJvZ3JhbSxcbiAgICAgICAgICB0aGlzLmluY3JlbWVudGFsU3RyYXRlZ3ksXG4gICAgICAgICAgcHJvZ3JhbURyaXZlcixcbiAgICAgICAgICBtb2RpZmllZFJlc291cmNlRmlsZXMsXG4gICAgICAgICAgcGVyZlJlY29yZGVyLFxuICAgICAgKTtcbiAgICB9XG5cblxuICAgIC8vIENyZWF0ZSB0aGUgTmdDb21waWxlciB3aGljaCB3aWxsIGRyaXZlIHRoZSByZXN0IG9mIHRoZSBjb21waWxhdGlvbi5cbiAgICB0aGlzLmNvbXBpbGVyID0gTmdDb21waWxlci5mcm9tVGlja2V0KHRpY2tldCwgdGhpcy5ob3N0KTtcbiAgfVxuXG4gIGdldFRzUHJvZ3JhbSgpOiB0cy5Qcm9ncmFtIHtcbiAgICByZXR1cm4gdGhpcy50c1Byb2dyYW07XG4gIH1cblxuICBnZXRSZXVzZVRzUHJvZ3JhbSgpOiB0cy5Qcm9ncmFtIHtcbiAgICByZXR1cm4gdGhpcy5jb21waWxlci5nZXRDdXJyZW50UHJvZ3JhbSgpO1xuICB9XG5cbiAgZ2V0VHNPcHRpb25EaWFnbm9zdGljcyhjYW5jZWxsYXRpb25Ub2tlbj86IHRzLkNhbmNlbGxhdGlvblRva2VufFxuICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCk6IHJlYWRvbmx5IHRzLkRpYWdub3N0aWNbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZXIucGVyZlJlY29yZGVyLmluUGhhc2UoXG4gICAgICAgIFBlcmZQaGFzZS5UeXBlU2NyaXB0RGlhZ25vc3RpY3MsXG4gICAgICAgICgpID0+IHRoaXMudHNQcm9ncmFtLmdldE9wdGlvbnNEaWFnbm9zdGljcyhjYW5jZWxsYXRpb25Ub2tlbikpO1xuICB9XG5cbiAgZ2V0VHNTeW50YWN0aWNEaWFnbm9zdGljcyhcbiAgICAgIHNvdXJjZUZpbGU/OiB0cy5Tb3VyY2VGaWxlfHVuZGVmaW5lZCxcbiAgICAgIGNhbmNlbGxhdGlvblRva2VuPzogdHMuQ2FuY2VsbGF0aW9uVG9rZW58dW5kZWZpbmVkKTogcmVhZG9ubHkgdHMuRGlhZ25vc3RpY1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb21waWxlci5wZXJmUmVjb3JkZXIuaW5QaGFzZShQZXJmUGhhc2UuVHlwZVNjcmlwdERpYWdub3N0aWNzLCAoKSA9PiB7XG4gICAgICBjb25zdCBpZ25vcmVkRmlsZXMgPSB0aGlzLmNvbXBpbGVyLmlnbm9yZUZvckRpYWdub3N0aWNzO1xuICAgICAgbGV0IHJlczogcmVhZG9ubHkgdHMuRGlhZ25vc3RpY1tdO1xuICAgICAgaWYgKHNvdXJjZUZpbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoaWdub3JlZEZpbGVzLmhhcyhzb3VyY2VGaWxlKSkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcyA9IHRoaXMudHNQcm9ncmFtLmdldFN5bnRhY3RpY0RpYWdub3N0aWNzKHNvdXJjZUZpbGUsIGNhbmNlbGxhdGlvblRva2VuKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRpYWdub3N0aWNzOiB0cy5EaWFnbm9zdGljW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzZiBvZiB0aGlzLnRzUHJvZ3JhbS5nZXRTb3VyY2VGaWxlcygpKSB7XG4gICAgICAgICAgaWYgKCFpZ25vcmVkRmlsZXMuaGFzKHNmKSkge1xuICAgICAgICAgICAgZGlhZ25vc3RpY3MucHVzaCguLi50aGlzLnRzUHJvZ3JhbS5nZXRTeW50YWN0aWNEaWFnbm9zdGljcyhzZiwgY2FuY2VsbGF0aW9uVG9rZW4pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzID0gZGlhZ25vc3RpY3M7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0VHNTZW1hbnRpY0RpYWdub3N0aWNzKFxuICAgICAgc291cmNlRmlsZT86IHRzLlNvdXJjZUZpbGV8dW5kZWZpbmVkLFxuICAgICAgY2FuY2VsbGF0aW9uVG9rZW4/OiB0cy5DYW5jZWxsYXRpb25Ub2tlbnx1bmRlZmluZWQpOiByZWFkb25seSB0cy5EaWFnbm9zdGljW10ge1xuICAgIHJldHVybiB0aGlzLmNvbXBpbGVyLnBlcmZSZWNvcmRlci5pblBoYXNlKFBlcmZQaGFzZS5UeXBlU2NyaXB0RGlhZ25vc3RpY3MsICgpID0+IHtcbiAgICAgIGNvbnN0IGlnbm9yZWRGaWxlcyA9IHRoaXMuY29tcGlsZXIuaWdub3JlRm9yRGlhZ25vc3RpY3M7XG4gICAgICBsZXQgcmVzOiByZWFkb25seSB0cy5EaWFnbm9zdGljW107XG4gICAgICBpZiAoc291cmNlRmlsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChpZ25vcmVkRmlsZXMuaGFzKHNvdXJjZUZpbGUpKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzID0gdGhpcy50c1Byb2dyYW0uZ2V0U2VtYW50aWNEaWFnbm9zdGljcyhzb3VyY2VGaWxlLCBjYW5jZWxsYXRpb25Ub2tlbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkaWFnbm9zdGljczogdHMuRGlhZ25vc3RpY1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgc2Ygb2YgdGhpcy50c1Byb2dyYW0uZ2V0U291cmNlRmlsZXMoKSkge1xuICAgICAgICAgIGlmICghaWdub3JlZEZpbGVzLmhhcyhzZikpIHtcbiAgICAgICAgICAgIGRpYWdub3N0aWNzLnB1c2goLi4udGhpcy50c1Byb2dyYW0uZ2V0U2VtYW50aWNEaWFnbm9zdGljcyhzZiwgY2FuY2VsbGF0aW9uVG9rZW4pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzID0gZGlhZ25vc3RpY3M7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TmdPcHRpb25EaWFnbm9zdGljcyhjYW5jZWxsYXRpb25Ub2tlbj86IHRzLkNhbmNlbGxhdGlvblRva2VufFxuICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCk6IHJlYWRvbmx5KHRzLkRpYWdub3N0aWN8YXBpLkRpYWdub3N0aWMpW10ge1xuICAgIHJldHVybiB0aGlzLmNvbXBpbGVyLmdldE9wdGlvbkRpYWdub3N0aWNzKCk7XG4gIH1cblxuICBnZXROZ1N0cnVjdHVyYWxEaWFnbm9zdGljcyhjYW5jZWxsYXRpb25Ub2tlbj86IHRzLkNhbmNlbGxhdGlvblRva2VufFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQpOiByZWFkb25seSBhcGkuRGlhZ25vc3RpY1tdIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBnZXROZ1NlbWFudGljRGlhZ25vc3RpY3MoXG4gICAgICBmaWxlTmFtZT86IHN0cmluZ3x1bmRlZmluZWQsIGNhbmNlbGxhdGlvblRva2VuPzogdHMuQ2FuY2VsbGF0aW9uVG9rZW58dW5kZWZpbmVkKTpcbiAgICAgIHJlYWRvbmx5KHRzLkRpYWdub3N0aWN8YXBpLkRpYWdub3N0aWMpW10ge1xuICAgIGxldCBzZjogdHMuU291cmNlRmlsZXx1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGZpbGVOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNmID0gdGhpcy50c1Byb2dyYW0uZ2V0U291cmNlRmlsZShmaWxlTmFtZSk7XG4gICAgICBpZiAoc2YgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBUaGVyZSBhcmUgbm8gZGlhZ25vc3RpY3MgZm9yIGZpbGVzIHdoaWNoIGRvbid0IGV4aXN0IGluIHRoZSBwcm9ncmFtIC0gbWF5YmUgdGhlIGNhbGxlclxuICAgICAgICAvLyBoYXMgc3RhbGUgZGF0YT9cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21waWxlci5nZXREaWFnbm9zdGljcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21waWxlci5nZXREaWFnbm9zdGljc0ZvckZpbGUoc2YsIE9wdGltaXplRm9yLldob2xlUHJvZ3JhbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZSB0aGF0IHRoZSBgTmdDb21waWxlcmAgaGFzIHByb3Blcmx5IGFuYWx5emVkIHRoZSBwcm9ncmFtLCBhbmQgYWxsb3cgZm9yIHRoZSBhc3luY2hyb25vdXNcbiAgICogbG9hZGluZyBvZiBhbnkgcmVzb3VyY2VzIGR1cmluZyB0aGUgcHJvY2Vzcy5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VkIGJ5IHRoZSBBbmd1bGFyIENMSSB0byBhbGxvdyBmb3Igc3Bhd25pbmcgKGFzeW5jKSBjaGlsZCBjb21waWxhdGlvbnMgZm9yIHRoaW5nc1xuICAgKiBsaWtlIFNBU1MgZmlsZXMgdXNlZCBpbiBgc3R5bGVVcmxzYC5cbiAgICovXG4gIGxvYWROZ1N0cnVjdHVyZUFzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbXBpbGVyLmFuYWx5emVBc3luYygpO1xuICB9XG5cbiAgbGlzdExhenlSb3V0ZXMoZW50cnlSb3V0ZT86IHN0cmluZ3x1bmRlZmluZWQpOiBhcGkuTGF6eVJvdXRlW10ge1xuICAgIHJldHVybiB0aGlzLmNvbXBpbGVyLmxpc3RMYXp5Um91dGVzKGVudHJ5Um91dGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0WGkxOG4oKTogdm9pZCB7XG4gICAgY29uc3QgY3R4ID0gbmV3IE1lc3NhZ2VCdW5kbGUobmV3IEh0bWxQYXJzZXIoKSwgW10sIHt9LCB0aGlzLm9wdGlvbnMuaTE4bk91dExvY2FsZSA/PyBudWxsKTtcbiAgICB0aGlzLmNvbXBpbGVyLnhpMThuKGN0eCk7XG4gICAgaTE4bkV4dHJhY3QoXG4gICAgICAgIHRoaXMub3B0aW9ucy5pMThuT3V0Rm9ybWF0ID8/IG51bGwsIHRoaXMub3B0aW9ucy5pMThuT3V0RmlsZSA/PyBudWxsLCB0aGlzLmhvc3QsXG4gICAgICAgIHRoaXMub3B0aW9ucywgY3R4LCByZXNvbHZlKTtcbiAgfVxuXG4gIGVtaXQob3B0cz86IHtcbiAgICBlbWl0RmxhZ3M/OiBhcGkuRW1pdEZsYWdzfHVuZGVmaW5lZDtcbiAgICBjYW5jZWxsYXRpb25Ub2tlbj86IHRzLkNhbmNlbGxhdGlvblRva2VuIHwgdW5kZWZpbmVkO1xuICAgIGN1c3RvbVRyYW5zZm9ybWVycz86IGFwaS5DdXN0b21UcmFuc2Zvcm1lcnMgfCB1bmRlZmluZWQ7XG4gICAgZW1pdENhbGxiYWNrPzogYXBpLlRzRW1pdENhbGxiYWNrIHwgdW5kZWZpbmVkO1xuICAgIG1lcmdlRW1pdFJlc3VsdHNDYWxsYmFjaz86IGFwaS5Uc01lcmdlRW1pdFJlc3VsdHNDYWxsYmFjayB8IHVuZGVmaW5lZDtcbiAgfXx1bmRlZmluZWQpOiB0cy5FbWl0UmVzdWx0IHtcbiAgICAvLyBDaGVjayBpZiBlbWlzc2lvbiBvZiB0aGUgaTE4biBtZXNzYWdlcyBidW5kbGUgd2FzIHJlcXVlc3RlZC5cbiAgICBpZiAob3B0cyAhPT0gdW5kZWZpbmVkICYmIG9wdHMuZW1pdEZsYWdzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgb3B0cy5lbWl0RmxhZ3MgJiBhcGkuRW1pdEZsYWdzLkkxOG5CdW5kbGUpIHtcbiAgICAgIHRoaXMuZW1pdFhpMThuKCk7XG5cbiAgICAgIC8vIGBhcGkuRW1pdEZsYWdzYCBpcyBhIFZpZXcgRW5naW5lIGNvbXBpbGVyIGNvbmNlcHQuIFdlIG9ubHkgcGF5IGF0dGVudGlvbiB0byB0aGUgYWJzZW5jZSBvZlxuICAgICAgLy8gdGhlIG90aGVyIGZsYWdzIGhlcmUgaWYgaTE4biBlbWl0IHdhcyByZXF1ZXN0ZWQgKHNpbmNlIHRoaXMgaXMgdXN1YWxseSBkb25lIGluIHRoZSB4aTE4blxuICAgICAgLy8gZmxvdywgd2hlcmUgd2UgZG9uJ3Qgd2FudCB0byBlbWl0IEpTIGF0IGFsbCkuXG4gICAgICBpZiAoIShvcHRzLmVtaXRGbGFncyAmIGFwaS5FbWl0RmxhZ3MuSlMpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGlhZ25vc3RpY3M6IFtdLFxuICAgICAgICAgIGVtaXRTa2lwcGVkOiB0cnVlLFxuICAgICAgICAgIGVtaXR0ZWRGaWxlczogW10sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb21waWxlci5wZXJmUmVjb3JkZXIubWVtb3J5KFBlcmZDaGVja3BvaW50LlByZUVtaXQpO1xuXG4gICAgY29uc3QgcmVzID0gdGhpcy5jb21waWxlci5wZXJmUmVjb3JkZXIuaW5QaGFzZShQZXJmUGhhc2UuVHlwZVNjcmlwdEVtaXQsICgpID0+IHtcbiAgICAgIGNvbnN0IHt0cmFuc2Zvcm1lcnN9ID0gdGhpcy5jb21waWxlci5wcmVwYXJlRW1pdCgpO1xuICAgICAgY29uc3QgaWdub3JlRmlsZXMgPSB0aGlzLmNvbXBpbGVyLmlnbm9yZUZvckVtaXQ7XG4gICAgICBjb25zdCBlbWl0Q2FsbGJhY2sgPSBvcHRzICYmIG9wdHMuZW1pdENhbGxiYWNrIHx8IGRlZmF1bHRFbWl0Q2FsbGJhY2s7XG5cbiAgICAgIGNvbnN0IHdyaXRlRmlsZTogdHMuV3JpdGVGaWxlQ2FsbGJhY2sgPVxuICAgICAgICAgIChmaWxlTmFtZTogc3RyaW5nLCBkYXRhOiBzdHJpbmcsIHdyaXRlQnl0ZU9yZGVyTWFyazogYm9vbGVhbixcbiAgICAgICAgICAgb25FcnJvcjogKChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQpfHVuZGVmaW5lZCxcbiAgICAgICAgICAgc291cmNlRmlsZXM6IFJlYWRvbmx5QXJyYXk8dHMuU291cmNlRmlsZT58dW5kZWZpbmVkKSA9PiB7XG4gICAgICAgICAgICBpZiAoc291cmNlRmlsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAvLyBSZWNvcmQgc3VjY2Vzc2Z1bCB3cml0ZXMgZm9yIGFueSBgdHMuU291cmNlRmlsZWAgKHRoYXQncyBub3QgYSBkZWNsYXJhdGlvbiBmaWxlKVxuICAgICAgICAgICAgICAvLyB0aGF0J3MgYW4gaW5wdXQgdG8gdGhpcyB3cml0ZS5cbiAgICAgICAgICAgICAgZm9yIChjb25zdCB3cml0dGVuU2Ygb2Ygc291cmNlRmlsZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAod3JpdHRlblNmLmlzRGVjbGFyYXRpb25GaWxlKSB7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBpbGVyLmluY3JlbWVudGFsQ29tcGlsYXRpb24ucmVjb3JkU3VjY2Vzc2Z1bEVtaXQod3JpdHRlblNmKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ob3N0LndyaXRlRmlsZShmaWxlTmFtZSwgZGF0YSwgd3JpdGVCeXRlT3JkZXJNYXJrLCBvbkVycm9yLCBzb3VyY2VGaWxlcyk7XG4gICAgICAgICAgfTtcblxuICAgICAgY29uc3QgY3VzdG9tVHJhbnNmb3JtcyA9IG9wdHMgJiYgb3B0cy5jdXN0b21UcmFuc2Zvcm1lcnM7XG4gICAgICBjb25zdCBiZWZvcmVUcmFuc2Zvcm1zID0gdHJhbnNmb3JtZXJzLmJlZm9yZSB8fCBbXTtcbiAgICAgIGNvbnN0IGFmdGVyRGVjbGFyYXRpb25zVHJhbnNmb3JtcyA9IHRyYW5zZm9ybWVycy5hZnRlckRlY2xhcmF0aW9ucztcblxuICAgICAgaWYgKGN1c3RvbVRyYW5zZm9ybXMgIT09IHVuZGVmaW5lZCAmJiBjdXN0b21UcmFuc2Zvcm1zLmJlZm9yZVRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYmVmb3JlVHJhbnNmb3Jtcy5wdXNoKC4uLmN1c3RvbVRyYW5zZm9ybXMuYmVmb3JlVHMpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbWl0UmVzdWx0czogdHMuRW1pdFJlc3VsdFtdID0gW107XG5cbiAgICAgIGZvciAoY29uc3QgdGFyZ2V0U291cmNlRmlsZSBvZiB0aGlzLnRzUHJvZ3JhbS5nZXRTb3VyY2VGaWxlcygpKSB7XG4gICAgICAgIGlmICh0YXJnZXRTb3VyY2VGaWxlLmlzRGVjbGFyYXRpb25GaWxlIHx8IGlnbm9yZUZpbGVzLmhhcyh0YXJnZXRTb3VyY2VGaWxlKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29tcGlsZXIuaW5jcmVtZW50YWxDb21waWxhdGlvbi5zYWZlVG9Ta2lwRW1pdCh0YXJnZXRTb3VyY2VGaWxlKSkge1xuICAgICAgICAgIHRoaXMuY29tcGlsZXIucGVyZlJlY29yZGVyLmV2ZW50Q291bnQoUGVyZkV2ZW50LkVtaXRTa2lwU291cmNlRmlsZSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbXBpbGVyLnBlcmZSZWNvcmRlci5ldmVudENvdW50KFBlcmZFdmVudC5FbWl0U291cmNlRmlsZSk7XG5cbiAgICAgICAgZW1pdFJlc3VsdHMucHVzaChlbWl0Q2FsbGJhY2soe1xuICAgICAgICAgIHRhcmdldFNvdXJjZUZpbGUsXG4gICAgICAgICAgcHJvZ3JhbTogdGhpcy50c1Byb2dyYW0sXG4gICAgICAgICAgaG9zdDogdGhpcy5ob3N0LFxuICAgICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgICBlbWl0T25seUR0c0ZpbGVzOiBmYWxzZSxcbiAgICAgICAgICB3cml0ZUZpbGUsXG4gICAgICAgICAgY3VzdG9tVHJhbnNmb3JtZXJzOiB7XG4gICAgICAgICAgICBiZWZvcmU6IGJlZm9yZVRyYW5zZm9ybXMsXG4gICAgICAgICAgICBhZnRlcjogY3VzdG9tVHJhbnNmb3JtcyAmJiBjdXN0b21UcmFuc2Zvcm1zLmFmdGVyVHMsXG4gICAgICAgICAgICBhZnRlckRlY2xhcmF0aW9uczogYWZ0ZXJEZWNsYXJhdGlvbnNUcmFuc2Zvcm1zLFxuICAgICAgICAgIH0gYXMgYW55LFxuICAgICAgICB9KSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY29tcGlsZXIucGVyZlJlY29yZGVyLm1lbW9yeShQZXJmQ2hlY2twb2ludC5FbWl0KTtcblxuICAgICAgLy8gUnVuIHRoZSBlbWl0LCBpbmNsdWRpbmcgYSBjdXN0b20gdHJhbnNmb3JtZXIgdGhhdCB3aWxsIGRvd25sZXZlbCB0aGUgSXZ5IGRlY29yYXRvcnMgaW5cbiAgICAgIC8vIGNvZGUuXG4gICAgICByZXR1cm4gKChvcHRzICYmIG9wdHMubWVyZ2VFbWl0UmVzdWx0c0NhbGxiYWNrKSB8fCBtZXJnZUVtaXRSZXN1bHRzKShlbWl0UmVzdWx0cyk7XG4gICAgfSk7XG5cbiAgICAvLyBSZWNvcmQgcGVyZm9ybWFuY2UgYW5hbHlzaXMgaW5mb3JtYXRpb24gdG8gZGlzayBpZiB3ZSd2ZSBiZWVuIGFza2VkIHRvIGRvIHNvLlxuICAgIGlmICh0aGlzLm9wdGlvbnMudHJhY2VQZXJmb3JtYW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBwZXJmID0gdGhpcy5jb21waWxlci5wZXJmUmVjb3JkZXIuZmluYWxpemUoKTtcbiAgICAgIGdldEZpbGVTeXN0ZW0oKS53cml0ZUZpbGUoXG4gICAgICAgICAgZ2V0RmlsZVN5c3RlbSgpLnJlc29sdmUodGhpcy5vcHRpb25zLnRyYWNlUGVyZm9ybWFuY2UpLCBKU09OLnN0cmluZ2lmeShwZXJmLCBudWxsLCAyKSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBnZXRJbmRleGVkQ29tcG9uZW50cygpOiBNYXA8RGVjbGFyYXRpb25Ob2RlLCBJbmRleGVkQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuZ2V0SW5kZXhlZENvbXBvbmVudHMoKTtcbiAgfVxuXG4gIGdldExpYnJhcnlTdW1tYXJpZXMoKTogTWFwPHN0cmluZywgYXBpLkxpYnJhcnlTdW1tYXJ5PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgZ2V0RW1pdHRlZEdlbmVyYXRlZEZpbGVzKCk6IE1hcDxzdHJpbmcsIEdlbmVyYXRlZEZpbGU+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBnZXRFbWl0dGVkU291cmNlRmlsZXMoKTogTWFwPHN0cmluZywgdHMuU291cmNlRmlsZT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuXG5jb25zdCBkZWZhdWx0RW1pdENhbGxiYWNrOiBhcGkuVHNFbWl0Q2FsbGJhY2sgPSAoe1xuICBwcm9ncmFtLFxuICB0YXJnZXRTb3VyY2VGaWxlLFxuICB3cml0ZUZpbGUsXG4gIGNhbmNlbGxhdGlvblRva2VuLFxuICBlbWl0T25seUR0c0ZpbGVzLFxuICBjdXN0b21UcmFuc2Zvcm1lcnNcbn0pID0+XG4gICAgcHJvZ3JhbS5lbWl0KFxuICAgICAgICB0YXJnZXRTb3VyY2VGaWxlLCB3cml0ZUZpbGUsIGNhbmNlbGxhdGlvblRva2VuLCBlbWl0T25seUR0c0ZpbGVzLCBjdXN0b21UcmFuc2Zvcm1lcnMpO1xuXG5mdW5jdGlvbiBtZXJnZUVtaXRSZXN1bHRzKGVtaXRSZXN1bHRzOiB0cy5FbWl0UmVzdWx0W10pOiB0cy5FbWl0UmVzdWx0IHtcbiAgY29uc3QgZGlhZ25vc3RpY3M6IHRzLkRpYWdub3N0aWNbXSA9IFtdO1xuICBsZXQgZW1pdFNraXBwZWQgPSBmYWxzZTtcbiAgY29uc3QgZW1pdHRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGVyIG9mIGVtaXRSZXN1bHRzKSB7XG4gICAgZGlhZ25vc3RpY3MucHVzaCguLi5lci5kaWFnbm9zdGljcyk7XG4gICAgZW1pdFNraXBwZWQgPSBlbWl0U2tpcHBlZCB8fCBlci5lbWl0U2tpcHBlZDtcbiAgICBlbWl0dGVkRmlsZXMucHVzaCguLi4oZXIuZW1pdHRlZEZpbGVzIHx8IFtdKSk7XG4gIH1cblxuICByZXR1cm4ge2RpYWdub3N0aWNzLCBlbWl0U2tpcHBlZCwgZW1pdHRlZEZpbGVzfTtcbn1cbiJdfQ==
|
|
@@ -14,6 +14,7 @@ import { IndexingContext } from '../../indexer';
|
|
|
14
14
|
import { ClassDeclaration, Decorator } from '../../reflection';
|
|
15
15
|
import { ImportManager } from '../../translator';
|
|
16
16
|
import { TypeCheckContext } from '../../typecheck/api';
|
|
17
|
+
import { ExtendedTemplateChecker } from '../../typecheck/extended/api';
|
|
17
18
|
import { Xi18nContext } from '../../xi18n';
|
|
18
19
|
/**
|
|
19
20
|
* Specifies the compilation mode that is used for the compilation.
|
|
@@ -159,6 +160,7 @@ export interface DecoratorHandler<D, A, S extends SemanticSymbol | null, R> {
|
|
|
159
160
|
*/
|
|
160
161
|
xi18n?(bundle: Xi18nContext, node: ClassDeclaration, analysis: Readonly<A>): void;
|
|
161
162
|
typeCheck?(ctx: TypeCheckContext, node: ClassDeclaration, analysis: Readonly<A>, resolution: Readonly<R>): void;
|
|
163
|
+
extendedTemplateCheck?(component: ts.ClassDeclaration, extendedTemplateChecker: ExtendedTemplateChecker): ts.Diagnostic[];
|
|
162
164
|
/**
|
|
163
165
|
* Generate a description of the field which should be added to the class, including any
|
|
164
166
|
* initialization code to be generated.
|
|
@@ -73,4 +73,4 @@
|
|
|
73
73
|
HandlerFlags[HandlerFlags["FULL_INHERITANCE"] = 1] = "FULL_INHERITANCE";
|
|
74
74
|
})(HandlerFlags = exports.HandlerFlags || (exports.HandlerFlags = {}));
|
|
75
75
|
});
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90cmFuc2Zvcm0vc3JjL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFhSDs7T0FFRztJQUNILElBQVksZUFVWDtJQVZELFdBQVksZUFBZTtRQUN6Qjs7V0FFRztRQUNILHFEQUFJLENBQUE7UUFFSjs7V0FFRztRQUNILDJEQUFPLENBQUE7SUFDVCxDQUFDLEVBVlcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFVMUI7SUFFRCxJQUFZLGlCQXFCWDtJQXJCRCxXQUFZLGlCQUFpQjtRQUMzQjs7OztXQUlHO1FBQ0gsK0RBQU8sQ0FBQTtRQUVQOzs7OztXQUtHO1FBQ0gsNkRBQU0sQ0FBQTtRQUVOOzs7V0FHRztRQUNILHlEQUFJLENBQUE7SUFDTixDQUFDLEVBckJXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBcUI1QjtJQUVEOzs7T0FHRztJQUNILElBQVksWUFlWDtJQWZELFdBQVksWUFBWTtRQUN0Qjs7V0FFRztRQUNILCtDQUFVLENBQUE7UUFFVjs7Ozs7OztXQU9HO1FBQ0gsdUVBQTZCLENBQUE7SUFDL0IsQ0FBQyxFQWZXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBZXZCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Q29uc3RhbnRQb29sLCBFeHByZXNzaW9uLCBTdGF0ZW1lbnQsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1JlZXhwb3J0fSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7U2VtYW50aWNTeW1ib2x9IGZyb20gJy4uLy4uL2luY3JlbWVudGFsL3NlbWFudGljX2dyYXBoJztcbmltcG9ydCB7SW5kZXhpbmdDb250ZXh0fSBmcm9tICcuLi8uLi9pbmRleGVyJztcbmltcG9ydCB7Q2xhc3NEZWNsYXJhdGlvbiwgRGVjb3JhdG9yfSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcbmltcG9ydCB7SW1wb3J0TWFuYWdlcn0gZnJvbSAnLi4vLi4vdHJhbnNsYXRvcic7XG5pbXBvcnQge1R5cGVDaGVja0NvbnRleHR9IGZyb20gJy4uLy4uL3R5cGVjaGVjay9hcGknO1xuaW1wb3J0IHtYaTE4bkNvbnRleHR9IGZyb20gJy4uLy4uL3hpMThuJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGNvbXBpbGF0aW9uIG1vZGUgdGhhdCBpcyB1c2VkIGZvciB0aGUgY29tcGlsYXRpb24uXG4gKi9cbmV4cG9ydCBlbnVtIENvbXBpbGF0aW9uTW9kZSB7XG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgZnVsbHkgQU9UIGNvbXBpbGVkIGNvZGUgdXNpbmcgSXZ5IGluc3RydWN0aW9ucy5cbiAgICovXG4gIEZVTEwsXG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBjb2RlIHVzaW5nIGEgc3RhYmxlLCBidXQgaW50ZXJtZWRpYXRlIGZvcm1hdCBzdWl0YWJsZSB0byBiZSBwdWJsaXNoZWQgdG8gTlBNLlxuICAgKi9cbiAgUEFSVElBTCxcbn1cblxuZXhwb3J0IGVudW0gSGFuZGxlclByZWNlZGVuY2Uge1xuICAvKipcbiAgICogSGFuZGxlciB3aXRoIFBSSU1BUlkgcHJlY2VkZW5jZSBjYW5ub3Qgb3ZlcmxhcCAtIHRoZXJlIGNhbiBvbmx5IGJlIG9uZSBvbiBhIGdpdmVuIGNsYXNzLlxuICAgKlxuICAgKiBJZiBtb3JlIHRoYW4gb25lIFBSSU1BUlkgaGFuZGxlciBtYXRjaGVzIGEgY2xhc3MsIGFuIGVycm9yIGlzIHByb2R1Y2VkLlxuICAgKi9cbiAgUFJJTUFSWSxcblxuICAvKipcbiAgICogSGFuZGxlcnMgd2l0aCBTSEFSRUQgcHJlY2VkZW5jZSBjYW4gbWF0Y2ggYW55IGNsYXNzLCBwb3NzaWJseSBpbiBhZGRpdGlvbiB0byBhIHNpbmdsZSBQUklNQVJZXG4gICAqIGhhbmRsZXIuXG4gICAqXG4gICAqIEl0IGlzIG5vdCBhbiBlcnJvciBmb3IgYSBjbGFzcyB0byBoYXZlIGFueSBudW1iZXIgb2YgU0hBUkVEIGhhbmRsZXJzLlxuICAgKi9cbiAgU0hBUkVELFxuXG4gIC8qKlxuICAgKiBIYW5kbGVycyB3aXRoIFdFQUsgcHJlY2VkZW5jZSB0aGF0IG1hdGNoIGEgY2xhc3MgYXJlIGlnbm9yZWQgaWYgYW55IGhhbmRsZXJzIHdpdGggc3Ryb25nZXJcbiAgICogcHJlY2VkZW5jZSBtYXRjaCBhIGNsYXNzLlxuICAgKi9cbiAgV0VBSyxcbn1cblxuLyoqXG4gKiBBIHNldCBvZiBvcHRpb25zIHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gYSBgRGVjb3JhdG9ySGFuZGxlcmAgYnkgYSBjb25zdW1lciwgdG8gdGFpbG9yIHRoZSBvdXRwdXRcbiAqIG9mIGNvbXBpbGF0aW9uIGJleW9uZCB0aGUgZGVjb3JhdG9ycyB0aGVtc2VsdmVzLlxuICovXG5leHBvcnQgZW51bSBIYW5kbGVyRmxhZ3Mge1xuICAvKipcbiAgICogTm8gZmxhZ3Mgc2V0LlxuICAgKi9cbiAgTk9ORSA9IDB4MCxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhpcyBkZWNvcmF0b3IgaXMgZnVsbHkgaW5oZXJpdGVkIGZyb20gaXRzIHBhcmVudCBhdCBydW50aW1lLiBJbiBhZGRpdGlvbiB0b1xuICAgKiBub3JtYWxseSBpbmhlcml0ZWQgYXNwZWN0cyBzdWNoIGFzIGlucHV0cyBhbmQgcXVlcmllcywgZnVsbCBpbmhlcml0YW5jZSBhcHBsaWVzIHRvIGV2ZXJ5IGFzcGVjdFxuICAgKiBvZiB0aGUgY29tcG9uZW50IG9yIGRpcmVjdGl2ZSwgc3VjaCBhcyB0aGUgdGVtcGxhdGUgZnVuY3Rpb24gaXRzZWxmLlxuICAgKlxuICAgKiBJdHMgcHJpbWFyeSBlZmZlY3QgaXMgdG8gY2F1c2UgdGhlIGBDb3B5RGVmaW5pdGlvbkZlYXR1cmVgIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGRlZmluaXRpb25cbiAgICogYmVpbmcgY29tcGlsZWQuIFNlZSB0aGF0IGNsYXNzIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgRlVMTF9JTkhFUklUQU5DRSA9IDB4MDAwMDAwMDEsXG59XG5cblxuLyoqXG4gKiBQcm92aWRlcyB0aGUgaW50ZXJmYWNlIGJldHdlZW4gYSBkZWNvcmF0b3IgY29tcGlsZXIgZnJvbSBAYW5ndWxhci9jb21waWxlciBhbmQgdGhlIFR5cGVzY3JpcHRcbiAqIGNvbXBpbGVyL3RyYW5zZm9ybS5cbiAqXG4gKiBUaGUgZGVjb3JhdG9yIGNvbXBpbGVycyBpbiBAYW5ndWxhci9jb21waWxlciBkbyBub3QgZGVwZW5kIG9uIFR5cGVzY3JpcHQuIFRoZSBoYW5kbGVyIGlzXG4gKiByZXNwb25zaWJsZSBmb3IgZXh0cmFjdGluZyB0aGUgaW5mb3JtYXRpb24gcmVxdWlyZWQgdG8gcGVyZm9ybSBjb21waWxhdGlvbiBmcm9tIHRoZSBkZWNvcmF0b3JzXG4gKiBhbmQgVHlwZXNjcmlwdCBzb3VyY2UsIGludm9raW5nIHRoZSBkZWNvcmF0b3IgY29tcGlsZXIsIGFuZCByZXR1cm5pbmcgdGhlIHJlc3VsdC5cbiAqXG4gKiBAcGFyYW0gYERgIFRoZSB0eXBlIG9mIGRlY29yYXRvciBtZXRhZGF0YSBwcm9kdWNlZCBieSBgZGV0ZWN0YC5cbiAqIEBwYXJhbSBgQWAgVGhlIHR5cGUgb2YgYW5hbHlzaXMgbWV0YWRhdGEgcHJvZHVjZWQgYnkgYGFuYWx5emVgLlxuICogQHBhcmFtIGBSYCBUaGUgdHlwZSBvZiByZXNvbHV0aW9uIG1ldGFkYXRhIHByb2R1Y2VkIGJ5IGByZXNvbHZlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNvcmF0b3JIYW5kbGVyPEQsIEEsIFMgZXh0ZW5kcyBTZW1hbnRpY1N5bWJvbHxudWxsLCBSPiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByZWNlZGVuY2Ugb2YgYSBoYW5kbGVyIGNvbnRyb2xzIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBoYW5kbGVycyB0aGF0IG1hdGNoIHRoZSBzYW1lXG4gICAqIGNsYXNzLlxuICAgKlxuICAgKiBTZWUgdGhlIGRlc2NyaXB0aW9ucyBvbiBgSGFuZGxlclByZWNlZGVuY2VgIGZvciBhbiBleHBsYW5hdGlvbiBvZiB0aGUgYmVoYXZpb3JzIGludm9sdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlY2VkZW5jZTogSGFuZGxlclByZWNlZGVuY2U7XG5cbiAgLyoqXG4gICAqIFNjYW4gYSBzZXQgb2YgcmVmbGVjdGVkIGRlY29yYXRvcnMgYW5kIGRldGVybWluZSBpZiB0aGlzIGhhbmRsZXIgaXMgcmVzcG9uc2libGUgZm9yIGNvbXBpbGF0aW9uXG4gICAqIG9mIG9uZSBvZiB0aGVtLlxuICAgKi9cbiAgZGV0ZWN0KG5vZGU6IENsYXNzRGVjbGFyYXRpb24sIGRlY29yYXRvcnM6IERlY29yYXRvcltdfG51bGwpOiBEZXRlY3RSZXN1bHQ8RD58dW5kZWZpbmVkO1xuXG5cbiAgLyoqXG4gICAqIEFzeW5jaHJvbm91c2x5IHBlcmZvcm0gcHJlLWFuYWx5c2lzIG9uIHRoZSBkZWNvcmF0b3IvY2xhc3MgY29tYmluYXRpb24uXG4gICAqXG4gICAqIGBwcmVhbmFseXplYCBpcyBvcHRpb25hbCBhbmQgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgY2FsbGVkIHRocm91Z2ggYWxsIGNvbXBpbGF0aW9uIGZsb3dzLiBJdFxuICAgKiB3aWxsIG9ubHkgYmUgY2FsbGVkIGlmIGFzeW5jaHJvbmljaXR5IGlzIHN1cHBvcnRlZCBpbiB0aGUgQ29tcGlsZXJIb3N0LlxuICAgKi9cbiAgcHJlYW5hbHl6ZT8obm9kZTogQ2xhc3NEZWNsYXJhdGlvbiwgbWV0YWRhdGE6IFJlYWRvbmx5PEQ+KTogUHJvbWlzZTx2b2lkPnx1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gYW5hbHlzaXMgb24gdGhlIGRlY29yYXRvci9jbGFzcyBjb21iaW5hdGlvbiwgZXh0cmFjdGluZyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjbGFzc1xuICAgKiByZXF1aXJlZCBmb3IgY29tcGlsYXRpb24uXG4gICAqXG4gICAqIFJldHVybnMgYW5hbHl6ZWQgbWV0YWRhdGEgaWYgc3VjY2Vzc2Z1bCwgb3IgYW4gYXJyYXkgb2YgZGlhZ25vc3RpYyBtZXNzYWdlcyBpZiB0aGUgYW5hbHlzaXNcbiAgICogZmFpbHMgb3IgdGhlIGRlY29yYXRvciBpc24ndCB2YWxpZC5cbiAgICpcbiAgICogQW5hbHlzaXMgc2hvdWxkIGFsd2F5cyBiZSBhIFwicHVyZVwiIG9wZXJhdGlvbiwgd2l0aCBubyBzaWRlIGVmZmVjdHMuIFRoaXMgaXMgYmVjYXVzZSB0aGVcbiAgICogZGV0ZWN0L2FuYWx5c2lzIHN0ZXBzIG1pZ2h0IGJlIHNraXBwZWQgZm9yIGZpbGVzIHdoaWNoIGhhdmUgbm90IGNoYW5nZWQgZHVyaW5nIGluY3JlbWVudGFsXG4gICAqIGJ1aWxkcy4gQW55IHNpZGUgZWZmZWN0cyByZXF1aXJlZCBmb3IgY29tcGlsYXRpb24gKGUuZy4gcmVnaXN0cmF0aW9uIG9mIG1ldGFkYXRhKSBzaG91bGQgaGFwcGVuXG4gICAqIGluIHRoZSBgcmVnaXN0ZXJgIHBoYXNlLCB3aGljaCBpcyBndWFyYW50ZWVkIHRvIHJ1biBldmVuIGZvciBpbmNyZW1lbnRhbCBidWlsZHMuXG4gICAqL1xuICBhbmFseXplKG5vZGU6IENsYXNzRGVjbGFyYXRpb24sIG1ldGFkYXRhOiBSZWFkb25seTxEPiwgaGFuZGxlckZsYWdzPzogSGFuZGxlckZsYWdzKTpcbiAgICAgIEFuYWx5c2lzT3V0cHV0PEE+O1xuXG4gIC8qKlxuICAgKiBSZWFjdCB0byBhIGNoYW5nZSBpbiBhIHJlc291cmNlIGZpbGUgYnkgdXBkYXRpbmcgdGhlIGBhbmFseXNpc2Agb3IgYHJlc29sdXRpb25gLCB1bmRlciB0aGVcbiAgICogYXNzdW1wdGlvbiB0aGF0IG5vdGhpbmcgaW4gdGhlIFR5cGVTY3JpcHQgY29kZSBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHVwZGF0ZVJlc291cmNlcz8obm9kZTogQ2xhc3NEZWNsYXJhdGlvbiwgYW5hbHlzaXM6IEEsIHJlc29sdXRpb246IFIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBQcm9kdWNlcyBhIGBTZW1hbnRpY1N5bWJvbGAgdGhhdCByZXByZXNlbnRzIHRoZSBjbGFzcywgd2hpY2ggaXMgcmVnaXN0ZXJlZCBpbnRvIHRoZSBzZW1hbnRpY1xuICAgKiBkZXBlbmRlbmN5IGdyYXBoLiBUaGUgc3ltYm9sIGlzIHVzZWQgaW4gaW5jcmVtZW50YWwgY29tcGlsYXRpb25zIHRvIGxldCB0aGUgY29tcGlsZXIgZGV0ZXJtaW5lXG4gICAqIGhvdyBhIGNoYW5nZSB0byB0aGUgY2xhc3MgYWZmZWN0cyBwcmlvciBlbWl0IHJlc3VsdHMuIFNlZSB0aGUgYGluY3JlbWVudGFsYCB0YXJnZXQncyBSRUFETUUgZm9yXG4gICAqIGRldGFpbHMgb24gaG93IHRoaXMgd29ya3MuXG4gICAqXG4gICAqIFRoZSBzeW1ib2wgaXMgcGFzc2VkIGluIHRvIGByZXNvbHZlYCwgd2hlcmUgaXQgY2FuIGJlIGV4dGVuZGVkIHdpdGggcmVmZXJlbmNlcyBpbnRvIG90aGVyIHBhcnRzXG4gICAqIG9mIHRoZSBjb21waWxhdGlvbiBhcyBuZWVkZWQuXG4gICAqXG4gICAqIE9ubHkgcHJpbWFyeSBoYW5kbGVycyBhcmUgYWxsb3dlZCB0byBoYXZlIHN5bWJvbHM7IGhhbmRsZXJzIHdpdGggYHByZWNlZGVuY2VgIG90aGVyIHRoYW5cbiAgICogYEhhbmRsZXJQcmVjZWRlbmNlLlBSSU1BUllgIG11c3QgcmV0dXJuIGEgYG51bGxgIHN5bWJvbC5cbiAgICovXG4gIHN5bWJvbChub2RlOiBDbGFzc0RlY2xhcmF0aW9uLCBhbmFseXNpczogUmVhZG9ubHk8QT4pOiBTO1xuXG4gIC8qKlxuICAgKiBQb3N0LXByb2Nlc3MgdGhlIGFuYWx5c2lzIG9mIGEgZGVjb3JhdG9yL2NsYXNzIGNvbWJpbmF0aW9uIGFuZCByZWNvcmQgYW55IG5lY2Vzc2FyeSBpbmZvcm1hdGlvblxuICAgKiBpbiB0aGUgbGFyZ2VyIGNvbXBpbGF0aW9uLlxuICAgKlxuICAgKiBSZWdpc3RyYXRpb24gYWx3YXlzIG9jY3VycyBmb3IgYSBnaXZlbiBkZWNvcmF0b3IvY2xhc3MsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBhbmFseXNpcyB3YXNcbiAgICogcGVyZm9ybWVkIGRpcmVjdGx5IG9yIHdoZXRoZXIgdGhlIGFuYWx5c2lzIHJlc3VsdHMgd2VyZSByZXVzZWQgZnJvbSB0aGUgcHJldmlvdXMgcHJvZ3JhbS5cbiAgICovXG4gIHJlZ2lzdGVyPyhub2RlOiBDbGFzc0RlY2xhcmF0aW9uLCBhbmFseXNpczogQSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGVjb3JhdG9yIGZvciB0aGUgaW5kZXhpbmcgcGhhc2UgaW4gYVxuICAgKiBgSW5kZXhpbmdDb250ZXh0YCwgd2hpY2ggc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0IGNvbXBvbmVudHMgZGlzY292ZXJlZCBpbiB0aGVcbiAgICogcHJvZ3JhbS5cbiAgICovXG4gIGluZGV4P1xuICAgICAgKGNvbnRleHQ6IEluZGV4aW5nQ29udGV4dCwgbm9kZTogQ2xhc3NEZWNsYXJhdGlvbiwgYW5hbHlzaXM6IFJlYWRvbmx5PEE+LFxuICAgICAgIHJlc29sdXRpb246IFJlYWRvbmx5PFI+KTogdm9pZDtcblxuICAvKipcbiAgICogUGVyZm9ybSByZXNvbHV0aW9uIG9uIHRoZSBnaXZlbiBkZWNvcmF0b3IgYWxvbmcgd2l0aCB0aGUgcmVzdWx0IG9mIGFuYWx5c2lzLlxuICAgKlxuICAgKiBUaGUgcmVzb2x1dGlvbiBwaGFzZSBoYXBwZW5zIGFmdGVyIHRoZSBlbnRpcmUgYHRzLlByb2dyYW1gIGhhcyBiZWVuIGFuYWx5emVkLCBhbmQgZ2l2ZXMgdGhlXG4gICAqIGBEZWNvcmF0b3JIYW5kbGVyYCBhIGNoYW5jZSB0byBsZXZlcmFnZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSB3aG9sZSBjb21waWxhdGlvbiB1bml0IHRvIGVuaGFuY2VcbiAgICogdGhlIGBhbmFseXNpc2AgYmVmb3JlIHRoZSBlbWl0IHBoYXNlLlxuICAgKi9cbiAgcmVzb2x2ZT8obm9kZTogQ2xhc3NEZWNsYXJhdGlvbiwgYW5hbHlzaXM6IFJlYWRvbmx5PEE+LCBzeW1ib2w6IFMpOiBSZXNvbHZlUmVzdWx0PFI+O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0IGkxOG4gbWVzc2FnZXMgaW50byB0aGUgYFhpMThuQ29udGV4dGAsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgZ2VuZXJhdGluZyB2YXJpb3VzIGZvcm1hdHNcbiAgICogb2YgbWVzc2FnZSBmaWxlIG91dHB1dHMuXG4gICAqL1xuICB4aTE4bj8oYnVuZGxlOiBYaTE4bkNvbnRleHQsIG5vZGU6IENsYXNzRGVjbGFyYXRpb24sIGFuYWx5c2lzOiBSZWFkb25seTxBPik6IHZvaWQ7XG5cbiAgdHlwZUNoZWNrP1xuICAgICAgKGN0eDogVHlwZUNoZWNrQ29udGV4dCwgbm9kZTogQ2xhc3NEZWNsYXJhdGlvbiwgYW5hbHlzaXM6IFJlYWRvbmx5PEE+LFxuICAgICAgIHJlc29sdXRpb246IFJlYWRvbmx5PFI+KTogdm9pZDtcblxuICAvKipcbiAgICogR2VuZXJhdGUgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZmllbGQgd2hpY2ggc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjbGFzcywgaW5jbHVkaW5nIGFueVxuICAgKiBpbml0aWFsaXphdGlvbiBjb2RlIHRvIGJlIGdlbmVyYXRlZC5cbiAgICpcbiAgICogSWYgdGhlIGNvbXBpbGF0aW9uIG1vZGUgaXMgY29uZmlndXJlZCBhcyBwYXJ0aWFsLCBhbmQgYW4gaW1wbGVtZW50YXRpb24gb2YgYGNvbXBpbGVQYXJ0aWFsYCBpc1xuICAgKiBwcm92aWRlZCwgdGhlbiB0aGlzIG1ldGhvZCBpcyBub3QgY2FsbGVkLlxuICAgKi9cbiAgY29tcGlsZUZ1bGwoXG4gICAgICBub2RlOiBDbGFzc0RlY2xhcmF0aW9uLCBhbmFseXNpczogUmVhZG9ubHk8QT4sIHJlc29sdXRpb246IFJlYWRvbmx5PFI+LFxuICAgICAgY29uc3RhbnRQb29sOiBDb25zdGFudFBvb2wpOiBDb21waWxlUmVzdWx0fENvbXBpbGVSZXN1bHRbXTtcblxuICAvKipcbiAgICogR2VuZXJhdGVzIGNvZGUgZm9yIHRoZSBkZWNvcmF0b3IgdXNpbmcgYSBzdGFibGUsIGJ1dCBpbnRlcm1lZGlhdGUgZm9ybWF0IHN1aXRhYmxlIHRvIGJlXG4gICAqIHB1Ymxpc2hlZCB0byBOUE0uIFRoaXMgY29kZSBpcyBtZWFudCB0byBiZSBwcm9jZXNzZWQgYnkgdGhlIGxpbmtlciB0byBhY2hpZXZlIHRoZSBmaW5hbCBBT1RcbiAgICogY29tcGlsZWQgY29kZS5cbiAgICpcbiAgICogSWYgcHJlc2VudCwgdGhpcyBtZXRob2QgaXMgdXNlZCBpZiB0aGUgY29tcGlsYXRpb24gbW9kZSBpcyBjb25maWd1cmVkIGFzIHBhcnRpYWwsIG90aGVyd2lzZVxuICAgKiBgY29tcGlsZUZ1bGxgIGlzLlxuICAgKi9cbiAgY29tcGlsZVBhcnRpYWw/XG4gICAgICAobm9kZTogQ2xhc3NEZWNsYXJhdGlvbiwgYW5hbHlzaXM6IFJlYWRvbmx5PEE+LCByZXNvbHV0aW9uOiBSZWFkb25seTxSPik6IENvbXBpbGVSZXN1bHRcbiAgICAgIHxDb21waWxlUmVzdWx0W107XG59XG5cbi8qKlxuICogVGhlIG91dHB1dCBvZiBkZXRlY3RpbmcgYSB0cmFpdCBmb3IgYSBkZWNsYXJhdGlvbiBhcyB0aGUgcmVzdWx0IG9mIHRoZSBmaXJzdCBwaGFzZSBvZiB0aGVcbiAqIGNvbXBpbGF0aW9uIHBpcGVsaW5lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldGVjdFJlc3VsdDxNPiB7XG4gIC8qKlxuICAgKiBUaGUgbm9kZSB0aGF0IHRyaWdnZXJlZCB0aGUgbWF0Y2gsIHdoaWNoIGlzIHR5cGljYWxseSBhIGRlY29yYXRvci5cbiAgICovXG4gIHRyaWdnZXI6IHRzLk5vZGV8bnVsbDtcblxuICAvKipcbiAgICogUmVmZXJzIHRvIHRoZSBkZWNvcmF0b3IgdGhhdCB3YXMgcmVjb2duaXplZCBmb3IgdGhpcyBkZXRlY3Rpb24sIGlmIGFueS4gVGhpcyBjYW4gYmUgYSBjb25jcmV0ZVxuICAgKiBkZWNvcmF0b3IgdGhhdCBpcyBhY3R1YWxseSBwcmVzZW50IGluIGEgZmlsZSwgb3IgYSBzeW50aGV0aWMgZGVjb3JhdG9yIGFzIGluc2VydGVkXG4gICAqIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqL1xuICBkZWNvcmF0b3I6IERlY29yYXRvcnxudWxsO1xuXG4gIC8qKlxuICAgKiBBbiBhcmJpdHJhcnkgb2JqZWN0IHRvIGNhcnJ5IG92ZXIgZnJvbSB0aGUgZGV0ZWN0aW9uIHBoYXNlIGludG8gdGhlIGFuYWx5c2lzIHBoYXNlLlxuICAgKi9cbiAgbWV0YWRhdGE6IFJlYWRvbmx5PE0+O1xufVxuXG4vKipcbiAqIFRoZSBvdXRwdXQgb2YgYW4gYW5hbHlzaXMgb3BlcmF0aW9uLCBjb25zaXN0aW5nIG9mIHBvc3NpYmx5IGFuIGFyYml0cmFyeSBhbmFseXNpcyBvYmplY3QgKHVzZWQgYXNcbiAqIHRoZSBpbnB1dCB0byBjb2RlIGdlbmVyYXRpb24pIGFuZCBwb3RlbnRpYWxseSBkaWFnbm9zdGljcyBpZiB0aGVyZSB3ZXJlIGVycm9ycyB1bmNvdmVyZWQgZHVyaW5nXG4gKiBhbmFseXNpcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbmFseXNpc091dHB1dDxBPiB7XG4gIGFuYWx5c2lzPzogUmVhZG9ubHk8QT47XG4gIGRpYWdub3N0aWNzPzogdHMuRGlhZ25vc3RpY1tdO1xufVxuXG4vKipcbiAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIHN0YXRpYyBmaWVsZCB0byBhZGQgdG8gYSBjbGFzcywgaW5jbHVkaW5nIGFuIGluaXRpYWxpemF0aW9uIGV4cHJlc3Npb25cbiAqIGFuZCBhIHR5cGUgZm9yIHRoZSAuZC50cyBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBpbGVSZXN1bHQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGluaXRpYWxpemVyOiBFeHByZXNzaW9uO1xuICBzdGF0ZW1lbnRzOiBTdGF0ZW1lbnRbXTtcbiAgdHlwZTogVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlUmVzdWx0PFI+IHtcbiAgcmVleHBvcnRzPzogUmVleHBvcnRbXTtcbiAgZGlhZ25vc3RpY3M/OiB0cy5EaWFnbm9zdGljW107XG4gIGRhdGE/OiBSZWFkb25seTxSPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEdHNUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm1DbGFzc0VsZW1lbnQ/KGVsZW1lbnQ6IHRzLkNsYXNzRWxlbWVudCwgaW1wb3J0czogSW1wb3J0TWFuYWdlcik6IHRzLkNsYXNzRWxlbWVudDtcbiAgdHJhbnNmb3JtRnVuY3Rpb25EZWNsYXJhdGlvbj9cbiAgICAgIChlbGVtZW50OiB0cy5GdW5jdGlvbkRlY2xhcmF0aW9uLCBpbXBvcnRzOiBJbXBvcnRNYW5hZ2VyKTogdHMuRnVuY3Rpb25EZWNsYXJhdGlvbjtcbiAgdHJhbnNmb3JtQ2xhc3M/XG4gICAgICAoY2xheno6IHRzLkNsYXNzRGVjbGFyYXRpb24sIGVsZW1lbnRzOiBSZWFkb25seUFycmF5PHRzLkNsYXNzRWxlbWVudD4sXG4gICAgICAgaW1wb3J0czogSW1wb3J0TWFuYWdlcik6IHRzLkNsYXNzRGVjbGFyYXRpb247XG59XG4iXX0=
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90cmFuc2Zvcm0vc3JjL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFjSDs7T0FFRztJQUNILElBQVksZUFVWDtJQVZELFdBQVksZUFBZTtRQUN6Qjs7V0FFRztRQUNILHFEQUFJLENBQUE7UUFFSjs7V0FFRztRQUNILDJEQUFPLENBQUE7SUFDVCxDQUFDLEVBVlcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFVMUI7SUFFRCxJQUFZLGlCQXFCWDtJQXJCRCxXQUFZLGlCQUFpQjtRQUMzQjs7OztXQUlHO1FBQ0gsK0RBQU8sQ0FBQTtRQUVQOzs7OztXQUtHO1FBQ0gsNkRBQU0sQ0FBQTtRQUVOOzs7V0FHRztRQUNILHlEQUFJLENBQUE7SUFDTixDQUFDLEVBckJXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBcUI1QjtJQUVEOzs7T0FHRztJQUNILElBQVksWUFlWDtJQWZELFdBQVksWUFBWTtRQUN0Qjs7V0FFRztRQUNILCtDQUFVLENBQUE7UUFFVjs7Ozs7OztXQU9HO1FBQ0gsdUVBQTZCLENBQUE7SUFDL0IsQ0FBQyxFQWZXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBZXZCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Q29uc3RhbnRQb29sLCBFeHByZXNzaW9uLCBTdGF0ZW1lbnQsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1JlZXhwb3J0fSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7U2VtYW50aWNTeW1ib2x9IGZyb20gJy4uLy4uL2luY3JlbWVudGFsL3NlbWFudGljX2dyYXBoJztcbmltcG9ydCB7SW5kZXhpbmdDb250ZXh0fSBmcm9tICcuLi8uLi9pbmRleGVyJztcbmltcG9ydCB7Q2xhc3NEZWNsYXJhdGlvbiwgRGVjb3JhdG9yfSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcbmltcG9ydCB7SW1wb3J0TWFuYWdlcn0gZnJvbSAnLi4vLi4vdHJhbnNsYXRvcic7XG5pbXBvcnQge1R5cGVDaGVja0NvbnRleHR9IGZyb20gJy4uLy4uL3R5cGVjaGVjay9hcGknO1xuaW1wb3J0IHtFeHRlbmRlZFRlbXBsYXRlQ2hlY2tlcn0gZnJvbSAnLi4vLi4vdHlwZWNoZWNrL2V4dGVuZGVkL2FwaSc7XG5pbXBvcnQge1hpMThuQ29udGV4dH0gZnJvbSAnLi4vLi4veGkxOG4nO1xuXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgY29tcGlsYXRpb24gbW9kZSB0aGF0IGlzIHVzZWQgZm9yIHRoZSBjb21waWxhdGlvbi5cbiAqL1xuZXhwb3J0IGVudW0gQ29tcGlsYXRpb25Nb2RlIHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBmdWxseSBBT1QgY29tcGlsZWQgY29kZSB1c2luZyBJdnkgaW5zdHJ1Y3Rpb25zLlxuICAgKi9cbiAgRlVMTCxcblxuICAvKipcbiAgICogR2VuZXJhdGVzIGNvZGUgdXNpbmcgYSBzdGFibGUsIGJ1dCBpbnRlcm1lZGlhdGUgZm9ybWF0IHN1aXRhYmxlIHRvIGJlIHB1Ymxpc2hlZCB0byBOUE0uXG4gICAqL1xuICBQQVJUSUFMLFxufVxuXG5leHBvcnQgZW51bSBIYW5kbGVyUHJlY2VkZW5jZSB7XG4gIC8qKlxuICAgKiBIYW5kbGVyIHdpdGggUFJJTUFSWSBwcmVjZWRlbmNlIGNhbm5vdCBvdmVybGFwIC0gdGhlcmUgY2FuIG9ubHkgYmUgb25lIG9uIGEgZ2l2ZW4gY2xhc3MuXG4gICAqXG4gICAqIElmIG1vcmUgdGhhbiBvbmUgUFJJTUFSWSBoYW5kbGVyIG1hdGNoZXMgYSBjbGFzcywgYW4gZXJyb3IgaXMgcHJvZHVjZWQuXG4gICAqL1xuICBQUklNQVJZLFxuXG4gIC8qKlxuICAgKiBIYW5kbGVycyB3aXRoIFNIQVJFRCBwcmVjZWRlbmNlIGNhbiBtYXRjaCBhbnkgY2xhc3MsIHBvc3NpYmx5IGluIGFkZGl0aW9uIHRvIGEgc2luZ2xlIFBSSU1BUllcbiAgICogaGFuZGxlci5cbiAgICpcbiAgICogSXQgaXMgbm90IGFuIGVycm9yIGZvciBhIGNsYXNzIHRvIGhhdmUgYW55IG51bWJlciBvZiBTSEFSRUQgaGFuZGxlcnMuXG4gICAqL1xuICBTSEFSRUQsXG5cbiAgLyoqXG4gICAqIEhhbmRsZXJzIHdpdGggV0VBSyBwcmVjZWRlbmNlIHRoYXQgbWF0Y2ggYSBjbGFzcyBhcmUgaWdub3JlZCBpZiBhbnkgaGFuZGxlcnMgd2l0aCBzdHJvbmdlclxuICAgKiBwcmVjZWRlbmNlIG1hdGNoIGEgY2xhc3MuXG4gICAqL1xuICBXRUFLLFxufVxuXG4vKipcbiAqIEEgc2V0IG9mIG9wdGlvbnMgd2hpY2ggY2FuIGJlIHBhc3NlZCB0byBhIGBEZWNvcmF0b3JIYW5kbGVyYCBieSBhIGNvbnN1bWVyLCB0byB0YWlsb3IgdGhlIG91dHB1dFxuICogb2YgY29tcGlsYXRpb24gYmV5b25kIHRoZSBkZWNvcmF0b3JzIHRoZW1zZWx2ZXMuXG4gKi9cbmV4cG9ydCBlbnVtIEhhbmRsZXJGbGFncyB7XG4gIC8qKlxuICAgKiBObyBmbGFncyBzZXQuXG4gICAqL1xuICBOT05FID0gMHgwLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGlzIGRlY29yYXRvciBpcyBmdWxseSBpbmhlcml0ZWQgZnJvbSBpdHMgcGFyZW50IGF0IHJ1bnRpbWUuIEluIGFkZGl0aW9uIHRvXG4gICAqIG5vcm1hbGx5IGluaGVyaXRlZCBhc3BlY3RzIHN1Y2ggYXMgaW5wdXRzIGFuZCBxdWVyaWVzLCBmdWxsIGluaGVyaXRhbmNlIGFwcGxpZXMgdG8gZXZlcnkgYXNwZWN0XG4gICAqIG9mIHRoZSBjb21wb25lbnQgb3IgZGlyZWN0aXZlLCBzdWNoIGFzIHRoZSB0ZW1wbGF0ZSBmdW5jdGlvbiBpdHNlbGYuXG4gICAqXG4gICAqIEl0cyBwcmltYXJ5IGVmZmVjdCBpcyB0byBjYXVzZSB0aGUgYENvcHlEZWZpbml0aW9uRmVhdHVyZWAgdG8gYmUgYXBwbGllZCB0byB0aGUgZGVmaW5pdGlvblxuICAgKiBiZWluZyBjb21waWxlZC4gU2VlIHRoYXQgY2xhc3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqL1xuICBGVUxMX0lOSEVSSVRBTkNFID0gMHgwMDAwMDAwMSxcbn1cblxuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiBhIGRlY29yYXRvciBjb21waWxlciBmcm9tIEBhbmd1bGFyL2NvbXBpbGVyIGFuZCB0aGUgVHlwZXNjcmlwdFxuICogY29tcGlsZXIvdHJhbnNmb3JtLlxuICpcbiAqIFRoZSBkZWNvcmF0b3IgY29tcGlsZXJzIGluIEBhbmd1bGFyL2NvbXBpbGVyIGRvIG5vdCBkZXBlbmQgb24gVHlwZXNjcmlwdC4gVGhlIGhhbmRsZXIgaXNcbiAqIHJlc3BvbnNpYmxlIGZvciBleHRyYWN0aW5nIHRoZSBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBwZXJmb3JtIGNvbXBpbGF0aW9uIGZyb20gdGhlIGRlY29yYXRvcnNcbiAqIGFuZCBUeXBlc2NyaXB0IHNvdXJjZSwgaW52b2tpbmcgdGhlIGRlY29yYXRvciBjb21waWxlciwgYW5kIHJldHVybmluZyB0aGUgcmVzdWx0LlxuICpcbiAqIEBwYXJhbSBgRGAgVGhlIHR5cGUgb2YgZGVjb3JhdG9yIG1ldGFkYXRhIHByb2R1Y2VkIGJ5IGBkZXRlY3RgLlxuICogQHBhcmFtIGBBYCBUaGUgdHlwZSBvZiBhbmFseXNpcyBtZXRhZGF0YSBwcm9kdWNlZCBieSBgYW5hbHl6ZWAuXG4gKiBAcGFyYW0gYFJgIFRoZSB0eXBlIG9mIHJlc29sdXRpb24gbWV0YWRhdGEgcHJvZHVjZWQgYnkgYHJlc29sdmVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29yYXRvckhhbmRsZXI8RCwgQSwgUyBleHRlbmRzIFNlbWFudGljU3ltYm9sfG51bGwsIFI+IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJlY2VkZW5jZSBvZiBhIGhhbmRsZXIgY29udHJvbHMgaG93IGl0IGludGVyYWN0cyB3aXRoIG90aGVyIGhhbmRsZXJzIHRoYXQgbWF0Y2ggdGhlIHNhbWVcbiAgICogY2xhc3MuXG4gICAqXG4gICAqIFNlZSB0aGUgZGVzY3JpcHRpb25zIG9uIGBIYW5kbGVyUHJlY2VkZW5jZWAgZm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBiZWhhdmlvcnMgaW52b2x2ZWQuXG4gICAqL1xuICByZWFkb25seSBwcmVjZWRlbmNlOiBIYW5kbGVyUHJlY2VkZW5jZTtcblxuICAvKipcbiAgICogU2NhbiBhIHNldCBvZiByZWZsZWN0ZWQgZGVjb3JhdG9ycyBhbmQgZGV0ZXJtaW5lIGlmIHRoaXMgaGFuZGxlciBpcyByZXNwb25zaWJsZSBmb3IgY29tcGlsYXRpb25cbiAgICogb2Ygb25lIG9mIHRoZW0uXG4gICAqL1xuICBkZXRlY3Qobm9kZTogQ2xhc3NEZWNsYXJhdGlvbiwgZGVjb3JhdG9yczogRGVjb3JhdG9yW118bnVsbCk6IERldGVjdFJlc3VsdDxEPnx1bmRlZmluZWQ7XG5cblxuICAvKipcbiAgICogQXN5bmNocm9ub3VzbHkgcGVyZm9ybSBwcmUtYW5hbHlzaXMgb24gdGhlIGRlY29yYXRvci9jbGFzcyBjb21iaW5hdGlvbi5cbiAgICpcbiAgICogYHByZWFuYWx5emVgIGlzIG9wdGlvbmFsIGFuZCBpcyBub3QgZ3VhcmFudGVlZCB0byBiZSBjYWxsZWQgdGhyb3VnaCBhbGwgY29tcGlsYXRpb24gZmxvd3MuIEl0XG4gICAqIHdpbGwgb25seSBiZSBjYWxsZWQgaWYgYXN5bmNocm9uaWNpdHkgaXMgc3VwcG9ydGVkIGluIHRoZSBDb21waWxlckhvc3QuXG4gICAqL1xuICBwcmVhbmFseXplPyhub2RlOiBDbGFzc0RlY2xhcmF0aW9uLCBtZXRhZGF0YTogUmVhZG9ubHk8RD4pOiBQcm9taXNlPHZvaWQ+fHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUGVyZm9ybSBhbmFseXNpcyBvbiB0aGUgZGVjb3JhdG9yL2NsYXNzIGNvbWJpbmF0aW9uLCBleHRyYWN0aW5nIGluZm9ybWF0aW9uIGZyb20gdGhlIGNsYXNzXG4gICAqIHJlcXVpcmVkIGZvciBjb21waWxhdGlvbi5cbiAgICpcbiAgICogUmV0dXJucyBhbmFseXplZCBtZXRhZGF0YSBpZiBzdWNjZXNzZnVsLCBvciBhbiBhcnJheSBvZiBkaWFnbm9zdGljIG1lc3NhZ2VzIGlmIHRoZSBhbmFseXNpc1xuICAgKiBmYWlscyBvciB0aGUgZGVjb3JhdG9yIGlzbid0IHZhbGlkLlxuICAgKlxuICAgKiBBbmFseXNpcyBzaG91bGQgYWx3YXlzIGJlIGEgXCJwdXJlXCIgb3BlcmF0aW9uLCB3aXRoIG5vIHNpZGUgZWZmZWN0cy4gVGhpcyBpcyBiZWNhdXNlIHRoZVxuICAgKiBkZXRlY3QvYW5hbHlzaXMgc3RlcHMgbWlnaHQgYmUgc2tpcHBlZCBmb3IgZmlsZXMgd2hpY2ggaGF2ZSBub3QgY2hhbmdlZCBkdXJpbmcgaW5jcmVtZW50YWxcbiAgICogYnVpbGRzLiBBbnkgc2lkZSBlZmZlY3RzIHJlcXVpcmVkIGZvciBjb21waWxhdGlvbiAoZS5nLiByZWdpc3RyYXRpb24gb2YgbWV0YWRhdGEpIHNob3VsZCBoYXBwZW5cbiAgICogaW4gdGhlIGByZWdpc3RlcmAgcGhhc2UsIHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8gcnVuIGV2ZW4gZm9yIGluY3JlbWVudGFsIGJ1aWxkcy5cbiAgICovXG4gIGFuYWx5emUobm9kZTogQ2xhc3NEZWNsYXJhdGlvbiwgbWV0YWRhdGE6IFJlYWRvbmx5PEQ+LCBoYW5kbGVyRmxhZ3M/OiBIYW5kbGVyRmxhZ3MpOlxuICAgICAgQW5hbHlzaXNPdXRwdXQ8QT47XG5cbiAgLyoqXG4gICAqIFJlYWN0IHRvIGEgY2hhbmdlIGluIGEgcmVzb3VyY2UgZmlsZSBieSB1cGRhdGluZyB0aGUgYGFuYWx5c2lzYCBvciBgcmVzb2x1dGlvbmAsIHVuZGVyIHRoZVxuICAgKiBhc3N1bXB0aW9uIHRoYXQgbm90aGluZyBpbiB0aGUgVHlwZVNjcmlwdCBjb2RlIGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgdXBkYXRlUmVzb3VyY2VzPyhub2RlOiBDbGFzc0RlY2xhcmF0aW9uLCBhbmFseXNpczogQSwgcmVzb2x1dGlvbjogUik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFByb2R1Y2VzIGEgYFNlbWFudGljU3ltYm9sYCB0aGF0IHJlcHJlc2VudHMgdGhlIGNsYXNzLCB3aGljaCBpcyByZWdpc3RlcmVkIGludG8gdGhlIHNlbWFudGljXG4gICAqIGRlcGVuZGVuY3kgZ3JhcGguIFRoZSBzeW1ib2wgaXMgdXNlZCBpbiBpbmNyZW1lbnRhbCBjb21waWxhdGlvbnMgdG8gbGV0IHRoZSBjb21waWxlciBkZXRlcm1pbmVcbiAgICogaG93IGEgY2hhbmdlIHRvIHRoZSBjbGFzcyBhZmZlY3RzIHByaW9yIGVtaXQgcmVzdWx0cy4gU2VlIHRoZSBgaW5jcmVtZW50YWxgIHRhcmdldCdzIFJFQURNRSBmb3JcbiAgICogZGV0YWlscyBvbiBob3cgdGhpcyB3b3Jrcy5cbiAgICpcbiAgICogVGhlIHN5bWJvbCBpcyBwYXNzZWQgaW4gdG8gYHJlc29sdmVgLCB3aGVyZSBpdCBjYW4gYmUgZXh0ZW5kZWQgd2l0aCByZWZlcmVuY2VzIGludG8gb3RoZXIgcGFydHNcbiAgICogb2YgdGhlIGNvbXBpbGF0aW9uIGFzIG5lZWRlZC5cbiAgICpcbiAgICogT25seSBwcmltYXJ5IGhhbmRsZXJzIGFyZSBhbGxvd2VkIHRvIGhhdmUgc3ltYm9sczsgaGFuZGxlcnMgd2l0aCBgcHJlY2VkZW5jZWAgb3RoZXIgdGhhblxuICAgKiBgSGFuZGxlclByZWNlZGVuY2UuUFJJTUFSWWAgbXVzdCByZXR1cm4gYSBgbnVsbGAgc3ltYm9sLlxuICAgKi9cbiAgc3ltYm9sKG5vZGU6IENsYXNzRGVjbGFyYXRpb24sIGFuYWx5c2lzOiBSZWFkb25seTxBPik6IFM7XG5cbiAgLyoqXG4gICAqIFBvc3QtcHJvY2VzcyB0aGUgYW5hbHlzaXMgb2YgYSBkZWNvcmF0b3IvY2xhc3MgY29tYmluYXRpb24gYW5kIHJlY29yZCBhbnkgbmVjZXNzYXJ5IGluZm9ybWF0aW9uXG4gICAqIGluIHRoZSBsYXJnZXIgY29tcGlsYXRpb24uXG4gICAqXG4gICAqIFJlZ2lzdHJhdGlvbiBhbHdheXMgb2NjdXJzIGZvciBhIGdpdmVuIGRlY29yYXRvci9jbGFzcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGFuYWx5c2lzIHdhc1xuICAgKiBwZXJmb3JtZWQgZGlyZWN0bHkgb3Igd2hldGhlciB0aGUgYW5hbHlzaXMgcmVzdWx0cyB3ZXJlIHJldXNlZCBmcm9tIHRoZSBwcmV2aW91cyBwcm9ncmFtLlxuICAgKi9cbiAgcmVnaXN0ZXI/KG5vZGU6IENsYXNzRGVjbGFyYXRpb24sIGFuYWx5c2lzOiBBKTogdm9pZDtcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkZWNvcmF0b3IgZm9yIHRoZSBpbmRleGluZyBwaGFzZSBpbiBhXG4gICAqIGBJbmRleGluZ0NvbnRleHRgLCB3aGljaCBzdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQgY29tcG9uZW50cyBkaXNjb3ZlcmVkIGluIHRoZVxuICAgKiBwcm9ncmFtLlxuICAgKi9cbiAgaW5kZXg/XG4gICAgICAoY29udGV4dDogSW5kZXhpbmdDb250ZXh0LCBub2RlOiBDbGFzc0RlY2xhcmF0aW9uLCBhbmFseXNpczogUmVhZG9ubHk8QT4sXG4gICAgICAgcmVzb2x1dGlvbjogUmVhZG9ubHk8Uj4pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBQZXJmb3JtIHJlc29sdXRpb24gb24gdGhlIGdpdmVuIGRlY29yYXRvciBhbG9uZyB3aXRoIHRoZSByZXN1bHQgb2YgYW5hbHlzaXMuXG4gICAqXG4gICAqIFRoZSByZXNvbHV0aW9uIHBoYXNlIGhhcHBlbnMgYWZ0ZXIgdGhlIGVudGlyZSBgdHMuUHJvZ3JhbWAgaGFzIGJlZW4gYW5hbHl6ZWQsIGFuZCBnaXZlcyB0aGVcbiAgICogYERlY29yYXRvckhhbmRsZXJgIGEgY2hhbmNlIHRvIGxldmVyYWdlIGluZm9ybWF0aW9uIGZyb20gdGhlIHdob2xlIGNvbXBpbGF0aW9uIHVuaXQgdG8gZW5oYW5jZVxuICAgKiB0aGUgYGFuYWx5c2lzYCBiZWZvcmUgdGhlIGVtaXQgcGhhc2UuXG4gICAqL1xuICByZXNvbHZlPyhub2RlOiBDbGFzc0RlY2xhcmF0aW9uLCBhbmFseXNpczogUmVhZG9ubHk8QT4sIHN5bWJvbDogUyk6IFJlc29sdmVSZXN1bHQ8Uj47XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgaTE4biBtZXNzYWdlcyBpbnRvIHRoZSBgWGkxOG5Db250ZXh0YCwgd2hpY2ggaXMgdXNlZnVsIGZvciBnZW5lcmF0aW5nIHZhcmlvdXMgZm9ybWF0c1xuICAgKiBvZiBtZXNzYWdlIGZpbGUgb3V0cHV0cy5cbiAgICovXG4gIHhpMThuPyhidW5kbGU6IFhpMThuQ29udGV4dCwgbm9kZTogQ2xhc3NEZWNsYXJhdGlvbiwgYW5hbHlzaXM6IFJlYWRvbmx5PEE+KTogdm9pZDtcblxuICB0eXBlQ2hlY2s/XG4gICAgICAoY3R4OiBUeXBlQ2hlY2tDb250ZXh0LCBub2RlOiBDbGFzc0RlY2xhcmF0aW9uLCBhbmFseXNpczogUmVhZG9ubHk8QT4sXG4gICAgICAgcmVzb2x1dGlvbjogUmVhZG9ubHk8Uj4pOiB2b2lkO1xuXG4gIGV4dGVuZGVkVGVtcGxhdGVDaGVjaz9cbiAgICAgIChjb21wb25lbnQ6IHRzLkNsYXNzRGVjbGFyYXRpb24sIGV4dGVuZGVkVGVtcGxhdGVDaGVja2VyOiBFeHRlbmRlZFRlbXBsYXRlQ2hlY2tlcik6XG4gICAgICAgICAgdHMuRGlhZ25vc3RpY1tdO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIGRlc2NyaXB0aW9uIG9mIHRoZSBmaWVsZCB3aGljaCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGNsYXNzLCBpbmNsdWRpbmcgYW55XG4gICAqIGluaXRpYWxpemF0aW9uIGNvZGUgdG8gYmUgZ2VuZXJhdGVkLlxuICAgKlxuICAgKiBJZiB0aGUgY29tcGlsYXRpb24gbW9kZSBpcyBjb25maWd1cmVkIGFzIHBhcnRpYWwsIGFuZCBhbiBpbXBsZW1lbnRhdGlvbiBvZiBgY29tcGlsZVBhcnRpYWxgIGlzXG4gICAqIHByb3ZpZGVkLCB0aGVuIHRoaXMgbWV0aG9kIGlzIG5vdCBjYWxsZWQuXG4gICAqL1xuICBjb21waWxlRnVsbChcbiAgICAgIG5vZGU6IENsYXNzRGVjbGFyYXRpb24sIGFuYWx5c2lzOiBSZWFkb25seTxBPiwgcmVzb2x1dGlvbjogUmVhZG9ubHk8Uj4sXG4gICAgICBjb25zdGFudFBvb2w6IENvbnN0YW50UG9vbCk6IENvbXBpbGVSZXN1bHR8Q29tcGlsZVJlc3VsdFtdO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgY29kZSBmb3IgdGhlIGRlY29yYXRvciB1c2luZyBhIHN0YWJsZSwgYnV0IGludGVybWVkaWF0ZSBmb3JtYXQgc3VpdGFibGUgdG8gYmVcbiAgICogcHVibGlzaGVkIHRvIE5QTS4gVGhpcyBjb2RlIGlzIG1lYW50IHRvIGJlIHByb2Nlc3NlZCBieSB0aGUgbGlua2VyIHRvIGFjaGlldmUgdGhlIGZpbmFsIEFPVFxuICAgKiBjb21waWxlZCBjb2RlLlxuICAgKlxuICAgKiBJZiBwcmVzZW50LCB0aGlzIG1ldGhvZCBpcyB1c2VkIGlmIHRoZSBjb21waWxhdGlvbiBtb2RlIGlzIGNvbmZpZ3VyZWQgYXMgcGFydGlhbCwgb3RoZXJ3aXNlXG4gICAqIGBjb21waWxlRnVsbGAgaXMuXG4gICAqL1xuICBjb21waWxlUGFydGlhbD9cbiAgICAgIChub2RlOiBDbGFzc0RlY2xhcmF0aW9uLCBhbmFseXNpczogUmVhZG9ubHk8QT4sIHJlc29sdXRpb246IFJlYWRvbmx5PFI+KTogQ29tcGlsZVJlc3VsdFxuICAgICAgfENvbXBpbGVSZXN1bHRbXTtcbn1cblxuLyoqXG4gKiBUaGUgb3V0cHV0IG9mIGRldGVjdGluZyBhIHRyYWl0IGZvciBhIGRlY2xhcmF0aW9uIGFzIHRoZSByZXN1bHQgb2YgdGhlIGZpcnN0IHBoYXNlIG9mIHRoZVxuICogY29tcGlsYXRpb24gcGlwZWxpbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV0ZWN0UmVzdWx0PE0+IHtcbiAgLyoqXG4gICAqIFRoZSBub2RlIHRoYXQgdHJpZ2dlcmVkIHRoZSBtYXRjaCwgd2hpY2ggaXMgdHlwaWNhbGx5IGEgZGVjb3JhdG9yLlxuICAgKi9cbiAgdHJpZ2dlcjogdHMuTm9kZXxudWxsO1xuXG4gIC8qKlxuICAgKiBSZWZlcnMgdG8gdGhlIGRlY29yYXRvciB0aGF0IHdhcyByZWNvZ25pemVkIGZvciB0aGlzIGRldGVjdGlvbiwgaWYgYW55LiBUaGlzIGNhbiBiZSBhIGNvbmNyZXRlXG4gICAqIGRlY29yYXRvciB0aGF0IGlzIGFjdHVhbGx5IHByZXNlbnQgaW4gYSBmaWxlLCBvciBhIHN5bnRoZXRpYyBkZWNvcmF0b3IgYXMgaW5zZXJ0ZWRcbiAgICogcHJvZ3JhbW1hdGljYWxseS5cbiAgICovXG4gIGRlY29yYXRvcjogRGVjb3JhdG9yfG51bGw7XG5cbiAgLyoqXG4gICAqIEFuIGFyYml0cmFyeSBvYmplY3QgdG8gY2Fycnkgb3ZlciBmcm9tIHRoZSBkZXRlY3Rpb24gcGhhc2UgaW50byB0aGUgYW5hbHlzaXMgcGhhc2UuXG4gICAqL1xuICBtZXRhZGF0YTogUmVhZG9ubHk8TT47XG59XG5cbi8qKlxuICogVGhlIG91dHB1dCBvZiBhbiBhbmFseXNpcyBvcGVyYXRpb24sIGNvbnNpc3Rpbmcgb2YgcG9zc2libHkgYW4gYXJiaXRyYXJ5IGFuYWx5c2lzIG9iamVjdCAodXNlZCBhc1xuICogdGhlIGlucHV0IHRvIGNvZGUgZ2VuZXJhdGlvbikgYW5kIHBvdGVudGlhbGx5IGRpYWdub3N0aWNzIGlmIHRoZXJlIHdlcmUgZXJyb3JzIHVuY292ZXJlZCBkdXJpbmdcbiAqIGFuYWx5c2lzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFuYWx5c2lzT3V0cHV0PEE+IHtcbiAgYW5hbHlzaXM/OiBSZWFkb25seTxBPjtcbiAgZGlhZ25vc3RpY3M/OiB0cy5EaWFnbm9zdGljW107XG59XG5cbi8qKlxuICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgc3RhdGljIGZpZWxkIHRvIGFkZCB0byBhIGNsYXNzLCBpbmNsdWRpbmcgYW4gaW5pdGlhbGl6YXRpb24gZXhwcmVzc2lvblxuICogYW5kIGEgdHlwZSBmb3IgdGhlIC5kLnRzIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGlsZVJlc3VsdCB7XG4gIG5hbWU6IHN0cmluZztcbiAgaW5pdGlhbGl6ZXI6IEV4cHJlc3Npb247XG4gIHN0YXRlbWVudHM6IFN0YXRlbWVudFtdO1xuICB0eXBlOiBUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVSZXN1bHQ8Uj4ge1xuICByZWV4cG9ydHM/OiBSZWV4cG9ydFtdO1xuICBkaWFnbm9zdGljcz86IHRzLkRpYWdub3N0aWNbXTtcbiAgZGF0YT86IFJlYWRvbmx5PFI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER0c1RyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybUNsYXNzRWxlbWVudD8oZWxlbWVudDogdHMuQ2xhc3NFbGVtZW50LCBpbXBvcnRzOiBJbXBvcnRNYW5hZ2VyKTogdHMuQ2xhc3NFbGVtZW50O1xuICB0cmFuc2Zvcm1GdW5jdGlvbkRlY2xhcmF0aW9uP1xuICAgICAgKGVsZW1lbnQ6IHRzLkZ1bmN0aW9uRGVjbGFyYXRpb24sIGltcG9ydHM6IEltcG9ydE1hbmFnZXIpOiB0cy5GdW5jdGlvbkRlY2xhcmF0aW9uO1xuICB0cmFuc2Zvcm1DbGFzcz9cbiAgICAgIChjbGF6ejogdHMuQ2xhc3NEZWNsYXJhdGlvbiwgZWxlbWVudHM6IFJlYWRvbmx5QXJyYXk8dHMuQ2xhc3NFbGVtZW50PixcbiAgICAgICBpbXBvcnRzOiBJbXBvcnRNYW5hZ2VyKTogdHMuQ2xhc3NEZWNsYXJhdGlvbjtcbn1cbiJdfQ==
|
|
@@ -14,6 +14,7 @@ import { IndexingContext } from '../../indexer';
|
|
|
14
14
|
import { PerfRecorder } from '../../perf';
|
|
15
15
|
import { ClassDeclaration, DeclarationNode, Decorator, ReflectionHost } from '../../reflection';
|
|
16
16
|
import { ProgramTypeCheckAdapter, TypeCheckContext } from '../../typecheck/api';
|
|
17
|
+
import { ExtendedTemplateChecker } from '../../typecheck/extended/api';
|
|
17
18
|
import { Xi18nContext } from '../../xi18n';
|
|
18
19
|
import { CompilationMode, CompileResult, DecoratorHandler, HandlerFlags } from './api';
|
|
19
20
|
import { DtsTransformRegistry } from './declaration';
|
|
@@ -108,6 +109,7 @@ export declare class TraitCompiler implements ProgramTypeCheckAdapter {
|
|
|
108
109
|
* `ts.SourceFile`.
|
|
109
110
|
*/
|
|
110
111
|
typeCheck(sf: ts.SourceFile, ctx: TypeCheckContext): void;
|
|
112
|
+
extendedTemplateCheck(sf: ts.SourceFile, extendedTemplateChecker: ExtendedTemplateChecker): ts.Diagnostic[];
|
|
111
113
|
index(ctx: IndexingContext): void;
|
|
112
114
|
xi18n(bundle: Xi18nContext): void;
|
|
113
115
|
updateResources(clazz: DeclarationNode): void;
|