@carto/kepler.gl 0.0.34-alpha.0 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/side-panel/layer-panel/layer-configurator.js +2 -2
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +6 -3
- package/dist/constants/default-settings.js +2 -2
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +16 -14
- package/package.json +1 -1
- package/src/components/side-panel/layer-panel/layer-configurator.js +1 -3
- package/src/components/side-panel/layer-panel/vis-config-by-field-selector.js +7 -2
- package/src/layers/h3-hexagon-layer/h3-hexagon-layer.js +14 -17
- package/CHANGELOG.md +0 -711
|
@@ -824,7 +824,7 @@ function AggrScaleSelectorFactory(ColorDimensionScaleSelector) {
|
|
|
824
824
|
onSelect: function onSelect(val) {
|
|
825
825
|
return onChange((0, _defineProperty2["default"])({}, scale, val), key);
|
|
826
826
|
},
|
|
827
|
-
|
|
827
|
+
onSetCustomPalette: function onSetCustomPalette(colorMap) {
|
|
828
828
|
return onChangeVisConfig((0, _defineProperty2["default"])({}, range, _objectSpread(_objectSpread({}, visRange), {}, {
|
|
829
829
|
colorMap: colorMap
|
|
830
830
|
})));
|
|
@@ -884,4 +884,4 @@ var AggregationTypeSelector = function AggregationTypeSelector(_ref18) {
|
|
|
884
884
|
|
|
885
885
|
|
|
886
886
|
exports.AggregationTypeSelector = AggregationTypeSelector;
|
|
887
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItY29uZmlndXJhdG9yLmpzIl0sIm5hbWVzIjpbIlN0eWxlZExheWVyQ29uZmlndXJhdG9yIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJwcm9wcyIsInRoZW1lIiwibGF5ZXJDb25maWd1cmF0b3JNYXJnaW4iLCJsYXllckNvbmZpZ3VyYXRvclBhZGRpbmciLCJsYXllckNvbmZpZ3VyYXRvckJvcmRlciIsImxheWVyQ29uZmlndXJhdG9yQm9yZGVyQ29sb3IiLCJTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvciIsImdldExheWVyRmllbGRzIiwiZGF0YXNldHMiLCJsYXllciIsImNvbmZpZyIsImRhdGFJZCIsImZpZWxkcyIsImdldExheWVyRGF0YXNldCIsImdldExheWVyQ29uZmlndXJhdG9yUHJvcHMiLCJvbkNoYW5nZSIsInVwZGF0ZUxheWVyQ29uZmlnIiwic2V0Q29sb3JVSSIsInVwZGF0ZUxheWVyQ29sb3JVSSIsImdldFZpc0NvbmZpZ3VyYXRvclByb3BzIiwidXBkYXRlTGF5ZXJWaXNDb25maWciLCJnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyIsInVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZyIsIm9uQ2hhbmdlVmlzQ29uZmlnIiwiTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5IiwiZGVwcyIsIlNvdXJjZURhdGFTZWxlY3RvckZhY3RvcnkiLCJWaXNDb25maWdTbGlkZXJGYWN0b3J5IiwiVGV4dExhYmVsUGFuZWxGYWN0b3J5IiwiTGF5ZXJDb25maWdHcm91cEZhY3RvcnkiLCJDaGFubmVsQnlWYWx1ZVNlbGVjdG9yRmFjdG9yeSIsIkxheWVyQ29sdW1uQ29uZmlnRmFjdG9yeSIsIkxheWVyVHlwZVNlbGVjdG9yRmFjdG9yeSIsIlZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkiLCJBZ2dyU2NhbGVTZWxlY3RvckZhY3RvcnkiLCJTb3VyY2VEYXRhU2VsZWN0b3IiLCJWaXNDb25maWdTbGlkZXIiLCJUZXh0TGFiZWxQYW5lbCIsIkxheWVyQ29uZmlnR3JvdXAiLCJDaGFubmVsQnlWYWx1ZVNlbGVjdG9yIiwiTGF5ZXJDb2x1bW5Db25maWciLCJMYXllclR5cGVTZWxlY3RvciIsIlZpc0NvbmZpZ1N3aXRjaCIsIkFnZ3JTY2FsZVNlbGVjdG9yIiwiTGF5ZXJDb25maWd1cmF0b3IiLCJfcmVuZGVyU2NhdHRlcnBsb3RMYXllckNvbmZpZyIsInZpc0NvbmZpZ3VyYXRvclByb3BzIiwibGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMiLCJsYXllckNvbmZpZ3VyYXRvclByb3BzIiwidmlzQ29uZmlnU2V0dGluZ3MiLCJmaWxsZWQiLCJsYWJlbCIsImNvbG9yRmllbGQiLCJ2aXN1YWxDaGFubmVscyIsImNvbG9yIiwib3BhY2l0eSIsInR5cGUiLCJMQVlFUl9UWVBFUyIsInBvaW50Iiwib3V0bGluZSIsInN0cm9rZUNvbG9yRmllbGQiLCJ2aXNDb25maWciLCJzdHJva2VDb2xvciIsInRoaWNrbmVzcyIsInNpemVGaWVsZCIsInJhZGl1cyIsIkJvb2xlYW4iLCJyYWRpdXNSYW5nZSIsImZpeGVkUmFkaXVzIiwic2l6ZSIsInVwZGF0ZUxheWVyVGV4dExhYmVsIiwidGV4dExhYmVsIiwiY29sb3JQYWxldHRlIiwic2V0Q29sb3JQYWxldHRlVUkiLCJjb2xvckFnZ3JlZ2F0aW9uIiwiY29uZGl0aW9uIiwiY2x1c3RlclJhZGl1cyIsIndlaWdodCIsIl9yZW5kZXJBZ2dyZWdhdGlvbkxheWVyQ29uZmlnIiwiZW5hYmxlM2QiLCJlbGV2YXRpb25CeURlc2NyaXB0aW9uIiwiY29sb3JCeURlc2NyaXB0aW9uIiwicGVyY2VudGlsZSIsIndvcmxkVW5pdFNpemUiLCJjb3ZlcmFnZSIsImVsZXZhdGlvblNjYWxlIiwic2l6ZVJhbmdlIiwic2l6ZUFnZ3JlZ2F0aW9uIiwiZWxldmF0aW9uUGVyY2VudGlsZSIsImNvdmVyYWdlRmllbGQiLCJjb3ZlcmFnZVJhbmdlIiwiYXJncyIsIl9yZW5kZXJMaW5lTGF5ZXJDb25maWciLCJzb3VyY2VDb2xvciIsIm1ldGEiLCJmZWF0dXJlVHlwZXMiLCJwb2x5Z29uIiwic3Ryb2tlZCIsInRyYWlsTGVuZ3RoIiwic3Ryb2tlT3BhY2l0eSIsImhlaWdodCIsIndpcmVmcmFtZSIsInJhZGl1c0ZpZWxkIiwiZSIsInRhcmdldCIsImZpbGVzIiwidXJsIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwic2NlbmVncmFwaCIsInNpemVTY2FsZSIsImFuZ2xlWCIsImFuZ2xlWSIsImFuZ2xlWiIsImhlaWdodFJhbmdlIiwibGF5ZXJUeXBlT3B0aW9ucyIsInVwZGF0ZUxheWVyVHlwZSIsImZpZWxkUGFpcnMiLCJ1bmRlZmluZWQiLCJkYXRhc2V0IiwicmVuZGVyVGVtcGxhdGUiLCJsYXllckluZm9Nb2RhbCIsIm9wZW5Nb2RhbCIsIk9iamVjdCIsImtleXMiLCJjb2x1bW5zIiwibGVuZ3RoIiwiaGFzQWxsQ29sdW1ucyIsImlkIiwidmFsdWUiLCJjb2x1bW5QYWlycyIsImFzc2lnbkNvbHVtblBhaXJzIiwiYmluZCIsImFzc2lnbkNvbHVtbiIsImNvbHVtbkxhYmVscyIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJhcnJheU9mIiwiYW55IiwiZnVuYyIsIlN0eWxlZEhvd1RvQnV0dG9uIiwiSG93VG9CdXR0b24iLCJvbkNsaWNrIiwiTGF5ZXJDb2xvclNlbGVjdG9yIiwic2VsZWN0ZWRDb2xvciIsInByb3BlcnR5Iiwic2V0Q29sb3IiLCJyZ2JWYWx1ZSIsImNvbG9yVUkiLCJuZXdDb25maWciLCJBcmNMYXllckNvbG9yU2VsZWN0b3IiLCJvbkNoYW5nZUNvbmZpZyIsInRhcmdldENvbG9yIiwiTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3IiLCJpc1JhbmdlIiwiY29sb3JSYW5nZSIsImNvbG9yTWFwIiwiY29sb3JSYW5nZVVwZGF0ZWQiLCJ1cGRhdGVDb2xvck1hcCIsIlZpc0NvbmZpZ0J5RmllbGRTZWxlY3RvckZhY3RvcnkiLCJWaXNDb25maWdCeUZpZWxkU2VsZWN0b3IiLCJjaGFubmVsIiwiZGVzY3JpcHRpb24iLCJpc0xvYWRpbmciLCJjaGFubmVsU2NhbGVUeXBlIiwiZG9tYWluIiwiZmllbGQiLCJrZXkiLCJyYW5nZSIsInNjYWxlIiwiZGVmYXVsdE1lYXN1cmUiLCJzdXBwb3J0ZWRGaWVsZFR5cGVzIiwiY2hhbm5lbFN1cHBvcnRlZEZpZWxkVHlwZXMiLCJDSEFOTkVMX1NDQUxFX1NVUFBPUlRFRF9GSUVMRFMiLCJzdXBwb3J0ZWRGaWVsZHMiLCJmaWx0ZXIiLCJpbmNsdWRlcyIsInNjYWxlT3B0aW9ucyIsImdldFNjYWxlT3B0aW9ucyIsInNob3dTY2FsZUN1c3RvbWl6YWJsZSIsIkNIQU5ORUxfU0NBTEVTIiwic2hvd1NjYWxlIiwiaXNBZ2dyZWdhdGVkIiwiZGVmYXVsdERlc2NyaXB0aW9uIiwidmlzUmFuZ2UiLCJ2YWwiLCJDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5IiwiQ29sb3JEaW1lbnNpb25TY2FsZVNlbGVjdG9yIiwiY29sb3JBZ2dyIiwiQXJyYXkiLCJpc0FycmF5IiwiQWdncmVnYXRpb25UeXBlU2VsZWN0b3IiLCJhZ2dyZWdhdGlvbiIsInNlbGVjdGVkRmllbGQiLCJhZ2dyZWdhdGlvbk9wdGlvbnMiLCJnZXRBZ2dyZWdhdGlvbk9wdGlvbnMiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsdUJBQXVCLEdBQUdDLDZCQUFPQyxHQUFQLENBQVdDLEtBQVgsQ0FBaUI7QUFDL0NDLEVBQUFBLFNBQVMsRUFBRTtBQURvQyxDQUFqQixD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QUlFLElBQUEsVUFBVSxFQUFFLEtBSmQ7QUFLRSxJQUFBLFFBQVEsRUFBRSxrQkFBQW5FLEtBQUs7QUFBQSxhQUNibEgsVUFBUSxDQUNOO0FBQ0U4QyxRQUFBQSxTQUFTLGtDQUNKcEQsS0FBSyxDQUFDQyxNQUFOLENBQWFtRCxTQURULDRDQUVOcUksV0FGTSxFQUVRakUsS0FGUjtBQURYLE9BRE0sRUFPTmtDLE9BQU8sQ0FBQ00sR0FQRixDQURLO0FBQUE7QUFMakIsSUFKRixDQURGO0FBd0JELENBaENNO0FBaUNQIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBGcmFnbWVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdsb2NhbGl6YXRpb24nO1xuXG5pbXBvcnQge0J1dHRvbiwgSW5wdXQsIFBhbmVsTGFiZWwsIFNpZGVQYW5lbFNlY3Rpb259IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnY29tcG9uZW50cy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcblxuaW1wb3J0IFZpc0NvbmZpZ0J5RmllbGRTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi92aXMtY29uZmlnLWJ5LWZpZWxkLXNlbGVjdG9yJztcbmltcG9ydCBMYXllckNvbHVtbkNvbmZpZ0ZhY3RvcnkgZnJvbSAnLi9sYXllci1jb2x1bW4tY29uZmlnJztcbmltcG9ydCBMYXllclR5cGVTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9sYXllci10eXBlLXNlbGVjdG9yJztcbmltcG9ydCBEaW1lbnNpb25TY2FsZVNlbGVjdG9yIGZyb20gJy4vZGltZW5zaW9uLXNjYWxlLXNlbGVjdG9yJztcbmltcG9ydCBDb2xvclNlbGVjdG9yIGZyb20gJy4vY29sb3Itc2VsZWN0b3InO1xuaW1wb3J0IFNvdXJjZURhdGFTZWxlY3RvckZhY3RvcnkgZnJvbSAnY29tcG9uZW50cy9zaWRlLXBhbmVsL2NvbW1vbi9zb3VyY2UtZGF0YS1zZWxlY3Rvcic7XG5pbXBvcnQgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeSBmcm9tICcuL3Zpcy1jb25maWctc3dpdGNoJztcbmltcG9ydCBWaXNDb25maWdTbGlkZXJGYWN0b3J5IGZyb20gJy4vdmlzLWNvbmZpZy1zbGlkZXInO1xuaW1wb3J0IExheWVyQ29uZmlnR3JvdXBGYWN0b3J5LCB7Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnR9IGZyb20gJy4vbGF5ZXItY29uZmlnLWdyb3VwJztcbmltcG9ydCBUZXh0TGFiZWxQYW5lbEZhY3RvcnkgZnJvbSAnLi90ZXh0LWxhYmVsLXBhbmVsJztcblxuaW1wb3J0IHtjYXBpdGFsaXplRmlyc3RMZXR0ZXJ9IGZyb20gJ3V0aWxzL3V0aWxzJztcblxuaW1wb3J0IHtDSEFOTkVMX1NDQUxFUywgQ0hBTk5FTF9TQ0FMRV9TVVBQT1JURURfRklFTERTfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge0xBWUVSX1RZUEVTfSBmcm9tICdsYXllcnMvdHlwZXMnO1xuaW1wb3J0IHtpbmplY3RJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCBDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4vY29sb3ItZGltZW5zaW9uLXNjYWxlLXNlbGVjdG9yJztcblxuY29uc3QgU3R5bGVkTGF5ZXJDb25maWd1cmF0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItcGFuZWxfX2NvbmZpZydcbn0pYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGF5ZXJDb25maWd1cmF0b3JNYXJnaW59O1xuICBwYWRkaW5nOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yUGFkZGluZ307XG4gIGJvcmRlci1sZWZ0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yQm9yZGVyfSBkYXNoZWRcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yQm9yZGVyQ29sb3J9O1xuYDtcblxuY29uc3QgU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItcGFuZWxfX2NvbmZpZ19fdmlzdWFsQy1jb25maWcnXG59KWBcbiAgbWFyZ2luLXRvcDogMTJweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBnZXRMYXllckZpZWxkcyA9IChkYXRhc2V0cywgbGF5ZXIpID0+XG4gIGxheWVyLmNvbmZpZyAmJiBkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXSA/IGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdLmZpZWxkcyA6IFtdO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5ZXJEYXRhc2V0ID0gKGRhdGFzZXRzLCBsYXllcikgPT5cbiAgbGF5ZXIuY29uZmlnICYmIGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdID8gZGF0YXNldHNbbGF5ZXIuY29uZmlnLmRhdGFJZF0gOiBudWxsO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5ZXJDb25maWd1cmF0b3JQcm9wcyA9IHByb3BzID0+ICh7XG4gIGxheWVyOiBwcm9wcy5sYXllcixcbiAgZmllbGRzOiBnZXRMYXllckZpZWxkcyhwcm9wcy5kYXRhc2V0cywgcHJvcHMubGF5ZXIpLFxuICBvbkNoYW5nZTogcHJvcHMudXBkYXRlTGF5ZXJDb25maWcsXG4gIHNldENvbG9yVUk6IHByb3BzLnVwZGF0ZUxheWVyQ29sb3JVSVxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRWaXNDb25maWd1cmF0b3JQcm9wcyA9IHByb3BzID0+ICh7XG4gIGxheWVyOiBwcm9wcy5sYXllcixcbiAgZmllbGRzOiBnZXRMYXllckZpZWxkcyhwcm9wcy5kYXRhc2V0cywgcHJvcHMubGF5ZXIpLFxuICBvbkNoYW5nZTogcHJvcHMudXBkYXRlTGF5ZXJWaXNDb25maWcsXG4gIHNldENvbG9yVUk6IHByb3BzLnVwZGF0ZUxheWVyQ29sb3JVSVxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyA9IHByb3BzID0+ICh7XG4gIGxheWVyOiBwcm9wcy5sYXllcixcbiAgZmllbGRzOiBnZXRMYXllckZpZWxkcyhwcm9wcy5kYXRhc2V0cywgcHJvcHMubGF5ZXIpLFxuICBvbkNoYW5nZTogcHJvcHMudXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnLFxuICBvbkNoYW5nZVZpc0NvbmZpZzogcHJvcHMudXBkYXRlTGF5ZXJWaXNDb25maWdcbn0pO1xuXG5MYXllckNvbmZpZ3VyYXRvckZhY3RvcnkuZGVwcyA9IFtcbiAgU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSxcbiAgVmlzQ29uZmlnU2xpZGVyRmFjdG9yeSxcbiAgVGV4dExhYmVsUGFuZWxGYWN0b3J5LFxuICBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSxcbiAgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnksXG4gIExheWVyQ29sdW1uQ29uZmlnRmFjdG9yeSxcbiAgTGF5ZXJUeXBlU2VsZWN0b3JGYWN0b3J5LFxuICBWaXNDb25maWdTd2l0Y2hGYWN0b3J5LFxuICBBZ2dyU2NhbGVTZWxlY3RvckZhY3Rvcnlcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExheWVyQ29uZmlndXJhdG9yRmFjdG9yeShcbiAgU291cmNlRGF0YVNlbGVjdG9yLFxuICBWaXNDb25maWdTbGlkZXIsXG4gIFRleHRMYWJlbFBhbmVsLFxuICBMYXllckNvbmZpZ0dyb3VwLFxuICBDaGFubmVsQnlWYWx1ZVNlbGVjdG9yLFxuICBMYXllckNvbHVtbkNvbmZpZyxcbiAgTGF5ZXJUeXBlU2VsZWN0b3IsXG4gIFZpc0NvbmZpZ1N3aXRjaCxcbiAgQWdnclNjYWxlU2VsZWN0b3Jcbikge1xuICBjbGFzcyBMYXllckNvbmZpZ3VyYXRvciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGxheWVyOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBkYXRhc2V0czogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbGF5ZXJUeXBlT3B0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSkuaXNSZXF1aXJlZCxcbiAgICAgIG9wZW5Nb2RhbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIHVwZGF0ZUxheWVyQ29uZmlnOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgdXBkYXRlTGF5ZXJUeXBlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgdXBkYXRlTGF5ZXJWaXNDb25maWc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICB1cGRhdGVMYXllclZpc3VhbENoYW5uZWxDb25maWc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICB1cGRhdGVMYXllckNvbG9yVUk6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgICB9O1xuXG4gICAgX3JlbmRlclBvaW50TGF5ZXJDb25maWcocHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJTY2F0dGVycGxvdExheWVyQ29uZmlnKHByb3BzKTtcbiAgICB9XG5cbiAgICBfcmVuZGVySWNvbkxheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyU2NhdHRlcnBsb3RMYXllckNvbmZpZyhwcm9wcyk7XG4gICAgfVxuXG4gICAgX3JlbmRlclNjYXR0ZXJwbG90TGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wc1xuICAgIH0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogRmlsbCBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLihsYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWQgfHwge2xhYmVsOiAnbGF5ZXIuY29sb3InfSl9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7Lyogb3V0bGluZSBjb2xvciAqL31cbiAgICAgICAgICB7bGF5ZXIudHlwZSA9PT0gTEFZRVJfVFlQRVMucG9pbnQgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3V0bGluZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnN0cm9rZUNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZENvbG9yPXtsYXllci5jb25maWcudmlzQ29uZmlnLnN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICAgICAgcHJvcGVydHk9XCJzdHJva2VDb2xvclwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50aGlja25lc3N9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy52aXNDb25maWcub3V0bGluZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgey8qIFJhZGl1cyAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLnJhZGl1cyd9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgeyFsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtCb29sZWFuKGxheWVyLmNvbmZpZy5zaXplRmllbGQpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5yYWRpdXNSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshbGF5ZXIuY29uZmlnLnNpemVGaWVsZCB8fCBsYXllci5jb25maWcudmlzQ29uZmlnLmZpeGVkUmFkaXVzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zaXplRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmZpeGVkUmFkaXVzfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogdGV4dCBsYWJlbCAqL31cbiAgICAgICAgICA8VGV4dExhYmVsUGFuZWxcbiAgICAgICAgICAgIGZpZWxkcz17dmlzQ29uZmlndXJhdG9yUHJvcHMuZmllbGRzfVxuICAgICAgICAgICAgdXBkYXRlTGF5ZXJUZXh0TGFiZWw9e3RoaXMucHJvcHMudXBkYXRlTGF5ZXJUZXh0TGFiZWx9XG4gICAgICAgICAgICB0ZXh0TGFiZWw9e2xheWVyLmNvbmZpZy50ZXh0TGFiZWx9XG4gICAgICAgICAgICBjb2xvclBhbGV0dGU9e3Zpc0NvbmZpZ3VyYXRvclByb3BzLmNvbG9yUGFsZXR0ZX1cbiAgICAgICAgICAgIHNldENvbG9yUGFsZXR0ZVVJPXt2aXNDb25maWd1cmF0b3JQcm9wcy5zZXRDb2xvclBhbGV0dGVVSX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyQ2x1c3RlckxheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY29sb3InfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxBZ2dyU2NhbGVTZWxlY3RvclxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlVmlzQ29uZmlnPXtsYXllckNoYW5uZWxDb25maWdQcm9wcy5vbkNoYW5nZVZpc0NvbmZpZ31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvckFnZ3JlZ2F0aW9uLmNvbmRpdGlvbihsYXllci5jb25maWcpID8gKFxuICAgICAgICAgICAgICAgIDxBZ2dyZWdhdGlvblR5cGVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvbG9yQWdncmVnYXRpb259XG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogQ2x1c3RlciBSYWRpdXMgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNsdXN0ZXJSYWRpdXN9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVySGVhdG1hcExheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY29sb3InfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIHsvKiBSYWRpdXMgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c31cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICB7LyogV2VpZ2h0ICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIud2VpZ2h0J30+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy53ZWlnaHR9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyR3JpZExheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyQWdncmVnYXRpb25MYXllckNvbmZpZyhwcm9wcyk7XG4gICAgfVxuXG4gICAgX3JlbmRlckhleGFnb25MYXllckNvbmZpZyhwcm9wcykge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlckFnZ3JlZ2F0aW9uTGF5ZXJDb25maWcocHJvcHMpO1xuICAgIH1cblxuICAgIF9yZW5kZXJBZ2dyZWdhdGlvbkxheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICBjb25zdCB7Y29uZmlnfSA9IGxheWVyO1xuICAgICAgY29uc3Qge1xuICAgICAgICB2aXNDb25maWc6IHtlbmFibGUzZH1cbiAgICAgIH0gPSBjb25maWc7XG4gICAgICBjb25zdCBlbGV2YXRpb25CeURlc2NyaXB0aW9uID0gJ2xheWVyLmVsZXZhdGlvbkJ5RGVzY3JpcHRpb24nO1xuICAgICAgY29uc3QgY29sb3JCeURlc2NyaXB0aW9uID0gJ2xheWVyLmNvbG9yQnlEZXNjcmlwdGlvbic7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPEFnZ3JTY2FsZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VWaXNDb25maWc9e2xheWVyQ2hhbm5lbENvbmZpZ1Byb3BzLm9uQ2hhbmdlVmlzQ29uZmlnfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvbG9yQWdncmVnYXRpb24uY29uZGl0aW9uKGxheWVyLmNvbmZpZykgPyAoXG4gICAgICAgICAgICAgICAgPEFnZ3JlZ2F0aW9uVHlwZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY29sb3JBZ2dyZWdhdGlvbn1cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtjb2xvckJ5RGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnBlcmNlbnRpbGUgJiZcbiAgICAgICAgICAgICAgbGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucGVyY2VudGlsZS5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucGVyY2VudGlsZX1cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogQ2VsbCBzaXplICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIucmFkaXVzJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy53b3JsZFVuaXRTaXplfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvdmVyYWdlfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBFbGV2YXRpb24gKi99XG4gICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVuYWJsZTNkID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVuYWJsZTNkfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uU2NhbGV9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmhlaWdodE11bHRpcGxpZXJcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17ZWxldmF0aW9uQnlEZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshZW5hYmxlM2R9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8QWdnclNjYWxlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlVmlzQ29uZmlnPXtsYXllckNoYW5uZWxDb25maWdQcm9wcy5vbkNoYW5nZVZpc0NvbmZpZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD1cImxheWVyVmlzQ29uZmlncy5oZWlnaHRSYW5nZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZUFnZ3JlZ2F0aW9uLmNvbmRpdGlvbihsYXllci5jb25maWcpID8gKFxuICAgICAgICAgICAgICAgICAgPEFnZ3JlZ2F0aW9uVHlwZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplQWdncmVnYXRpb259XG4gICAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblBlcmNlbnRpbGUuY29uZGl0aW9uKGxheWVyLmNvbmZpZykgPyAoXG4gICAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25QZXJjZW50aWxlfVxuICAgICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBTaGFuIG1vdmUgdGhlc2UgaW50byBsYXllciBjbGFzc1xuICAgIF9yZW5kZXJIZXhhZ29uSWRMYXllckNvbmZpZyh7XG4gICAgICBsYXllcixcbiAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzXG4gICAgfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmNvbG9yJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIENvdmVyYWdlICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY292ZXJhZ2UnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHshbGF5ZXIuY29uZmlnLmNvdmVyYWdlRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2VSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb3ZlcmFnZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBoZWlnaHQgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGUzZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZVJhbmdlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD1cImxheWVyVmlzQ29uZmlncy5oZWlnaHRSYW5nZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlckFyY0xheWVyQ29uZmlnKGFyZ3MpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJMaW5lTGF5ZXJDb25maWcoYXJncyk7XG4gICAgfVxuXG4gICAgX3JlbmRlckxpbmVMYXllckNvbmZpZyh7XG4gICAgICBsYXllcixcbiAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzXG4gICAgfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmNvbG9yJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QXJjTGF5ZXJDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgIHNldENvbG9yVUk9e2xheWVyQ29uZmlndXJhdG9yUHJvcHMuc2V0Q29sb3JVSX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUNvbmZpZz17bGF5ZXJDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZVZpc0NvbmZpZz17dmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNvdXJjZUNvbG9yfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogdGhpY2tuZXNzICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuc3Ryb2tlJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshbGF5ZXIuY29uZmlnLnNpemVGaWVsZH1cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnRoaWNrbmVzc31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIGVsZXZhdGlvbiBzY2FsZSAqL31cbiAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uU2NhbGUgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD1cImxheWVyVmlzQ29uZmlncy5lbGV2YXRpb25TY2FsZVwiIGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblNjYWxlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlclRyaXBMYXllckNvbmZpZyh7XG4gICAgICBsYXllcixcbiAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzXG4gICAgfSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtZXRhOiB7ZmVhdHVyZVR5cGVzID0ge319XG4gICAgICB9ID0gbGF5ZXI7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5jb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvciB7Li4ubGF5ZXJDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cImxheWVyLnN0cm9rZVdpZHRoXCIgY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBUcmFpbCBMZW5ndGgqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgey4uLihmZWF0dXJlVHlwZXMucG9seWdvbiA/IGxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0cm9rZWQgOiB7fSl9XG4gICAgICAgICAgICBsYWJlbD1cImxheWVyLnRyYWlsTGVuZ3RoXCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwibGF5ZXIudHJhaWxMZW5ndGhEZXNjcmlwdGlvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudHJhaWxMZW5ndGh9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJHZW9qc29uTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWV0YToge2ZlYXR1cmVUeXBlcyA9IHt9fSxcbiAgICAgICAgY29uZmlnOiB7dmlzQ29uZmlnfVxuICAgICAgfSA9IGxheWVyO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIEZpbGwgQ29sb3IgKi99XG4gICAgICAgICAge2ZlYXR1cmVUeXBlcy5wb2x5Z29uIHx8IGZlYXR1cmVUeXBlcy5wb2ludCA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWR9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgbGFiZWw9XCJsYXllci5maWxsQ29sb3JcIlxuICAgICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgey8qIHN0cm9rZSBjb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0cm9rZWR9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBsYWJlbD1cImxheWVyLnN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zdHJva2VDb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yUmFuZ2VcIiAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvclxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBzZWxlY3RlZENvbG9yPXtsYXllci5jb25maWcudmlzQ29uZmlnLnN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICAgIHByb3BlcnR5PVwic3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlT3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIHsuLi4oZmVhdHVyZVR5cGVzLnBvbHlnb24gPyBsYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkIDoge30pfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5zdHJva2VXaWR0aFwiXG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50aGlja25lc3N9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBFbGV2YXRpb24gKi99XG4gICAgICAgICAge2ZlYXR1cmVUeXBlcy5wb2x5Z29uID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2R9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXshdmlzQ29uZmlnLmZpbGxlZH1cbiAgICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mud2lyZWZyYW1lfSAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgey8qIFJhZGl1cyAqL31cbiAgICAgICAgICB7ZmVhdHVyZVR5cGVzLnBvaW50ID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgeyFsYXllci5jb25maWcucmFkaXVzRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtCb29sZWFuKGxheWVyLmNvbmZpZy5yYWRpdXNGaWVsZCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy5yYWRpdXNGaWVsZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyM0RMYXllckNvbmZpZyh7bGF5ZXIsIHZpc0NvbmZpZ3VyYXRvclByb3BzfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuM0RNb2RlbCd9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgYWNjZXB0PVwiLmdsYiwuZ2x0ZlwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuZmlsZXMgJiYgZS50YXJnZXQuZmlsZXNbMF0pIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZS50YXJnZXQuZmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoe3NjZW5lZ3JhcGg6IHVybH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuM0RNb2RlbE9wdGlvbnMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVTY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYW5nbGVYfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5hbmdsZVl9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmFuZ2xlWn1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlclMyTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY29uZmlnOiB7dmlzQ29uZmlnfVxuICAgICAgfSA9IGxheWVyO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsbGVkfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5maWxsQ29sb3JcIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIFN0cm9rZSAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0cm9rZWR9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBsYWJlbD1cImxheWVyLnN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zdHJva2VDb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yUmFuZ2VcIiAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvclxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBzZWxlY3RlZENvbG9yPXtsYXllci5jb25maWcudmlzQ29uZmlnLnN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICAgIHByb3BlcnR5PVwic3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cImxheWVyLnN0cm9rZVdpZHRoXCIgY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogRWxldmF0aW9uICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2R9XG4gICAgICAgICAgICBkaXNhYmxlZD17IXZpc0NvbmZpZy5maWxsZWR9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmhlaWdodH1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblNjYWxlfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmVsZXZhdGlvblNjYWxlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuaGVpZ2h0UmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmhlaWdodFJhbmdlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy53aXJlZnJhbWV9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2xheWVyLCBkYXRhc2V0cywgdXBkYXRlTGF5ZXJDb25maWcsIGxheWVyVHlwZU9wdGlvbnMsIHVwZGF0ZUxheWVyVHlwZX0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge2ZpZWxkcyA9IFtdLCBmaWVsZFBhaXJzID0gdW5kZWZpbmVkfSA9IGxheWVyLmNvbmZpZy5kYXRhSWRcbiAgICAgICAgPyBkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXVxuICAgICAgICA6IHt9O1xuICAgICAgY29uc3Qge2NvbmZpZ30gPSBsYXllcjtcblxuICAgICAgY29uc3QgdmlzQ29uZmlndXJhdG9yUHJvcHMgPSBnZXRWaXNDb25maWd1cmF0b3JQcm9wcyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGxheWVyQ29uZmlndXJhdG9yUHJvcHMgPSBnZXRMYXllckNvbmZpZ3VyYXRvclByb3BzKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMgPSBnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGRhdGFzZXQgPSBnZXRMYXllckRhdGFzZXQoZGF0YXNldHMsIGxheWVyKTtcbiAgICAgIGNvbnN0IHJlbmRlclRlbXBsYXRlID0gbGF5ZXIudHlwZSAmJiBgX3JlbmRlciR7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGxheWVyLnR5cGUpfUxheWVyQ29uZmlnYDtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHtsYXllci5sYXllckluZm9Nb2RhbCA/IChcbiAgICAgICAgICAgIDxIb3dUb0J1dHRvbiBvbkNsaWNrPXsoKSA9PiB0aGlzLnByb3BzLm9wZW5Nb2RhbChsYXllci5sYXllckluZm9Nb2RhbCl9IC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIGxhYmVsPXsnbGF5ZXIuYmFzaWMnfVxuICAgICAgICAgICAgY29sbGFwc2libGU9e09iamVjdC5rZXlzKGxheWVyLmNvbmZpZy5jb2x1bW5zKS5sZW5ndGggPiAwfVxuICAgICAgICAgICAgZXhwYW5kZWQ9eyFsYXllci5oYXNBbGxDb2x1bW5zKCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPExheWVyVHlwZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICBsYXllclR5cGVPcHRpb25zPXtsYXllclR5cGVPcHRpb25zfVxuICAgICAgICAgICAgICBvblNlbGVjdD17dXBkYXRlTGF5ZXJUeXBlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtPYmplY3Qua2V5cyhkYXRhc2V0cykubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgICAgIDxTb3VyY2VEYXRhU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgICAgIGRhdGFJZD17Y29uZmlnLmRhdGFJZH1cbiAgICAgICAgICAgICAgICBvblNlbGVjdD17dmFsdWUgPT4gdXBkYXRlTGF5ZXJDb25maWcoe2RhdGFJZDogdmFsdWV9KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7T2JqZWN0LmtleXMobGF5ZXIuY29uZmlnLmNvbHVtbnMpLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPExheWVyQ29sdW1uQ29uZmlnXG4gICAgICAgICAgICAgICAgICBjb2x1bW5QYWlycz17bGF5ZXIuY29sdW1uUGFpcnN9XG4gICAgICAgICAgICAgICAgICBjb2x1bW5zPXtsYXllci5jb25maWcuY29sdW1uc31cbiAgICAgICAgICAgICAgICAgIGFzc2lnbkNvbHVtblBhaXJzPXtsYXllci5hc3NpZ25Db2x1bW5QYWlycy5iaW5kKGxheWVyKX1cbiAgICAgICAgICAgICAgICAgIGFzc2lnbkNvbHVtbj17bGF5ZXIuYXNzaWduQ29sdW1uLmJpbmQobGF5ZXIpfVxuICAgICAgICAgICAgICAgICAgY29sdW1uTGFiZWxzPXtsYXllci5jb2x1bW5MYWJlbHN9XG4gICAgICAgICAgICAgICAgICBmaWVsZHM9e2ZpZWxkc31cbiAgICAgICAgICAgICAgICAgIGZpZWxkUGFpcnM9e2ZpZWxkUGFpcnN9XG4gICAgICAgICAgICAgICAgICB1cGRhdGVMYXllckNvbmZpZz17dXBkYXRlTGF5ZXJDb25maWd9XG4gICAgICAgICAgICAgICAgICB1cGRhdGVMYXllclR5cGU9e3RoaXMucHJvcHMudXBkYXRlTGF5ZXJUeXBlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICB7dGhpc1tyZW5kZXJUZW1wbGF0ZV0gJiZcbiAgICAgICAgICAgIHRoaXNbcmVuZGVyVGVtcGxhdGVdKHtcbiAgICAgICAgICAgICAgbGF5ZXIsXG4gICAgICAgICAgICAgIGRhdGFzZXQsXG4gICAgICAgICAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgICAgICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wcyxcbiAgICAgICAgICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wc1xuICAgICAgICAgICAgfSl9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBMYXllckNvbmZpZ3VyYXRvcjtcbn1cbi8qXG4gKiBDb21wb25lbnRpemUgY29uZmlnIGNvbXBvbmVudCBpbnRvIHB1cmUgZnVuY3Rpb25hbCBjb21wb25lbnRzXG4gKi9cblxuY29uc3QgU3R5bGVkSG93VG9CdXR0b24gPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMnB4O1xuICB0b3A6IC00cHg7XG5gO1xuXG5leHBvcnQgY29uc3QgSG93VG9CdXR0b24gPSAoe29uQ2xpY2t9KSA9PiAoXG4gIDxTdHlsZWRIb3dUb0J1dHRvbj5cbiAgICA8QnV0dG9uIGxpbmsgc21hbGwgb25DbGljaz17b25DbGlja30+XG4gICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J2xheWVyQ29uZmlndXJhdGlvbi5ob3dUbyd9IC8+XG4gICAgPC9CdXR0b24+XG4gIDwvU3R5bGVkSG93VG9CdXR0b24+XG4pO1xuXG5leHBvcnQgY29uc3QgTGF5ZXJDb2xvclNlbGVjdG9yID0gKHtcbiAgbGF5ZXIsXG4gIG9uQ2hhbmdlLFxuICBsYWJlbCxcbiAgc2VsZWN0ZWRDb2xvcixcbiAgcHJvcGVydHkgPSAnY29sb3InLFxuICBzZXRDb2xvclVJXG59KSA9PiAoXG4gIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgIDxQYW5lbExhYmVsPlxuICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJsYXllci5jb2xvclwiIC8+XG4gICAgPC9QYW5lbExhYmVsPlxuICAgIDxDb2xvclNlbGVjdG9yXG4gICAgICBjb2xvclNldHM9e1tcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdGVkQ29sb3I6IHNlbGVjdGVkQ29sb3IgfHwgbGF5ZXIuY29uZmlnLmNvbG9yLFxuICAgICAgICAgIHNldENvbG9yOiByZ2JWYWx1ZSA9PiBvbkNoYW5nZSh7W3Byb3BlcnR5XTogcmdiVmFsdWV9KVxuICAgICAgICB9XG4gICAgICBdfVxuICAgICAgY29sb3JVST17bGF5ZXIuY29uZmlnLmNvbG9yVUlbcHJvcGVydHldfVxuICAgICAgc2V0Q29sb3JVST17bmV3Q29uZmlnID0+IHNldENvbG9yVUkocHJvcGVydHksIG5ld0NvbmZpZyl9XG4gICAgLz5cbiAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuKTtcblxuZXhwb3J0IGNvbnN0IEFyY0xheWVyQ29sb3JTZWxlY3RvciA9ICh7XG4gIGxheWVyLFxuICBvbkNoYW5nZUNvbmZpZyxcbiAgb25DaGFuZ2VWaXNDb25maWcsXG4gIHByb3BlcnR5ID0gJ2NvbG9yJyxcbiAgc2V0Q29sb3JVSVxufSkgPT4gKFxuICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICA8UGFuZWxMYWJlbD5cbiAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwibGF5ZXIuY29sb3JSYW5nZVwiIC8+XG4gICAgPC9QYW5lbExhYmVsPlxuICAgIDxDb2xvclNlbGVjdG9yXG4gICAgICBjb2xvclNldHM9e1tcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdGVkQ29sb3I6IGxheWVyLmNvbmZpZy5jb2xvcixcbiAgICAgICAgICBzZXRDb2xvcjogcmdiVmFsdWUgPT4gb25DaGFuZ2VDb25maWcoe2NvbG9yOiByZ2JWYWx1ZX0pLFxuICAgICAgICAgIGxhYmVsOiAnU291cmNlJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2VsZWN0ZWRDb2xvcjogbGF5ZXIuY29uZmlnLnZpc0NvbmZpZy50YXJnZXRDb2xvciB8fCBsYXllci5jb25maWcuY29sb3IsXG4gICAgICAgICAgc2V0Q29sb3I6IHJnYlZhbHVlID0+IG9uQ2hhbmdlVmlzQ29uZmlnKHt0YXJnZXRDb2xvcjogcmdiVmFsdWV9KSxcbiAgICAgICAgICBsYWJlbDogJ1RhcmdldCdcbiAgICAgICAgfVxuICAgICAgXX1cbiAgICAgIGNvbG9yVUk9e2xheWVyLmNvbmZpZy5jb2xvclVJW3Byb3BlcnR5XX1cbiAgICAgIHNldENvbG9yVUk9e25ld0NvbmZpZyA9PiBzZXRDb2xvclVJKHByb3BlcnR5LCBuZXdDb25maWcpfVxuICAgIC8+XG4gIDwvU2lkZVBhbmVsU2VjdGlvbj5cbik7XG5cbmV4cG9ydCBjb25zdCBMYXllckNvbG9yUmFuZ2VTZWxlY3RvciA9ICh7bGF5ZXIsIG9uQ2hhbmdlLCBwcm9wZXJ0eSA9ICdjb2xvclJhbmdlJywgc2V0Q29sb3JVSX0pID0+IChcbiAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgPFBhbmVsTGFiZWw+XG4gICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImxheWVyLmNvbG9yUmFuZ2VcIiAvPlxuICAgIDwvUGFuZWxMYWJlbD5cbiAgICA8Q29sb3JTZWxlY3RvclxuICAgICAgY29sb3JTZXRzPXtbXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3RlZENvbG9yOiBsYXllci5jb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XSxcbiAgICAgICAgICBpc1JhbmdlOiB0cnVlLFxuICAgICAgICAgIHNldENvbG9yOiBjb2xvclJhbmdlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHtjb2xvck1hcH0gPSBsYXllci5jb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yUmFuZ2VVcGRhdGVkID0gY29sb3JNYXBcbiAgICAgICAgICAgICAgPyBsYXllci51cGRhdGVDb2xvck1hcChwcm9wZXJ0eSwgY29sb3JNYXAsIGNvbG9yUmFuZ2UpXG4gICAgICAgICAgICAgIDogY29sb3JSYW5nZTtcbiAgICAgICAgICAgIG9uQ2hhbmdlKHtbcHJvcGVydHldOiBjb2xvclJhbmdlVXBkYXRlZH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXX1cbiAgICAgIGNvbG9yVUk9e2xheWVyLmNvbmZpZy5jb2xvclVJW3Byb3BlcnR5XX1cbiAgICAgIHNldENvbG9yVUk9e25ld0NvbmZpZyA9PiBzZXRDb2xvclVJKHByb3BlcnR5LCBuZXdDb25maWcpfVxuICAgIC8+XG4gIDwvU2lkZVBhbmVsU2VjdGlvbj5cbik7XG5cbkNoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5LmRlcHMgPSBbVmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yRmFjdG9yeV07XG5leHBvcnQgZnVuY3Rpb24gQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnkoVmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yKSB7XG4gIGNvbnN0IENoYW5uZWxCeVZhbHVlU2VsZWN0b3IgPSAoe1xuICAgIGxheWVyLFxuICAgIGNoYW5uZWwsXG4gICAgb25DaGFuZ2UsXG4gICAgb25DaGFuZ2VWaXNDb25maWcsXG4gICAgZmllbGRzLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGlzTG9hZGluZ1xuICB9KSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgY2hhbm5lbFNjYWxlVHlwZSxcbiAgICAgIGRvbWFpbixcbiAgICAgIGZpZWxkLFxuICAgICAga2V5LFxuICAgICAgcHJvcGVydHksXG4gICAgICByYW5nZSxcbiAgICAgIHNjYWxlLFxuICAgICAgZGVmYXVsdE1lYXN1cmUsXG4gICAgICBzdXBwb3J0ZWRGaWVsZFR5cGVzXG4gICAgfSA9IGNoYW5uZWw7XG4gICAgY29uc3QgY2hhbm5lbFN1cHBvcnRlZEZpZWxkVHlwZXMgPVxuICAgICAgc3VwcG9ydGVkRmllbGRUeXBlcyB8fCBDSEFOTkVMX1NDQUxFX1NVUFBPUlRFRF9GSUVMRFNbY2hhbm5lbFNjYWxlVHlwZV07XG4gICAgY29uc3Qgc3VwcG9ydGVkRmllbGRzID0gZmllbGRzLmZpbHRlcigoe3R5cGV9KSA9PiBjaGFubmVsU3VwcG9ydGVkRmllbGRUeXBlcy5pbmNsdWRlcyh0eXBlKSk7XG4gICAgY29uc3Qgc2NhbGVPcHRpb25zID0gbGF5ZXIuZ2V0U2NhbGVPcHRpb25zKGNoYW5uZWwua2V5KTtcbiAgICBjb25zdCBzaG93U2NhbGVDdXN0b21pemFibGUgPVxuICAgICAgY2hhbm5lbFNjYWxlVHlwZSA9PT0gQ0hBTk5FTF9TQ0FMRVMuY29sb3IgJiZcbiAgICAgIGxheWVyLmNvbmZpZ1tzY2FsZV0gJiZcbiAgICAgIEJvb2xlYW4obGF5ZXIuY29uZmlnW2ZpZWxkXSkgJiZcbiAgICAgIHNjYWxlT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IHNob3dTY2FsZSA9XG4gICAgICAhc2hvd1NjYWxlQ3VzdG9taXphYmxlICYmXG4gICAgICAhbGF5ZXIuaXNBZ2dyZWdhdGVkICYmXG4gICAgICBsYXllci5jb25maWdbc2NhbGVdICYmXG4gICAgICBzY2FsZU9wdGlvbnMubGVuZ3RoID4gMTtcbiAgICBjb25zdCBkZWZhdWx0RGVzY3JpcHRpb24gPSAnbGF5ZXJDb25maWd1cmF0aW9uLmRlZmF1bHREZXNjcmlwdGlvbic7XG4gICAgY29uc3QgdmlzUmFuZ2UgPSBsYXllci5jb25maWcudmlzQ29uZmlnW3JhbmdlXTtcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yXG4gICAgICAgIGNoYW5uZWw9e2NoYW5uZWwua2V5fVxuICAgICAgICBkZXNjcmlwdGlvbj17ZGVzY3JpcHRpb24gfHwgZGVmYXVsdERlc2NyaXB0aW9ufVxuICAgICAgICBkb21haW49e2xheWVyLmNvbmZpZ1tkb21haW5dfVxuICAgICAgICBmaWVsZHM9e3N1cHBvcnRlZEZpZWxkc31cbiAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICBrZXk9e2Ake2tleX0tY2hhbm5lbC1zZWxlY3RvcmB9XG4gICAgICAgIHByb3BlcnR5PXtwcm9wZXJ0eX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2RlZmF1bHRNZWFzdXJlIHx8ICdwbGFjZWhvbGRlci5zZWxlY3RGaWVsZCd9XG4gICAgICAgIHJhbmdlPXt2aXNSYW5nZX1cbiAgICAgICAgc2NhbGVPcHRpb25zPXtzY2FsZU9wdGlvbnN9XG4gICAgICAgIHNjYWxlVHlwZT17c2NhbGUgPyBsYXllci5jb25maWdbc2NhbGVdIDogbnVsbH1cbiAgICAgICAgc2VsZWN0ZWRGaWVsZD17bGF5ZXIuY29uZmlnW2ZpZWxkXX1cbiAgICAgICAgc2hvd1NjYWxlPXtzaG93U2NhbGV9XG4gICAgICAgIHNob3dTY2FsZUN1c3RvbWl6YWJsZT17c2hvd1NjYWxlQ3VzdG9taXphYmxlfVxuICAgICAgICB1cGRhdGVGaWVsZD17dmFsID0+IHtcbiAgICAgICAgICBpZiAodmlzUmFuZ2UuY29sb3JNYXApIHtcbiAgICAgICAgICAgIG9uQ2hhbmdlVmlzQ29uZmlnKHtbcmFuZ2VdOiB7Li4udmlzUmFuZ2UsIGNvbG9yTWFwOiB1bmRlZmluZWR9fSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9uQ2hhbmdlKHtbZmllbGRdOiB2YWx9LCBrZXkpO1xuICAgICAgICB9fVxuICAgICAgICB1cGRhdGVTY2FsZT17dmFsID0+IG9uQ2hhbmdlKHtbc2NhbGVdOiB2YWx9LCBrZXkpfVxuICAgICAgICB1cGRhdGVDdXN0b21QYWxldHRlPXtjb2xvck1hcCA9PiBvbkNoYW5nZVZpc0NvbmZpZyh7W3JhbmdlXTogey4uLnZpc1JhbmdlLCBjb2xvck1hcH19KX1cbiAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIENoYW5uZWxCeVZhbHVlU2VsZWN0b3I7XG59XG5cbkFnZ3JTY2FsZVNlbGVjdG9yRmFjdG9yeS5kZXBzID0gW0NvbG9yRGltZW5zaW9uU2NhbGVTZWxlY3RvckZhY3RvcnldO1xuXG5mdW5jdGlvbiBBZ2dyU2NhbGVTZWxlY3RvckZhY3RvcnkoQ29sb3JEaW1lbnNpb25TY2FsZVNlbGVjdG9yKSB7XG4gIGNsYXNzIEFnZ3JTY2FsZVNlbGVjdG9yIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7Y2hhbm5lbCwgbGF5ZXIsIG9uQ2hhbmdlLCBvbkNoYW5nZVZpc0NvbmZpZ30gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge3NjYWxlLCBrZXksIGNoYW5uZWxTY2FsZVR5cGUsIGRvbWFpbiwgcmFuZ2V9ID0gY2hhbm5lbDtcbiAgICAgIGNvbnN0IHNjYWxlT3B0aW9ucyA9IGxheWVyLmdldFNjYWxlT3B0aW9ucyhrZXkpO1xuICAgICAgY29uc3QgdmlzUmFuZ2UgPSBsYXllci5jb25maWcudmlzQ29uZmlnW3JhbmdlXTtcbiAgICAgIGNvbnN0IHNob3dTY2FsZUN1c3RvbWl6YWJsZSA9XG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGUgPT09IENIQU5ORUxfU0NBTEVTLmNvbG9yQWdnciAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KHNjYWxlT3B0aW9ucykgJiZcbiAgICAgICAgc2NhbGVPcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgICBjb25zdCBzaG93U2NhbGUgPSBBcnJheS5pc0FycmF5KHNjYWxlT3B0aW9ucykgJiYgc2NhbGVPcHRpb25zLmxlbmd0aCA+IDE7XG5cbiAgICAgIGlmIChzaG93U2NhbGVDdXN0b21pemFibGUpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgIDxDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JcbiAgICAgICAgICAgICAgbGFiZWw9e2Ake2tleX0gU2NhbGVgfVxuICAgICAgICAgICAgICBzY2FsZVR5cGU9e2xheWVyLmNvbmZpZ1tzY2FsZV19XG4gICAgICAgICAgICAgIG9wdGlvbnM9e3NjYWxlT3B0aW9uc31cbiAgICAgICAgICAgICAgZG9tYWluPXtsYXllci5jb25maWdbZG9tYWluXX1cbiAgICAgICAgICAgICAgcmFuZ2U9e3Zpc1JhbmdlfVxuICAgICAgICAgICAgICBvblNlbGVjdD17dmFsID0+IG9uQ2hhbmdlKHtbc2NhbGVdOiB2YWx9LCBrZXkpfVxuICAgICAgICAgICAgICBvblNlbGVjdEN1c3RvbVBhbGV0dGU9e2NvbG9yTWFwID0+XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VWaXNDb25maWcoe1tyYW5nZV06IHsuLi52aXNSYW5nZSwgY29sb3JNYXB9fSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG93U2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RGltZW5zaW9uU2NhbGVTZWxlY3RvclxuICAgICAgICAgICAgbGFiZWw9e2Ake2tleX0gU2NhbGVgfVxuICAgICAgICAgICAgb3B0aW9ucz17c2NhbGVPcHRpb25zfVxuICAgICAgICAgICAgc2NhbGVUeXBlPXtsYXllci5jb25maWdbc2NhbGVdfVxuICAgICAgICAgICAgb25TZWxlY3Q9e3ZhbCA9PiBvbkNoYW5nZSh7W3NjYWxlXTogdmFsfSwga2V5KX1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIHJldHVybiBpbmplY3RJbnRsKEFnZ3JTY2FsZVNlbGVjdG9yKTtcbn1cblxuZXhwb3J0IGNvbnN0IEFnZ3JlZ2F0aW9uVHlwZVNlbGVjdG9yID0gKHtsYXllciwgY2hhbm5lbCwgb25DaGFuZ2V9KSA9PiB7XG4gIGNvbnN0IHtmaWVsZCwgYWdncmVnYXRpb24sIGtleX0gPSBjaGFubmVsO1xuICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbGF5ZXIuY29uZmlnW2ZpZWxkXTtcbiAgY29uc3Qge3Zpc0NvbmZpZ30gPSBsYXllci5jb25maWc7XG5cbiAgLy8gYWdncmVnYXRpb24gc2hvdWxkIG9ubHkgYmUgc2VsZWN0YWJsZSB3aGVuIGZpZWxkIGlzIHNlbGVjdGVkXG4gIGNvbnN0IGFnZ3JlZ2F0aW9uT3B0aW9ucyA9IGxheWVyLmdldEFnZ3JlZ2F0aW9uT3B0aW9ucyhrZXkpO1xuXG4gIHJldHVybiAoXG4gICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydsYXllci5hZ2dyZWdhdGVCeSd9IHZhbHVlcz17e2ZpZWxkOiBzZWxlY3RlZEZpZWxkLm5hbWV9fSAvPlxuICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICBzZWxlY3RlZEl0ZW1zPXt2aXNDb25maWdbYWdncmVnYXRpb25dfVxuICAgICAgICBvcHRpb25zPXthZ2dyZWdhdGlvbk9wdGlvbnN9XG4gICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PlxuICAgICAgICAgIG9uQ2hhbmdlKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2aXNDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5sYXllci5jb25maWcudmlzQ29uZmlnLFxuICAgICAgICAgICAgICAgIFthZ2dyZWdhdGlvbl06IHZhbHVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGFubmVsLmtleVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgLz5cbiAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICk7XG59O1xuLyogZXNsaW50LWVuYWJsZSBtYXgtcGFyYW1zICovXG4iXX0=
|
|
887
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItY29uZmlndXJhdG9yLmpzIl0sIm5hbWVzIjpbIlN0eWxlZExheWVyQ29uZmlndXJhdG9yIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJwcm9wcyIsInRoZW1lIiwibGF5ZXJDb25maWd1cmF0b3JNYXJnaW4iLCJsYXllckNvbmZpZ3VyYXRvclBhZGRpbmciLCJsYXllckNvbmZpZ3VyYXRvckJvcmRlciIsImxheWVyQ29uZmlndXJhdG9yQm9yZGVyQ29sb3IiLCJTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvciIsImdldExheWVyRmllbGRzIiwiZGF0YXNldHMiLCJsYXllciIsImNvbmZpZyIsImRhdGFJZCIsImZpZWxkcyIsImdldExheWVyRGF0YXNldCIsImdldExheWVyQ29uZmlndXJhdG9yUHJvcHMiLCJvbkNoYW5nZSIsInVwZGF0ZUxheWVyQ29uZmlnIiwic2V0Q29sb3JVSSIsInVwZGF0ZUxheWVyQ29sb3JVSSIsImdldFZpc0NvbmZpZ3VyYXRvclByb3BzIiwidXBkYXRlTGF5ZXJWaXNDb25maWciLCJnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyIsInVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZyIsIm9uQ2hhbmdlVmlzQ29uZmlnIiwiTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5IiwiZGVwcyIsIlNvdXJjZURhdGFTZWxlY3RvckZhY3RvcnkiLCJWaXNDb25maWdTbGlkZXJGYWN0b3J5IiwiVGV4dExhYmVsUGFuZWxGYWN0b3J5IiwiTGF5ZXJDb25maWdHcm91cEZhY3RvcnkiLCJDaGFubmVsQnlWYWx1ZVNlbGVjdG9yRmFjdG9yeSIsIkxheWVyQ29sdW1uQ29uZmlnRmFjdG9yeSIsIkxheWVyVHlwZVNlbGVjdG9yRmFjdG9yeSIsIlZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkiLCJBZ2dyU2NhbGVTZWxlY3RvckZhY3RvcnkiLCJTb3VyY2VEYXRhU2VsZWN0b3IiLCJWaXNDb25maWdTbGlkZXIiLCJUZXh0TGFiZWxQYW5lbCIsIkxheWVyQ29uZmlnR3JvdXAiLCJDaGFubmVsQnlWYWx1ZVNlbGVjdG9yIiwiTGF5ZXJDb2x1bW5Db25maWciLCJMYXllclR5cGVTZWxlY3RvciIsIlZpc0NvbmZpZ1N3aXRjaCIsIkFnZ3JTY2FsZVNlbGVjdG9yIiwiTGF5ZXJDb25maWd1cmF0b3IiLCJfcmVuZGVyU2NhdHRlcnBsb3RMYXllckNvbmZpZyIsInZpc0NvbmZpZ3VyYXRvclByb3BzIiwibGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMiLCJsYXllckNvbmZpZ3VyYXRvclByb3BzIiwidmlzQ29uZmlnU2V0dGluZ3MiLCJmaWxsZWQiLCJsYWJlbCIsImNvbG9yRmllbGQiLCJ2aXN1YWxDaGFubmVscyIsImNvbG9yIiwib3BhY2l0eSIsInR5cGUiLCJMQVlFUl9UWVBFUyIsInBvaW50Iiwib3V0bGluZSIsInN0cm9rZUNvbG9yRmllbGQiLCJ2aXNDb25maWciLCJzdHJva2VDb2xvciIsInRoaWNrbmVzcyIsInNpemVGaWVsZCIsInJhZGl1cyIsIkJvb2xlYW4iLCJyYWRpdXNSYW5nZSIsImZpeGVkUmFkaXVzIiwic2l6ZSIsInVwZGF0ZUxheWVyVGV4dExhYmVsIiwidGV4dExhYmVsIiwiY29sb3JQYWxldHRlIiwic2V0Q29sb3JQYWxldHRlVUkiLCJjb2xvckFnZ3JlZ2F0aW9uIiwiY29uZGl0aW9uIiwiY2x1c3RlclJhZGl1cyIsIndlaWdodCIsIl9yZW5kZXJBZ2dyZWdhdGlvbkxheWVyQ29uZmlnIiwiZW5hYmxlM2QiLCJlbGV2YXRpb25CeURlc2NyaXB0aW9uIiwiY29sb3JCeURlc2NyaXB0aW9uIiwicGVyY2VudGlsZSIsIndvcmxkVW5pdFNpemUiLCJjb3ZlcmFnZSIsImVsZXZhdGlvblNjYWxlIiwic2l6ZVJhbmdlIiwic2l6ZUFnZ3JlZ2F0aW9uIiwiZWxldmF0aW9uUGVyY2VudGlsZSIsImNvdmVyYWdlRmllbGQiLCJjb3ZlcmFnZVJhbmdlIiwiYXJncyIsIl9yZW5kZXJMaW5lTGF5ZXJDb25maWciLCJzb3VyY2VDb2xvciIsIm1ldGEiLCJmZWF0dXJlVHlwZXMiLCJwb2x5Z29uIiwic3Ryb2tlZCIsInRyYWlsTGVuZ3RoIiwic3Ryb2tlT3BhY2l0eSIsImhlaWdodCIsIndpcmVmcmFtZSIsInJhZGl1c0ZpZWxkIiwiZSIsInRhcmdldCIsImZpbGVzIiwidXJsIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwic2NlbmVncmFwaCIsInNpemVTY2FsZSIsImFuZ2xlWCIsImFuZ2xlWSIsImFuZ2xlWiIsImhlaWdodFJhbmdlIiwibGF5ZXJUeXBlT3B0aW9ucyIsInVwZGF0ZUxheWVyVHlwZSIsImZpZWxkUGFpcnMiLCJ1bmRlZmluZWQiLCJkYXRhc2V0IiwicmVuZGVyVGVtcGxhdGUiLCJsYXllckluZm9Nb2RhbCIsIm9wZW5Nb2RhbCIsIk9iamVjdCIsImtleXMiLCJjb2x1bW5zIiwibGVuZ3RoIiwiaGFzQWxsQ29sdW1ucyIsImlkIiwidmFsdWUiLCJjb2x1bW5QYWlycyIsImFzc2lnbkNvbHVtblBhaXJzIiwiYmluZCIsImFzc2lnbkNvbHVtbiIsImNvbHVtbkxhYmVscyIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJhcnJheU9mIiwiYW55IiwiZnVuYyIsIlN0eWxlZEhvd1RvQnV0dG9uIiwiSG93VG9CdXR0b24iLCJvbkNsaWNrIiwiTGF5ZXJDb2xvclNlbGVjdG9yIiwic2VsZWN0ZWRDb2xvciIsInByb3BlcnR5Iiwic2V0Q29sb3IiLCJyZ2JWYWx1ZSIsImNvbG9yVUkiLCJuZXdDb25maWciLCJBcmNMYXllckNvbG9yU2VsZWN0b3IiLCJvbkNoYW5nZUNvbmZpZyIsInRhcmdldENvbG9yIiwiTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3IiLCJpc1JhbmdlIiwiY29sb3JSYW5nZSIsImNvbG9yTWFwIiwiY29sb3JSYW5nZVVwZGF0ZWQiLCJ1cGRhdGVDb2xvck1hcCIsIlZpc0NvbmZpZ0J5RmllbGRTZWxlY3RvckZhY3RvcnkiLCJWaXNDb25maWdCeUZpZWxkU2VsZWN0b3IiLCJjaGFubmVsIiwiZGVzY3JpcHRpb24iLCJpc0xvYWRpbmciLCJjaGFubmVsU2NhbGVUeXBlIiwiZG9tYWluIiwiZmllbGQiLCJrZXkiLCJyYW5nZSIsInNjYWxlIiwiZGVmYXVsdE1lYXN1cmUiLCJzdXBwb3J0ZWRGaWVsZFR5cGVzIiwiY2hhbm5lbFN1cHBvcnRlZEZpZWxkVHlwZXMiLCJDSEFOTkVMX1NDQUxFX1NVUFBPUlRFRF9GSUVMRFMiLCJzdXBwb3J0ZWRGaWVsZHMiLCJmaWx0ZXIiLCJpbmNsdWRlcyIsInNjYWxlT3B0aW9ucyIsImdldFNjYWxlT3B0aW9ucyIsInNob3dTY2FsZUN1c3RvbWl6YWJsZSIsIkNIQU5ORUxfU0NBTEVTIiwic2hvd1NjYWxlIiwiaXNBZ2dyZWdhdGVkIiwiZGVmYXVsdERlc2NyaXB0aW9uIiwidmlzUmFuZ2UiLCJ2YWwiLCJDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5IiwiQ29sb3JEaW1lbnNpb25TY2FsZVNlbGVjdG9yIiwiY29sb3JBZ2dyIiwiQXJyYXkiLCJpc0FycmF5IiwiQWdncmVnYXRpb25UeXBlU2VsZWN0b3IiLCJhZ2dyZWdhdGlvbiIsInNlbGVjdGVkRmllbGQiLCJhZ2dyZWdhdGlvbk9wdGlvbnMiLCJnZXRBZ2dyZWdhdGlvbk9wdGlvbnMiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsdUJBQXVCLEdBQUdDLDZCQUFPQyxHQUFQLENBQVdDLEtBQVgsQ0FBaUI7QUFDL0NDLEVBQUFBLFNBQVMsRUFBRTtBQURvQyxDQUFqQixD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QUlFLElBQUEsVUFBVSxFQUFFLEtBSmQ7QUFLRSxJQUFBLFFBQVEsRUFBRSxrQkFBQW5FLEtBQUs7QUFBQSxhQUNibEgsVUFBUSxDQUNOO0FBQ0U4QyxRQUFBQSxTQUFTLGtDQUNKcEQsS0FBSyxDQUFDQyxNQUFOLENBQWFtRCxTQURULDRDQUVOcUksV0FGTSxFQUVRakUsS0FGUjtBQURYLE9BRE0sRUFPTmtDLE9BQU8sQ0FBQ00sR0FQRixDQURLO0FBQUE7QUFMakIsSUFKRixDQURGO0FBd0JELENBaENNO0FBaUNQIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBGcmFnbWVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdsb2NhbGl6YXRpb24nO1xuXG5pbXBvcnQge0J1dHRvbiwgSW5wdXQsIFBhbmVsTGFiZWwsIFNpZGVQYW5lbFNlY3Rpb259IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnY29tcG9uZW50cy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcblxuaW1wb3J0IFZpc0NvbmZpZ0J5RmllbGRTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi92aXMtY29uZmlnLWJ5LWZpZWxkLXNlbGVjdG9yJztcbmltcG9ydCBMYXllckNvbHVtbkNvbmZpZ0ZhY3RvcnkgZnJvbSAnLi9sYXllci1jb2x1bW4tY29uZmlnJztcbmltcG9ydCBMYXllclR5cGVTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9sYXllci10eXBlLXNlbGVjdG9yJztcbmltcG9ydCBEaW1lbnNpb25TY2FsZVNlbGVjdG9yIGZyb20gJy4vZGltZW5zaW9uLXNjYWxlLXNlbGVjdG9yJztcbmltcG9ydCBDb2xvclNlbGVjdG9yIGZyb20gJy4vY29sb3Itc2VsZWN0b3InO1xuaW1wb3J0IFNvdXJjZURhdGFTZWxlY3RvckZhY3RvcnkgZnJvbSAnY29tcG9uZW50cy9zaWRlLXBhbmVsL2NvbW1vbi9zb3VyY2UtZGF0YS1zZWxlY3Rvcic7XG5pbXBvcnQgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeSBmcm9tICcuL3Zpcy1jb25maWctc3dpdGNoJztcbmltcG9ydCBWaXNDb25maWdTbGlkZXJGYWN0b3J5IGZyb20gJy4vdmlzLWNvbmZpZy1zbGlkZXInO1xuaW1wb3J0IExheWVyQ29uZmlnR3JvdXBGYWN0b3J5LCB7Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnR9IGZyb20gJy4vbGF5ZXItY29uZmlnLWdyb3VwJztcbmltcG9ydCBUZXh0TGFiZWxQYW5lbEZhY3RvcnkgZnJvbSAnLi90ZXh0LWxhYmVsLXBhbmVsJztcblxuaW1wb3J0IHtjYXBpdGFsaXplRmlyc3RMZXR0ZXJ9IGZyb20gJ3V0aWxzL3V0aWxzJztcblxuaW1wb3J0IHtDSEFOTkVMX1NDQUxFUywgQ0hBTk5FTF9TQ0FMRV9TVVBQT1JURURfRklFTERTfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge0xBWUVSX1RZUEVTfSBmcm9tICdsYXllcnMvdHlwZXMnO1xuaW1wb3J0IHtpbmplY3RJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCBDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4vY29sb3ItZGltZW5zaW9uLXNjYWxlLXNlbGVjdG9yJztcblxuY29uc3QgU3R5bGVkTGF5ZXJDb25maWd1cmF0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItcGFuZWxfX2NvbmZpZydcbn0pYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGF5ZXJDb25maWd1cmF0b3JNYXJnaW59O1xuICBwYWRkaW5nOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yUGFkZGluZ307XG4gIGJvcmRlci1sZWZ0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yQm9yZGVyfSBkYXNoZWRcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yQm9yZGVyQ29sb3J9O1xuYDtcblxuY29uc3QgU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItcGFuZWxfX2NvbmZpZ19fdmlzdWFsQy1jb25maWcnXG59KWBcbiAgbWFyZ2luLXRvcDogMTJweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBnZXRMYXllckZpZWxkcyA9IChkYXRhc2V0cywgbGF5ZXIpID0+XG4gIGxheWVyLmNvbmZpZyAmJiBkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXSA/IGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdLmZpZWxkcyA6IFtdO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5ZXJEYXRhc2V0ID0gKGRhdGFzZXRzLCBsYXllcikgPT5cbiAgbGF5ZXIuY29uZmlnICYmIGRhdGFzZXRzW2xheWVyLmNvbmZpZy5kYXRhSWRdID8gZGF0YXNldHNbbGF5ZXIuY29uZmlnLmRhdGFJZF0gOiBudWxsO1xuXG5leHBvcnQgY29uc3QgZ2V0TGF5ZXJDb25maWd1cmF0b3JQcm9wcyA9IHByb3BzID0+ICh7XG4gIGxheWVyOiBwcm9wcy5sYXllcixcbiAgZmllbGRzOiBnZXRMYXllckZpZWxkcyhwcm9wcy5kYXRhc2V0cywgcHJvcHMubGF5ZXIpLFxuICBvbkNoYW5nZTogcHJvcHMudXBkYXRlTGF5ZXJDb25maWcsXG4gIHNldENvbG9yVUk6IHByb3BzLnVwZGF0ZUxheWVyQ29sb3JVSVxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRWaXNDb25maWd1cmF0b3JQcm9wcyA9IHByb3BzID0+ICh7XG4gIGxheWVyOiBwcm9wcy5sYXllcixcbiAgZmllbGRzOiBnZXRMYXllckZpZWxkcyhwcm9wcy5kYXRhc2V0cywgcHJvcHMubGF5ZXIpLFxuICBvbkNoYW5nZTogcHJvcHMudXBkYXRlTGF5ZXJWaXNDb25maWcsXG4gIHNldENvbG9yVUk6IHByb3BzLnVwZGF0ZUxheWVyQ29sb3JVSVxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyA9IHByb3BzID0+ICh7XG4gIGxheWVyOiBwcm9wcy5sYXllcixcbiAgZmllbGRzOiBnZXRMYXllckZpZWxkcyhwcm9wcy5kYXRhc2V0cywgcHJvcHMubGF5ZXIpLFxuICBvbkNoYW5nZTogcHJvcHMudXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnLFxuICBvbkNoYW5nZVZpc0NvbmZpZzogcHJvcHMudXBkYXRlTGF5ZXJWaXNDb25maWdcbn0pO1xuXG5MYXllckNvbmZpZ3VyYXRvckZhY3RvcnkuZGVwcyA9IFtcbiAgU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSxcbiAgVmlzQ29uZmlnU2xpZGVyRmFjdG9yeSxcbiAgVGV4dExhYmVsUGFuZWxGYWN0b3J5LFxuICBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSxcbiAgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnksXG4gIExheWVyQ29sdW1uQ29uZmlnRmFjdG9yeSxcbiAgTGF5ZXJUeXBlU2VsZWN0b3JGYWN0b3J5LFxuICBWaXNDb25maWdTd2l0Y2hGYWN0b3J5LFxuICBBZ2dyU2NhbGVTZWxlY3RvckZhY3Rvcnlcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExheWVyQ29uZmlndXJhdG9yRmFjdG9yeShcbiAgU291cmNlRGF0YVNlbGVjdG9yLFxuICBWaXNDb25maWdTbGlkZXIsXG4gIFRleHRMYWJlbFBhbmVsLFxuICBMYXllckNvbmZpZ0dyb3VwLFxuICBDaGFubmVsQnlWYWx1ZVNlbGVjdG9yLFxuICBMYXllckNvbHVtbkNvbmZpZyxcbiAgTGF5ZXJUeXBlU2VsZWN0b3IsXG4gIFZpc0NvbmZpZ1N3aXRjaCxcbiAgQWdnclNjYWxlU2VsZWN0b3Jcbikge1xuICBjbGFzcyBMYXllckNvbmZpZ3VyYXRvciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGxheWVyOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBkYXRhc2V0czogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbGF5ZXJUeXBlT3B0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSkuaXNSZXF1aXJlZCxcbiAgICAgIG9wZW5Nb2RhbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIHVwZGF0ZUxheWVyQ29uZmlnOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgdXBkYXRlTGF5ZXJUeXBlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgdXBkYXRlTGF5ZXJWaXNDb25maWc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICB1cGRhdGVMYXllclZpc3VhbENoYW5uZWxDb25maWc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICB1cGRhdGVMYXllckNvbG9yVUk6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgICB9O1xuXG4gICAgX3JlbmRlclBvaW50TGF5ZXJDb25maWcocHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJTY2F0dGVycGxvdExheWVyQ29uZmlnKHByb3BzKTtcbiAgICB9XG5cbiAgICBfcmVuZGVySWNvbkxheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyU2NhdHRlcnBsb3RMYXllckNvbmZpZyhwcm9wcyk7XG4gICAgfVxuXG4gICAgX3JlbmRlclNjYXR0ZXJwbG90TGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wc1xuICAgIH0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogRmlsbCBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLihsYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWQgfHwge2xhYmVsOiAnbGF5ZXIuY29sb3InfSl9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7Lyogb3V0bGluZSBjb2xvciAqL31cbiAgICAgICAgICB7bGF5ZXIudHlwZSA9PT0gTEFZRVJfVFlQRVMucG9pbnQgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3V0bGluZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnN0cm9rZUNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZENvbG9yPXtsYXllci5jb25maWcudmlzQ29uZmlnLnN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICAgICAgcHJvcGVydHk9XCJzdHJva2VDb2xvclwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50aGlja25lc3N9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy52aXNDb25maWcub3V0bGluZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgey8qIFJhZGl1cyAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLnJhZGl1cyd9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgeyFsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtCb29sZWFuKGxheWVyLmNvbmZpZy5zaXplRmllbGQpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5yYWRpdXNSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshbGF5ZXIuY29uZmlnLnNpemVGaWVsZCB8fCBsYXllci5jb25maWcudmlzQ29uZmlnLmZpeGVkUmFkaXVzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zaXplRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmZpeGVkUmFkaXVzfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogdGV4dCBsYWJlbCAqL31cbiAgICAgICAgICA8VGV4dExhYmVsUGFuZWxcbiAgICAgICAgICAgIGZpZWxkcz17dmlzQ29uZmlndXJhdG9yUHJvcHMuZmllbGRzfVxuICAgICAgICAgICAgdXBkYXRlTGF5ZXJUZXh0TGFiZWw9e3RoaXMucHJvcHMudXBkYXRlTGF5ZXJUZXh0TGFiZWx9XG4gICAgICAgICAgICB0ZXh0TGFiZWw9e2xheWVyLmNvbmZpZy50ZXh0TGFiZWx9XG4gICAgICAgICAgICBjb2xvclBhbGV0dGU9e3Zpc0NvbmZpZ3VyYXRvclByb3BzLmNvbG9yUGFsZXR0ZX1cbiAgICAgICAgICAgIHNldENvbG9yUGFsZXR0ZVVJPXt2aXNDb25maWd1cmF0b3JQcm9wcy5zZXRDb2xvclBhbGV0dGVVSX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyQ2x1c3RlckxheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY29sb3InfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxBZ2dyU2NhbGVTZWxlY3RvclxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlVmlzQ29uZmlnPXtsYXllckNoYW5uZWxDb25maWdQcm9wcy5vbkNoYW5nZVZpc0NvbmZpZ31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvckFnZ3JlZ2F0aW9uLmNvbmRpdGlvbihsYXllci5jb25maWcpID8gKFxuICAgICAgICAgICAgICAgIDxBZ2dyZWdhdGlvblR5cGVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvbG9yQWdncmVnYXRpb259XG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogQ2x1c3RlciBSYWRpdXMgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNsdXN0ZXJSYWRpdXN9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVySGVhdG1hcExheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY29sb3InfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIHsvKiBSYWRpdXMgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c31cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICB7LyogV2VpZ2h0ICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIud2VpZ2h0J30+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy53ZWlnaHR9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyR3JpZExheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyQWdncmVnYXRpb25MYXllckNvbmZpZyhwcm9wcyk7XG4gICAgfVxuXG4gICAgX3JlbmRlckhleGFnb25MYXllckNvbmZpZyhwcm9wcykge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlckFnZ3JlZ2F0aW9uTGF5ZXJDb25maWcocHJvcHMpO1xuICAgIH1cblxuICAgIF9yZW5kZXJBZ2dyZWdhdGlvbkxheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICBjb25zdCB7Y29uZmlnfSA9IGxheWVyO1xuICAgICAgY29uc3Qge1xuICAgICAgICB2aXNDb25maWc6IHtlbmFibGUzZH1cbiAgICAgIH0gPSBjb25maWc7XG4gICAgICBjb25zdCBlbGV2YXRpb25CeURlc2NyaXB0aW9uID0gJ2xheWVyLmVsZXZhdGlvbkJ5RGVzY3JpcHRpb24nO1xuICAgICAgY29uc3QgY29sb3JCeURlc2NyaXB0aW9uID0gJ2xheWVyLmNvbG9yQnlEZXNjcmlwdGlvbic7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPEFnZ3JTY2FsZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VWaXNDb25maWc9e2xheWVyQ2hhbm5lbENvbmZpZ1Byb3BzLm9uQ2hhbmdlVmlzQ29uZmlnfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvbG9yQWdncmVnYXRpb24uY29uZGl0aW9uKGxheWVyLmNvbmZpZykgPyAoXG4gICAgICAgICAgICAgICAgPEFnZ3JlZ2F0aW9uVHlwZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY29sb3JBZ2dyZWdhdGlvbn1cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtjb2xvckJ5RGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnBlcmNlbnRpbGUgJiZcbiAgICAgICAgICAgICAgbGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucGVyY2VudGlsZS5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucGVyY2VudGlsZX1cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogQ2VsbCBzaXplICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIucmFkaXVzJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy53b3JsZFVuaXRTaXplfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvdmVyYWdlfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBFbGV2YXRpb24gKi99XG4gICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVuYWJsZTNkID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVuYWJsZTNkfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uU2NhbGV9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmhlaWdodE11bHRpcGxpZXJcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17ZWxldmF0aW9uQnlEZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshZW5hYmxlM2R9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8QWdnclNjYWxlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlVmlzQ29uZmlnPXtsYXllckNoYW5uZWxDb25maWdQcm9wcy5vbkNoYW5nZVZpc0NvbmZpZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD1cImxheWVyVmlzQ29uZmlncy5oZWlnaHRSYW5nZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZUFnZ3JlZ2F0aW9uLmNvbmRpdGlvbihsYXllci5jb25maWcpID8gKFxuICAgICAgICAgICAgICAgICAgPEFnZ3JlZ2F0aW9uVHlwZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplQWdncmVnYXRpb259XG4gICAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblBlcmNlbnRpbGUuY29uZGl0aW9uKGxheWVyLmNvbmZpZykgPyAoXG4gICAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25QZXJjZW50aWxlfVxuICAgICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBTaGFuIG1vdmUgdGhlc2UgaW50byBsYXllciBjbGFzc1xuICAgIF9yZW5kZXJIZXhhZ29uSWRMYXllckNvbmZpZyh7XG4gICAgICBsYXllcixcbiAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzXG4gICAgfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmNvbG9yJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIENvdmVyYWdlICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY292ZXJhZ2UnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHshbGF5ZXIuY29uZmlnLmNvdmVyYWdlRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2VSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb3ZlcmFnZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBoZWlnaHQgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGUzZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZVJhbmdlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD1cImxheWVyVmlzQ29uZmlncy5oZWlnaHRSYW5nZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlckFyY0xheWVyQ29uZmlnKGFyZ3MpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJMaW5lTGF5ZXJDb25maWcoYXJncyk7XG4gICAgfVxuXG4gICAgX3JlbmRlckxpbmVMYXllckNvbmZpZyh7XG4gICAgICBsYXllcixcbiAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzXG4gICAgfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmNvbG9yJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QXJjTGF5ZXJDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgIHNldENvbG9yVUk9e2xheWVyQ29uZmlndXJhdG9yUHJvcHMuc2V0Q29sb3JVSX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUNvbmZpZz17bGF5ZXJDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZVZpc0NvbmZpZz17dmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNvdXJjZUNvbG9yfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogdGhpY2tuZXNzICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuc3Ryb2tlJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshbGF5ZXIuY29uZmlnLnNpemVGaWVsZH1cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnRoaWNrbmVzc31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIGVsZXZhdGlvbiBzY2FsZSAqL31cbiAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uU2NhbGUgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD1cImxheWVyVmlzQ29uZmlncy5lbGV2YXRpb25TY2FsZVwiIGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblNjYWxlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlclRyaXBMYXllckNvbmZpZyh7XG4gICAgICBsYXllcixcbiAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzXG4gICAgfSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtZXRhOiB7ZmVhdHVyZVR5cGVzID0ge319XG4gICAgICB9ID0gbGF5ZXI7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5jb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvciB7Li4ubGF5ZXJDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cImxheWVyLnN0cm9rZVdpZHRoXCIgY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBUcmFpbCBMZW5ndGgqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgey4uLihmZWF0dXJlVHlwZXMucG9seWdvbiA/IGxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0cm9rZWQgOiB7fSl9XG4gICAgICAgICAgICBsYWJlbD1cImxheWVyLnRyYWlsTGVuZ3RoXCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwibGF5ZXIudHJhaWxMZW5ndGhEZXNjcmlwdGlvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudHJhaWxMZW5ndGh9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJHZW9qc29uTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWV0YToge2ZlYXR1cmVUeXBlcyA9IHt9fSxcbiAgICAgICAgY29uZmlnOiB7dmlzQ29uZmlnfVxuICAgICAgfSA9IGxheWVyO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIEZpbGwgQ29sb3IgKi99XG4gICAgICAgICAge2ZlYXR1cmVUeXBlcy5wb2x5Z29uIHx8IGZlYXR1cmVUeXBlcy5wb2ludCA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWR9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgbGFiZWw9XCJsYXllci5maWxsQ29sb3JcIlxuICAgICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgey8qIHN0cm9rZSBjb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0cm9rZWR9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBsYWJlbD1cImxheWVyLnN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zdHJva2VDb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yUmFuZ2VcIiAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvclxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBzZWxlY3RlZENvbG9yPXtsYXllci5jb25maWcudmlzQ29uZmlnLnN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICAgIHByb3BlcnR5PVwic3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlT3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIHsuLi4oZmVhdHVyZVR5cGVzLnBvbHlnb24gPyBsYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkIDoge30pfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5zdHJva2VXaWR0aFwiXG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50aGlja25lc3N9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBFbGV2YXRpb24gKi99XG4gICAgICAgICAge2ZlYXR1cmVUeXBlcy5wb2x5Z29uID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2R9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXshdmlzQ29uZmlnLmZpbGxlZH1cbiAgICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mud2lyZWZyYW1lfSAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgey8qIFJhZGl1cyAqL31cbiAgICAgICAgICB7ZmVhdHVyZVR5cGVzLnBvaW50ID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgeyFsYXllci5jb25maWcucmFkaXVzRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtCb29sZWFuKGxheWVyLmNvbmZpZy5yYWRpdXNGaWVsZCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy5yYWRpdXNGaWVsZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyM0RMYXllckNvbmZpZyh7bGF5ZXIsIHZpc0NvbmZpZ3VyYXRvclByb3BzfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuM0RNb2RlbCd9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgYWNjZXB0PVwiLmdsYiwuZ2x0ZlwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuZmlsZXMgJiYgZS50YXJnZXQuZmlsZXNbMF0pIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZS50YXJnZXQuZmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoe3NjZW5lZ3JhcGg6IHVybH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuM0RNb2RlbE9wdGlvbnMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVTY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYW5nbGVYfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5hbmdsZVl9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmFuZ2xlWn1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlclMyTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY29uZmlnOiB7dmlzQ29uZmlnfVxuICAgICAgfSA9IGxheWVyO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsbGVkfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5maWxsQ29sb3JcIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIFN0cm9rZSAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0cm9rZWR9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBsYWJlbD1cImxheWVyLnN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zdHJva2VDb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yUmFuZ2VcIiAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvclxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBzZWxlY3RlZENvbG9yPXtsYXllci5jb25maWcudmlzQ29uZmlnLnN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICAgIHByb3BlcnR5PVwic3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cImxheWVyLnN0cm9rZVdpZHRoXCIgY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogRWxldmF0aW9uICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2R9XG4gICAgICAgICAgICBkaXNhYmxlZD17IXZpc0NvbmZpZy5maWxsZWR9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmhlaWdodH1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblNjYWxlfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmVsZXZhdGlvblNjYWxlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuaGVpZ2h0UmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmhlaWdodFJhbmdlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy53aXJlZnJhbWV9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2xheWVyLCBkYXRhc2V0cywgdXBkYXRlTGF5ZXJDb25maWcsIGxheWVyVHlwZU9wdGlvbnMsIHVwZGF0ZUxheWVyVHlwZX0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge2ZpZWxkcyA9IFtdLCBmaWVsZFBhaXJzID0gdW5kZWZpbmVkfSA9IGxheWVyLmNvbmZpZy5kYXRhSWRcbiAgICAgICAgPyBkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXVxuICAgICAgICA6IHt9O1xuICAgICAgY29uc3Qge2NvbmZpZ30gPSBsYXllcjtcblxuICAgICAgY29uc3QgdmlzQ29uZmlndXJhdG9yUHJvcHMgPSBnZXRWaXNDb25maWd1cmF0b3JQcm9wcyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGxheWVyQ29uZmlndXJhdG9yUHJvcHMgPSBnZXRMYXllckNvbmZpZ3VyYXRvclByb3BzKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMgPSBnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGRhdGFzZXQgPSBnZXRMYXllckRhdGFzZXQoZGF0YXNldHMsIGxheWVyKTtcbiAgICAgIGNvbnN0IHJlbmRlclRlbXBsYXRlID0gbGF5ZXIudHlwZSAmJiBgX3JlbmRlciR7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGxheWVyLnR5cGUpfUxheWVyQ29uZmlnYDtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHtsYXllci5sYXllckluZm9Nb2RhbCA/IChcbiAgICAgICAgICAgIDxIb3dUb0J1dHRvbiBvbkNsaWNrPXsoKSA9PiB0aGlzLnByb3BzLm9wZW5Nb2RhbChsYXllci5sYXllckluZm9Nb2RhbCl9IC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIGxhYmVsPXsnbGF5ZXIuYmFzaWMnfVxuICAgICAgICAgICAgY29sbGFwc2libGU9e09iamVjdC5rZXlzKGxheWVyLmNvbmZpZy5jb2x1bW5zKS5sZW5ndGggPiAwfVxuICAgICAgICAgICAgZXhwYW5kZWQ9eyFsYXllci5oYXNBbGxDb2x1bW5zKCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPExheWVyVHlwZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICBsYXllclR5cGVPcHRpb25zPXtsYXllclR5cGVPcHRpb25zfVxuICAgICAgICAgICAgICBvblNlbGVjdD17dXBkYXRlTGF5ZXJUeXBlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtPYmplY3Qua2V5cyhkYXRhc2V0cykubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgICAgIDxTb3VyY2VEYXRhU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgICAgIGRhdGFJZD17Y29uZmlnLmRhdGFJZH1cbiAgICAgICAgICAgICAgICBvblNlbGVjdD17dmFsdWUgPT4gdXBkYXRlTGF5ZXJDb25maWcoe2RhdGFJZDogdmFsdWV9KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7T2JqZWN0LmtleXMobGF5ZXIuY29uZmlnLmNvbHVtbnMpLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPExheWVyQ29sdW1uQ29uZmlnXG4gICAgICAgICAgICAgICAgICBjb2x1bW5QYWlycz17bGF5ZXIuY29sdW1uUGFpcnN9XG4gICAgICAgICAgICAgICAgICBjb2x1bW5zPXtsYXllci5jb25maWcuY29sdW1uc31cbiAgICAgICAgICAgICAgICAgIGFzc2lnbkNvbHVtblBhaXJzPXtsYXllci5hc3NpZ25Db2x1bW5QYWlycy5iaW5kKGxheWVyKX1cbiAgICAgICAgICAgICAgICAgIGFzc2lnbkNvbHVtbj17bGF5ZXIuYXNzaWduQ29sdW1uLmJpbmQobGF5ZXIpfVxuICAgICAgICAgICAgICAgICAgY29sdW1uTGFiZWxzPXtsYXllci5jb2x1bW5MYWJlbHN9XG4gICAgICAgICAgICAgICAgICBmaWVsZHM9e2ZpZWxkc31cbiAgICAgICAgICAgICAgICAgIGZpZWxkUGFpcnM9e2ZpZWxkUGFpcnN9XG4gICAgICAgICAgICAgICAgICB1cGRhdGVMYXllckNvbmZpZz17dXBkYXRlTGF5ZXJDb25maWd9XG4gICAgICAgICAgICAgICAgICB1cGRhdGVMYXllclR5cGU9e3RoaXMucHJvcHMudXBkYXRlTGF5ZXJUeXBlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICB7dGhpc1tyZW5kZXJUZW1wbGF0ZV0gJiZcbiAgICAgICAgICAgIHRoaXNbcmVuZGVyVGVtcGxhdGVdKHtcbiAgICAgICAgICAgICAgbGF5ZXIsXG4gICAgICAgICAgICAgIGRhdGFzZXQsXG4gICAgICAgICAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgICAgICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wcyxcbiAgICAgICAgICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wc1xuICAgICAgICAgICAgfSl9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBMYXllckNvbmZpZ3VyYXRvcjtcbn1cbi8qXG4gKiBDb21wb25lbnRpemUgY29uZmlnIGNvbXBvbmVudCBpbnRvIHB1cmUgZnVuY3Rpb25hbCBjb21wb25lbnRzXG4gKi9cblxuY29uc3QgU3R5bGVkSG93VG9CdXR0b24gPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMnB4O1xuICB0b3A6IC00cHg7XG5gO1xuXG5leHBvcnQgY29uc3QgSG93VG9CdXR0b24gPSAoe29uQ2xpY2t9KSA9PiAoXG4gIDxTdHlsZWRIb3dUb0J1dHRvbj5cbiAgICA8QnV0dG9uIGxpbmsgc21hbGwgb25DbGljaz17b25DbGlja30+XG4gICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J2xheWVyQ29uZmlndXJhdGlvbi5ob3dUbyd9IC8+XG4gICAgPC9CdXR0b24+XG4gIDwvU3R5bGVkSG93VG9CdXR0b24+XG4pO1xuXG5leHBvcnQgY29uc3QgTGF5ZXJDb2xvclNlbGVjdG9yID0gKHtcbiAgbGF5ZXIsXG4gIG9uQ2hhbmdlLFxuICBsYWJlbCxcbiAgc2VsZWN0ZWRDb2xvcixcbiAgcHJvcGVydHkgPSAnY29sb3InLFxuICBzZXRDb2xvclVJXG59KSA9PiAoXG4gIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgIDxQYW5lbExhYmVsPlxuICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJsYXllci5jb2xvclwiIC8+XG4gICAgPC9QYW5lbExhYmVsPlxuICAgIDxDb2xvclNlbGVjdG9yXG4gICAgICBjb2xvclNldHM9e1tcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdGVkQ29sb3I6IHNlbGVjdGVkQ29sb3IgfHwgbGF5ZXIuY29uZmlnLmNvbG9yLFxuICAgICAgICAgIHNldENvbG9yOiByZ2JWYWx1ZSA9PiBvbkNoYW5nZSh7W3Byb3BlcnR5XTogcmdiVmFsdWV9KVxuICAgICAgICB9XG4gICAgICBdfVxuICAgICAgY29sb3JVST17bGF5ZXIuY29uZmlnLmNvbG9yVUlbcHJvcGVydHldfVxuICAgICAgc2V0Q29sb3JVST17bmV3Q29uZmlnID0+IHNldENvbG9yVUkocHJvcGVydHksIG5ld0NvbmZpZyl9XG4gICAgLz5cbiAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuKTtcblxuZXhwb3J0IGNvbnN0IEFyY0xheWVyQ29sb3JTZWxlY3RvciA9ICh7XG4gIGxheWVyLFxuICBvbkNoYW5nZUNvbmZpZyxcbiAgb25DaGFuZ2VWaXNDb25maWcsXG4gIHByb3BlcnR5ID0gJ2NvbG9yJyxcbiAgc2V0Q29sb3JVSVxufSkgPT4gKFxuICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICA8UGFuZWxMYWJlbD5cbiAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwibGF5ZXIuY29sb3JSYW5nZVwiIC8+XG4gICAgPC9QYW5lbExhYmVsPlxuICAgIDxDb2xvclNlbGVjdG9yXG4gICAgICBjb2xvclNldHM9e1tcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdGVkQ29sb3I6IGxheWVyLmNvbmZpZy5jb2xvcixcbiAgICAgICAgICBzZXRDb2xvcjogcmdiVmFsdWUgPT4gb25DaGFuZ2VDb25maWcoe2NvbG9yOiByZ2JWYWx1ZX0pLFxuICAgICAgICAgIGxhYmVsOiAnU291cmNlJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2VsZWN0ZWRDb2xvcjogbGF5ZXIuY29uZmlnLnZpc0NvbmZpZy50YXJnZXRDb2xvciB8fCBsYXllci5jb25maWcuY29sb3IsXG4gICAgICAgICAgc2V0Q29sb3I6IHJnYlZhbHVlID0+IG9uQ2hhbmdlVmlzQ29uZmlnKHt0YXJnZXRDb2xvcjogcmdiVmFsdWV9KSxcbiAgICAgICAgICBsYWJlbDogJ1RhcmdldCdcbiAgICAgICAgfVxuICAgICAgXX1cbiAgICAgIGNvbG9yVUk9e2xheWVyLmNvbmZpZy5jb2xvclVJW3Byb3BlcnR5XX1cbiAgICAgIHNldENvbG9yVUk9e25ld0NvbmZpZyA9PiBzZXRDb2xvclVJKHByb3BlcnR5LCBuZXdDb25maWcpfVxuICAgIC8+XG4gIDwvU2lkZVBhbmVsU2VjdGlvbj5cbik7XG5cbmV4cG9ydCBjb25zdCBMYXllckNvbG9yUmFuZ2VTZWxlY3RvciA9ICh7bGF5ZXIsIG9uQ2hhbmdlLCBwcm9wZXJ0eSA9ICdjb2xvclJhbmdlJywgc2V0Q29sb3JVSX0pID0+IChcbiAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgPFBhbmVsTGFiZWw+XG4gICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImxheWVyLmNvbG9yUmFuZ2VcIiAvPlxuICAgIDwvUGFuZWxMYWJlbD5cbiAgICA8Q29sb3JTZWxlY3RvclxuICAgICAgY29sb3JTZXRzPXtbXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3RlZENvbG9yOiBsYXllci5jb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XSxcbiAgICAgICAgICBpc1JhbmdlOiB0cnVlLFxuICAgICAgICAgIHNldENvbG9yOiBjb2xvclJhbmdlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHtjb2xvck1hcH0gPSBsYXllci5jb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yUmFuZ2VVcGRhdGVkID0gY29sb3JNYXBcbiAgICAgICAgICAgICAgPyBsYXllci51cGRhdGVDb2xvck1hcChwcm9wZXJ0eSwgY29sb3JNYXAsIGNvbG9yUmFuZ2UpXG4gICAgICAgICAgICAgIDogY29sb3JSYW5nZTtcbiAgICAgICAgICAgIG9uQ2hhbmdlKHtbcHJvcGVydHldOiBjb2xvclJhbmdlVXBkYXRlZH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXX1cbiAgICAgIGNvbG9yVUk9e2xheWVyLmNvbmZpZy5jb2xvclVJW3Byb3BlcnR5XX1cbiAgICAgIHNldENvbG9yVUk9e25ld0NvbmZpZyA9PiBzZXRDb2xvclVJKHByb3BlcnR5LCBuZXdDb25maWcpfVxuICAgIC8+XG4gIDwvU2lkZVBhbmVsU2VjdGlvbj5cbik7XG5cbkNoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5LmRlcHMgPSBbVmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yRmFjdG9yeV07XG5leHBvcnQgZnVuY3Rpb24gQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnkoVmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yKSB7XG4gIGNvbnN0IENoYW5uZWxCeVZhbHVlU2VsZWN0b3IgPSAoe1xuICAgIGxheWVyLFxuICAgIGNoYW5uZWwsXG4gICAgb25DaGFuZ2UsXG4gICAgb25DaGFuZ2VWaXNDb25maWcsXG4gICAgZmllbGRzLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGlzTG9hZGluZ1xuICB9KSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgY2hhbm5lbFNjYWxlVHlwZSxcbiAgICAgIGRvbWFpbixcbiAgICAgIGZpZWxkLFxuICAgICAga2V5LFxuICAgICAgcHJvcGVydHksXG4gICAgICByYW5nZSxcbiAgICAgIHNjYWxlLFxuICAgICAgZGVmYXVsdE1lYXN1cmUsXG4gICAgICBzdXBwb3J0ZWRGaWVsZFR5cGVzXG4gICAgfSA9IGNoYW5uZWw7XG4gICAgY29uc3QgY2hhbm5lbFN1cHBvcnRlZEZpZWxkVHlwZXMgPVxuICAgICAgc3VwcG9ydGVkRmllbGRUeXBlcyB8fCBDSEFOTkVMX1NDQUxFX1NVUFBPUlRFRF9GSUVMRFNbY2hhbm5lbFNjYWxlVHlwZV07XG4gICAgY29uc3Qgc3VwcG9ydGVkRmllbGRzID0gZmllbGRzLmZpbHRlcigoe3R5cGV9KSA9PiBjaGFubmVsU3VwcG9ydGVkRmllbGRUeXBlcy5pbmNsdWRlcyh0eXBlKSk7XG4gICAgY29uc3Qgc2NhbGVPcHRpb25zID0gbGF5ZXIuZ2V0U2NhbGVPcHRpb25zKGNoYW5uZWwua2V5KTtcbiAgICBjb25zdCBzaG93U2NhbGVDdXN0b21pemFibGUgPVxuICAgICAgY2hhbm5lbFNjYWxlVHlwZSA9PT0gQ0hBTk5FTF9TQ0FMRVMuY29sb3IgJiZcbiAgICAgIGxheWVyLmNvbmZpZ1tzY2FsZV0gJiZcbiAgICAgIEJvb2xlYW4obGF5ZXIuY29uZmlnW2ZpZWxkXSkgJiZcbiAgICAgIHNjYWxlT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IHNob3dTY2FsZSA9XG4gICAgICAhc2hvd1NjYWxlQ3VzdG9taXphYmxlICYmXG4gICAgICAhbGF5ZXIuaXNBZ2dyZWdhdGVkICYmXG4gICAgICBsYXllci5jb25maWdbc2NhbGVdICYmXG4gICAgICBzY2FsZU9wdGlvbnMubGVuZ3RoID4gMTtcbiAgICBjb25zdCBkZWZhdWx0RGVzY3JpcHRpb24gPSAnbGF5ZXJDb25maWd1cmF0aW9uLmRlZmF1bHREZXNjcmlwdGlvbic7XG4gICAgY29uc3QgdmlzUmFuZ2UgPSBsYXllci5jb25maWcudmlzQ29uZmlnW3JhbmdlXTtcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yXG4gICAgICAgIGNoYW5uZWw9e2NoYW5uZWwua2V5fVxuICAgICAgICBkZXNjcmlwdGlvbj17ZGVzY3JpcHRpb24gfHwgZGVmYXVsdERlc2NyaXB0aW9ufVxuICAgICAgICBkb21haW49e2xheWVyLmNvbmZpZ1tkb21haW5dfVxuICAgICAgICBmaWVsZHM9e3N1cHBvcnRlZEZpZWxkc31cbiAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICBrZXk9e2Ake2tleX0tY2hhbm5lbC1zZWxlY3RvcmB9XG4gICAgICAgIHByb3BlcnR5PXtwcm9wZXJ0eX1cbiAgICAgICAgcGxhY2Vob2xkZXI9e2RlZmF1bHRNZWFzdXJlIHx8ICdwbGFjZWhvbGRlci5zZWxlY3RGaWVsZCd9XG4gICAgICAgIHJhbmdlPXt2aXNSYW5nZX1cbiAgICAgICAgc2NhbGVPcHRpb25zPXtzY2FsZU9wdGlvbnN9XG4gICAgICAgIHNjYWxlVHlwZT17c2NhbGUgPyBsYXllci5jb25maWdbc2NhbGVdIDogbnVsbH1cbiAgICAgICAgc2VsZWN0ZWRGaWVsZD17bGF5ZXIuY29uZmlnW2ZpZWxkXX1cbiAgICAgICAgc2hvd1NjYWxlPXtzaG93U2NhbGV9XG4gICAgICAgIHNob3dTY2FsZUN1c3RvbWl6YWJsZT17c2hvd1NjYWxlQ3VzdG9taXphYmxlfVxuICAgICAgICB1cGRhdGVGaWVsZD17dmFsID0+IHtcbiAgICAgICAgICBpZiAodmlzUmFuZ2UuY29sb3JNYXApIHtcbiAgICAgICAgICAgIG9uQ2hhbmdlVmlzQ29uZmlnKHtbcmFuZ2VdOiB7Li4udmlzUmFuZ2UsIGNvbG9yTWFwOiB1bmRlZmluZWR9fSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9uQ2hhbmdlKHtbZmllbGRdOiB2YWx9LCBrZXkpO1xuICAgICAgICB9fVxuICAgICAgICB1cGRhdGVTY2FsZT17dmFsID0+IG9uQ2hhbmdlKHtbc2NhbGVdOiB2YWx9LCBrZXkpfVxuICAgICAgICB1cGRhdGVDdXN0b21QYWxldHRlPXtjb2xvck1hcCA9PiBvbkNoYW5nZVZpc0NvbmZpZyh7W3JhbmdlXTogey4uLnZpc1JhbmdlLCBjb2xvck1hcH19KX1cbiAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIENoYW5uZWxCeVZhbHVlU2VsZWN0b3I7XG59XG5cbkFnZ3JTY2FsZVNlbGVjdG9yRmFjdG9yeS5kZXBzID0gW0NvbG9yRGltZW5zaW9uU2NhbGVTZWxlY3RvckZhY3RvcnldO1xuXG5mdW5jdGlvbiBBZ2dyU2NhbGVTZWxlY3RvckZhY3RvcnkoQ29sb3JEaW1lbnNpb25TY2FsZVNlbGVjdG9yKSB7XG4gIGNsYXNzIEFnZ3JTY2FsZVNlbGVjdG9yIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7Y2hhbm5lbCwgbGF5ZXIsIG9uQ2hhbmdlLCBvbkNoYW5nZVZpc0NvbmZpZ30gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge3NjYWxlLCBrZXksIGNoYW5uZWxTY2FsZVR5cGUsIGRvbWFpbiwgcmFuZ2V9ID0gY2hhbm5lbDtcbiAgICAgIGNvbnN0IHNjYWxlT3B0aW9ucyA9IGxheWVyLmdldFNjYWxlT3B0aW9ucyhrZXkpO1xuICAgICAgY29uc3QgdmlzUmFuZ2UgPSBsYXllci5jb25maWcudmlzQ29uZmlnW3JhbmdlXTtcbiAgICAgIGNvbnN0IHNob3dTY2FsZUN1c3RvbWl6YWJsZSA9XG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGUgPT09IENIQU5ORUxfU0NBTEVTLmNvbG9yQWdnciAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KHNjYWxlT3B0aW9ucykgJiZcbiAgICAgICAgc2NhbGVPcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgICBjb25zdCBzaG93U2NhbGUgPSBBcnJheS5pc0FycmF5KHNjYWxlT3B0aW9ucykgJiYgc2NhbGVPcHRpb25zLmxlbmd0aCA+IDE7XG5cbiAgICAgIGlmIChzaG93U2NhbGVDdXN0b21pemFibGUpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgIDxDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JcbiAgICAgICAgICAgICAgbGFiZWw9e2Ake2tleX0gU2NhbGVgfVxuICAgICAgICAgICAgICBzY2FsZVR5cGU9e2xheWVyLmNvbmZpZ1tzY2FsZV19XG4gICAgICAgICAgICAgIG9wdGlvbnM9e3NjYWxlT3B0aW9uc31cbiAgICAgICAgICAgICAgZG9tYWluPXtsYXllci5jb25maWdbZG9tYWluXX1cbiAgICAgICAgICAgICAgcmFuZ2U9e3Zpc1JhbmdlfVxuICAgICAgICAgICAgICBvblNlbGVjdD17dmFsID0+IG9uQ2hhbmdlKHtbc2NhbGVdOiB2YWx9LCBrZXkpfVxuICAgICAgICAgICAgICBvblNldEN1c3RvbVBhbGV0dGU9e2NvbG9yTWFwID0+IG9uQ2hhbmdlVmlzQ29uZmlnKHtbcmFuZ2VdOiB7Li4udmlzUmFuZ2UsIGNvbG9yTWFwfX0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG93U2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RGltZW5zaW9uU2NhbGVTZWxlY3RvclxuICAgICAgICAgICAgbGFiZWw9e2Ake2tleX0gU2NhbGVgfVxuICAgICAgICAgICAgb3B0aW9ucz17c2NhbGVPcHRpb25zfVxuICAgICAgICAgICAgc2NhbGVUeXBlPXtsYXllci5jb25maWdbc2NhbGVdfVxuICAgICAgICAgICAgb25TZWxlY3Q9e3ZhbCA9PiBvbkNoYW5nZSh7W3NjYWxlXTogdmFsfSwga2V5KX1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIHJldHVybiBpbmplY3RJbnRsKEFnZ3JTY2FsZVNlbGVjdG9yKTtcbn1cblxuZXhwb3J0IGNvbnN0IEFnZ3JlZ2F0aW9uVHlwZVNlbGVjdG9yID0gKHtsYXllciwgY2hhbm5lbCwgb25DaGFuZ2V9KSA9PiB7XG4gIGNvbnN0IHtmaWVsZCwgYWdncmVnYXRpb24sIGtleX0gPSBjaGFubmVsO1xuICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbGF5ZXIuY29uZmlnW2ZpZWxkXTtcbiAgY29uc3Qge3Zpc0NvbmZpZ30gPSBsYXllci5jb25maWc7XG5cbiAgLy8gYWdncmVnYXRpb24gc2hvdWxkIG9ubHkgYmUgc2VsZWN0YWJsZSB3aGVuIGZpZWxkIGlzIHNlbGVjdGVkXG4gIGNvbnN0IGFnZ3JlZ2F0aW9uT3B0aW9ucyA9IGxheWVyLmdldEFnZ3JlZ2F0aW9uT3B0aW9ucyhrZXkpO1xuXG4gIHJldHVybiAoXG4gICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydsYXllci5hZ2dyZWdhdGVCeSd9IHZhbHVlcz17e2ZpZWxkOiBzZWxlY3RlZEZpZWxkLm5hbWV9fSAvPlxuICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICBzZWxlY3RlZEl0ZW1zPXt2aXNDb25maWdbYWdncmVnYXRpb25dfVxuICAgICAgICBvcHRpb25zPXthZ2dyZWdhdGlvbk9wdGlvbnN9XG4gICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PlxuICAgICAgICAgIG9uQ2hhbmdlKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2aXNDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5sYXllci5jb25maWcudmlzQ29uZmlnLFxuICAgICAgICAgICAgICAgIFthZ2dyZWdhdGlvbl06IHZhbHVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGFubmVsLmtleVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgLz5cbiAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICk7XG59O1xuLyogZXNsaW50LWVuYWJsZSBtYXgtcGFyYW1zICovXG4iXX0=
|
|
@@ -112,13 +112,16 @@ function VisConfigByFieldSelectorFactory(InfoHelper, FieldSelector, ColorDimensi
|
|
|
112
112
|
onSelect: this.props.updateScale,
|
|
113
113
|
disabled: scaleOptions.length < 2
|
|
114
114
|
}) : null), /*#__PURE__*/_react["default"].createElement("div", null, showScaleCustomizable && !this.props.isLoading && /*#__PURE__*/_react["default"].createElement(ColorDimensionScaleSelector, {
|
|
115
|
-
label: "".
|
|
115
|
+
label: /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
|
|
116
|
+
id: "scale.".concat((0, _utils.camelize)("".concat(property, " scale"))),
|
|
117
|
+
defaultMessage: label
|
|
118
|
+
}),
|
|
116
119
|
scaleType: this.props.scaleType,
|
|
117
120
|
options: scaleOptions,
|
|
118
121
|
domain: domain,
|
|
119
122
|
range: range,
|
|
120
123
|
onSelect: this.props.updateScale,
|
|
121
|
-
|
|
124
|
+
onSetCustomPalette: this.props.updateCustomPalette
|
|
122
125
|
})));
|
|
123
126
|
}
|
|
124
127
|
}]);
|
|
@@ -148,4 +151,4 @@ function VisConfigByFieldSelectorFactory(InfoHelper, FieldSelector, ColorDimensi
|
|
|
148
151
|
|
|
149
152
|
var _default = VisConfigByFieldSelectorFactory;
|
|
150
153
|
exports["default"] = _default;
|
|
151
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvdmlzLWNvbmZpZy1ieS1maWVsZC1zZWxlY3Rvci5qcyJdLCJuYW1lcyI6WyJWaXNDb25maWdCeUZpZWxkU2VsZWN0b3JGYWN0b3J5IiwiZGVwcyIsIkluZm9IZWxwZXJGYWNvdHJ5IiwiRmllbGRTZWxlY3RvckZhY3RvcnkiLCJDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5IiwiSW5mb0hlbHBlciIsIkZpZWxkU2VsZWN0b3IiLCJDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3IiLCJWaXNDb25maWdCeUZpZWxkU2VsZWN0b3IiLCJ2YWwiLCJwcm9wcyIsInVwZGF0ZUZpZWxkIiwicHJvcGVydHkiLCJzaG93U2NhbGUiLCJzaG93U2NhbGVDdXN0b21pemFibGUiLCJzZWxlY3RlZEZpZWxkIiwiZGVzY3JpcHRpb24iLCJsYWJlbCIsImludGwiLCJzY2FsZU9wdGlvbnMiLCJkb21haW4iLCJyYW5nZSIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsImRlZmF1bHRNZXNzYWdlIiwiZmllbGRzIiwibmFtZSIsInBsYWNlaG9sZGVyIiwiX3VwZGF0ZVZpc0J5RmllbGQiLCJpc0xvYWRpbmciLCJzY2FsZVR5cGUiLCJ1cGRhdGVTY2FsZSIsImxlbmd0aCIsInVwZGF0ZUN1c3RvbVBhbGV0dGUiLCJDb21wb25lbnQiLCJjaGFubmVsIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsImFycmF5T2YiLCJhbnkiLCJib29sIiwiZnVuYyIsIm9iamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUFBLCtCQUErQixDQUFDQyxJQUFoQyxHQUF1QyxDQUNyQ0Msc0JBRHFDLEVBRXJDQyx5QkFGcUMsRUFHckNDLHVDQUhxQyxD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LHNCQUFVSztBQWpCSixHQUYwRTtBQXNHL0YsU0FBTywyQkFBV2pDLHdCQUFYLENBQVA7QUFDRDs7ZUFFY1IsK0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2UsIGluamVjdEludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuXG5pbXBvcnQge1BhbmVsTGFiZWwsIFBhbmVsTGFiZWxXcmFwcGVyLCBTaWRlUGFuZWxTZWN0aW9ufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSW5mb0hlbHBlckZhY290cnkgZnJvbSAnY29tcG9uZW50cy9jb21tb24vaW5mby1oZWxwZXInO1xuaW1wb3J0IERpbWVuc2lvblNjYWxlU2VsZWN0b3IgZnJvbSAnLi9kaW1lbnNpb24tc2NhbGUtc2VsZWN0b3InO1xuaW1wb3J0IHtjYW1lbGl6ZX0gZnJvbSAndXRpbHMvdXRpbHMnO1xuaW1wb3J0IEZpZWxkU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4uLy4uL2NvbW1vbi9maWVsZC1zZWxlY3Rvcic7XG5pbXBvcnQgQ29sb3JEaW1lbnNpb25TY2FsZVNlbGVjdG9yRmFjdG9yeSBmcm9tICcuL2NvbG9yLWRpbWVuc2lvbi1zY2FsZS1zZWxlY3Rvcic7XG5cblZpc0NvbmZpZ0J5RmllbGRTZWxlY3RvckZhY3RvcnkuZGVwcyA9IFtcbiAgSW5mb0hlbHBlckZhY290cnksXG4gIEZpZWxkU2VsZWN0b3JGYWN0b3J5LFxuICBDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5XG5dO1xuZnVuY3Rpb24gVmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yRmFjdG9yeShJbmZvSGVscGVyLCBGaWVsZFNlbGVjdG9yLCBDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3IpIHtcbiAgY2xhc3MgVmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgY2hhbm5lbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgZmllbGRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHByb3BlcnR5OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBzaG93U2NhbGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgICBzaG93U2NhbGVDdXN0b21pemFibGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgICB1cGRhdGVGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIHVwZGF0ZVNjYWxlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgdXBkYXRlQ3VzdG9tUGFsZXR0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcblxuICAgICAgLy8gb3B0aW9uYWxcbiAgICAgIHNjYWxlVHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHNlbGVjdGVkRmllbGQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICBkZXNjcmlwdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBpc0xvYWRpbmc6IFByb3BUeXBlcy5ib29sXG4gICAgfTtcblxuICAgIF91cGRhdGVWaXNCeUZpZWxkID0gdmFsID0+IHtcbiAgICAgIHRoaXMucHJvcHMudXBkYXRlRmllbGQodmFsKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgc2hvd1NjYWxlLFxuICAgICAgICBzaG93U2NhbGVDdXN0b21pemFibGUsXG4gICAgICAgIHNlbGVjdGVkRmllbGQsXG4gICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgaW50bCxcbiAgICAgICAgc2NhbGVPcHRpb25zID0gW10sXG4gICAgICAgIGRvbWFpbixcbiAgICAgICAgcmFuZ2VcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgICAgICAgeyhsYWJlbCAmJiA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17bGFiZWx9IC8+KSB8fCAoXG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICBpZD1cImxheWVyLnByb3BlcnR5QmFzZWRPblwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17e1xuICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiBpbnRsLmZvcm1hdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGBwcm9wZXJ0eS4ke2NhbWVsaXplKHByb3BlcnR5KX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6IHByb3BlcnR5XG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgICAgICAgICB7ZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgICAgIDxJbmZvSGVscGVyXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17ZGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0eT17cHJvcGVydHl9XG4gICAgICAgICAgICAgICAgICBpZD17YCR7dGhpcy5wcm9wcy5pZH0tJHtwcm9wZXJ0eX1gfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgPEZpZWxkU2VsZWN0b3JcbiAgICAgICAgICAgICAgZmllbGRzPXt0aGlzLnByb3BzLmZpZWxkc31cbiAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkRmllbGQgJiYgc2VsZWN0ZWRGaWVsZC5uYW1lfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dGhpcy5wcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMuX3VwZGF0ZVZpc0J5RmllbGR9XG4gICAgICAgICAgICAgIGVyYXNhYmxlXG4gICAgICAgICAgICAgIGlzTG9hZGluZz17dGhpcy5wcm9wcy5pc0xvYWRpbmd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAge3Nob3dTY2FsZSAmJiAhdGhpcy5wcm9wcy5pc0xvYWRpbmcgPyAoXG4gICAgICAgICAgICAgIDxEaW1lbnNpb25TY2FsZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgc2NhbGVUeXBlPXt0aGlzLnByb3BzLnNjYWxlVHlwZX1cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzY2FsZU9wdGlvbnN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2Ake3Byb3BlcnR5fSBzY2FsZWB9XG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMudXBkYXRlU2NhbGV9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3NjYWxlT3B0aW9ucy5sZW5ndGggPCAyfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtzaG93U2NhbGVDdXN0b21pemFibGUgJiYgIXRoaXMucHJvcHMuaXNMb2FkaW5nICYmIChcbiAgICAgICAgICAgICAgPENvbG9yRGltZW5zaW9uU2NhbGVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGxhYmVsPXtgJHtwcm9wZXJ0eX0gc2NhbGVgfVxuICAgICAgICAgICAgICAgIHNjYWxlVHlwZT17dGhpcy5wcm9wcy5zY2FsZVR5cGV9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c2NhbGVPcHRpb25zfVxuICAgICAgICAgICAgICAgIGRvbWFpbj17ZG9tYWlufVxuICAgICAgICAgICAgICAgIHJhbmdlPXtyYW5nZX1cbiAgICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy5wcm9wcy51cGRhdGVTY2FsZX1cbiAgICAgICAgICAgICAgICBvblNlbGVjdEN1c3RvbVBhbGV0dGU9e3RoaXMucHJvcHMudXBkYXRlQ3VzdG9tUGFsZXR0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBpbmplY3RJbnRsKFZpc0NvbmZpZ0J5RmllbGRTZWxlY3Rvcik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpc0NvbmZpZ0J5RmllbGRTZWxlY3RvckZhY3Rvcnk7XG4iXX0=
|
|
154
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvdmlzLWNvbmZpZy1ieS1maWVsZC1zZWxlY3Rvci5qcyJdLCJuYW1lcyI6WyJWaXNDb25maWdCeUZpZWxkU2VsZWN0b3JGYWN0b3J5IiwiZGVwcyIsIkluZm9IZWxwZXJGYWNvdHJ5IiwiRmllbGRTZWxlY3RvckZhY3RvcnkiLCJDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5IiwiSW5mb0hlbHBlciIsIkZpZWxkU2VsZWN0b3IiLCJDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3IiLCJWaXNDb25maWdCeUZpZWxkU2VsZWN0b3IiLCJ2YWwiLCJwcm9wcyIsInVwZGF0ZUZpZWxkIiwicHJvcGVydHkiLCJzaG93U2NhbGUiLCJzaG93U2NhbGVDdXN0b21pemFibGUiLCJzZWxlY3RlZEZpZWxkIiwiZGVzY3JpcHRpb24iLCJsYWJlbCIsImludGwiLCJzY2FsZU9wdGlvbnMiLCJkb21haW4iLCJyYW5nZSIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsImRlZmF1bHRNZXNzYWdlIiwiZmllbGRzIiwibmFtZSIsInBsYWNlaG9sZGVyIiwiX3VwZGF0ZVZpc0J5RmllbGQiLCJpc0xvYWRpbmciLCJzY2FsZVR5cGUiLCJ1cGRhdGVTY2FsZSIsImxlbmd0aCIsInVwZGF0ZUN1c3RvbVBhbGV0dGUiLCJDb21wb25lbnQiLCJjaGFubmVsIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsImFycmF5T2YiLCJhbnkiLCJib29sIiwiZnVuYyIsIm9iamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUFBLCtCQUErQixDQUFDQyxJQUFoQyxHQUF1QyxDQUNyQ0Msc0JBRHFDLEVBRXJDQyx5QkFGcUMsRUFHckNDLHVDQUhxQyxD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QixzQkFBVUMsTUFmQTtBQWdCakJWLElBQUFBLFdBQVcsRUFBRVMsc0JBQVVDLE1BaEJOO0FBaUJqQlIsSUFBQUEsU0FBUyxFQUFFTyxzQkFBVUs7QUFqQkosR0FGMEU7QUEyRy9GLFNBQU8sMkJBQVdqQyx3QkFBWCxDQUFQO0FBQ0Q7O2VBRWNSLCtCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlLCBpbmplY3RJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcblxuaW1wb3J0IHtQYW5lbExhYmVsLCBQYW5lbExhYmVsV3JhcHBlciwgU2lkZVBhbmVsU2VjdGlvbn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IEluZm9IZWxwZXJGYWNvdHJ5IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2luZm8taGVscGVyJztcbmltcG9ydCBEaW1lbnNpb25TY2FsZVNlbGVjdG9yIGZyb20gJy4vZGltZW5zaW9uLXNjYWxlLXNlbGVjdG9yJztcbmltcG9ydCB7Y2FtZWxpemV9IGZyb20gJ3V0aWxzL3V0aWxzJztcbmltcG9ydCBGaWVsZFNlbGVjdG9yRmFjdG9yeSBmcm9tICcuLi8uLi9jb21tb24vZmllbGQtc2VsZWN0b3InO1xuaW1wb3J0IENvbG9yRGltZW5zaW9uU2NhbGVTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9jb2xvci1kaW1lbnNpb24tc2NhbGUtc2VsZWN0b3InO1xuXG5WaXNDb25maWdCeUZpZWxkU2VsZWN0b3JGYWN0b3J5LmRlcHMgPSBbXG4gIEluZm9IZWxwZXJGYWNvdHJ5LFxuICBGaWVsZFNlbGVjdG9yRmFjdG9yeSxcbiAgQ29sb3JEaW1lbnNpb25TY2FsZVNlbGVjdG9yRmFjdG9yeVxuXTtcbmZ1bmN0aW9uIFZpc0NvbmZpZ0J5RmllbGRTZWxlY3RvckZhY3RvcnkoSW5mb0hlbHBlciwgRmllbGRTZWxlY3RvciwgQ29sb3JEaW1lbnNpb25TY2FsZVNlbGVjdG9yKSB7XG4gIGNsYXNzIFZpc0NvbmZpZ0J5RmllbGRTZWxlY3RvciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGNoYW5uZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIGZpZWxkczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSkuaXNSZXF1aXJlZCxcbiAgICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBwcm9wZXJ0eTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgc2hvd1NjYWxlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgICAgc2hvd1NjYWxlQ3VzdG9taXphYmxlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgICAgdXBkYXRlRmllbGQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICB1cGRhdGVTY2FsZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIHVwZGF0ZUN1c3RvbVBhbGV0dGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG5cbiAgICAgIC8vIG9wdGlvbmFsXG4gICAgICBzY2FsZVR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBzZWxlY3RlZEZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgZGVzY3JpcHRpb246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgaXNMb2FkaW5nOiBQcm9wVHlwZXMuYm9vbFxuICAgIH07XG5cbiAgICBfdXBkYXRlVmlzQnlGaWVsZCA9IHZhbCA9PiB7XG4gICAgICB0aGlzLnByb3BzLnVwZGF0ZUZpZWxkKHZhbCk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcHJvcGVydHksXG4gICAgICAgIHNob3dTY2FsZSxcbiAgICAgICAgc2hvd1NjYWxlQ3VzdG9taXphYmxlLFxuICAgICAgICBzZWxlY3RlZEZpZWxkLFxuICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIGludGwsXG4gICAgICAgIHNjYWxlT3B0aW9ucyA9IFtdLFxuICAgICAgICBkb21haW4sXG4gICAgICAgIHJhbmdlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgICAgICAgIHsobGFiZWwgJiYgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e2xhYmVsfSAvPikgfHwgKFxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJsYXllci5wcm9wZXJ0eUJhc2VkT25cIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogaW50bC5mb3JtYXRNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBgcHJvcGVydHkuJHtjYW1lbGl6ZShwcm9wZXJ0eSl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlOiBwcm9wZXJ0eVxuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAge2Rlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICAgICAgICA8SW5mb0hlbHBlclxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e2Rlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgcHJvcGVydHk9e3Byb3BlcnR5fVxuICAgICAgICAgICAgICAgICAgaWQ9e2Ake3RoaXMucHJvcHMuaWR9LSR7cHJvcGVydHl9YH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgIDxGaWVsZFNlbGVjdG9yXG4gICAgICAgICAgICAgIGZpZWxkcz17dGhpcy5wcm9wcy5maWVsZHN9XG4gICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZEZpZWxkICYmIHNlbGVjdGVkRmllbGQubmFtZX1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLl91cGRhdGVWaXNCeUZpZWxkfVxuICAgICAgICAgICAgICBlcmFzYWJsZVxuICAgICAgICAgICAgICBpc0xvYWRpbmc9e3RoaXMucHJvcHMuaXNMb2FkaW5nfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtzaG93U2NhbGUgJiYgIXRoaXMucHJvcHMuaXNMb2FkaW5nID8gKFxuICAgICAgICAgICAgICA8RGltZW5zaW9uU2NhbGVTZWxlY3RvclxuICAgICAgICAgICAgICAgIHNjYWxlVHlwZT17dGhpcy5wcm9wcy5zY2FsZVR5cGV9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c2NhbGVPcHRpb25zfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtgJHtwcm9wZXJ0eX0gc2NhbGVgfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnByb3BzLnVwZGF0ZVNjYWxlfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzY2FsZU9wdGlvbnMubGVuZ3RoIDwgMn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7c2hvd1NjYWxlQ3VzdG9taXphYmxlICYmICF0aGlzLnByb3BzLmlzTG9hZGluZyAmJiAoXG4gICAgICAgICAgICAgIDxDb2xvckRpbWVuc2lvblNjYWxlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBsYWJlbD17XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICBpZD17YHNjYWxlLiR7Y2FtZWxpemUoYCR7cHJvcGVydHl9IHNjYWxlYCl9YH1cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2NhbGVUeXBlPXt0aGlzLnByb3BzLnNjYWxlVHlwZX1cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzY2FsZU9wdGlvbnN9XG4gICAgICAgICAgICAgICAgZG9tYWluPXtkb21haW59XG4gICAgICAgICAgICAgICAgcmFuZ2U9e3JhbmdlfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnByb3BzLnVwZGF0ZVNjYWxlfVxuICAgICAgICAgICAgICAgIG9uU2V0Q3VzdG9tUGFsZXR0ZT17dGhpcy5wcm9wcy51cGRhdGVDdXN0b21QYWxldHRlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluamVjdEludGwoVmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yRmFjdG9yeTtcbiJdfQ==
|