@angular/compiler 18.0.0-next.3 → 18.0.0-next.5
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/esm2022/src/render3/partial/class_metadata.mjs +2 -2
- package/esm2022/src/render3/partial/directive.mjs +1 -1
- package/esm2022/src/render3/partial/factory.mjs +1 -1
- package/esm2022/src/render3/partial/injectable.mjs +1 -1
- package/esm2022/src/render3/partial/injector.mjs +1 -1
- package/esm2022/src/render3/partial/ng_module.mjs +1 -1
- package/esm2022/src/render3/partial/pipe.mjs +1 -1
- package/esm2022/src/render3/r3_identifiers.mjs +1 -5
- package/esm2022/src/render3/view/template.mjs +5 -5
- package/esm2022/src/render3/view/util.mjs +7 -28
- package/esm2022/src/template/pipeline/ir/src/ops/update.mjs +2 -3
- package/esm2022/src/template/pipeline/src/ingest.mjs +3 -9
- package/esm2022/src/template/pipeline/src/instruction.mjs +4 -18
- package/esm2022/src/template/pipeline/src/phases/reify.mjs +2 -5
- package/esm2022/src/template/pipeline/src/phases/transform_two_way_binding_set.mjs +16 -61
- package/esm2022/src/template_parser/binding_parser.mjs +8 -2
- package/esm2022/src/version.mjs +1 -1
- package/fesm2022/compiler.mjs +50 -137
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +11 -5
- package/package.json +2 -2
|
@@ -188,11 +188,10 @@ export function createAdvanceOp(delta, sourceSpan) {
|
|
|
188
188
|
/**
|
|
189
189
|
* Create a conditional op, which will display an embedded view according to a condtion.
|
|
190
190
|
*/
|
|
191
|
-
export function createConditionalOp(target,
|
|
191
|
+
export function createConditionalOp(target, test, conditions, sourceSpan) {
|
|
192
192
|
return {
|
|
193
193
|
kind: OpKind.Conditional,
|
|
194
194
|
target,
|
|
195
|
-
targetSlot,
|
|
196
195
|
test,
|
|
197
196
|
conditions,
|
|
198
197
|
processed: null,
|
|
@@ -260,4 +259,4 @@ export function createI18nApplyOp(owner, handle, sourceSpan) {
|
|
|
260
259
|
...NEW_OP,
|
|
261
260
|
};
|
|
262
261
|
}
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXIvc3JjL3RlbXBsYXRlL3BpcGVsaW5lL2lyL3NyYy9vcHMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQU1ILE9BQU8sRUFBMEQsTUFBTSxFQUFlLE1BQU0sVUFBVSxDQUFDO0FBSXZHLE9BQU8sRUFBaUQsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFN0gsT0FBTyxFQUFZLE1BQU0sRUFBMEIsTUFBTSxVQUFVLENBQUM7QUFrQ3BFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNuQyxJQUFZLEVBQUUsYUFBNEIsRUFBRSxVQUEyQjtJQUN6RSxPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1FBQzVCLE1BQU0sRUFBRSxJQUFJO1FBQ1osYUFBYTtRQUNiLFVBQVU7UUFDVixHQUFHLDZCQUE2QjtRQUNoQyxHQUFHLG1CQUFtQjtRQUN0QixHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ2EsT0FBaUIsRUFBVyxXQUEyQixFQUN2RCxnQkFBMEI7UUFEMUIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUFXLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUN2RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVU7UUFDckMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEYsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUNaLFdBQVcsQ0FBQyxNQUFNLGtFQUNsQixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7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TixVQUFVO1FBQ1YsY0FBYztRQUNkLGVBQWU7UUFDZixjQUFjO1FBQ2QsS0FBSztRQUNMLElBQUk7UUFDSixVQUFVO1FBQ1YsR0FBRyxNQUFNO1FBQ1QsR0FBRyxtQkFBbUI7UUFDdEIsR0FBRyw2QkFBNkI7S0FDakMsQ0FBQztBQUNKLENBQUM7QUF5QkQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQzdCLEtBQWEsRUFBRSxNQUFrQixFQUFFLFVBQTJCO0lBQ2hFLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVM7UUFDdEIsS0FBSztRQUNMLE1BQU07UUFDTixVQUFVO1FBQ1YsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtTZWN1cml0eUNvbnRleHR9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0ICogYXMgaTE4biBmcm9tICcuLi8uLi8uLi8uLi8uLi9pMThuL2kxOG5fYXN0JztcbmltcG9ydCAqIGFzIG8gZnJvbSAnLi4vLi4vLi4vLi4vLi4vb3V0cHV0L291dHB1dF9hc3QnO1xuaW1wb3J0IHtQYXJzZVNvdXJjZVNwYW59IGZyb20gJy4uLy4uLy4uLy4uLy4uL3BhcnNlX3V0aWwnO1xuaW1wb3J0IHtCaW5kaW5nS2luZCwgSTE4bkV4cHJlc3Npb25Gb3IsIEkxOG5QYXJhbVJlc29sdXRpb25UaW1lLCBPcEtpbmQsIFRlbXBsYXRlS2luZH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHR5cGUge0NvbmRpdGlvbmFsQ2FzZUV4cHJ9IGZyb20gJy4uL2V4cHJlc3Npb24nO1xuaW1wb3J0IHtTbG90SGFuZGxlfSBmcm9tICcuLi9oYW5kbGUnO1xuaW1wb3J0IHtPcCwgWHJlZklkfSBmcm9tICcuLi9vcGVyYXRpb25zJztcbmltcG9ydCB7Q29uc3VtZXNWYXJzVHJhaXQsIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdCwgVFJBSVRfQ09OU1VNRVNfVkFSUywgVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFR9IGZyb20gJy4uL3RyYWl0cyc7XG5pbXBvcnQgdHlwZSB7SG9zdFByb3BlcnR5T3B9IGZyb20gJy4vaG9zdCc7XG5pbXBvcnQge0xpc3RFbmRPcCwgTkVXX09QLCBTdGF0ZW1lbnRPcCwgVmFyaWFibGVPcH0gZnJvbSAnLi9zaGFyZWQnO1xuXG5cbi8qKlxuICogQW4gb3BlcmF0aW9uIHVzYWJsZSBvbiB0aGUgdXBkYXRlIHNpZGUgb2YgdGhlIElSLlxuICovXG5leHBvcnQgdHlwZSBVcGRhdGVPcCA9XG4gICAgTGlzdEVuZE9wPFVwZGF0ZU9wPnxTdGF0ZW1lbnRPcDxVcGRhdGVPcD58UHJvcGVydHlPcHxUd29XYXlQcm9wZXJ0eU9wfEF0dHJpYnV0ZU9wfFN0eWxlUHJvcE9wfFxuICAgIENsYXNzUHJvcE9wfFN0eWxlTWFwT3B8Q2xhc3NNYXBPcHxJbnRlcnBvbGF0ZVRleHRPcHxBZHZhbmNlT3B8VmFyaWFibGVPcDxVcGRhdGVPcD58QmluZGluZ09wfFxuICAgIEhvc3RQcm9wZXJ0eU9wfENvbmRpdGlvbmFsT3B8STE4bkV4cHJlc3Npb25PcHxJMThuQXBwbHlPcHxSZXBlYXRlck9wfERlZmVyV2hlbk9wO1xuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gdG8gcGVyZm9ybSBzdHJpbmcgaW50ZXJwb2xhdGlvbiBvbiBhIHRleHQgbm9kZS5cbiAqXG4gKiBJbnRlcnBvbGF0aW9uIGlucHV0cyBhcmUgc3RvcmVkIGFzIHN0YXRpYyBgc3RyaW5nYHMgYW5kIGR5bmFtaWMgYG8uRXhwcmVzc2lvbmBzLCBpbiBzZXBhcmF0ZVxuICogYXJyYXlzLiBUaHVzLCB0aGUgaW50ZXJwb2xhdGlvbiBgQXt7Yn19Q3t7ZH19RWAgaXMgc3RvcmVkIGFzIDMgc3RhdGljIHN0cmluZ3MgYFsnQScsICdDJywgJ0UnXWBcbiAqIGFuZCAyIGR5bmFtaWMgZXhwcmVzc2lvbnMgYFtiLCBkXWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJwb2xhdGVUZXh0T3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4sIENvbnN1bWVzVmFyc1RyYWl0IHtcbiAga2luZDogT3BLaW5kLkludGVycG9sYXRlVGV4dDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSB0ZXh0IG5vZGUgdG8gd2hpY2ggdGhlIGludGVycG9sYXRpb24gaXMgYm91bmQuXG4gICAqL1xuICB0YXJnZXQ6IFhyZWZJZDtcblxuICAvKipcbiAgICogVGhlIGludGVycG9sYXRlZCB2YWx1ZS5cbiAgICovXG4gIGludGVycG9sYXRpb246IEludGVycG9sYXRpb247XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBgSW50ZXJwb2xhdGlvblRleHRPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbnRlcnBvbGF0ZVRleHRPcChcbiAgICB4cmVmOiBYcmVmSWQsIGludGVycG9sYXRpb246IEludGVycG9sYXRpb24sIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IEludGVycG9sYXRlVGV4dE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSW50ZXJwb2xhdGVUZXh0LFxuICAgIHRhcmdldDogeHJlZixcbiAgICBpbnRlcnBvbGF0aW9uLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBJbnRlcnBvbGF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICByZWFkb25seSBzdHJpbmdzOiBzdHJpbmdbXSwgcmVhZG9ubHkgZXhwcmVzc2lvbnM6IG8uRXhwcmVzc2lvbltdLFxuICAgICAgcmVhZG9ubHkgaTE4blBsYWNlaG9sZGVyczogc3RyaW5nW10pIHtcbiAgICBpZiAoaTE4blBsYWNlaG9sZGVycy5sZW5ndGggIT09IDAgJiYgaTE4blBsYWNlaG9sZGVycy5sZW5ndGggIT09IGV4cHJlc3Npb25zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke1xuICAgICAgICAgIGV4cHJlc3Npb25zLmxlbmd0aH0gcGxhY2Vob2xkZXJzIHRvIG1hdGNoIGludGVycG9sYXRpb24gZXhwcmVzc2lvbiBjb3VudCwgYnV0IGdvdCAke1xuICAgICAgICAgIGkxOG5QbGFjZWhvbGRlcnMubGVuZ3RofWApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFuIGludGVybWVkaWF0ZSBiaW5kaW5nIG9wLCB0aGF0IGhhcyBub3QgeWV0IGJlZW4gcHJvY2Vzc2VkIGludG8gYW4gaW5kaXZpZHVhbCBwcm9wZXJ0eSxcbiAqIGF0dHJpYnV0ZSwgc3R5bGUsIGV0Yy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCaW5kaW5nT3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuQmluZGluZztcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiAgVGhlIGtpbmQgb2YgYmluZGluZyByZXByZXNlbnRlZCBieSB0aGlzIG9wLlxuICAgKi9cbiAgYmluZGluZ0tpbmQ6IEJpbmRpbmdLaW5kO1xuXG4gIC8qKlxuICAgKiAgVGhlIG5hbWUgb2YgdGhpcyBiaW5kaW5nLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxJbnRlcnBvbGF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pdCBvZiB0aGUgYm91bmQgdmFsdWUuXG4gICAqL1xuICB1bml0OiBzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGNvbnRleHQgb2YgdGhlIGJpbmRpbmcuXG4gICAqL1xuICBzZWN1cml0eUNvbnRleHQ6IFNlY3VyaXR5Q29udGV4dHxTZWN1cml0eUNvbnRleHRbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYmluZGluZyBpcyBhIFRleHRBdHRyaWJ1dGUgKGUuZy4gYHNvbWUtYXR0cj1cInNvbWUtdmFsdWVcImApLlxuICAgKlxuICAgKiBUaGlzIG5lZWRzIHRvIGJlIHRyYWNrZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBgVGVtcGxhdGVEZWZpbml0aW9uQnVpbGRlcmAgd2hpY2ggdHJlYXRzXG4gICAqIGBzdHlsZWAgYW5kIGBjbGFzc2AgVGV4dEF0dHJpYnV0ZXMgZGlmZmVyZW50bHkgZnJvbSBgW2F0dHIuc3R5bGVdYCBhbmQgYFthdHRyLmNsYXNzXWAuXG4gICAqL1xuICBpc1RleHRBdHRyaWJ1dGU6IGJvb2xlYW47XG5cbiAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBiaW5kaW5nIGlzIG9uIGEgc3RydWN0dXJhbCB0ZW1wbGF0ZS5cbiAgICovXG4gIHRlbXBsYXRlS2luZDogVGVtcGxhdGVLaW5kfG51bGw7XG5cbiAgaTE4bkNvbnRleHQ6IFhyZWZJZHxudWxsO1xuICBpMThuTWVzc2FnZTogaTE4bi5NZXNzYWdlfG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBCaW5kaW5nT3BgLCBub3QgeWV0IHRyYW5zZm9ybWVkIGludG8gYSBwYXJ0aWN1bGFyIHR5cGUgb2YgYmluZGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJpbmRpbmdPcChcbiAgICB0YXJnZXQ6IFhyZWZJZCwga2luZDogQmluZGluZ0tpbmQsIG5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogby5FeHByZXNzaW9ufEludGVycG9sYXRpb24sXG4gICAgdW5pdDogc3RyaW5nfG51bGwsIHNlY3VyaXR5Q29udGV4dDogU2VjdXJpdHlDb250ZXh0fFNlY3VyaXR5Q29udGV4dFtdLCBpc1RleHRBdHRyaWJ1dGU6IGJvb2xlYW4sXG4gICAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGU6IGJvb2xlYW4sIHRlbXBsYXRlS2luZDogVGVtcGxhdGVLaW5kfG51bGwsXG4gICAgaTE4bk1lc3NhZ2U6IGkxOG4uTWVzc2FnZXxudWxsLCBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBCaW5kaW5nT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5CaW5kaW5nLFxuICAgIGJpbmRpbmdLaW5kOiBraW5kLFxuICAgIHRhcmdldCxcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgdW5pdCxcbiAgICBzZWN1cml0eUNvbnRleHQsXG4gICAgaXNUZXh0QXR0cmlidXRlLFxuICAgIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlLFxuICAgIHRlbXBsYXRlS2luZCxcbiAgICBpMThuQ29udGV4dDogbnVsbCxcbiAgICBpMThuTWVzc2FnZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBIGxvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyBiaW5kaW5nIHRvIGEgcHJvcGVydHkgaW4gdGhlIHVwZGF0ZSBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eU9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLlByb3BlcnR5O1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIHByb3BlcnR5IGlzIGJvdW5kLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGJvdW5kIHByb3BlcnR5LlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxJbnRlcnBvbGF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgcHJvcGVydHkgaXMgYW4gYW5pbWF0aW9uIHRyaWdnZXIuXG4gICAqL1xuICBpc0FuaW1hdGlvblRyaWdnZXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBjb250ZXh0IG9mIHRoZSBiaW5kaW5nLlxuICAgKi9cbiAgc2VjdXJpdHlDb250ZXh0OiBTZWN1cml0eUNvbnRleHR8U2VjdXJpdHlDb250ZXh0W107XG5cbiAgLyoqXG4gICAqIFRoZSBzYW5pdGl6ZXIgZm9yIHRoaXMgcHJvcGVydHkuXG4gICAqL1xuICBzYW5pdGl6ZXI6IG8uRXhwcmVzc2lvbnxudWxsO1xuXG4gIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUga2luZCBvZiB0ZW1wbGF0ZSB0YXJnZXRlZCBieSB0aGUgYmluZGluZywgb3IgbnVsbCBpZiB0aGlzIGJpbmRpbmcgZG9lcyBub3QgdGFyZ2V0IGFcbiAgICogdGVtcGxhdGUuXG4gICAqL1xuICB0ZW1wbGF0ZUtpbmQ6IFRlbXBsYXRlS2luZHxudWxsO1xuXG4gIGkxOG5Db250ZXh0OiBYcmVmSWR8bnVsbDtcbiAgaTE4bk1lc3NhZ2U6IGkxOG4uTWVzc2FnZXxudWxsO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBgUHJvcGVydHlPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9wZXJ0eU9wKFxuICAgIHRhcmdldDogWHJlZklkLCBuYW1lOiBzdHJpbmcsIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxJbnRlcnBvbGF0aW9uLFxuICAgIGlzQW5pbWF0aW9uVHJpZ2dlcjogYm9vbGVhbiwgc2VjdXJpdHlDb250ZXh0OiBTZWN1cml0eUNvbnRleHR8U2VjdXJpdHlDb250ZXh0W10sXG4gICAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGU6IGJvb2xlYW4sIHRlbXBsYXRlS2luZDogVGVtcGxhdGVLaW5kfG51bGwsXG4gICAgaTE4bkNvbnRleHQ6IFhyZWZJZHxudWxsLCBpMThuTWVzc2FnZTogaTE4bi5NZXNzYWdlfG51bGwsXG4gICAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogUHJvcGVydHlPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLlByb3BlcnR5LFxuICAgIHRhcmdldCxcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgaXNBbmltYXRpb25UcmlnZ2VyLFxuICAgIHNlY3VyaXR5Q29udGV4dCxcbiAgICBzYW5pdGl6ZXI6IG51bGwsXG4gICAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGUsXG4gICAgdGVtcGxhdGVLaW5kLFxuICAgIGkxOG5Db250ZXh0LFxuICAgIGkxOG5NZXNzYWdlLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQSBsb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIHByb3BlcnR5IGJpbmRpbmcgc2lkZSBvZiBhIHR3by13YXkgYmluZGluZyBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR3b1dheVByb3BlcnR5T3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4sIENvbnN1bWVzVmFyc1RyYWl0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLlR3b1dheVByb3BlcnR5O1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIHByb3BlcnR5IGlzIGJvdW5kLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbjtcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGNvbnRleHQgb2YgdGhlIGJpbmRpbmcuXG4gICAqL1xuICBzZWN1cml0eUNvbnRleHQ6IFNlY3VyaXR5Q29udGV4dHxTZWN1cml0eUNvbnRleHRbXTtcblxuICAvKipcbiAgICogVGhlIHNhbml0aXplciBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIHNhbml0aXplcjogby5FeHByZXNzaW9ufG51bGw7XG5cbiAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBraW5kIG9mIHRlbXBsYXRlIHRhcmdldGVkIGJ5IHRoZSBiaW5kaW5nLCBvciBudWxsIGlmIHRoaXMgYmluZGluZyBkb2VzIG5vdCB0YXJnZXQgYVxuICAgKiB0ZW1wbGF0ZS5cbiAgICovXG4gIHRlbXBsYXRlS2luZDogVGVtcGxhdGVLaW5kfG51bGw7XG5cbiAgaTE4bkNvbnRleHQ6IFhyZWZJZHxudWxsO1xuICBpMThuTWVzc2FnZTogaTE4bi5NZXNzYWdlfG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBUd29XYXlQcm9wZXJ0eU9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVR3b1dheVByb3BlcnR5T3AoXG4gICAgdGFyZ2V0OiBYcmVmSWQsIG5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uLFxuICAgIHNlY3VyaXR5Q29udGV4dDogU2VjdXJpdHlDb250ZXh0fFNlY3VyaXR5Q29udGV4dFtdLCBpc1N0cnVjdHVyYWxUZW1wbGF0ZUF0dHJpYnV0ZTogYm9vbGVhbixcbiAgICB0ZW1wbGF0ZUtpbmQ6IFRlbXBsYXRlS2luZHxudWxsLCBpMThuQ29udGV4dDogWHJlZklkfG51bGwsIGkxOG5NZXNzYWdlOiBpMThuLk1lc3NhZ2V8bnVsbCxcbiAgICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBUd29XYXlQcm9wZXJ0eU9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuVHdvV2F5UHJvcGVydHksXG4gICAgdGFyZ2V0LFxuICAgIG5hbWUsXG4gICAgZXhwcmVzc2lvbixcbiAgICBzZWN1cml0eUNvbnRleHQsXG4gICAgc2FuaXRpemVyOiBudWxsLFxuICAgIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlLFxuICAgIHRlbXBsYXRlS2luZCxcbiAgICBpMThuQ29udGV4dCxcbiAgICBpMThuTWVzc2FnZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGJpbmRpbmcgdG8gYSBzdHlsZSBwcm9wZXJ0eSBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlUHJvcE9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLlN0eWxlUHJvcDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBib3VuZCBwcm9wZXJ0eS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRXhwcmVzc2lvbiB3aGljaCBpcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb258SW50ZXJwb2xhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHVuaXQgb2YgdGhlIGJvdW5kIHZhbHVlLlxuICAgKi9cbiAgdW5pdDogc3RyaW5nfG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKiogQ3JlYXRlIGEgYFN0eWxlUHJvcE9wYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdHlsZVByb3BPcChcbiAgICB4cmVmOiBYcmVmSWQsIG5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogby5FeHByZXNzaW9ufEludGVycG9sYXRpb24sIHVuaXQ6IHN0cmluZ3xudWxsLFxuICAgIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IFN0eWxlUHJvcE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuU3R5bGVQcm9wLFxuICAgIHRhcmdldDogeHJlZixcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgdW5pdCxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGJpbmRpbmcgdG8gYSBjbGFzcyBwcm9wZXJ0eSBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsYXNzUHJvcE9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLkNsYXNzUHJvcDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBib3VuZCBwcm9wZXJ0eS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRXhwcmVzc2lvbiB3aGljaCBpcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb247XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBDbGFzc1Byb3BPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDbGFzc1Byb3BPcChcbiAgICB4cmVmOiBYcmVmSWQsIG5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uLFxuICAgIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IENsYXNzUHJvcE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuQ2xhc3NQcm9wLFxuICAgIHRhcmdldDogeHJlZixcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5UUkFJVF9ERVBFTkRTX09OX1NMT1RfQ09OVEVYVCxcbiAgICAuLi5UUkFJVF9DT05TVU1FU19WQVJTLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBIGxvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyBiaW5kaW5nIHRvIGEgc3R5bGUgbWFwIGluIHRoZSB1cGRhdGUgSVIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3R5bGVNYXBPcCBleHRlbmRzIE9wPFVwZGF0ZU9wPiwgQ29uc3VtZXNWYXJzVHJhaXQsIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5TdHlsZU1hcDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxJbnRlcnBvbGF0aW9uO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqIENyZWF0ZSBhIGBTdHlsZU1hcE9wYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdHlsZU1hcE9wKFxuICAgIHhyZWY6IFhyZWZJZCwgZXhwcmVzc2lvbjogby5FeHByZXNzaW9ufEludGVycG9sYXRpb24sIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IFN0eWxlTWFwT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5TdHlsZU1hcCxcbiAgICB0YXJnZXQ6IHhyZWYsXG4gICAgZXhwcmVzc2lvbixcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGJpbmRpbmcgdG8gYSBzdHlsZSBtYXAgaW4gdGhlIHVwZGF0ZSBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGFzc01hcE9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLkNsYXNzTWFwO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIHByb3BlcnR5IGlzIGJvdW5kLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIEV4cHJlc3Npb24gd2hpY2ggaXMgYm91bmQgdG8gdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9ufEludGVycG9sYXRpb247XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBDbGFzc01hcE9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNsYXNzTWFwT3AoXG4gICAgeHJlZjogWHJlZklkLCBleHByZXNzaW9uOiBvLkV4cHJlc3Npb258SW50ZXJwb2xhdGlvbiwgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogQ2xhc3NNYXBPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkNsYXNzTWFwLFxuICAgIHRhcmdldDogeHJlZixcbiAgICBleHByZXNzaW9uLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQSBsb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgc2V0dGluZyBhbiBhdHRyaWJ1dGUgb24gYW4gZWxlbWVudCBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZU9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLkF0dHJpYnV0ZTtcblxuICAvKipcbiAgICogVGhlIGBYcmVmSWRgIG9mIHRoZSB0ZW1wbGF0ZS1saWtlIGVsZW1lbnQgdGhlIGF0dHJpYnV0ZSB3aWxsIGJlbG9uZyB0by5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBhdHRyaWJ1dGUgKG9yIG51bGwgaWYgbm9uZSkuXG4gICAqL1xuICBuYW1lc3BhY2U6IHN0cmluZ3xudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxJbnRlcnBvbGF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgY29udGV4dCBvZiB0aGUgYmluZGluZy5cbiAgICovXG4gIHNlY3VyaXR5Q29udGV4dDogU2VjdXJpdHlDb250ZXh0fFNlY3VyaXR5Q29udGV4dFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2FuaXRpemVyIGZvciB0aGlzIGF0dHJpYnV0ZS5cbiAgICovXG4gIHNhbml0aXplcjogby5FeHByZXNzaW9ufG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGJpbmRpbmcgaXMgYSBUZXh0QXR0cmlidXRlIChlLmcuIGBzb21lLWF0dHI9XCJzb21lLXZhbHVlXCJgKS5cbiAgICpcbiAgICogVGhpcyBuZWVkcyB0byBiZSB0cmFja2VkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggYFRlbXBsYXRlRGVmaW5pdGlvbkJ1aWxkZXJgIHdoaWNoIHRyZWF0c1xuICAgKiBgc3R5bGVgIGFuZCBgY2xhc3NgIFRleHRBdHRyaWJ1dGVzIGRpZmZlcmVudGx5IGZyb20gYFthdHRyLnN0eWxlXWAgYW5kIGBbYXR0ci5jbGFzc11gLlxuICAgKi9cbiAgaXNUZXh0QXR0cmlidXRlOiBib29sZWFuO1xuXG4gIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUga2luZCBvZiB0ZW1wbGF0ZSB0YXJnZXRlZCBieSB0aGUgYmluZGluZywgb3IgbnVsbCBpZiB0aGlzIGJpbmRpbmcgZG9lcyBub3QgdGFyZ2V0IGFcbiAgICogdGVtcGxhdGUuXG4gICAqL1xuICB0ZW1wbGF0ZUtpbmQ6IFRlbXBsYXRlS2luZHxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgaTE4biBjb250ZXh0LCBpZiB0aGlzIGlzIGFuIGkxOG4gYXR0cmlidXRlLlxuICAgKi9cbiAgaTE4bkNvbnRleHQ6IFhyZWZJZHxudWxsO1xuXG4gIGkxOG5NZXNzYWdlOiBpMThuLk1lc3NhZ2V8bnVsbDtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGBBdHRyaWJ1dGVPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBdHRyaWJ1dGVPcChcbiAgICB0YXJnZXQ6IFhyZWZJZCwgbmFtZXNwYWNlOiBzdHJpbmd8bnVsbCwgbmFtZTogc3RyaW5nLCBleHByZXNzaW9uOiBvLkV4cHJlc3Npb258SW50ZXJwb2xhdGlvbixcbiAgICBzZWN1cml0eUNvbnRleHQ6IFNlY3VyaXR5Q29udGV4dHxTZWN1cml0eUNvbnRleHRbXSwgaXNUZXh0QXR0cmlidXRlOiBib29sZWFuLFxuICAgIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlOiBib29sZWFuLCB0ZW1wbGF0ZUtpbmQ6IFRlbXBsYXRlS2luZHxudWxsLFxuICAgIGkxOG5NZXNzYWdlOiBpMThuLk1lc3NhZ2V8bnVsbCwgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogQXR0cmlidXRlT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5BdHRyaWJ1dGUsXG4gICAgdGFyZ2V0LFxuICAgIG5hbWVzcGFjZSxcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgc2VjdXJpdHlDb250ZXh0LFxuICAgIHNhbml0aXplcjogbnVsbCxcbiAgICBpc1RleHRBdHRyaWJ1dGUsXG4gICAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGUsXG4gICAgdGVtcGxhdGVLaW5kLFxuICAgIGkxOG5Db250ZXh0OiBudWxsLFxuICAgIGkxOG5NZXNzYWdlLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gdG8gYWR2YW5jZSB0aGUgcnVudGltZSdzIGludGVybmFsIHNsb3QgcG9pbnRlciBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkdmFuY2VPcCBleHRlbmRzIE9wPFVwZGF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5BZHZhbmNlO1xuXG4gIC8qKlxuICAgKiBEZWx0YSBieSB3aGljaCB0byBhZHZhbmNlIHRoZSBwb2ludGVyLlxuICAgKi9cbiAgZGVsdGE6IG51bWJlcjtcblxuICAvLyBTb3VyY2Ugc3BhbiBvZiB0aGUgYmluZGluZyB0aGF0IGNhdXNlZCB0aGUgYWR2YW5jZVxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGBBZHZhbmNlT3BgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWR2YW5jZU9wKGRlbHRhOiBudW1iZXIsIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IEFkdmFuY2VPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkFkdmFuY2UsXG4gICAgZGVsdGEsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbmFsT3AgZXh0ZW5kcyBPcDxDb25kaXRpb25hbE9wPiwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uc3VtZXNWYXJzVHJhaXQge1xuICBraW5kOiBPcEtpbmQuQ29uZGl0aW9uYWw7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnNlcnRpb24gcG9pbnQsIHdoaWNoIGlzIHRoZSBmaXJzdCB0ZW1wbGF0ZSBpbiB0aGUgY3JlYXRpb24gYmxvY2sgYmVsb25naW5nIHRvIHRoaXNcbiAgICogY29uZGl0aW9uLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzbG90IG9mIHRoZSB0YXJnZXQsIHRvIGJlIHBvcHVsYXRlZCBkdXJpbmcgc2xvdCBhbGxvY2F0aW9uLlxuICAgKi9cbiAgdGFyZ2V0U2xvdDogU2xvdEhhbmRsZTtcblxuICAvKipcbiAgICogVGhlIG1haW4gdGVzdCBleHByZXNzaW9uIChmb3IgYSBzd2l0Y2gpLCBvciBgbnVsbGAgKGZvciBhbiBpZiwgd2hpY2ggaGFzIG5vIHRlc3RcbiAgICogZXhwcmVzc2lvbikuXG4gICAqL1xuICB0ZXN0OiBvLkV4cHJlc3Npb258bnVsbDtcblxuICAvKipcbiAgICogRWFjaCBwb3NzaWJsZSBlbWJlZGRlZCB2aWV3IHRoYXQgY291bGQgYmUgZGlzcGxheWVkIGhhcyBhIGNvbmRpdGlvbiAob3IgaXMgZGVmYXVsdCkuIFRoaXNcbiAgICogc3RydWN0dXJlIG1hcHMgZWFjaCB2aWV3IHhyZWYgdG8gaXRzIGNvcnJlc3BvbmRpbmcgY29uZGl0aW9uLlxuICAgKi9cbiAgY29uZGl0aW9uczogQXJyYXk8Q29uZGl0aW9uYWxDYXNlRXhwcj47XG5cbiAgLyoqXG4gICAqIEFmdGVyIHByb2Nlc3NpbmcsIHRoaXMgd2lsbCBiZSBhIHNpbmdsZSBjb2xsYXBzZWQgSm9vc3QtZXhwcmVzc2lvbiB0aGF0IGV2YWx1YXRlcyB0aGVcbiAgICogY29uZGl0aW9ucywgYW5kIHlpZWxkcyB0aGUgc2xvdCBudW1iZXIgb2YgdGhlIHRlbXBsYXRlIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBwcm9jZXNzZWQ6IG8uRXhwcmVzc2lvbnxudWxsO1xuXG4gIC8qKlxuICAgKiBDb250cm9sIGZsb3cgY29uZGl0aW9uYWxzIGNhbiBhY2NlcHQgYSBjb250ZXh0IHZhbHVlICh0aGlzIGlzIGEgcmVzdWx0IG9mIHNwZWNpZnlpbmcgYW5cbiAgICogYWxpYXMpLiBUaGlzIGV4cHJlc3Npb24gd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNvbmRpdGlvbmFsIGluc3RydWN0aW9uJ3MgY29udGV4dCBwYXJhbWV0ZXIuXG4gICAqL1xuICBjb250ZXh0VmFsdWU6IG8uRXhwcmVzc2lvbnxudWxsO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBjb25kaXRpb25hbCBvcCwgd2hpY2ggd2lsbCBkaXNwbGF5IGFuIGVtYmVkZGVkIHZpZXcgYWNjb3JkaW5nIHRvIGEgY29uZHRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb25kaXRpb25hbE9wKFxuICAgIHRhcmdldDogWHJlZklkLCB0YXJnZXRTbG90OiBTbG90SGFuZGxlLCB0ZXN0OiBvLkV4cHJlc3Npb258bnVsbCxcbiAgICBjb25kaXRpb25zOiBBcnJheTxDb25kaXRpb25hbENhc2VFeHByPiwgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogQ29uZGl0aW9uYWxPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkNvbmRpdGlvbmFsLFxuICAgIHRhcmdldCxcbiAgICB0YXJnZXRTbG90LFxuICAgIHRlc3QsXG4gICAgY29uZGl0aW9ucyxcbiAgICBwcm9jZXNzZWQ6IG51bGwsXG4gICAgc291cmNlU3BhbixcbiAgICBjb250ZXh0VmFsdWU6IG51bGwsXG4gICAgLi4uTkVXX09QLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwZWF0ZXJPcCBleHRlbmRzIE9wPFVwZGF0ZU9wPiwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLlJlcGVhdGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgUmVwZWF0ZXJDcmVhdGUgb3AgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVwZWF0ZXIuXG4gICAqL1xuICB0YXJnZXQ6IFhyZWZJZDtcblxuICB0YXJnZXRTbG90OiBTbG90SGFuZGxlO1xuXG4gIC8qKlxuICAgKiBUaGUgY29sbGVjdGlvbiBwcm92aWRlZCB0byB0aGUgZm9yIGxvb3AgYXMgaXRzIGV4cHJlc3Npb24uXG4gICAqL1xuICBjb2xsZWN0aW9uOiBvLkV4cHJlc3Npb247XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVwZWF0ZXJPcChcbiAgICByZXBlYXRlckNyZWF0ZTogWHJlZklkLCB0YXJnZXRTbG90OiBTbG90SGFuZGxlLCBjb2xsZWN0aW9uOiBvLkV4cHJlc3Npb24sXG4gICAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogUmVwZWF0ZXJPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLlJlcGVhdGVyLFxuICAgIHRhcmdldDogcmVwZWF0ZXJDcmVhdGUsXG4gICAgdGFyZ2V0U2xvdCxcbiAgICBjb2xsZWN0aW9uLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlZmVyV2hlbk9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBEZXBlbmRzT25TbG90Q29udGV4dE9wVHJhaXQsIENvbnN1bWVzVmFyc1RyYWl0IHtcbiAga2luZDogT3BLaW5kLkRlZmVyV2hlbjtcblxuICAvKipcbiAgICogVGhlIGBkZWZlcmAgY3JlYXRlIG9wIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHdoZW4gY29uZGl0aW9uLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIEEgdXNlci1wcm92aWRlZCBleHByZXNzaW9uIHRoYXQgdHJpZ2dlcnMgdGhlIGRlZmVyIG9wLlxuICAgKi9cbiAgZXhwcjogby5FeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVtaXQgdGhlIHByZWZldGNoIHZlcnNpb24gb2YgdGhlIGluc3RydWN0aW9uLlxuICAgKi9cbiAgcHJlZmV0Y2g6IGJvb2xlYW47XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmZXJXaGVuT3AoXG4gICAgdGFyZ2V0OiBYcmVmSWQsIGV4cHI6IG8uRXhwcmVzc2lvbiwgcHJlZmV0Y2g6IGJvb2xlYW4sXG4gICAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogRGVmZXJXaGVuT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5EZWZlcldoZW4sXG4gICAgdGFyZ2V0LFxuICAgIGV4cHIsXG4gICAgcHJlZmV0Y2gsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5ORVdfT1AsXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgfTtcbn1cblxuLyoqXG4gKiBBbiBvcCB0aGF0IHJlcHJlc2VudHMgYW4gZXhwcmVzc2lvbiBpbiBhbiBpMThuIG1lc3NhZ2UuXG4gKlxuICogVE9ETzogVGhpcyBjYW4gcmVwcmVzZW50IGV4cHJlc3Npb25zIHVzZWQgaW4gYm90aCBpMThuIGF0dHJpYnV0ZXMgYW5kIG5vcm1hbCBpMThuIGNvbnRlbnQuIFdlXG4gKiBtYXkgd2FudCB0byBzcGxpdCB0aGVzZSBpbnRvIHR3byBkaWZmZXJlbnQgb3AgdHlwZXMsIGRlcml2aW5nIGZyb20gdGhlIHNhbWUgYmFzZSBjbGFzcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJMThuRXhwcmVzc2lvbk9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5JMThuRXhwcmVzc2lvbjtcblxuICAvKipcbiAgICogVGhlIGkxOG4gY29udGV4dCB0aGF0IHRoaXMgZXhwcmVzc2lvbiBiZWxvbmdzIHRvLlxuICAgKi9cbiAgY29udGV4dDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBUaGUgWHJlZiBvZiB0aGUgb3AgdGhhdCB3ZSBuZWVkIHRvIGBhZHZhbmNlYCB0by5cbiAgICpcbiAgICogSW4gYW4gaTE4biBibG9jaywgdGhpcyBpcyBpbml0aWFsbHkgdGhlIGkxOG4gc3RhcnQgb3AsIGJ1dCB3aWxsIGV2ZW50dWFsbHkgY29ycmVzcG9uZCB0b1xuICAgKiB0aGUgZmluYWwgc2xvdCBjb25zdW1lciBpbiB0aGUgb3duaW5nIGkxOG4gYmxvY2suXG4gICAqIFRPRE86IFdlIHNob3VsZCBtYWtlIHRleHQgaTE4bkV4cHJlc3Npb25zIHRhcmdldCB0aGUgaTE4bkVuZCBpbnN0cnVjdGlvbiwgaW5zdGVhZCB0aGUgbGFzdFxuICAgKiBzbG90IGNvbnN1bWVyIGluIHRoZSBpMThuIGJsb2NrLiBUaGlzIG1ha2VzIHRoZW0gcmVzaWxpZW50IHRvIHRoYXQgbGFzdCBjb25zdW1lciBiZWluZ1xuICAgKiBkZWxldGVkLiAoT3IgbmV3IHNsb3QgY29uc3VtZXJzIGJlaW5nIGFkZGVkISlcbiAgICpcbiAgICogSW4gYW4gaTE4biBhdHRyaWJ1dGUsIHRoaXMgaXMgdGhlIHhyZWYgb2YgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudFN0YXJ0L2VsZW1lbnQuXG4gICAqL1xuICB0YXJnZXQ6IFhyZWZJZDtcblxuICAvKipcbiAgICogSW4gYW4gaTE4biBibG9jaywgdGhpcyBzaG91bGQgYmUgdGhlIGkxOG4gc3RhcnQgb3AuXG4gICAqXG4gICAqIEluIGFuIGkxOG4gYXR0cmlidXRlLCB0aGlzIHdpbGwgYmUgdGhlIHhyZWYgb2YgdGhlIGF0dHJpYnV0ZSBjb25maWd1cmF0aW9uIGluc3RydWN0aW9uLlxuICAgKi9cbiAgaTE4bk93bmVyOiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIEEgaGFuZGxlIGZvciB0aGUgc2xvdCB0aGF0IHRoaXMgZXhwcmVzc2lvbiBtb2RpZmllcy5cbiAgICogLSBJbiBhbiBpMThuIGJsb2NrLCB0aGlzIGlzIHRoZSBoYW5kbGUgb2YgdGhlIGJsb2NrLlxuICAgKiAtIEluIGFuIGkxOG4gYXR0cmlidXRlLCB0aGlzIGlzIHRoZSBoYW5kbGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgaTE4bkF0dHJpYnV0ZXMgaW5zdHJ1Y3Rpb24uXG4gICAqL1xuICBoYW5kbGU6IFNsb3RIYW5kbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBleHByZXNzaW9uIHZhbHVlLlxuICAgKi9cbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uO1xuXG4gIGljdVBsYWNlaG9sZGVyOiBYcmVmSWR8bnVsbDtcblxuICAvKipcbiAgICogVGhlIGkxOG4gcGxhY2Vob2xkZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZXhwcmVzc2lvbi4gVGhpcyBjYW4gYmUgbnVsbCBpZiB0aGUgZXhwcmVzc2lvbiBpc1xuICAgKiBwYXJ0IG9mIGFuIElDVSBwbGFjZWhvbGRlci4gSW4gdGhpcyBjYXNlIGl0IGdldHMgY29tYmluZWQgd2l0aCB0aGUgc3RyaW5nIGxpdGVyYWwgdmFsdWUgYW5kXG4gICAqIG90aGVyIGV4cHJlc3Npb25zIGluIHRoZSBJQ1UgcGxhY2Vob2xkZXIgYW5kIGFzc2lnbmVkIHRvIHRoZSB0cmFuc2xhdGVkIG1lc3NhZ2UgdW5kZXIgdGhlIElDVVxuICAgKiBwbGFjZWhvbGRlciBuYW1lLlxuICAgKi9cbiAgaTE4blBsYWNlaG9sZGVyOiBzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogVGhlIHRpbWUgdGhhdCB0aGlzIGV4cHJlc3Npb24gaXMgcmVzb2x2ZWQuXG4gICAqL1xuICByZXNvbHV0aW9uVGltZTogSTE4blBhcmFtUmVzb2x1dGlvblRpbWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpMThuIGV4cHJlc3Npb24gYXBwbGllcyB0byBhIHRlbXBsYXRlIG9yIHRvIGEgYmluZGluZy5cbiAgICovXG4gIHVzYWdlOiBJMThuRXhwcmVzc2lvbkZvcjtcblxuICAvKipcbiAgICogSWYgdGhpcyBpcyBhbiBJMThuRXhwcmVzc2lvbkNvbnRleHQuQmluZGluZywgdGhpcyBleHByZXNzaW9uIGlzIGFzc29jaWF0ZWQgd2l0aCBhIG5hbWVkXG4gICAqIGF0dHJpYnV0ZS4gVGhhdCBuYW1lIGlzIHN0b3JlZCBoZXJlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gaTE4biBleHByZXNzaW9uIG9wLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSTE4bkV4cHJlc3Npb25PcChcbiAgICBjb250ZXh0OiBYcmVmSWQsIHRhcmdldDogWHJlZklkLCBpMThuT3duZXI6IFhyZWZJZCwgaGFuZGxlOiBTbG90SGFuZGxlLFxuICAgIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbiwgaWN1UGxhY2Vob2xkZXI6IFhyZWZJZHxudWxsLCBpMThuUGxhY2Vob2xkZXI6IHN0cmluZ3xudWxsLFxuICAgIHJlc29sdXRpb25UaW1lOiBJMThuUGFyYW1SZXNvbHV0aW9uVGltZSwgdXNhZ2U6IEkxOG5FeHByZXNzaW9uRm9yLCBuYW1lOiBzdHJpbmcsXG4gICAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogSTE4bkV4cHJlc3Npb25PcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkkxOG5FeHByZXNzaW9uLFxuICAgIGNvbnRleHQsXG4gICAgdGFyZ2V0LFxuICAgIGkxOG5Pd25lcixcbiAgICBoYW5kbGUsXG4gICAgZXhwcmVzc2lvbixcbiAgICBpY3VQbGFjZWhvbGRlcixcbiAgICBpMThuUGxhY2Vob2xkZXIsXG4gICAgcmVzb2x1dGlvblRpbWUsXG4gICAgdXNhZ2UsXG4gICAgbmFtZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLk5FV19PUCxcbiAgICAuLi5UUkFJVF9DT05TVU1FU19WQVJTLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICB9O1xufVxuXG4vKipcbiAqIEFuIG9wIHRoYXQgcmVwcmVzZW50cyBhcHBseWluZyBhIHNldCBvZiBpMThuIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEkxOG5BcHBseU9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLkkxOG5BcHBseTtcblxuICAvKipcbiAgICogSW4gYW4gaTE4biBibG9jaywgdGhpcyBzaG91bGQgYmUgdGhlIGkxOG4gc3RhcnQgb3AuXG4gICAqXG4gICAqIEluIGFuIGkxOG4gYXR0cmlidXRlLCB0aGlzIHdpbGwgYmUgdGhlIHhyZWYgb2YgdGhlIGF0dHJpYnV0ZSBjb25maWd1cmF0aW9uIGluc3RydWN0aW9uLlxuICAgKi9cbiAgb3duZXI6IFhyZWZJZDtcblxuICAvKipcbiAgICogQSBoYW5kbGUgZm9yIHRoZSBzbG90IHRoYXQgaTE4biBhcHBseSBpbnN0cnVjdGlvbiBzaG91bGQgYXBwbHkgdG8uIEluIGFuIGkxOG4gYmxvY2ssIHRoaXNcbiAgICogaXMgdGhlIHNsb3Qgb2YgdGhlIGkxOG4gYmxvY2sgdGhpcyBleHByZXNzaW9uIGJlbG9uZ3MgdG8uIEluIGFuIGkxOG4gYXR0cmlidXRlLCB0aGlzIGlzIHRoZVxuICAgKiBzbG90IG9mIHRoZSBjb3JyZXNwb25kaW5nIGkxOG5BdHRyaWJ1dGVzIGluc3RydWN0aW9uLlxuICAgKi9cbiAgaGFuZGxlOiBTbG90SGFuZGxlO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIG9wIHRvIGFwcGx5IGkxOG4gZXhwcmVzc2lvbiBvcHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJMThuQXBwbHlPcChcbiAgICBvd25lcjogWHJlZklkLCBoYW5kbGU6IFNsb3RIYW5kbGUsIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IEkxOG5BcHBseU9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSTE4bkFwcGx5LFxuICAgIG93bmVyLFxuICAgIGhhbmRsZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cbiJdfQ==
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXIvc3JjL3RlbXBsYXRlL3BpcGVsaW5lL2lyL3NyYy9vcHMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQU1ILE9BQU8sRUFBMEQsTUFBTSxFQUFlLE1BQU0sVUFBVSxDQUFDO0FBSXZHLE9BQU8sRUFBaUQsbUJBQW1CLEVBQUUsNkJBQTZCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFN0gsT0FBTyxFQUFZLE1BQU0sRUFBMEIsTUFBTSxVQUFVLENBQUM7QUFrQ3BFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNuQyxJQUFZLEVBQUUsYUFBNEIsRUFBRSxVQUEyQjtJQUN6RSxPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxlQUFlO1FBQzVCLE1BQU0sRUFBRSxJQUFJO1FBQ1osYUFBYTtRQUNiLFVBQVU7UUFDVixHQUFHLDZCQUE2QjtRQUNoQyxHQUFHLG1CQUFtQjtRQUN0QixHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ2EsT0FBaUIsRUFBVyxXQUEyQixFQUN2RCxnQkFBMEI7UUFEMUIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUFXLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUN2RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVU7UUFDckMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEYsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUNaLFdBQVcsQ0FBQyxNQUFNLGtFQUNsQixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7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LGVBQWU7UUFDZixjQUFjO1FBQ2QsS0FBSztRQUNMLElBQUk7UUFDSixVQUFVO1FBQ1YsR0FBRyxNQUFNO1FBQ1QsR0FBRyxtQkFBbUI7UUFDdEIsR0FBRyw2QkFBNkI7S0FDakMsQ0FBQztBQUNKLENBQUM7QUF5QkQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQzdCLEtBQWEsRUFBRSxNQUFrQixFQUFFLFVBQTJCO0lBQ2hFLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVM7UUFDdEIsS0FBSztRQUNMLE1BQU07UUFDTixVQUFVO1FBQ1YsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtTZWN1cml0eUNvbnRleHR9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0ICogYXMgaTE4biBmcm9tICcuLi8uLi8uLi8uLi8uLi9pMThuL2kxOG5fYXN0JztcbmltcG9ydCAqIGFzIG8gZnJvbSAnLi4vLi4vLi4vLi4vLi4vb3V0cHV0L291dHB1dF9hc3QnO1xuaW1wb3J0IHtQYXJzZVNvdXJjZVNwYW59IGZyb20gJy4uLy4uLy4uLy4uLy4uL3BhcnNlX3V0aWwnO1xuaW1wb3J0IHtCaW5kaW5nS2luZCwgSTE4bkV4cHJlc3Npb25Gb3IsIEkxOG5QYXJhbVJlc29sdXRpb25UaW1lLCBPcEtpbmQsIFRlbXBsYXRlS2luZH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHR5cGUge0NvbmRpdGlvbmFsQ2FzZUV4cHJ9IGZyb20gJy4uL2V4cHJlc3Npb24nO1xuaW1wb3J0IHtTbG90SGFuZGxlfSBmcm9tICcuLi9oYW5kbGUnO1xuaW1wb3J0IHtPcCwgWHJlZklkfSBmcm9tICcuLi9vcGVyYXRpb25zJztcbmltcG9ydCB7Q29uc3VtZXNWYXJzVHJhaXQsIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdCwgVFJBSVRfQ09OU1VNRVNfVkFSUywgVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFR9IGZyb20gJy4uL3RyYWl0cyc7XG5pbXBvcnQgdHlwZSB7SG9zdFByb3BlcnR5T3B9IGZyb20gJy4vaG9zdCc7XG5pbXBvcnQge0xpc3RFbmRPcCwgTkVXX09QLCBTdGF0ZW1lbnRPcCwgVmFyaWFibGVPcH0gZnJvbSAnLi9zaGFyZWQnO1xuXG5cbi8qKlxuICogQW4gb3BlcmF0aW9uIHVzYWJsZSBvbiB0aGUgdXBkYXRlIHNpZGUgb2YgdGhlIElSLlxuICovXG5leHBvcnQgdHlwZSBVcGRhdGVPcCA9XG4gICAgTGlzdEVuZE9wPFVwZGF0ZU9wPnxTdGF0ZW1lbnRPcDxVcGRhdGVPcD58UHJvcGVydHlPcHxUd29XYXlQcm9wZXJ0eU9wfEF0dHJpYnV0ZU9wfFN0eWxlUHJvcE9wfFxuICAgIENsYXNzUHJvcE9wfFN0eWxlTWFwT3B8Q2xhc3NNYXBPcHxJbnRlcnBvbGF0ZVRleHRPcHxBZHZhbmNlT3B8VmFyaWFibGVPcDxVcGRhdGVPcD58QmluZGluZ09wfFxuICAgIEhvc3RQcm9wZXJ0eU9wfENvbmRpdGlvbmFsT3B8STE4bkV4cHJlc3Npb25PcHxJMThuQXBwbHlPcHxSZXBlYXRlck9wfERlZmVyV2hlbk9wO1xuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gdG8gcGVyZm9ybSBzdHJpbmcgaW50ZXJwb2xhdGlvbiBvbiBhIHRleHQgbm9kZS5cbiAqXG4gKiBJbnRlcnBvbGF0aW9uIGlucHV0cyBhcmUgc3RvcmVkIGFzIHN0YXRpYyBgc3RyaW5nYHMgYW5kIGR5bmFtaWMgYG8uRXhwcmVzc2lvbmBzLCBpbiBzZXBhcmF0ZVxuICogYXJyYXlzLiBUaHVzLCB0aGUgaW50ZXJwb2xhdGlvbiBgQXt7Yn19Q3t7ZH19RWAgaXMgc3RvcmVkIGFzIDMgc3RhdGljIHN0cmluZ3MgYFsnQScsICdDJywgJ0UnXWBcbiAqIGFuZCAyIGR5bmFtaWMgZXhwcmVzc2lvbnMgYFtiLCBkXWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJwb2xhdGVUZXh0T3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4sIENvbnN1bWVzVmFyc1RyYWl0IHtcbiAga2luZDogT3BLaW5kLkludGVycG9sYXRlVGV4dDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSB0ZXh0IG5vZGUgdG8gd2hpY2ggdGhlIGludGVycG9sYXRpb24gaXMgYm91bmQuXG4gICAqL1xuICB0YXJnZXQ6IFhyZWZJZDtcblxuICAvKipcbiAgICogVGhlIGludGVycG9sYXRlZCB2YWx1ZS5cbiAgICovXG4gIGludGVycG9sYXRpb246IEludGVycG9sYXRpb247XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBgSW50ZXJwb2xhdGlvblRleHRPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbnRlcnBvbGF0ZVRleHRPcChcbiAgICB4cmVmOiBYcmVmSWQsIGludGVycG9sYXRpb246IEludGVycG9sYXRpb24sIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IEludGVycG9sYXRlVGV4dE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSW50ZXJwb2xhdGVUZXh0LFxuICAgIHRhcmdldDogeHJlZixcbiAgICBpbnRlcnBvbGF0aW9uLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBJbnRlcnBvbGF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICByZWFkb25seSBzdHJpbmdzOiBzdHJpbmdbXSwgcmVhZG9ubHkgZXhwcmVzc2lvbnM6IG8uRXhwcmVzc2lvbltdLFxuICAgICAgcmVhZG9ubHkgaTE4blBsYWNlaG9sZGVyczogc3RyaW5nW10pIHtcbiAgICBpZiAoaTE4blBsYWNlaG9sZGVycy5sZW5ndGggIT09IDAgJiYgaTE4blBsYWNlaG9sZGVycy5sZW5ndGggIT09IGV4cHJlc3Npb25zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke1xuICAgICAgICAgIGV4cHJlc3Npb25zLmxlbmd0aH0gcGxhY2Vob2xkZXJzIHRvIG1hdGNoIGludGVycG9sYXRpb24gZXhwcmVzc2lvbiBjb3VudCwgYnV0IGdvdCAke1xuICAgICAgICAgIGkxOG5QbGFjZWhvbGRlcnMubGVuZ3RofWApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFuIGludGVybWVkaWF0ZSBiaW5kaW5nIG9wLCB0aGF0IGhhcyBub3QgeWV0IGJlZW4gcHJvY2Vzc2VkIGludG8gYW4gaW5kaXZpZHVhbCBwcm9wZXJ0eSxcbiAqIGF0dHJpYnV0ZSwgc3R5bGUsIGV0Yy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCaW5kaW5nT3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuQmluZGluZztcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiAgVGhlIGtpbmQgb2YgYmluZGluZyByZXByZXNlbnRlZCBieSB0aGlzIG9wLlxuICAgKi9cbiAgYmluZGluZ0tpbmQ6IEJpbmRpbmdLaW5kO1xuXG4gIC8qKlxuICAgKiAgVGhlIG5hbWUgb2YgdGhpcyBiaW5kaW5nLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxJbnRlcnBvbGF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pdCBvZiB0aGUgYm91bmQgdmFsdWUuXG4gICAqL1xuICB1bml0OiBzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGNvbnRleHQgb2YgdGhlIGJpbmRpbmcuXG4gICAqL1xuICBzZWN1cml0eUNvbnRleHQ6IFNlY3VyaXR5Q29udGV4dHxTZWN1cml0eUNvbnRleHRbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYmluZGluZyBpcyBhIFRleHRBdHRyaWJ1dGUgKGUuZy4gYHNvbWUtYXR0cj1cInNvbWUtdmFsdWVcImApLlxuICAgKlxuICAgKiBUaGlzIG5lZWRzIHRvIGJlIHRyYWNrZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBgVGVtcGxhdGVEZWZpbml0aW9uQnVpbGRlcmAgd2hpY2ggdHJlYXRzXG4gICAqIGBzdHlsZWAgYW5kIGBjbGFzc2AgVGV4dEF0dHJpYnV0ZXMgZGlmZmVyZW50bHkgZnJvbSBgW2F0dHIuc3R5bGVdYCBhbmQgYFthdHRyLmNsYXNzXWAuXG4gICAqL1xuICBpc1RleHRBdHRyaWJ1dGU6IGJvb2xlYW47XG5cbiAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBiaW5kaW5nIGlzIG9uIGEgc3RydWN0dXJhbCB0ZW1wbGF0ZS5cbiAgICovXG4gIHRlbXBsYXRlS2luZDogVGVtcGxhdGVLaW5kfG51bGw7XG5cbiAgaTE4bkNvbnRleHQ6IFhyZWZJZHxudWxsO1xuICBpMThuTWVzc2FnZTogaTE4bi5NZXNzYWdlfG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBCaW5kaW5nT3BgLCBub3QgeWV0IHRyYW5zZm9ybWVkIGludG8gYSBwYXJ0aWN1bGFyIHR5cGUgb2YgYmluZGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJpbmRpbmdPcChcbiAgICB0YXJnZXQ6IFhyZWZJZCwga2luZDogQmluZGluZ0tpbmQsIG5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogby5FeHByZXNzaW9ufEludGVycG9sYXRpb24sXG4gICAgdW5pdDogc3RyaW5nfG51bGwsIHNlY3VyaXR5Q29udGV4dDogU2VjdXJpdHlDb250ZXh0fFNlY3VyaXR5Q29udGV4dFtdLCBpc1RleHRBdHRyaWJ1dGU6IGJvb2xlYW4sXG4gICAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGU6IGJvb2xlYW4sIHRlbXBsYXRlS2luZDogVGVtcGxhdGVLaW5kfG51bGwsXG4gICAgaTE4bk1lc3NhZ2U6IGkxOG4uTWVzc2FnZXxudWxsLCBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBCaW5kaW5nT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5CaW5kaW5nLFxuICAgIGJpbmRpbmdLaW5kOiBraW5kLFxuICAgIHRhcmdldCxcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgdW5pdCxcbiAgICBzZWN1cml0eUNvbnRleHQsXG4gICAgaXNUZXh0QXR0cmlidXRlLFxuICAgIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlLFxuICAgIHRlbXBsYXRlS2luZCxcbiAgICBpMThuQ29udGV4dDogbnVsbCxcbiAgICBpMThuTWVzc2FnZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBIGxvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyBiaW5kaW5nIHRvIGEgcHJvcGVydHkgaW4gdGhlIHVwZGF0ZSBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eU9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLlByb3BlcnR5O1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIHByb3BlcnR5IGlzIGJvdW5kLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGJvdW5kIHByb3BlcnR5LlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxJbnRlcnBvbGF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgcHJvcGVydHkgaXMgYW4gYW5pbWF0aW9uIHRyaWdnZXIuXG4gICAqL1xuICBpc0FuaW1hdGlvblRyaWdnZXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBjb250ZXh0IG9mIHRoZSBiaW5kaW5nLlxuICAgKi9cbiAgc2VjdXJpdHlDb250ZXh0OiBTZWN1cml0eUNvbnRleHR8U2VjdXJpdHlDb250ZXh0W107XG5cbiAgLyoqXG4gICAqIFRoZSBzYW5pdGl6ZXIgZm9yIHRoaXMgcHJvcGVydHkuXG4gICAqL1xuICBzYW5pdGl6ZXI6IG8uRXhwcmVzc2lvbnxudWxsO1xuXG4gIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUga2luZCBvZiB0ZW1wbGF0ZSB0YXJnZXRlZCBieSB0aGUgYmluZGluZywgb3IgbnVsbCBpZiB0aGlzIGJpbmRpbmcgZG9lcyBub3QgdGFyZ2V0IGFcbiAgICogdGVtcGxhdGUuXG4gICAqL1xuICB0ZW1wbGF0ZUtpbmQ6IFRlbXBsYXRlS2luZHxudWxsO1xuXG4gIGkxOG5Db250ZXh0OiBYcmVmSWR8bnVsbDtcbiAgaTE4bk1lc3NhZ2U6IGkxOG4uTWVzc2FnZXxudWxsO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBgUHJvcGVydHlPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9wZXJ0eU9wKFxuICAgIHRhcmdldDogWHJlZklkLCBuYW1lOiBzdHJpbmcsIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxJbnRlcnBvbGF0aW9uLFxuICAgIGlzQW5pbWF0aW9uVHJpZ2dlcjogYm9vbGVhbiwgc2VjdXJpdHlDb250ZXh0OiBTZWN1cml0eUNvbnRleHR8U2VjdXJpdHlDb250ZXh0W10sXG4gICAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGU6IGJvb2xlYW4sIHRlbXBsYXRlS2luZDogVGVtcGxhdGVLaW5kfG51bGwsXG4gICAgaTE4bkNvbnRleHQ6IFhyZWZJZHxudWxsLCBpMThuTWVzc2FnZTogaTE4bi5NZXNzYWdlfG51bGwsXG4gICAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogUHJvcGVydHlPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLlByb3BlcnR5LFxuICAgIHRhcmdldCxcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgaXNBbmltYXRpb25UcmlnZ2VyLFxuICAgIHNlY3VyaXR5Q29udGV4dCxcbiAgICBzYW5pdGl6ZXI6IG51bGwsXG4gICAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGUsXG4gICAgdGVtcGxhdGVLaW5kLFxuICAgIGkxOG5Db250ZXh0LFxuICAgIGkxOG5NZXNzYWdlLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQSBsb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIHByb3BlcnR5IGJpbmRpbmcgc2lkZSBvZiBhIHR3by13YXkgYmluZGluZyBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR3b1dheVByb3BlcnR5T3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4sIENvbnN1bWVzVmFyc1RyYWl0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLlR3b1dheVByb3BlcnR5O1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIHByb3BlcnR5IGlzIGJvdW5kLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbjtcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGNvbnRleHQgb2YgdGhlIGJpbmRpbmcuXG4gICAqL1xuICBzZWN1cml0eUNvbnRleHQ6IFNlY3VyaXR5Q29udGV4dHxTZWN1cml0eUNvbnRleHRbXTtcblxuICAvKipcbiAgICogVGhlIHNhbml0aXplciBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIHNhbml0aXplcjogby5FeHByZXNzaW9ufG51bGw7XG5cbiAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBraW5kIG9mIHRlbXBsYXRlIHRhcmdldGVkIGJ5IHRoZSBiaW5kaW5nLCBvciBudWxsIGlmIHRoaXMgYmluZGluZyBkb2VzIG5vdCB0YXJnZXQgYVxuICAgKiB0ZW1wbGF0ZS5cbiAgICovXG4gIHRlbXBsYXRlS2luZDogVGVtcGxhdGVLaW5kfG51bGw7XG5cbiAgaTE4bkNvbnRleHQ6IFhyZWZJZHxudWxsO1xuICBpMThuTWVzc2FnZTogaTE4bi5NZXNzYWdlfG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBUd29XYXlQcm9wZXJ0eU9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVR3b1dheVByb3BlcnR5T3AoXG4gICAgdGFyZ2V0OiBYcmVmSWQsIG5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uLFxuICAgIHNlY3VyaXR5Q29udGV4dDogU2VjdXJpdHlDb250ZXh0fFNlY3VyaXR5Q29udGV4dFtdLCBpc1N0cnVjdHVyYWxUZW1wbGF0ZUF0dHJpYnV0ZTogYm9vbGVhbixcbiAgICB0ZW1wbGF0ZUtpbmQ6IFRlbXBsYXRlS2luZHxudWxsLCBpMThuQ29udGV4dDogWHJlZklkfG51bGwsIGkxOG5NZXNzYWdlOiBpMThuLk1lc3NhZ2V8bnVsbCxcbiAgICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBUd29XYXlQcm9wZXJ0eU9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuVHdvV2F5UHJvcGVydHksXG4gICAgdGFyZ2V0LFxuICAgIG5hbWUsXG4gICAgZXhwcmVzc2lvbixcbiAgICBzZWN1cml0eUNvbnRleHQsXG4gICAgc2FuaXRpemVyOiBudWxsLFxuICAgIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlLFxuICAgIHRlbXBsYXRlS2luZCxcbiAgICBpMThuQ29udGV4dCxcbiAgICBpMThuTWVzc2FnZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGJpbmRpbmcgdG8gYSBzdHlsZSBwcm9wZXJ0eSBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlUHJvcE9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLlN0eWxlUHJvcDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBib3VuZCBwcm9wZXJ0eS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRXhwcmVzc2lvbiB3aGljaCBpcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb258SW50ZXJwb2xhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHVuaXQgb2YgdGhlIGJvdW5kIHZhbHVlLlxuICAgKi9cbiAgdW5pdDogc3RyaW5nfG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKiogQ3JlYXRlIGEgYFN0eWxlUHJvcE9wYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdHlsZVByb3BPcChcbiAgICB4cmVmOiBYcmVmSWQsIG5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogby5FeHByZXNzaW9ufEludGVycG9sYXRpb24sIHVuaXQ6IHN0cmluZ3xudWxsLFxuICAgIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IFN0eWxlUHJvcE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuU3R5bGVQcm9wLFxuICAgIHRhcmdldDogeHJlZixcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgdW5pdCxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGJpbmRpbmcgdG8gYSBjbGFzcyBwcm9wZXJ0eSBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsYXNzUHJvcE9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLkNsYXNzUHJvcDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBib3VuZCBwcm9wZXJ0eS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRXhwcmVzc2lvbiB3aGljaCBpcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb247XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBDbGFzc1Byb3BPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDbGFzc1Byb3BPcChcbiAgICB4cmVmOiBYcmVmSWQsIG5hbWU6IHN0cmluZywgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uLFxuICAgIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IENsYXNzUHJvcE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuQ2xhc3NQcm9wLFxuICAgIHRhcmdldDogeHJlZixcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5UUkFJVF9ERVBFTkRTX09OX1NMT1RfQ09OVEVYVCxcbiAgICAuLi5UUkFJVF9DT05TVU1FU19WQVJTLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBIGxvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyBiaW5kaW5nIHRvIGEgc3R5bGUgbWFwIGluIHRoZSB1cGRhdGUgSVIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3R5bGVNYXBPcCBleHRlbmRzIE9wPFVwZGF0ZU9wPiwgQ29uc3VtZXNWYXJzVHJhaXQsIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5TdHlsZU1hcDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxJbnRlcnBvbGF0aW9uO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqIENyZWF0ZSBhIGBTdHlsZU1hcE9wYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdHlsZU1hcE9wKFxuICAgIHhyZWY6IFhyZWZJZCwgZXhwcmVzc2lvbjogby5FeHByZXNzaW9ufEludGVycG9sYXRpb24sIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IFN0eWxlTWFwT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5TdHlsZU1hcCxcbiAgICB0YXJnZXQ6IHhyZWYsXG4gICAgZXhwcmVzc2lvbixcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGJpbmRpbmcgdG8gYSBzdHlsZSBtYXAgaW4gdGhlIHVwZGF0ZSBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGFzc01hcE9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLkNsYXNzTWFwO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIHByb3BlcnR5IGlzIGJvdW5kLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIEV4cHJlc3Npb24gd2hpY2ggaXMgYm91bmQgdG8gdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9ufEludGVycG9sYXRpb247XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBDbGFzc01hcE9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNsYXNzTWFwT3AoXG4gICAgeHJlZjogWHJlZklkLCBleHByZXNzaW9uOiBvLkV4cHJlc3Npb258SW50ZXJwb2xhdGlvbiwgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogQ2xhc3NNYXBPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkNsYXNzTWFwLFxuICAgIHRhcmdldDogeHJlZixcbiAgICBleHByZXNzaW9uLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQSBsb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgc2V0dGluZyBhbiBhdHRyaWJ1dGUgb24gYW4gZWxlbWVudCBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZU9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLkF0dHJpYnV0ZTtcblxuICAvKipcbiAgICogVGhlIGBYcmVmSWRgIG9mIHRoZSB0ZW1wbGF0ZS1saWtlIGVsZW1lbnQgdGhlIGF0dHJpYnV0ZSB3aWxsIGJlbG9uZyB0by5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBhdHRyaWJ1dGUgKG9yIG51bGwgaWYgbm9uZSkuXG4gICAqL1xuICBuYW1lc3BhY2U6IHN0cmluZ3xudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxJbnRlcnBvbGF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgY29udGV4dCBvZiB0aGUgYmluZGluZy5cbiAgICovXG4gIHNlY3VyaXR5Q29udGV4dDogU2VjdXJpdHlDb250ZXh0fFNlY3VyaXR5Q29udGV4dFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2FuaXRpemVyIGZvciB0aGlzIGF0dHJpYnV0ZS5cbiAgICovXG4gIHNhbml0aXplcjogby5FeHByZXNzaW9ufG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGJpbmRpbmcgaXMgYSBUZXh0QXR0cmlidXRlIChlLmcuIGBzb21lLWF0dHI9XCJzb21lLXZhbHVlXCJgKS5cbiAgICpcbiAgICogVGhpcyBuZWVkcyB0byBiZSB0cmFja2VkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggYFRlbXBsYXRlRGVmaW5pdGlvbkJ1aWxkZXJgIHdoaWNoIHRyZWF0c1xuICAgKiBgc3R5bGVgIGFuZCBgY2xhc3NgIFRleHRBdHRyaWJ1dGVzIGRpZmZlcmVudGx5IGZyb20gYFthdHRyLnN0eWxlXWAgYW5kIGBbYXR0ci5jbGFzc11gLlxuICAgKi9cbiAgaXNUZXh0QXR0cmlidXRlOiBib29sZWFuO1xuXG4gIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUga2luZCBvZiB0ZW1wbGF0ZSB0YXJnZXRlZCBieSB0aGUgYmluZGluZywgb3IgbnVsbCBpZiB0aGlzIGJpbmRpbmcgZG9lcyBub3QgdGFyZ2V0IGFcbiAgICogdGVtcGxhdGUuXG4gICAqL1xuICB0ZW1wbGF0ZUtpbmQ6IFRlbXBsYXRlS2luZHxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgaTE4biBjb250ZXh0LCBpZiB0aGlzIGlzIGFuIGkxOG4gYXR0cmlidXRlLlxuICAgKi9cbiAgaTE4bkNvbnRleHQ6IFhyZWZJZHxudWxsO1xuXG4gIGkxOG5NZXNzYWdlOiBpMThuLk1lc3NhZ2V8bnVsbDtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGBBdHRyaWJ1dGVPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBdHRyaWJ1dGVPcChcbiAgICB0YXJnZXQ6IFhyZWZJZCwgbmFtZXNwYWNlOiBzdHJpbmd8bnVsbCwgbmFtZTogc3RyaW5nLCBleHByZXNzaW9uOiBvLkV4cHJlc3Npb258SW50ZXJwb2xhdGlvbixcbiAgICBzZWN1cml0eUNvbnRleHQ6IFNlY3VyaXR5Q29udGV4dHxTZWN1cml0eUNvbnRleHRbXSwgaXNUZXh0QXR0cmlidXRlOiBib29sZWFuLFxuICAgIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlOiBib29sZWFuLCB0ZW1wbGF0ZUtpbmQ6IFRlbXBsYXRlS2luZHxudWxsLFxuICAgIGkxOG5NZXNzYWdlOiBpMThuLk1lc3NhZ2V8bnVsbCwgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogQXR0cmlidXRlT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5BdHRyaWJ1dGUsXG4gICAgdGFyZ2V0LFxuICAgIG5hbWVzcGFjZSxcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgc2VjdXJpdHlDb250ZXh0LFxuICAgIHNhbml0aXplcjogbnVsbCxcbiAgICBpc1RleHRBdHRyaWJ1dGUsXG4gICAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGUsXG4gICAgdGVtcGxhdGVLaW5kLFxuICAgIGkxOG5Db250ZXh0OiBudWxsLFxuICAgIGkxOG5NZXNzYWdlLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gdG8gYWR2YW5jZSB0aGUgcnVudGltZSdzIGludGVybmFsIHNsb3QgcG9pbnRlciBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkdmFuY2VPcCBleHRlbmRzIE9wPFVwZGF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5BZHZhbmNlO1xuXG4gIC8qKlxuICAgKiBEZWx0YSBieSB3aGljaCB0byBhZHZhbmNlIHRoZSBwb2ludGVyLlxuICAgKi9cbiAgZGVsdGE6IG51bWJlcjtcblxuICAvLyBTb3VyY2Ugc3BhbiBvZiB0aGUgYmluZGluZyB0aGF0IGNhdXNlZCB0aGUgYWR2YW5jZVxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGBBZHZhbmNlT3BgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWR2YW5jZU9wKGRlbHRhOiBudW1iZXIsIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IEFkdmFuY2VPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkFkdmFuY2UsXG4gICAgZGVsdGEsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbmFsT3AgZXh0ZW5kcyBPcDxDb25kaXRpb25hbE9wPiwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uc3VtZXNWYXJzVHJhaXQge1xuICBraW5kOiBPcEtpbmQuQ29uZGl0aW9uYWw7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnNlcnRpb24gcG9pbnQsIHdoaWNoIGlzIHRoZSBmaXJzdCB0ZW1wbGF0ZSBpbiB0aGUgY3JlYXRpb24gYmxvY2sgYmVsb25naW5nIHRvIHRoaXNcbiAgICogY29uZGl0aW9uLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtYWluIHRlc3QgZXhwcmVzc2lvbiAoZm9yIGEgc3dpdGNoKSwgb3IgYG51bGxgIChmb3IgYW4gaWYsIHdoaWNoIGhhcyBubyB0ZXN0XG4gICAqIGV4cHJlc3Npb24pLlxuICAgKi9cbiAgdGVzdDogby5FeHByZXNzaW9ufG51bGw7XG5cbiAgLyoqXG4gICAqIEVhY2ggcG9zc2libGUgZW1iZWRkZWQgdmlldyB0aGF0IGNvdWxkIGJlIGRpc3BsYXllZCBoYXMgYSBjb25kaXRpb24gKG9yIGlzIGRlZmF1bHQpLiBUaGlzXG4gICAqIHN0cnVjdHVyZSBtYXBzIGVhY2ggdmlldyB4cmVmIHRvIGl0cyBjb3JyZXNwb25kaW5nIGNvbmRpdGlvbi5cbiAgICovXG4gIGNvbmRpdGlvbnM6IEFycmF5PENvbmRpdGlvbmFsQ2FzZUV4cHI+O1xuXG4gIC8qKlxuICAgKiBBZnRlciBwcm9jZXNzaW5nLCB0aGlzIHdpbGwgYmUgYSBzaW5nbGUgY29sbGFwc2VkIEpvb3N0LWV4cHJlc3Npb24gdGhhdCBldmFsdWF0ZXMgdGhlXG4gICAqIGNvbmRpdGlvbnMsIGFuZCB5aWVsZHMgdGhlIHNsb3QgbnVtYmVyIG9mIHRoZSB0ZW1wbGF0ZSB3aGljaCBzaG91bGQgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgcHJvY2Vzc2VkOiBvLkV4cHJlc3Npb258bnVsbDtcblxuICAvKipcbiAgICogQ29udHJvbCBmbG93IGNvbmRpdGlvbmFscyBjYW4gYWNjZXB0IGEgY29udGV4dCB2YWx1ZSAodGhpcyBpcyBhIHJlc3VsdCBvZiBzcGVjaWZ5aW5nIGFuXG4gICAqIGFsaWFzKS4gVGhpcyBleHByZXNzaW9uIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBjb25kaXRpb25hbCBpbnN0cnVjdGlvbidzIGNvbnRleHQgcGFyYW1ldGVyLlxuICAgKi9cbiAgY29udGV4dFZhbHVlOiBvLkV4cHJlc3Npb258bnVsbDtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgY29uZGl0aW9uYWwgb3AsIHdoaWNoIHdpbGwgZGlzcGxheSBhbiBlbWJlZGRlZCB2aWV3IGFjY29yZGluZyB0byBhIGNvbmR0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29uZGl0aW9uYWxPcChcbiAgICB0YXJnZXQ6IFhyZWZJZCwgdGVzdDogby5FeHByZXNzaW9ufG51bGwsIGNvbmRpdGlvbnM6IEFycmF5PENvbmRpdGlvbmFsQ2FzZUV4cHI+LFxuICAgIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IENvbmRpdGlvbmFsT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5Db25kaXRpb25hbCxcbiAgICB0YXJnZXQsXG4gICAgdGVzdCxcbiAgICBjb25kaXRpb25zLFxuICAgIHByb2Nlc3NlZDogbnVsbCxcbiAgICBzb3VyY2VTcGFuLFxuICAgIGNvbnRleHRWYWx1ZTogbnVsbCxcbiAgICAuLi5ORVdfT1AsXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBlYXRlck9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBEZXBlbmRzT25TbG90Q29udGV4dE9wVHJhaXQge1xuICBraW5kOiBPcEtpbmQuUmVwZWF0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBSZXBlYXRlckNyZWF0ZSBvcCBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXBlYXRlci5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIHRhcmdldFNsb3Q6IFNsb3RIYW5kbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2xsZWN0aW9uIHByb3ZpZGVkIHRvIHRoZSBmb3IgbG9vcCBhcyBpdHMgZXhwcmVzc2lvbi5cbiAgICovXG4gIGNvbGxlY3Rpb246IG8uRXhwcmVzc2lvbjtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZXBlYXRlck9wKFxuICAgIHJlcGVhdGVyQ3JlYXRlOiBYcmVmSWQsIHRhcmdldFNsb3Q6IFNsb3RIYW5kbGUsIGNvbGxlY3Rpb246IG8uRXhwcmVzc2lvbixcbiAgICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBSZXBlYXRlck9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuUmVwZWF0ZXIsXG4gICAgdGFyZ2V0OiByZXBlYXRlckNyZWF0ZSxcbiAgICB0YXJnZXRTbG90LFxuICAgIGNvbGxlY3Rpb24sXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5ORVdfT1AsXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmZXJXaGVuT3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4sIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdCwgQ29uc3VtZXNWYXJzVHJhaXQge1xuICBraW5kOiBPcEtpbmQuRGVmZXJXaGVuO1xuXG4gIC8qKlxuICAgKiBUaGUgYGRlZmVyYCBjcmVhdGUgb3AgYXNzb2NpYXRlZCB3aXRoIHRoaXMgd2hlbiBjb25kaXRpb24uXG4gICAqL1xuICB0YXJnZXQ6IFhyZWZJZDtcblxuICAvKipcbiAgICogQSB1c2VyLXByb3ZpZGVkIGV4cHJlc3Npb24gdGhhdCB0cmlnZ2VycyB0aGUgZGVmZXIgb3AuXG4gICAqL1xuICBleHByOiBvLkV4cHJlc3Npb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW1pdCB0aGUgcHJlZmV0Y2ggdmVyc2lvbiBvZiB0aGUgaW5zdHJ1Y3Rpb24uXG4gICAqL1xuICBwcmVmZXRjaDogYm9vbGVhbjtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZlcldoZW5PcChcbiAgICB0YXJnZXQ6IFhyZWZJZCwgZXhwcjogby5FeHByZXNzaW9uLCBwcmVmZXRjaDogYm9vbGVhbixcbiAgICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBEZWZlcldoZW5PcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkRlZmVyV2hlbixcbiAgICB0YXJnZXQsXG4gICAgZXhwcixcbiAgICBwcmVmZXRjaCxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLk5FV19PUCxcbiAgICAuLi5UUkFJVF9ERVBFTkRTX09OX1NMT1RfQ09OVEVYVCxcbiAgICAuLi5UUkFJVF9DT05TVU1FU19WQVJTLFxuICB9O1xufVxuXG4vKipcbiAqIEFuIG9wIHRoYXQgcmVwcmVzZW50cyBhbiBleHByZXNzaW9uIGluIGFuIGkxOG4gbWVzc2FnZS5cbiAqXG4gKiBUT0RPOiBUaGlzIGNhbiByZXByZXNlbnQgZXhwcmVzc2lvbnMgdXNlZCBpbiBib3RoIGkxOG4gYXR0cmlidXRlcyBhbmQgbm9ybWFsIGkxOG4gY29udGVudC4gV2VcbiAqIG1heSB3YW50IHRvIHNwbGl0IHRoZXNlIGludG8gdHdvIGRpZmZlcmVudCBvcCB0eXBlcywgZGVyaXZpbmcgZnJvbSB0aGUgc2FtZSBiYXNlIGNsYXNzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEkxOG5FeHByZXNzaW9uT3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4sIENvbnN1bWVzVmFyc1RyYWl0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLkkxOG5FeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgaTE4biBjb250ZXh0IHRoYXQgdGhpcyBleHByZXNzaW9uIGJlbG9uZ3MgdG8uXG4gICAqL1xuICBjb250ZXh0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBYcmVmIG9mIHRoZSBvcCB0aGF0IHdlIG5lZWQgdG8gYGFkdmFuY2VgIHRvLlxuICAgKlxuICAgKiBJbiBhbiBpMThuIGJsb2NrLCB0aGlzIGlzIGluaXRpYWxseSB0aGUgaTE4biBzdGFydCBvcCwgYnV0IHdpbGwgZXZlbnR1YWxseSBjb3JyZXNwb25kIHRvXG4gICAqIHRoZSBmaW5hbCBzbG90IGNvbnN1bWVyIGluIHRoZSBvd25pbmcgaTE4biBibG9jay5cbiAgICogVE9ETzogV2Ugc2hvdWxkIG1ha2UgdGV4dCBpMThuRXhwcmVzc2lvbnMgdGFyZ2V0IHRoZSBpMThuRW5kIGluc3RydWN0aW9uLCBpbnN0ZWFkIHRoZSBsYXN0XG4gICAqIHNsb3QgY29uc3VtZXIgaW4gdGhlIGkxOG4gYmxvY2suIFRoaXMgbWFrZXMgdGhlbSByZXNpbGllbnQgdG8gdGhhdCBsYXN0IGNvbnN1bWVyIGJlaW5nXG4gICAqIGRlbGV0ZWQuIChPciBuZXcgc2xvdCBjb25zdW1lcnMgYmVpbmcgYWRkZWQhKVxuICAgKlxuICAgKiBJbiBhbiBpMThuIGF0dHJpYnV0ZSwgdGhpcyBpcyB0aGUgeHJlZiBvZiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50U3RhcnQvZWxlbWVudC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBJbiBhbiBpMThuIGJsb2NrLCB0aGlzIHNob3VsZCBiZSB0aGUgaTE4biBzdGFydCBvcC5cbiAgICpcbiAgICogSW4gYW4gaTE4biBhdHRyaWJ1dGUsIHRoaXMgd2lsbCBiZSB0aGUgeHJlZiBvZiB0aGUgYXR0cmlidXRlIGNvbmZpZ3VyYXRpb24gaW5zdHJ1Y3Rpb24uXG4gICAqL1xuICBpMThuT3duZXI6IFhyZWZJZDtcblxuICAvKipcbiAgICogQSBoYW5kbGUgZm9yIHRoZSBzbG90IHRoYXQgdGhpcyBleHByZXNzaW9uIG1vZGlmaWVzLlxuICAgKiAtIEluIGFuIGkxOG4gYmxvY2ssIHRoaXMgaXMgdGhlIGhhbmRsZSBvZiB0aGUgYmxvY2suXG4gICAqIC0gSW4gYW4gaTE4biBhdHRyaWJ1dGUsIHRoaXMgaXMgdGhlIGhhbmRsZSBvZiB0aGUgY29ycmVzcG9uZGluZyBpMThuQXR0cmlidXRlcyBpbnN0cnVjdGlvbi5cbiAgICovXG4gIGhhbmRsZTogU2xvdEhhbmRsZTtcblxuICAvKipcbiAgICogVGhlIGV4cHJlc3Npb24gdmFsdWUuXG4gICAqL1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb247XG5cbiAgaWN1UGxhY2Vob2xkZXI6IFhyZWZJZHxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgaTE4biBwbGFjZWhvbGRlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBleHByZXNzaW9uLiBUaGlzIGNhbiBiZSBudWxsIGlmIHRoZSBleHByZXNzaW9uIGlzXG4gICAqIHBhcnQgb2YgYW4gSUNVIHBsYWNlaG9sZGVyLiBJbiB0aGlzIGNhc2UgaXQgZ2V0cyBjb21iaW5lZCB3aXRoIHRoZSBzdHJpbmcgbGl0ZXJhbCB2YWx1ZSBhbmRcbiAgICogb3RoZXIgZXhwcmVzc2lvbnMgaW4gdGhlIElDVSBwbGFjZWhvbGRlciBhbmQgYXNzaWduZWQgdG8gdGhlIHRyYW5zbGF0ZWQgbWVzc2FnZSB1bmRlciB0aGUgSUNVXG4gICAqIHBsYWNlaG9sZGVyIG5hbWUuXG4gICAqL1xuICBpMThuUGxhY2Vob2xkZXI6IHN0cmluZ3xudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGF0IHRoaXMgZXhwcmVzc2lvbiBpcyByZXNvbHZlZC5cbiAgICovXG4gIHJlc29sdXRpb25UaW1lOiBJMThuUGFyYW1SZXNvbHV0aW9uVGltZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGkxOG4gZXhwcmVzc2lvbiBhcHBsaWVzIHRvIGEgdGVtcGxhdGUgb3IgdG8gYSBiaW5kaW5nLlxuICAgKi9cbiAgdXNhZ2U6IEkxOG5FeHByZXNzaW9uRm9yO1xuXG4gIC8qKlxuICAgKiBJZiB0aGlzIGlzIGFuIEkxOG5FeHByZXNzaW9uQ29udGV4dC5CaW5kaW5nLCB0aGlzIGV4cHJlc3Npb24gaXMgYXNzb2NpYXRlZCB3aXRoIGEgbmFtZWRcbiAgICogYXR0cmlidXRlLiBUaGF0IG5hbWUgaXMgc3RvcmVkIGhlcmUuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBpMThuIGV4cHJlc3Npb24gb3AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJMThuRXhwcmVzc2lvbk9wKFxuICAgIGNvbnRleHQ6IFhyZWZJZCwgdGFyZ2V0OiBYcmVmSWQsIGkxOG5Pd25lcjogWHJlZklkLCBoYW5kbGU6IFNsb3RIYW5kbGUsXG4gICAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uLCBpY3VQbGFjZWhvbGRlcjogWHJlZklkfG51bGwsIGkxOG5QbGFjZWhvbGRlcjogc3RyaW5nfG51bGwsXG4gICAgcmVzb2x1dGlvblRpbWU6IEkxOG5QYXJhbVJlc29sdXRpb25UaW1lLCB1c2FnZTogSTE4bkV4cHJlc3Npb25Gb3IsIG5hbWU6IHN0cmluZyxcbiAgICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBJMThuRXhwcmVzc2lvbk9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSTE4bkV4cHJlc3Npb24sXG4gICAgY29udGV4dCxcbiAgICB0YXJnZXQsXG4gICAgaTE4bk93bmVyLFxuICAgIGhhbmRsZSxcbiAgICBleHByZXNzaW9uLFxuICAgIGljdVBsYWNlaG9sZGVyLFxuICAgIGkxOG5QbGFjZWhvbGRlcixcbiAgICByZXNvbHV0aW9uVGltZSxcbiAgICB1c2FnZSxcbiAgICBuYW1lLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gIH07XG59XG5cbi8qKlxuICogQW4gb3AgdGhhdCByZXByZXNlbnRzIGFwcGx5aW5nIGEgc2V0IG9mIGkxOG4gZXhwcmVzc2lvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSTE4bkFwcGx5T3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuSTE4bkFwcGx5O1xuXG4gIC8qKlxuICAgKiBJbiBhbiBpMThuIGJsb2NrLCB0aGlzIHNob3VsZCBiZSB0aGUgaTE4biBzdGFydCBvcC5cbiAgICpcbiAgICogSW4gYW4gaTE4biBhdHRyaWJ1dGUsIHRoaXMgd2lsbCBiZSB0aGUgeHJlZiBvZiB0aGUgYXR0cmlidXRlIGNvbmZpZ3VyYXRpb24gaW5zdHJ1Y3Rpb24uXG4gICAqL1xuICBvd25lcjogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBBIGhhbmRsZSBmb3IgdGhlIHNsb3QgdGhhdCBpMThuIGFwcGx5IGluc3RydWN0aW9uIHNob3VsZCBhcHBseSB0by4gSW4gYW4gaTE4biBibG9jaywgdGhpc1xuICAgKiBpcyB0aGUgc2xvdCBvZiB0aGUgaTE4biBibG9jayB0aGlzIGV4cHJlc3Npb24gYmVsb25ncyB0by4gSW4gYW4gaTE4biBhdHRyaWJ1dGUsIHRoaXMgaXMgdGhlXG4gICAqIHNsb3Qgb2YgdGhlIGNvcnJlc3BvbmRpbmcgaTE4bkF0dHJpYnV0ZXMgaW5zdHJ1Y3Rpb24uXG4gICAqL1xuICBoYW5kbGU6IFNsb3RIYW5kbGU7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gb3AgdG8gYXBwbHkgaTE4biBleHByZXNzaW9uIG9wcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUkxOG5BcHBseU9wKFxuICAgIG93bmVyOiBYcmVmSWQsIGhhbmRsZTogU2xvdEhhbmRsZSwgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogSTE4bkFwcGx5T3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5JMThuQXBwbHksXG4gICAgb3duZXIsXG4gICAgaGFuZGxlLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuIl19
|