@sapui5/sap.fe.controls 1.130.1 → 1.131.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/controls/.library +1 -1
- package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.js +6 -6
- package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.tsx +5 -5
- package/src/sap/fe/controls/easyFilter/EasyFilterInput.js +11 -11
- package/src/sap/fe/controls/easyFilter/EasyFilterInput.tsx +11 -10
- package/src/sap/fe/controls/library.js +3 -2
- package/src/sap/fe/controls/library.ts +1 -0
- package/src/sap/fe/controls/messagebundle_ar.properties +23 -5
- package/src/sap/fe/controls/messagebundle_bg.properties +22 -4
- package/src/sap/fe/controls/messagebundle_ca.properties +22 -4
- package/src/sap/fe/controls/messagebundle_cnr.properties +22 -4
- package/src/sap/fe/controls/messagebundle_cs.properties +22 -4
- package/src/sap/fe/controls/messagebundle_cy.properties +22 -4
- package/src/sap/fe/controls/messagebundle_da.properties +22 -4
- package/src/sap/fe/controls/messagebundle_de.properties +22 -4
- package/src/sap/fe/controls/messagebundle_el.properties +22 -4
- package/src/sap/fe/controls/messagebundle_en.properties +22 -4
- package/src/sap/fe/controls/messagebundle_en_GB.properties +22 -4
- package/src/sap/fe/controls/messagebundle_en_US_saprigi.properties +22 -4
- package/src/sap/fe/controls/messagebundle_es.properties +22 -4
- package/src/sap/fe/controls/messagebundle_es_MX.properties +22 -4
- package/src/sap/fe/controls/messagebundle_et.properties +22 -4
- package/src/sap/fe/controls/messagebundle_fi.properties +22 -4
- package/src/sap/fe/controls/messagebundle_fr.properties +22 -4
- package/src/sap/fe/controls/messagebundle_fr_CA.properties +22 -4
- package/src/sap/fe/controls/messagebundle_hi.properties +22 -4
- package/src/sap/fe/controls/messagebundle_hr.properties +23 -5
- package/src/sap/fe/controls/messagebundle_hu.properties +23 -5
- package/src/sap/fe/controls/messagebundle_id.properties +22 -4
- package/src/sap/fe/controls/messagebundle_it.properties +22 -4
- package/src/sap/fe/controls/messagebundle_iw.properties +22 -4
- package/src/sap/fe/controls/messagebundle_ja.properties +22 -4
- package/src/sap/fe/controls/messagebundle_kk.properties +22 -4
- package/src/sap/fe/controls/messagebundle_ko.properties +22 -4
- package/src/sap/fe/controls/messagebundle_lt.properties +22 -4
- package/src/sap/fe/controls/messagebundle_lv.properties +22 -4
- package/src/sap/fe/controls/messagebundle_mk.properties +22 -4
- package/src/sap/fe/controls/messagebundle_ms.properties +22 -4
- package/src/sap/fe/controls/messagebundle_nl.properties +22 -4
- package/src/sap/fe/controls/messagebundle_no.properties +22 -4
- package/src/sap/fe/controls/messagebundle_pl.properties +22 -4
- package/src/sap/fe/controls/messagebundle_pt.properties +22 -4
- package/src/sap/fe/controls/messagebundle_pt_PT.properties +22 -4
- package/src/sap/fe/controls/messagebundle_ro.properties +22 -4
- package/src/sap/fe/controls/messagebundle_ru.properties +22 -4
- package/src/sap/fe/controls/messagebundle_sh.properties +22 -4
- package/src/sap/fe/controls/messagebundle_sk.properties +22 -4
- package/src/sap/fe/controls/messagebundle_sl.properties +22 -4
- package/src/sap/fe/controls/messagebundle_sr.properties +22 -4
- package/src/sap/fe/controls/messagebundle_sv.properties +22 -4
- package/src/sap/fe/controls/messagebundle_th.properties +22 -4
- package/src/sap/fe/controls/messagebundle_tr.properties +22 -4
- package/src/sap/fe/controls/messagebundle_uk.properties +22 -4
- package/src/sap/fe/controls/messagebundle_vi.properties +22 -4
- package/src/sap/fe/controls/messagebundle_zh_CN.properties +22 -4
- package/src/sap/fe/controls/messagebundle_zh_TW.properties +22 -4
package/package.json
CHANGED
|
@@ -309,14 +309,14 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/jsx-runt
|
|
|
309
309
|
icon: "sap-icon://ai",
|
|
310
310
|
class: "sapUiSmallMarginBegin",
|
|
311
311
|
ref: $topGoBtn,
|
|
312
|
-
visible: not(bindState(this.state
|
|
312
|
+
visible: not(bindState(this.state, "showResult")),
|
|
313
313
|
text: this.resourceBundle.getText("M_EASY_FILTER_GO"),
|
|
314
314
|
type: ButtonType.Emphasized,
|
|
315
315
|
press: this.onGoButtonPress.bind(this)
|
|
316
316
|
})]
|
|
317
317
|
}), _jsxs(FlexBox, {
|
|
318
318
|
renderType: "Bare",
|
|
319
|
-
visible: this.state
|
|
319
|
+
visible: bindState(this.state, "showResult"),
|
|
320
320
|
alignItems: FlexAlignItems.Center,
|
|
321
321
|
wrap: FlexWrap.Wrap,
|
|
322
322
|
justifyContent: FlexJustifyContent.SpaceBetween,
|
|
@@ -329,9 +329,9 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/jsx-runt
|
|
|
329
329
|
children: [_jsx(AINotice, {
|
|
330
330
|
resourceBundle: this.resourceBundle
|
|
331
331
|
}), _jsx(Tokenizer, {
|
|
332
|
-
editable: and(bindState(this.state
|
|
332
|
+
editable: and(bindState(this.state, "tokenizerEditable"), true),
|
|
333
333
|
class: "sapFeControlsTokenizer",
|
|
334
|
-
tokens: bindState(this.state
|
|
334
|
+
tokens: bindState(this.state, "tokens"),
|
|
335
335
|
ref: this.tokenizer,
|
|
336
336
|
children: {
|
|
337
337
|
tokens: (idx, ctx) => {
|
|
@@ -380,7 +380,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/jsx-runt
|
|
|
380
380
|
alignItems: FlexAlignItems.Center,
|
|
381
381
|
children: _jsx(Button, {
|
|
382
382
|
icon: "sap-icon://ai",
|
|
383
|
-
visible: this.state
|
|
383
|
+
visible: bindState(this.state, "showResult"),
|
|
384
384
|
text: this.resourceBundle.getText("M_EASY_FILTER_GO"),
|
|
385
385
|
type: ButtonType.Emphasized,
|
|
386
386
|
ref: $botGoBtn,
|
|
@@ -586,4 +586,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/jsx-runt
|
|
|
586
586
|
_exports = EasyFilterBarContainer;
|
|
587
587
|
return _exports;
|
|
588
588
|
}, false);
|
|
589
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFYXN5RmlsdGVyQmFyQ29udGFpbmVyIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjMyIsIl9kZWM0IiwiX2RlYzUiLCJfZGVjNiIsIl9kZWM3IiwiZGVmaW5lUmVmZXJlbmNlIiwiX2RlYzgiLCJfZGVjOSIsImFnZ3JlZ2F0aW9uIiwiX2RlYzEwIiwiZXZlbnQiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJkZWZpbmVTdGF0ZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQ29udHJvbCIsIl9pbmhlcml0c0xvb3NlIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwiX2Rlc2NyaXB0b3IxMCIsIl9kZXNjcmlwdG9yMTEiLCJfZGVzY3JpcHRvcjEyIiwiX2Rlc2NyaXB0b3IxMyIsIl9kZXNjcmlwdG9yMTQiLCJfZGVzY3JpcHRvcjE1IiwiX2Rlc2NyaXB0b3IxNiIsIm1hbmRhdG9yeUtleU1hcCIsInNob3VsZFRva2VuQ2hhbmdlRXZlbnRGaXJlZCIsImluaXRpYWxpemUiLCJfZXhwb3J0cyIsIl9wcm90byIsInByb3RvdHlwZSIsInNldEVhc3lGaWx0ZXJMaWIiLCJlYXN5RmlsdGVyTGliIiwic2V0UHJvcGVydHkiLCJlYXN5ZmlsdGVyIiwiX191aTVfcmVxdWlyZV9hc3luYyIsInJlc291cmNlQnVuZGxlIiwiTGliIiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsImlubmVyQ29udHJvbFBvcG92ZXIiLCJjcmVhdGVQb3BvdmVyRm9ySW5uZXJDb250cm9scyIsImFkZERlcGVuZGVudCIsInRva2VucyIsImdldERlZmF1bHRUb2tlbnMiLCJzdGF0ZSIsInNob3dSZXN1bHQiLCJsZW5ndGgiLCJpc01hbmRhdG9yeUNoZWNrUmVxdWlyZWQiLCJpc0RlZmF1bHRWYWx1ZXNSZXNwZWN0ZWQiLCJfdGhpcyRmaWx0ZXJCYXJNZXRhZGEiLCJmaWx0ZXJCYXJNZXRhZGF0YSIsImZvckVhY2giLCJkYXRhIiwicmVxdWlyZWQiLCJuYW1lIiwicHVzaCIsImtleSIsImxhYmVsIiwia2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcyIsImRlZmF1bHRWYWx1ZSIsIm9uRW50ZXJQcmVzc2VkIiwiZSIsIm9uR29QcmVzcyIsImdldFBhcmFtZXRlciIsImNoZWNrSWZBbGxNYW5kYXRvcnlUb2tlbnNGaWxsZWQiLCJ0b2tlbnNJblN0YXRlIiwiZ2V0VW5TZXRNYW5kYXRvcnlUb2tlbnNJbkN1cnJlbnRTdGF0ZSIsImdldEFjdHVhbFRva2Vuc0Zyb21TdGF0ZSIsInRva2VuIiwiVmFsdWVTdGF0ZSIsIkVycm9yIiwiZ2V0VGV4dCIsIm9wZW5WYWx1ZVN0YXRlTWVzc2FnZSIsImNsb3NlQWxsTWFuZGF0b3J5VmFsdWVTdGF0ZU1lc3NhZ2VzIiwiX3RoaXMkdG9rZW5pemVyJGN1cnJlIiwiZWFzeVRva2VucyIsInRva2VuaXplciIsImN1cnJlbnQiLCJnZXRUb2tlbnMiLCJjbG9zZVZhbHVlU3RhdGVNZXNzYWdlIiwibWFnaWNRdWVyeSIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dCIsImRvU2VhcmNoIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwicmVzZXRTdGF0ZSIsImdvUHJlc3NlZCIsInRva2VuaXplckVkaXRhYmxlIiwiZWFzeUZpbHRlcklucHV0Iiwic2V0RWRpdGFibGUiLCJmaXJlRXZlbnQiLCJlYXN5RmlsdGVyTWV0YWRhdGEiLCJ2ZXJzaW9uIiwiZW50aXR5U2V0IiwiY29udGV4dFBhdGgiLCJmaWVsZHMiLCJlYXN5RmlsdGVyUmVzdWx0IiwiZWFzeUZpbHRlciIsInN1Y2Nlc3MiLCJfdGhpcyRlYXN5RmlsdGVySW5wdXQyIiwiYWRkUmVjZW50UXVlcnkiLCJoYW5kbGVWMVN1Y2Nlc3MiLCJfdGhpcyRlYXN5RmlsdGVySW5wdXQzIiwic2V0QXNJbnZhbGlkIiwibWVzc2FnZSIsIkxvZyIsImVycm9yIiwidW5jbGVhciIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dDQiLCJmaWx0ZXIiLCJkZWJ1ZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJFYXN5RmlsdGVyVXRpbHMiLCJmb3JtYXREYXRhIiwiX2pzeCIsIlBvcG92ZXIiLCJpZCIsImdldElkIiwic2hvd0Fycm93Iiwic2hvd0hlYWRlciIsInBsYWNlbWVudCIsIlBsYWNlbWVudFR5cGUiLCJCb3R0b20iLCJjaGlsZHJlbiIsImZvb3RlciIsImdldFRvb2xiYXIiLCJ0b29sYmFyIiwib2tCdXR0b24iLCJnZXRPa0J1dHRvbiIsInNob3dBbGxCdXR0b24iLCJnZXRTaG93QWxsQnV0dG9uIiwiT3ZlcmZsb3dUb29sYmFyIiwiX2pzeHMiLCJfRnJhZ21lbnQiLCJUb29sYmFyU3BhY2VyIiwiQnV0dG9uIiwidGV4dCIsIkJ1dHRvblR5cGUiLCJFbXBoYXNpemVkIiwib25TdGF0ZUNoYW5nZSIsImNoYW5nZWRQcm9wcyIsImluY2x1ZGVzIiwibWFwIiwiZGVlcENsb25lIiwiZ29CdXR0b25QcmVzc2VkIiwidmFsdWVPZiIsIiR0b3BHb0J0biIsImNyZWF0ZVJlZmVyZW5jZSIsIiRib3RHb0J0biIsIm91dFZCb3giLCJWQm94IiwiRmxleEJveCIsInJlbmRlclR5cGUiLCJFYXN5RmlsdGVySW5wdXQiLCJyZWNvbW1lbmRlZFZhbHVlcyIsInJlZiIsImFwcElkIiwiZW50ZXJQcmVzc2VkIiwiYmluZCIsInF1ZXJ5Q2hhbmdlZCIsInF1ZXJ5IiwibGl2ZUNoYW5nZSIsImljb24iLCJjbGFzcyIsInZpc2libGUiLCJub3QiLCJiaW5kU3RhdGUiLCJwcmVzcyIsIm9uR29CdXR0b25QcmVzcyIsImFsaWduSXRlbXMiLCJGbGV4QWxpZ25JdGVtcyIsIkNlbnRlciIsIndyYXAiLCJGbGV4V3JhcCIsIldyYXAiLCJqdXN0aWZ5Q29udGVudCIsIkZsZXhKdXN0aWZ5Q29udGVudCIsIlNwYWNlQmV0d2VlbiIsIkFJTm90aWNlIiwiVG9rZW5pemVyIiwiZWRpdGFibGUiLCJhbmQiLCJpZHgiLCJjdHgiLCJfdGhpcyRmaWx0ZXJCYXJNZXRhZGEyIiwiX3RoaXMkZmlsdGVyQmFyTWV0YWRhMyIsIm9iamVjdCIsImdldE9iamVjdCIsIlRva2VuIiwiaXRlbXMiLCJtYW5kYXRvcnkiLCJpc0tleU1hbmRhdG9yeSIsImRlbGV0ZSIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dDUiLCJ0b2tlbkluZGV4IiwiZmluZEluZGV4IiwibmV3VG9rZW5zIiwiY29uY2F0Iiwic3BsaWNlIiwiY3VzdG9tRGF0YSIsIkN1c3RvbURhdGEiLCJ2YWx1ZSIsImZpbmQiLCJjb2RlTGlzdCIsIlRyYW5zcGFyZW50IiwiX3RoaXMkZWFzeUZpbHRlcklucHV0NiIsImZvY3VzIiwiRkVTUkhlbHBlciIsInNldFNlbWFudGljU3RlcG5hbWUiLCJfdGhpcyRlYXN5RmlsdGVySW5wdXQ3IiwiX3RoaXMkZWFzeUZpbHRlcklucHV0OCIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dDkiLCJlZGl0YWJsZVN0YXRlIiwiZ2V0RWRpdGFibGUiLCJnZXRWYWx1ZSIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dDEwIiwiX3RoaXMkZWFzeUZpbHRlcklucHV0MTEiLCJfdGhpcyR0b2tlbml6ZXIkY3VycmUyIiwiX3RoaXMkdG9rZW5pemVyJGN1cnJlMyIsInNldFZhbHVlIiwiTm9uZSIsInVwZGF0ZVRva2VuQXJyYXkiLCJjaGFuZ2VUeXBlIiwibmV3VG9rZW5TcGVjaWZpY1ZhbHVlcyIsInRva2VuS2V5IiwidCIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dDEyIiwic2V0U2VsZWN0ZWRWYWx1ZXMiLCJnZXRUb2tlbnNJbkluaXRpYWxTdGF0ZSIsIm1hbmRhdG9yeVRva2VucyIsIl90aGlzJHRva2VuaXplciRjdXJyZTQiLCJyZXF1aXJlZEtleXMiLCJnZXRLZXkiLCJyZW5kZXIiLCJybSIsImNvbnRyb2wiLCJqc3giLCJyZW5kZXJVc2luZ1JlbmRlck1hbmFnZXIiLCJnZXRBZ2dyZWdhdGlvbiIsIkNvbnRyb2wiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVhc3lGaWx0ZXJCYXJDb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgU3RhdGVPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7XG5cdGFnZ3JlZ2F0aW9uLFxuXHRjcmVhdGVSZWZlcmVuY2UsXG5cdGRlZmluZVJlZmVyZW5jZSxcblx0ZGVmaW5lU3RhdGUsXG5cdGRlZmluZVVJNUNsYXNzLFxuXHRldmVudCxcblx0cHJvcGVydHksXG5cdHR5cGUgUHJvcGVydGllc09mXG59IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgVG9rZW4gZnJvbSBcInNhcC9mZS9jb250cm9scy9lYXN5RmlsdGVyL1Rva2VuXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBGbGV4Qm94IGZyb20gXCJzYXAvbS9GbGV4Qm94XCI7XG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwic2FwL20vUG9wb3ZlclwiO1xuaW1wb3J0IFRva2VuaXplciBmcm9tIFwic2FwL20vVG9rZW5pemVyXCI7XG5pbXBvcnQgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IHsgQnV0dG9uVHlwZSwgRmxleEFsaWduSXRlbXMsIEZsZXhKdXN0aWZ5Q29udGVudCwgRmxleFdyYXAsIFBsYWNlbWVudFR5cGUgfSBmcm9tIFwic2FwL20vbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgTGliIGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCB0eXBlIFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCB7IFZhbHVlU3RhdGUgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcblxuaW1wb3J0IHR5cGUgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCBkZWVwQ2xvbmUgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcENsb25lXCI7XG5pbXBvcnQgeyBhbmQsIGJpbmRTdGF0ZSwgbm90IH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgRWFzeUZpbHRlcklucHV0IGZyb20gXCJzYXAvZmUvY29udHJvbHMvZWFzeUZpbHRlci9FYXN5RmlsdGVySW5wdXRcIjtcbmltcG9ydCB0eXBlIEVhc3lGaWx0ZXJUb2tlbiBmcm9tIFwic2FwL2ZlL2NvbnRyb2xzL2Vhc3lGaWx0ZXIvVG9rZW5cIjtcbmltcG9ydCBPdmVyZmxvd1Rvb2xiYXIgZnJvbSBcInNhcC9tL092ZXJmbG93VG9vbGJhclwiO1xuaW1wb3J0IFRvb2xiYXJTcGFjZXIgZnJvbSBcInNhcC9tL1Rvb2xiYXJTcGFjZXJcIjtcbmltcG9ydCB0eXBlIEZpbHRlck9wZXJhdG9yIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyT3BlcmF0b3JcIjtcbmltcG9ydCBGRVNSSGVscGVyIGZyb20gXCJzYXAvdWkvcGVyZm9ybWFuY2UvdHJhY2UvRkVTUkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgRWFzeUZpbHRlciBmcm9tIFwidXgvZW5nL2Zpb3JpYWkvcmV1c2UvZWFzeWZpbHRlci9FYXN5RmlsdGVyXCI7XG5pbXBvcnQgdHlwZSB7IEVhc3lGaWx0ZXJNZXRhZGF0YSwgUHJvcGVydHlNZXRhZGF0YSwgU3VjY2VzcyB9IGZyb20gXCJ1eC9lbmcvZmlvcmlhaS9yZXVzZS9lYXN5ZmlsdGVyL0Vhc3lGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIHsgRXZlbnRIYW5kbGVyIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3R5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuaW1wb3J0IEFJTm90aWNlIGZyb20gXCIuL0FJTm90aWNlXCI7XG5pbXBvcnQgRWFzeUZpbHRlclV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XG5cbi8vRm9yIGN1cnJlbnQgcmVsZWFzZSB3ZSBhcmUgaWdub3JpbmcgXCJBbGxcIiBhbmQgXCJBbnlcIlxuLy9XZSBjYW4gaW5jb3Jwb3JhdGUgdGhlc2UgdmFsdWVzIGluIGZ1dHVyZVxuZXhwb3J0IHR5cGUgQmV0d2VlblNlbGVjdGVkVmFsdWVzID0gW2Jvb2xlYW4sIGJvb2xlYW5dIHwgW3N0cmluZywgc3RyaW5nXSB8IFtudW1iZXIsIG51bWJlcl0gfCBbRGF0ZSwgRGF0ZV07XG5cbi8vV2Ugd2lsbCBiZSBoYW5kbGluZyBcIkFMTFwiIGFuZCBcIkFOWVwiIGF0IGxhdGVyIHBvaW50IG9mIHRpbWVcbmV4cG9ydCB0eXBlIFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uID1cblx0fCB7XG5cdFx0XHRvcGVyYXRvcjogRXhjbHVkZTxGaWx0ZXJPcGVyYXRvciwgRmlsdGVyT3BlcmF0b3IuQlQgfCBGaWx0ZXJPcGVyYXRvci5OQj47XG5cdFx0XHRzZWxlY3RlZFZhbHVlczogc3RyaW5nW10gfCBib29sZWFuW10gfCBudW1iZXJbXSB8IERhdGVbXTtcblx0ICB9XG5cdHwge1xuXHRcdFx0b3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yLkJUIHwgRmlsdGVyT3BlcmF0b3IuTkI7XG5cdFx0XHRzZWxlY3RlZFZhbHVlczogQmV0d2VlblNlbGVjdGVkVmFsdWVzO1xuXHQgIH07XG5cbmV4cG9ydCB0eXBlIFRva2VuVHlwZSA9IFwiTWVudVdpdGhDaGVja0JveFwiIHwgXCJDYWxlbmRhclwiIHwgXCJUaW1lXCIgfCBcIlZhbHVlSGVscFwiO1xuXG5leHBvcnQgdHlwZSBUb2tlbkRlZmluaXRpb24gPSB7XG5cdGtleTogc3RyaW5nO1xuXHRsYWJlbDogc3RyaW5nO1xuXHRrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzOiBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdO1xuXHR0eXBlPzogVG9rZW5UeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgVG9rZW5TZXR0ZXJzID0gXCJzZXRTZWxlY3RlZFZhbHVlc1wiO1xuXG5leHBvcnQgdHlwZSBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YSA9XG5cdHwgKFByb3BlcnR5TWV0YWRhdGEgJiB7XG5cdFx0XHR0eXBlOiBUb2tlblR5cGU7XG5cdFx0XHRsYWJlbDogc3RyaW5nOyAvLyBSZXF1aXJlZCBwcm9wZXJ0eSwgaGVuY2UgbGFiZWwgaXMgbWFuZGF0b3J5XG5cdFx0XHRyZXF1aXJlZDogdHJ1ZTtcblx0XHRcdGRlZmF1bHRWYWx1ZT86IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW107XG5cdCAgfSlcblx0fCAoUHJvcGVydHlNZXRhZGF0YSAmIHtcblx0XHRcdHR5cGU6IFRva2VuVHlwZTtcblx0XHRcdGxhYmVsPzogc3RyaW5nOyAvLyBPcHRpb25hbCBwcm9wZXJ0eSwgaGVuY2UgbGFiZWwgY2FuIGJlIG9taXR0ZWRcblx0XHRcdHJlcXVpcmVkOiBmYWxzZTtcblx0XHRcdGRlZmF1bHRWYWx1ZT86IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW107XG5cdCAgfSk7XG4vKlxuICogRGVsaXZlcnkgZm9yIGJldGEgcmVsZWFzZSBmb3IgdGhlIGVhc3kgZmlsdGVyIGZlYXR1cmUuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb250cm9scy5lYXN5RmlsdGVyLkVhc3lGaWx0ZXJCYXJDb250YWluZXJcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVhc3lGaWx0ZXJCYXJDb250YWluZXIgZXh0ZW5kcyBDb250cm9sIHtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGFwcElkPzogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0ZWFzeUZpbHRlckxpYj86IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFycmF5XCIgfSlcblx0ZmlsdGVyQmFyTWV0YWRhdGEhOiBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YVtdO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYXJyYXlcIiB9KVxuXHRyZWNvbW1lbmRlZFZhbHVlcz86IHN0cmluZ1tdO1xuXG5cdEBkZWZpbmVSZWZlcmVuY2UoKVxuXHRlYXN5RmlsdGVySW5wdXQhOiBSZWY8RW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlcklucHV0Pj47XG5cblx0QGRlZmluZVJlZmVyZW5jZSgpXG5cdHRva2VuaXplciE6IFJlZjxUb2tlbml6ZXI+O1xuXG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiIH0pXG5cdGNvbnRlbnQ/OiBDb250cm9sO1xuXG5cdEBldmVudCgpXG5cdHRva2Vuc0NoYW5nZWQ/OiBFdmVudEhhbmRsZXI8VUk1RXZlbnQ8eyB0b2tlbnM6IFRva2VuRGVmaW5pdGlvbltdOyBnb0J1dHRvblByZXNzZWQ6IGJvb2xlYW4gfSwgRWFzeUZpbHRlckJhckNvbnRhaW5lcj4+O1xuXG5cdEBldmVudCgpXG5cdHF1ZXJ5Q2hhbmdlZD86IEV2ZW50SGFuZGxlcjxVSTVFdmVudDx7IHF1ZXJ5OiBzdHJpbmcgfSwgRWFzeUZpbHRlckJhckNvbnRhaW5lcj4+O1xuXG5cdEBldmVudCgpXG5cdHNob3dWYWx1ZUhlbHA/OiBFdmVudEhhbmRsZXI8XG5cdFx0VUk1RXZlbnQ8XG5cdFx0XHR7IGtleTogc3RyaW5nOyB2YWx1ZXM6IHVua25vd25bXTsgcmVzb2x2ZTogKHZhbHVlOiBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdKSA9PiB2b2lkOyByZWplY3Q6IChyZWFzb24/OiBFcnJvcikgPT4gdm9pZCB9LFxuXHRcdFx0RWFzeUZpbHRlckJhckNvbnRhaW5lclxuXHRcdD5cblx0PjtcblxuXHRAZXZlbnQoKVxuXHRjbGVhckZpbHRlcnM/OiBFdmVudEhhbmRsZXI7XG5cblx0Ly9UaGUgZXZlbnQgd2lsbCBiZSB0cmlnZ2VyZWQgb25seSB3aGVuIHRoZSB0b2tlbnMgaGFzIGJlZW4gY2hhbmdlZCB3aXRoIHRva2VucyBhbmQgcHJlc3NlZCBvbiB0aGUgR28gQnV0dG9uXG5cdC8vSW4gdGhpcyBjYXNlIHRoZSBcIkVudGVyXCIgd29udCBiZSByZWxldmFudCBiZWNhdXNlIHRoZSBpbnB1dCBmaWVsZCB3aWxsIGJlIGluIG5vbiBlZGl0YWJsZSBzdGF0ZVxuXHRAZXZlbnQoKVxuXHRleGVjdXRlU2VhcmNoPzogRXZlbnRIYW5kbGVyO1xuXG5cdEBldmVudCgpXG5cdGJlZm9yZVF1ZXJ5UHJvY2Vzc2luZz86IEV2ZW50SGFuZGxlcjtcblxuXHRAZXZlbnQoKVxuXHRhZnRlclF1ZXJ5UHJvY2Vzc2luZz86IEV2ZW50SGFuZGxlcjtcblxuXHRwcml2YXRlIHJlc291cmNlQnVuZGxlITogUmVzb3VyY2VCdW5kbGU7XG5cblx0QGRlZmluZVN0YXRlKClcblx0cHJvdGVjdGVkIHN0YXRlOiBTdGF0ZU9mPHtcblx0XHRzaG93UmVzdWx0OiBib29sZWFuO1xuXHRcdHRva2VuczogVG9rZW5EZWZpbml0aW9uW107XG5cdFx0Z29QcmVzc2VkOiBib29sZWFuO1xuXHRcdHRva2VuaXplckVkaXRhYmxlOiBib29sZWFuO1xuXHR9PiA9IHtcblx0XHRzaG93UmVzdWx0OiBmYWxzZSxcblx0XHR0b2tlbnM6IFtdIGFzIFRva2VuRGVmaW5pdGlvbltdLFxuXHRcdGdvUHJlc3NlZDogZmFsc2UsXG5cdFx0dG9rZW5pemVyRWRpdGFibGU6IHRydWVcblx0fTtcblxuXHRwcml2YXRlIGlubmVyQ29udHJvbFBvcG92ZXI/OiBQb3BvdmVyO1xuXG5cdHByaXZhdGUgb2tCdXR0b24/OiBCdXR0b247XG5cblx0cHJpdmF0ZSBzaG93QWxsQnV0dG9uPzogQnV0dG9uO1xuXG5cdHByaXZhdGUgdG9vbGJhcj86IE92ZXJmbG93VG9vbGJhcjtcblxuXHRwcml2YXRlIG1hbmRhdG9yeUtleU1hcDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcblxuXHQvL0lmIHNldCB0byB0cnVlIHRoZSBlcnJvciBzdGF0ZSBjYW4gYmUgc2VlbiBvbiB0aGUgdG9rZW5zXG5cdHByaXZhdGUgaXNNYW5kYXRvcnlDaGVja1JlcXVpcmVkPzogYm9vbGVhbjtcblxuXHRwcml2YXRlIHNob3VsZFRva2VuQ2hhbmdlRXZlbnRGaXJlZCA9IHRydWU7XG5cblx0ZWFzeWZpbHRlcj86IFByb21pc2U8dHlwZW9mIEVhc3lGaWx0ZXIgfCB1bmRlZmluZWQ+O1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6IHN0cmluZyB8ICgkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPEVhc3lGaWx0ZXJCYXJDb250YWluZXI+KSwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMgYXMgc3RyaW5nLCBvdGhlcnMpO1xuXHRcdHRoaXMuaW5pdGlhbGl6ZSgpO1xuXHR9XG5cblx0c2V0RWFzeUZpbHRlckxpYihlYXN5RmlsdGVyTGliOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiZWFzeUZpbHRlckxpYlwiLCBlYXN5RmlsdGVyTGliKTtcblx0XHRpZiAodGhpcy5lYXN5RmlsdGVyTGliKSB7XG5cdFx0XHR0aGlzLmVhc3lmaWx0ZXIgPSBpbXBvcnQodGhpcy5lYXN5RmlsdGVyTGliKTtcblx0XHR9XG5cdH1cblxuXHRpbml0aWFsaXplKCk6IHZvaWQge1xuXHRcdHRoaXMucmVzb3VyY2VCdW5kbGUgPSBMaWIuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29udHJvbHNcIikhO1xuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdHRoaXMuaW5uZXJDb250cm9sUG9wb3ZlciA9IHRoaXMuY3JlYXRlUG9wb3ZlckZvcklubmVyQ29udHJvbHMoKTtcblx0XHR0aGlzLmFkZERlcGVuZGVudCh0aGlzLmlubmVyQ29udHJvbFBvcG92ZXIpO1xuXHRcdC8vIHBvcHVsYXRlIHRoZSB0b2tlbnMgd2l0aCBkZWZhdWx0IHZhbHVlXG5cdFx0Y29uc3QgdG9rZW5zID0gdGhpcy5nZXREZWZhdWx0VG9rZW5zKHRydWUpO1xuXHRcdHRoaXMuc3RhdGUudG9rZW5zID0gdG9rZW5zO1xuXHRcdHRoaXMuc3RhdGUuc2hvd1Jlc3VsdCA9IHRva2Vucy5sZW5ndGggPiAwO1xuXHRcdC8vV2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IGVycm9yIHZhbHVlU3RhdGVNZXNzYWdlIGFzIHNvb24gdGhlIGNvbnRyb2wgcmVuZGVyc1xuXHRcdHRoaXMuaXNNYW5kYXRvcnlDaGVja1JlcXVpcmVkID0gdHJ1ZTtcblx0XHQvL29uVG9rZW5DaGFuZ2UgZXZlbnQgc2hvdWxkIG5vdCBiZSBmaXJlZCB3aGVuIGluaXRpYWwgc2V0IG9mIHRva2VucyBhcmUgc2V0XG5cdFx0dGhpcy5zaG91bGRUb2tlbkNoYW5nZUV2ZW50RmlyZWQgPSBmYWxzZTtcblx0fVxuXG5cdGdldERlZmF1bHRUb2tlbnMoaXNEZWZhdWx0VmFsdWVzUmVzcGVjdGVkOiBib29sZWFuKTogVG9rZW5EZWZpbml0aW9uW10ge1xuXHRcdGNvbnN0IHRva2VuczogVG9rZW5EZWZpbml0aW9uW10gPSBbXTtcblx0XHR0aGlzLmZpbHRlckJhck1ldGFkYXRhPy5mb3JFYWNoKChkYXRhKSA9PiB7XG5cdFx0XHRpZiAoZGF0YS5yZXF1aXJlZCA9PT0gdHJ1ZSkge1xuXHRcdFx0XHR0aGlzLm1hbmRhdG9yeUtleU1hcFtkYXRhLm5hbWVdID0gdHJ1ZTtcblx0XHRcdFx0Ly9DaGVjayB3aGV0aGVyIHRoZSBrZXlzIGV4aXN0IGluIHRoZSBjdXJyZW50IHN0YXRlIGVsc2UgcHVzaCBpdCBhY3Jvc3Ncblx0XHRcdFx0dG9rZW5zLnB1c2goe1xuXHRcdFx0XHRcdGtleTogZGF0YS5uYW1lLFxuXHRcdFx0XHRcdGxhYmVsOiBkYXRhLmxhYmVsLFxuXHRcdFx0XHRcdGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXM6IGlzRGVmYXVsdFZhbHVlc1Jlc3BlY3RlZCAmJiBkYXRhLmRlZmF1bHRWYWx1ZSA/IGRhdGEuZGVmYXVsdFZhbHVlIDogW10sXG5cdFx0XHRcdFx0dHlwZTogZGF0YS50eXBlXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiB0b2tlbnM7XG5cdH1cblxuXHRvbkVudGVyUHJlc3NlZChlOiBVSTVFdmVudDx7IHF1ZXJ5OiBzdHJpbmcgfSwgRWFzeUZpbHRlcklucHV0Pik6IHZvaWQge1xuXHRcdHRoaXMub25Hb1ByZXNzKGUuZ2V0UGFyYW1ldGVyKFwicXVlcnlcIiksIGZhbHNlKTtcblx0fVxuXG5cdC8vTWFraW5nIGl0IHB1YmxpYyBiZWNhdXNlIGluIGxpdmUgbW9kZSB0aGUgYXBwIGRldmVsb3BlciBjYW4gZGVjaWRlIHdoZXRoZXIgdG8gZGlzcGxheSB0aGUgZXJyb3IgVmFsdWVTdGF0ZU1lc3NhZ2Vcblx0Ly9JbiBub24tbGl2ZSBtb2RlICwgd2UgYXJlIGFscmVhZHkgaW50ZXJuYWxseSBoYW5kbGluZyBpdCBvbiBldmVyeSB0aW1lIHRpbWUgYSB1c2VyIGNsaWNrcyBvbiBHTy9FbnRlciBidXR0b25zXG5cdHB1YmxpYyBjaGVja0lmQWxsTWFuZGF0b3J5VG9rZW5zRmlsbGVkKCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IHRva2Vuc0luU3RhdGUgPSB0aGlzLmdldFVuU2V0TWFuZGF0b3J5VG9rZW5zSW5DdXJyZW50U3RhdGUoKTtcblx0XHRpZiAodG9rZW5zSW5TdGF0ZS5sZW5ndGggIT09IDApIHtcblx0XHRcdGNvbnN0IHRva2VucyA9IHRoaXMuZ2V0QWN0dWFsVG9rZW5zRnJvbVN0YXRlKHRva2Vuc0luU3RhdGUpO1xuXHRcdFx0dG9rZW5zPy5mb3JFYWNoKCh0b2tlbikgPT4ge1xuXHRcdFx0XHR0b2tlbi5zZXRQcm9wZXJ0eShcInZhbHVlU3RhdGVcIiwgVmFsdWVTdGF0ZS5FcnJvcik7XG5cdFx0XHRcdHRva2VuLnNldFByb3BlcnR5KFwidmFsdWVTdGF0ZVRleHRcIiwgdGhpcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9NQU5EQVRPUllfVE9LRU5fRVJST1JcIikpO1xuXHRcdFx0XHR0b2tlbi5vcGVuVmFsdWVTdGF0ZU1lc3NhZ2UoKTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHB1YmxpYyBjbG9zZUFsbE1hbmRhdG9yeVZhbHVlU3RhdGVNZXNzYWdlcygpOiB2b2lkIHtcblx0XHRjb25zdCBlYXN5VG9rZW5zID0gdGhpcy50b2tlbml6ZXIuY3VycmVudD8uZ2V0VG9rZW5zKCkgYXMgRWFzeUZpbHRlclRva2VuW107XG5cdFx0ZWFzeVRva2Vucy5mb3JFYWNoKCh0b2tlbikgPT4gdG9rZW4uY2xvc2VWYWx1ZVN0YXRlTWVzc2FnZSgpKTtcblx0fVxuXG5cdGFzeW5jIG9uR29QcmVzcyhtYWdpY1F1ZXJ5OiBzdHJpbmcgfCB1bmRlZmluZWQsIGRvU2VhcmNoID0gZmFsc2UpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIW1hZ2ljUXVlcnkpIHtcblx0XHRcdHRoaXMucmVzZXRTdGF0ZSgpO1xuXHRcdFx0dGhpcy5zdGF0ZS5nb1ByZXNzZWQgPSBkb1NlYXJjaDtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5zdGF0ZS50b2tlbml6ZXJFZGl0YWJsZSA9IHRydWU7XG5cdFx0dGhpcy5lYXN5RmlsdGVySW5wdXQuY3VycmVudD8uc2V0RWRpdGFibGUodHJ1ZSk7XG5cblx0XHQvLyBDYWxsIEFJIHNlcnZpY2UgdG8gZ2V0IHRoZSBmaWx0ZXIgY3JpdGVyaWFcblx0XHRjb25zdCBlYXN5ZmlsdGVyID0gYXdhaXQgdGhpcy5lYXN5ZmlsdGVyO1xuXHRcdGlmICghZWFzeWZpbHRlcikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLmZpcmVFdmVudChcImJlZm9yZVF1ZXJ5UHJvY2Vzc2luZ1wiKTtcblxuXHRcdGNvbnN0IGVhc3lGaWx0ZXJNZXRhZGF0YTogRWFzeUZpbHRlck1ldGFkYXRhID0ge1xuXHRcdFx0dmVyc2lvbjogMSxcblx0XHRcdGVudGl0eVNldDogdGhpcy5jb250ZXh0UGF0aCxcblx0XHRcdGZpZWxkczogdGhpcy5maWx0ZXJCYXJNZXRhZGF0YVxuXHRcdH07XG5cblx0XHRjb25zdCBlYXN5RmlsdGVyUmVzdWx0ID0gYXdhaXQgZWFzeWZpbHRlci5lYXN5RmlsdGVyKG1hZ2ljUXVlcnksIGVhc3lGaWx0ZXJNZXRhZGF0YSk7XG5cblx0XHRpZiAoZWFzeUZpbHRlclJlc3VsdC5zdWNjZXNzKSB7XG5cdFx0XHR0aGlzLmVhc3lGaWx0ZXJJbnB1dC5jdXJyZW50Py5hZGRSZWNlbnRRdWVyeShtYWdpY1F1ZXJ5KTtcblx0XHRcdGlmIChlYXN5RmlsdGVyUmVzdWx0LmRhdGEudmVyc2lvbiA9PT0gMSkge1xuXHRcdFx0XHR0aGlzLmhhbmRsZVYxU3VjY2VzcyhlYXN5RmlsdGVyUmVzdWx0LCBkb1NlYXJjaCk7XG5cdFx0XHR9IGVsc2UgaWYgKGVhc3lGaWx0ZXJSZXN1bHQuZGF0YS52ZXJzaW9uID09PSAyKSB7XG5cdFx0XHRcdC8vIENyZWF0ZSB0aGUgc2FwLnVpLm1vZGVsLkZpbHRlciBmcm9tIHRoZSBmaWx0ZXIgYW5kIGFwcGx5IGl0IGRpcmVjdGx5IHRvIHRoZSBsaXN0IGJpbmRpbmdcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gZXJyb3Jcblx0XHRcdHRoaXMuZWFzeUZpbHRlcklucHV0LmN1cnJlbnQ/LnNldEFzSW52YWxpZChlYXN5RmlsdGVyUmVzdWx0Lm1lc3NhZ2UpO1xuXHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZ2VuZXJhdGluZyBmaWx0ZXIgY3JpdGVyaWE6IFwiLCBlYXN5RmlsdGVyUmVzdWx0Lm1lc3NhZ2UpO1xuXHRcdH1cblxuXHRcdHRoaXMuZmlyZUV2ZW50KFwiYWZ0ZXJRdWVyeVByb2Nlc3NpbmdcIik7XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlcyB0aGUgc3VjY2VzcyByZXNwb25zZSBmcm9tIHRoZSBBSSBzZXJ2aWNlIGZvciB2ZXJzaW9uIDEgb2YgdGhlIGVhc3kgZmlsdGVyLlxuXHQgKiBAcGFyYW0gZWFzeUZpbHRlclJlc3VsdCBUaGUgcmVzdWx0IGZyb20gdGhlIEFJIHNlcnZpY2Vcblx0ICogQHBhcmFtIGdvUHJlc3NlZCBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIHNlYXJjaCBhZnRlciB0aGUgZmlsdGVyIGNyaXRlcmlhIGhhcyBiZWVuIGdlbmVyYXRlZFxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBoYW5kbGVWMVN1Y2Nlc3MoZWFzeUZpbHRlclJlc3VsdDogU3VjY2VzczxFYXN5RmlsdGVyLkVhc3lGaWx0ZXJSZXN1bHQ+LCBnb1ByZXNzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAoZWFzeUZpbHRlclJlc3VsdC5kYXRhLnVuY2xlYXIpIHtcblx0XHRcdHRoaXMuZWFzeUZpbHRlcklucHV0LmN1cnJlbnQ/LnNldEFzSW52YWxpZChcblx0XHRcdFx0dGhpcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9VTkNMRUFSX0lOUFVUXCIsIFtlYXN5RmlsdGVyUmVzdWx0LmRhdGEudW5jbGVhcl0pXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAoZWFzeUZpbHRlclJlc3VsdC5kYXRhLmZpbHRlcikge1xuXHRcdFx0Ly8gV2UgbmVlZCB0byBzaG93IGEgbWVzc2FnZSB0byB0aGUgdXNlciB0aGF0IHRoZSBmaWx0ZXIgY3JpdGVyaWEgaGFzIGJlZW4gZ2VuZXJhdGVkXG5cdFx0XHRMb2cuZGVidWcoXCJGaWx0ZXIgY3JpdGVyaWEgZ2VuZXJhdGVkOiBcIiwgSlNPTi5zdHJpbmdpZnkoZWFzeUZpbHRlclJlc3VsdC5kYXRhLmZpbHRlciwgbnVsbCwgMikpO1xuXG5cdFx0XHQvLyBWYWxpZGF0ZSBhbmQgYXBwbHkgdGhlIGZpbHRlciBjcml0ZXJpYVxuXHRcdFx0Y29uc3QgdG9rZW5zOiBUb2tlbkRlZmluaXRpb25bXSA9IHRoaXMuZ2V0RGVmYXVsdFRva2VucyhmYWxzZSk7XG5cdFx0XHRFYXN5RmlsdGVyVXRpbHMuZm9ybWF0RGF0YSh0b2tlbnMsIGVhc3lGaWx0ZXJSZXN1bHQuZGF0YS5maWx0ZXIsIHRoaXMuZmlsdGVyQmFyTWV0YWRhdGEpO1xuXG5cdFx0XHR0aGlzLnN0YXRlLnNob3dSZXN1bHQgPSB0cnVlO1xuXHRcdFx0dGhpcy5zdGF0ZS5nb1ByZXNzZWQgPSBnb1ByZXNzZWQ7XG5cdFx0XHR0aGlzLnN0YXRlLnRva2VucyA9IHRva2Vucztcblx0XHR9XG5cdH1cblxuXHRjcmVhdGVQb3BvdmVyRm9ySW5uZXJDb250cm9scygpOiBQb3BvdmVyIHtcblx0XHRpZiAoIXRoaXMuaW5uZXJDb250cm9sUG9wb3Zlcikge1xuXHRcdFx0dGhpcy5pbm5lckNvbnRyb2xQb3BvdmVyID0gKFxuXHRcdFx0XHQ8UG9wb3ZlciBpZD17dGhpcy5nZXRJZCgpICsgXCItaW5uZXJQb3BvdmVyXCJ9IHNob3dBcnJvdz17ZmFsc2V9IHNob3dIZWFkZXI9e3RydWV9IHBsYWNlbWVudD17UGxhY2VtZW50VHlwZS5Cb3R0b219PlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRmb290ZXI6IHRoaXMuZ2V0VG9vbGJhcigpXG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PC9Qb3BvdmVyPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuaW5uZXJDb250cm9sUG9wb3ZlciBhcyBQb3BvdmVyO1xuXHR9XG5cblx0Z2V0VG9vbGJhcigpOiBPdmVyZmxvd1Rvb2xiYXIgfCB1bmRlZmluZWQge1xuXHRcdGlmICghdGhpcy50b29sYmFyKSB7XG5cdFx0XHRjb25zdCBva0J1dHRvbiA9IHRoaXMuZ2V0T2tCdXR0b24oKTtcblx0XHRcdGNvbnN0IHNob3dBbGxCdXR0b24gPSB0aGlzLmdldFNob3dBbGxCdXR0b24oKTtcblx0XHRcdHRoaXMudG9vbGJhciA9IChcblx0XHRcdFx0PE92ZXJmbG93VG9vbGJhcj5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHRcdDxUb29sYmFyU3BhY2VyIC8+XG5cdFx0XHRcdFx0XHRcdFx0e29rQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHRcdHtzaG93QWxsQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ8L092ZXJmbG93VG9vbGJhcj5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnRvb2xiYXI7XG5cdH1cblxuXHRnZXRPa0J1dHRvbigpOiBCdXR0b24gfCB1bmRlZmluZWQge1xuXHRcdGlmICghdGhpcy5va0J1dHRvbikge1xuXHRcdFx0dGhpcy5va0J1dHRvbiA9IDxCdXR0b24gdGV4dD17dGhpcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9QT1BPVkVSX09LXCIpfSB0eXBlPXtCdXR0b25UeXBlLkVtcGhhc2l6ZWR9IC8+O1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5va0J1dHRvbjtcblx0fVxuXG5cdGdldFNob3dBbGxCdXR0b24oKTogQnV0dG9uIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoIXRoaXMuc2hvd0FsbEJ1dHRvbikge1xuXHRcdFx0dGhpcy5zaG93QWxsQnV0dG9uID0gPEJ1dHRvbiB0ZXh0PXt0aGlzLnJlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX1BPUE9WRVJfU0hPV19BTExfSVRFTVNcIil9IC8+O1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5zaG93QWxsQnV0dG9uO1xuXHR9XG5cblx0b25TdGF0ZUNoYW5nZShjaGFuZ2VkUHJvcHM6IHN0cmluZ1tdID0gW10pOiB2b2lkIHtcblx0XHRpZiAoY2hhbmdlZFByb3BzLmluY2x1ZGVzKFwidG9rZW5zXCIpKSB7XG5cdFx0XHRpZiAodGhpcy5zaG91bGRUb2tlbkNoYW5nZUV2ZW50RmlyZWQpIHtcblx0XHRcdFx0dGhpcy5maXJlRXZlbnQoXCJ0b2tlbnNDaGFuZ2VkXCIsIHtcblx0XHRcdFx0XHR0b2tlbnM6IHRoaXMuc3RhdGUudG9rZW5zLm1hcCgoZGF0YSkgPT4gZGVlcENsb25lKGRhdGEpKSxcblx0XHRcdFx0XHRnb0J1dHRvblByZXNzZWQ6IHRoaXMuc3RhdGUuZ29QcmVzc2VkLnZhbHVlT2YoKVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMuc3RhdGUuc2hvd1Jlc3VsdCA9IHRoaXMuc3RhdGUudG9rZW5zLmxlbmd0aCA+IDA7XG5cdFx0XHRpZiAoISh0aGlzLmlzTWFuZGF0b3J5Q2hlY2tSZXF1aXJlZCA/PyBmYWxzZSkpIHtcblx0XHRcdFx0dGhpcy5jaGVja0lmQWxsTWFuZGF0b3J5VG9rZW5zRmlsbGVkKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vUmVzZXR0aW5nIHRvIGRlZmF1bHQgdmFsdWVzXG5cdFx0dGhpcy5pc01hbmRhdG9yeUNoZWNrUmVxdWlyZWQgPSBmYWxzZTtcblx0XHR0aGlzLnNob3VsZFRva2VuQ2hhbmdlRXZlbnRGaXJlZCA9IHRydWU7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IFZCb3gge1xuXHRcdGNvbnN0ICR0b3BHb0J0biA9IGNyZWF0ZVJlZmVyZW5jZTxCdXR0b24+KCk7XG5cdFx0Y29uc3QgJGJvdEdvQnRuID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCBvdXRWQm94ID0gKFxuXHRcdFx0PFZCb3g+XG5cdFx0XHRcdDxGbGV4Qm94IHJlbmRlclR5cGU9XCJCYXJlXCI+XG5cdFx0XHRcdFx0PEVhc3lGaWx0ZXJJbnB1dFxuXHRcdFx0XHRcdFx0cmVjb21tZW5kZWRWYWx1ZXM9e3RoaXMucmVjb21tZW5kZWRWYWx1ZXN9XG5cdFx0XHRcdFx0XHRyZWY9e3RoaXMuZWFzeUZpbHRlcklucHV0fVxuXHRcdFx0XHRcdFx0YXBwSWQ9e3RoaXMuYXBwSWR9XG5cdFx0XHRcdFx0XHRlbnRlclByZXNzZWQ9e3RoaXMub25FbnRlclByZXNzZWQuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdHF1ZXJ5Q2hhbmdlZD17KGUpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5maXJlRXZlbnQoXCJxdWVyeUNoYW5nZWRcIiwgeyBxdWVyeTogZS5nZXRQYXJhbWV0ZXIoXCJxdWVyeVwiKSB9KTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRsaXZlQ2hhbmdlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc3RhdGUudG9rZW5pemVyRWRpdGFibGUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly9haVwifVxuXHRcdFx0XHRcdFx0Y2xhc3M9e1wic2FwVWlTbWFsbE1hcmdpbkJlZ2luXCJ9XG5cdFx0XHRcdFx0XHRyZWY9eyR0b3BHb0J0bn1cblx0XHRcdFx0XHRcdHZpc2libGU9e25vdChiaW5kU3RhdGUodGhpcy5zdGF0ZS5zaG93UmVzdWx0KSl9XG5cdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLnJlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX0dPXCIpfVxuXHRcdFx0XHRcdFx0dHlwZT17QnV0dG9uVHlwZS5FbXBoYXNpemVkfVxuXHRcdFx0XHRcdFx0cHJlc3M9e3RoaXMub25Hb0J1dHRvblByZXNzLmJpbmQodGhpcyl9XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0PC9GbGV4Qm94PlxuXHRcdFx0XHQ8RmxleEJveFxuXHRcdFx0XHRcdHJlbmRlclR5cGU9XCJCYXJlXCJcblx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLnN0YXRlLnNob3dSZXN1bHR9XG5cdFx0XHRcdFx0YWxpZ25JdGVtcz17RmxleEFsaWduSXRlbXMuQ2VudGVyfVxuXHRcdFx0XHRcdHdyYXA9e0ZsZXhXcmFwLldyYXB9XG5cdFx0XHRcdFx0anVzdGlmeUNvbnRlbnQ9e0ZsZXhKdXN0aWZ5Q29udGVudC5TcGFjZUJldHdlZW59XG5cdFx0XHRcdFx0Y2xhc3M9e1wic2FwVWlUaW55TWFyZ2luVG9wXCJ9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8RmxleEJveCBjbGFzcz17XCJzYXBGZUNvbnRyb2xzR2FwOHB4XCJ9IHJlbmRlclR5cGU9XCJCYXJlXCIgYWxpZ25JdGVtcz17RmxleEFsaWduSXRlbXMuQ2VudGVyfSB3cmFwPXtGbGV4V3JhcC5XcmFwfT5cblx0XHRcdFx0XHRcdDxBSU5vdGljZSByZXNvdXJjZUJ1bmRsZT17dGhpcy5yZXNvdXJjZUJ1bmRsZX0gLz5cblx0XHRcdFx0XHRcdDxUb2tlbml6ZXJcblx0XHRcdFx0XHRcdFx0ZWRpdGFibGU9e2FuZChiaW5kU3RhdGUodGhpcy5zdGF0ZS50b2tlbml6ZXJFZGl0YWJsZSksIHRydWUpfVxuXHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBGZUNvbnRyb2xzVG9rZW5pemVyXCJ9XG5cdFx0XHRcdFx0XHRcdHRva2Vucz17YmluZFN0YXRlKHRoaXMuc3RhdGUudG9rZW5zKX1cblx0XHRcdFx0XHRcdFx0cmVmPXt0aGlzLnRva2VuaXplcn1cblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0XHR0b2tlbnM6IChpZHg6IG51bWJlciwgY3R4OiBDb250ZXh0KTogVG9rZW4gPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3Qgb2JqZWN0ID0gY3R4LmdldE9iamVjdCgpIGFzIFRva2VuRGVmaW5pdGlvbjtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxUb2tlblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGtleT17dGhpcy5zdGF0ZS50b2tlbnMua2V5fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxhYmVsPXt0aGlzLnN0YXRlLnRva2Vucy5sYWJlbH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpdGVtcz17dGhpcy5zdGF0ZS50b2tlbnMua2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlc31cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtYW5kYXRvcnk9e3RoaXMuaXNLZXlNYW5kYXRvcnkob2JqZWN0LmtleSl9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGVsZXRlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCB0b2tlbkluZGV4ID0gdGhpcy5zdGF0ZS50b2tlbnMuZmluZEluZGV4KCh0b2tlbikgPT4gdG9rZW4ua2V5ID09PSBvYmplY3Qua2V5KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IG5ld1Rva2VucyA9IHRoaXMuc3RhdGUudG9rZW5zLmNvbmNhdCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bmV3VG9rZW5zLnNwbGljZSh0b2tlbkluZGV4LCAxKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuZ29QcmVzc2VkID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnN0YXRlLnRva2VucyA9IG5ld1Rva2Vucztcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZWFzeUZpbHRlcklucHV0LmN1cnJlbnQ/LnNldEVkaXRhYmxlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGN1c3RvbURhdGE6IFtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PVwiVG9rZW5JbmZvXCIgdmFsdWU9e29iamVjdH0gLz4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT1cInBvcG92ZXJcIiB2YWx1ZT17dGhpcy5pbm5lckNvbnRyb2xQb3BvdmVyfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PVwiZWFzeUZpbHRlckJhckNvbnRhaW5lclwiIHZhbHVlPXt0aGlzfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGFcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRrZXk9XCJjb2RlTGlzdFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU9e3RoaXMuZmlsdGVyQmFyTWV0YWRhdGE/LmZpbmQoKGRhdGEpID0+IGRhdGEubmFtZSA9PT0gb2JqZWN0LmtleSk/LmNvZGVMaXN0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvVG9rZW4+XG5cdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdDwvVG9rZW5pemVyPlxuXHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLnJlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX1JFU0VUXCIpfVxuXHRcdFx0XHRcdFx0XHR0eXBlPXtCdXR0b25UeXBlLlRyYW5zcGFyZW50fVxuXHRcdFx0XHRcdFx0XHRwcmVzcz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMucmVzZXRTdGF0ZSgpO1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuZ29QcmVzc2VkID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0Ly9SZXRhaW5pbmcgdGhlIGZvY3VzIG9uIHBvcG92ZXIgZG9lc24ndCBtYWtlIHRoZSBwb3BvdmVyIGNsb3NlIG9uIGV2ZXJ5IGludGVyYWN0aW9uXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5lYXN5RmlsdGVySW5wdXQuY3VycmVudD8uZm9jdXMoKTtcblx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0PC9GbGV4Qm94PlxuXHRcdFx0XHRcdDxGbGV4Qm94IHJlbmRlclR5cGU9XCJCYXJlXCIgYWxpZ25JdGVtcz17RmxleEFsaWduSXRlbXMuQ2VudGVyfT5cblx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0aWNvbj17XCJzYXAtaWNvbjovL2FpXCJ9XG5cdFx0XHRcdFx0XHRcdHZpc2libGU9e3RoaXMuc3RhdGUuc2hvd1Jlc3VsdH1cblx0XHRcdFx0XHRcdFx0dGV4dD17dGhpcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9HT1wiKX1cblx0XHRcdFx0XHRcdFx0dHlwZT17QnV0dG9uVHlwZS5FbXBoYXNpemVkfVxuXHRcdFx0XHRcdFx0XHRyZWY9eyRib3RHb0J0bn1cblx0XHRcdFx0XHRcdFx0cHJlc3M9e3RoaXMub25Hb0J1dHRvblByZXNzLmJpbmQodGhpcyl9XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvRmxleEJveD5cblx0XHRcdFx0PC9GbGV4Qm94PlxuXHRcdFx0PC9WQm94PlxuXHRcdCkgYXMgVkJveDtcblx0XHRGRVNSSGVscGVyLnNldFNlbWFudGljU3RlcG5hbWUoJHRvcEdvQnRuLmN1cnJlbnQhLCBcInByZXNzXCIsIFwiZmU6YWk6c2VhcmNoXCIpO1xuXHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSgkYm90R29CdG4uY3VycmVudCEsIFwicHJlc3NcIiwgXCJmZTphaTpzZWFyY2hcIik7XG5cdFx0cmV0dXJuIG91dFZCb3g7XG5cdH1cblxuXHRhc3luYyBvbkdvQnV0dG9uUHJlc3MoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgZWRpdGFibGVTdGF0ZSA9IHRoaXMuZWFzeUZpbHRlcklucHV0LmN1cnJlbnQ/LmdldEVkaXRhYmxlKCk7XG5cdFx0dGhpcy5zdGF0ZS50b2tlbml6ZXJFZGl0YWJsZSA9IHRydWU7XG5cdFx0dGhpcy5lYXN5RmlsdGVySW5wdXQuY3VycmVudD8uc2V0RWRpdGFibGUodHJ1ZSk7XG5cdFx0aWYgKCEoZWRpdGFibGVTdGF0ZSA/PyBmYWxzZSkpIHtcblx0XHRcdHRoaXMuZmlyZUV2ZW50KFwiZXhlY3V0ZVNlYXJjaFwiKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0YXdhaXQgdGhpcy5vbkdvUHJlc3ModGhpcy5lYXN5RmlsdGVySW5wdXQuY3VycmVudD8uZ2V0VmFsdWUoKSwgdHJ1ZSk7XG5cdH1cblxuXHRyZXNldFN0YXRlKCk6IHZvaWQge1xuXHRcdHRoaXMuZmlyZUV2ZW50KFwiY2xlYXJGaWx0ZXJzXCIpO1xuXHRcdHRoaXMuc3RhdGUudG9rZW5zID0gdGhpcy5nZXREZWZhdWx0VG9rZW5zKHRydWUpO1xuXHRcdHRoaXMuZWFzeUZpbHRlcklucHV0LmN1cnJlbnQ/LnNldFZhbHVlKFwiXCIpO1xuXHRcdHRoaXMuc3RhdGUudG9rZW5pemVyRWRpdGFibGUgPSB0cnVlO1xuXHRcdHRoaXMuZWFzeUZpbHRlcklucHV0LmN1cnJlbnQ/LnNldEVkaXRhYmxlKHRydWUpO1xuXHRcdHRoaXMuc3RhdGUuZ29QcmVzc2VkID0gZmFsc2U7XG5cdFx0dGhpcy5pc01hbmRhdG9yeUNoZWNrUmVxdWlyZWQgPSB0cnVlO1xuXHRcdC8vU2V0IHRoZSBWYWx1ZSBTdGF0ZXMgb2YgYWxsIHRoZSBUb2tlbnMgYmFjayB0byBOb25lXG5cdFx0dGhpcy50b2tlbml6ZXIuY3VycmVudD8uZ2V0VG9rZW5zKCkuZm9yRWFjaCgodG9rZW4pID0+IHRva2VuLnNldFByb3BlcnR5KFwidmFsdWVTdGF0ZVwiLCBWYWx1ZVN0YXRlLk5vbmUpKTtcblx0XHR0aGlzLnRva2VuaXplci5jdXJyZW50Py5nZXRUb2tlbnMoKS5mb3JFYWNoKCh0b2tlbikgPT4gdG9rZW4uc2V0UHJvcGVydHkoXCJ2YWx1ZVN0YXRlVGV4dFwiLCBudWxsKSk7XG5cdH1cblxuXHQvL1RoZSBiZWxvdyBjb2RlIHVwZGF0ZXMgdGhlIGV4aXN0aW5nIHN0YXRlIGJ5IGZldGNoaW5nIHRoZSBrZXkgYW5kIHNlbGVjdGVkVmFsdWVzXG5cdHVwZGF0ZVRva2VuQXJyYXkoY2hhbmdlVHlwZTogVG9rZW5TZXR0ZXJzLCBuZXdUb2tlblNwZWNpZmljVmFsdWVzOiBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdLCB0b2tlbktleTogc3RyaW5nKTogdm9pZCB7XG5cdFx0Y29uc3QgbmV3VG9rZW5zID0gdGhpcy5zdGF0ZS50b2tlbnMubWFwKCh0b2tlbikgPT4gKHsgLi4udG9rZW4sIGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXM6IFsuLi50b2tlbi5rZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzXSB9KSk7XG5cdFx0Y29uc3QgdG9rZW5JbmRleCA9IG5ld1Rva2Vucy5maW5kSW5kZXgoKHQpID0+IHQua2V5ID09PSB0b2tlbktleSk7XG5cdFx0Y29uc3QgdG9rZW4gPSBuZXdUb2tlbnNbdG9rZW5JbmRleF07XG5cdFx0aWYgKHRva2VuSW5kZXggIT0gLTEpIHtcblx0XHRcdHN3aXRjaCAoY2hhbmdlVHlwZSkge1xuXHRcdFx0XHRjYXNlIFwic2V0U2VsZWN0ZWRWYWx1ZXNcIjpcblx0XHRcdFx0XHR0aGlzLnNldFNlbGVjdGVkVmFsdWVzKHRva2VuLCBuZXdUb2tlblNwZWNpZmljVmFsdWVzLCB0b2tlbkluZGV4LCBuZXdUb2tlbnMpO1xuXHRcdFx0XHRcdHRva2VuLmtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgPSBuZXdUb2tlblNwZWNpZmljVmFsdWVzO1xuXHRcdFx0XHRcdC8vUmVtb3ZlIHRoZSB0b2tlbiBlbnRpcmVseVxuXHRcdFx0XHRcdGlmICghdGhpcy5pc0tleU1hbmRhdG9yeSh0b2tlbi5rZXkpICYmIHRva2VuLmtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFx0XHRuZXdUb2tlbnMuc3BsaWNlKHRva2VuSW5kZXgsIDEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRMb2cuZXJyb3IoXCJTcGVjaWZ5aW5nIGEgc2V0dGVyIHRoYXQgaXMgb3V0IG9mIHRoZSBib3VuZGFyeVwiKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdC8vIFVwZGF0ZSB0aGUgc3RhdGUgYnkgYXNzaWduaW5nIHRoZSBuZXcgdG9rZW5zIGFycmF5XG5cdFx0XHR0aGlzLnN0YXRlLmdvUHJlc3NlZCA9IGZhbHNlO1xuXHRcdFx0dGhpcy5zdGF0ZS50b2tlbnMgPSBuZXdUb2tlbnM7XG5cdFx0XHR0aGlzLnN0YXRlLnNob3dSZXN1bHQgPSBuZXdUb2tlbnMubGVuZ3RoID4gMDtcblx0XHRcdHRoaXMuZWFzeUZpbHRlcklucHV0LmN1cnJlbnQ/LnNldEVkaXRhYmxlKGZhbHNlKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHNldFNlbGVjdGVkVmFsdWVzKFxuXHRcdHRva2VuOiBUb2tlbkRlZmluaXRpb24sXG5cdFx0bmV3VG9rZW5TcGVjaWZpY1ZhbHVlczogVG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSxcblx0XHR0b2tlbkluZGV4OiBudW1iZXIsXG5cdFx0bmV3VG9rZW5zOiBUb2tlbkRlZmluaXRpb25bXVxuXHQpOiB2b2lkIHtcblx0XHR0b2tlbi5rZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzID0gbmV3VG9rZW5TcGVjaWZpY1ZhbHVlcztcblx0XHRpZiAoIXRoaXMuaXNLZXlNYW5kYXRvcnkodG9rZW4ua2V5KSAmJiB0b2tlbi5rZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0bmV3VG9rZW5zLnNwbGljZSh0b2tlbkluZGV4LCAxKTtcblx0XHR9XG5cdH1cblxuXHRpc0tleU1hbmRhdG9yeShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLm1hbmRhdG9yeUtleU1hcFtrZXldID8gdHJ1ZSA6IGZhbHNlO1xuXHR9XG5cblx0Z2V0VG9rZW5zSW5Jbml0aWFsU3RhdGUoKTogVG9rZW5EZWZpbml0aW9uW10ge1xuXHRcdGNvbnN0IG5ld1Rva2VucyA9IHRoaXMuc3RhdGUudG9rZW5zLm1hcCgodG9rZW4pID0+ICh7IC4uLnRva2VuLCBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzOiBbLi4udG9rZW4ua2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlc10gfSkpO1xuXHRcdGNvbnN0IG1hbmRhdG9yeVRva2VucyA9IG5ld1Rva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5pc0tleU1hbmRhdG9yeSh0b2tlbi5rZXkpKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiBtYW5kYXRvcnlUb2tlbnMubWFwKCh0b2tlbikgPT4gKHsgLi4udG9rZW4sIGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXM6IFtdIH0pKTtcblx0fVxuXG5cdGdldFVuU2V0TWFuZGF0b3J5VG9rZW5zSW5DdXJyZW50U3RhdGUoKTogVG9rZW5EZWZpbml0aW9uW10ge1xuXHRcdHJldHVybiB0aGlzLnN0YXRlLnRva2Vucy5maWx0ZXIoKHRva2VuKSA9PiB7XG5cdFx0XHRjb25zdCBpc0tleU1hbmRhdG9yeSA9IHRoaXMuaXNLZXlNYW5kYXRvcnkodG9rZW4ua2V5KTtcblx0XHRcdGlmIChpc0tleU1hbmRhdG9yeSkge1xuXHRcdFx0XHRyZXR1cm4gdG9rZW4ua2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDA7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRnZXRBY3R1YWxUb2tlbnNGcm9tU3RhdGUodG9rZW5zOiBUb2tlbkRlZmluaXRpb25bXSk6IEVhc3lGaWx0ZXJUb2tlbltdIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCByZXF1aXJlZEtleXMgPSB0b2tlbnMubWFwKCh0b2tlbikgPT4gdG9rZW4ua2V5KTtcblx0XHRyZXR1cm4gdGhpcy50b2tlbml6ZXIuY3VycmVudD8uZ2V0VG9rZW5zKCkuZmlsdGVyKCh0b2tlbikgPT4gcmVxdWlyZWRLZXlzLmluY2x1ZGVzKHRva2VuLmdldEtleSgpKSkgYXNcblx0XHRcdHwgRWFzeUZpbHRlclRva2VuW11cblx0XHRcdHwgdW5kZWZpbmVkO1xuXHR9XG5cblx0c3RhdGljIHJlbmRlcihybTogUmVuZGVyTWFuYWdlciwgY29udHJvbDogRWFzeUZpbHRlckJhckNvbnRhaW5lcik6IHZvaWQge1xuXHRcdHJldHVybiBqc3gucmVuZGVyVXNpbmdSZW5kZXJNYW5hZ2VyKHJtLCBjb250cm9sLCAoKSA9PiB7XG5cdFx0XHRyZXR1cm4gPHNwYW4gcmVmPXtjb250cm9sfT57Y29udHJvbC5nZXRBZ2dyZWdhdGlvbihcImNvbnRlbnRcIil9PC9zcGFuPjtcblx0XHR9KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7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
|
|
589
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFYXN5RmlsdGVyQmFyQ29udGFpbmVyIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjMyIsIl9kZWM0IiwiX2RlYzUiLCJfZGVjNiIsIl9kZWM3IiwiZGVmaW5lUmVmZXJlbmNlIiwiX2RlYzgiLCJfZGVjOSIsImFnZ3JlZ2F0aW9uIiwiX2RlYzEwIiwiZXZlbnQiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJkZWZpbmVTdGF0ZSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQ29udHJvbCIsIl9pbmhlcml0c0xvb3NlIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwiX2Rlc2NyaXB0b3IxMCIsIl9kZXNjcmlwdG9yMTEiLCJfZGVzY3JpcHRvcjEyIiwiX2Rlc2NyaXB0b3IxMyIsIl9kZXNjcmlwdG9yMTQiLCJfZGVzY3JpcHRvcjE1IiwiX2Rlc2NyaXB0b3IxNiIsIm1hbmRhdG9yeUtleU1hcCIsInNob3VsZFRva2VuQ2hhbmdlRXZlbnRGaXJlZCIsImluaXRpYWxpemUiLCJfZXhwb3J0cyIsIl9wcm90byIsInByb3RvdHlwZSIsInNldEVhc3lGaWx0ZXJMaWIiLCJlYXN5RmlsdGVyTGliIiwic2V0UHJvcGVydHkiLCJlYXN5ZmlsdGVyIiwiX191aTVfcmVxdWlyZV9hc3luYyIsInJlc291cmNlQnVuZGxlIiwiTGliIiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsImlubmVyQ29udHJvbFBvcG92ZXIiLCJjcmVhdGVQb3BvdmVyRm9ySW5uZXJDb250cm9scyIsImFkZERlcGVuZGVudCIsInRva2VucyIsImdldERlZmF1bHRUb2tlbnMiLCJzdGF0ZSIsInNob3dSZXN1bHQiLCJsZW5ndGgiLCJpc01hbmRhdG9yeUNoZWNrUmVxdWlyZWQiLCJpc0RlZmF1bHRWYWx1ZXNSZXNwZWN0ZWQiLCJfdGhpcyRmaWx0ZXJCYXJNZXRhZGEiLCJmaWx0ZXJCYXJNZXRhZGF0YSIsImZvckVhY2giLCJkYXRhIiwicmVxdWlyZWQiLCJuYW1lIiwicHVzaCIsImtleSIsImxhYmVsIiwia2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcyIsImRlZmF1bHRWYWx1ZSIsIm9uRW50ZXJQcmVzc2VkIiwiZSIsIm9uR29QcmVzcyIsImdldFBhcmFtZXRlciIsImNoZWNrSWZBbGxNYW5kYXRvcnlUb2tlbnNGaWxsZWQiLCJ0b2tlbnNJblN0YXRlIiwiZ2V0VW5TZXRNYW5kYXRvcnlUb2tlbnNJbkN1cnJlbnRTdGF0ZSIsImdldEFjdHVhbFRva2Vuc0Zyb21TdGF0ZSIsInRva2VuIiwiVmFsdWVTdGF0ZSIsIkVycm9yIiwiZ2V0VGV4dCIsIm9wZW5WYWx1ZVN0YXRlTWVzc2FnZSIsImNsb3NlQWxsTWFuZGF0b3J5VmFsdWVTdGF0ZU1lc3NhZ2VzIiwiX3RoaXMkdG9rZW5pemVyJGN1cnJlIiwiZWFzeVRva2VucyIsInRva2VuaXplciIsImN1cnJlbnQiLCJnZXRUb2tlbnMiLCJjbG9zZVZhbHVlU3RhdGVNZXNzYWdlIiwibWFnaWNRdWVyeSIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dCIsImRvU2VhcmNoIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwicmVzZXRTdGF0ZSIsImdvUHJlc3NlZCIsInRva2VuaXplckVkaXRhYmxlIiwiZWFzeUZpbHRlcklucHV0Iiwic2V0RWRpdGFibGUiLCJmaXJlRXZlbnQiLCJlYXN5RmlsdGVyTWV0YWRhdGEiLCJ2ZXJzaW9uIiwiZW50aXR5U2V0IiwiY29udGV4dFBhdGgiLCJmaWVsZHMiLCJlYXN5RmlsdGVyUmVzdWx0IiwiZWFzeUZpbHRlciIsInN1Y2Nlc3MiLCJfdGhpcyRlYXN5RmlsdGVySW5wdXQyIiwiYWRkUmVjZW50UXVlcnkiLCJoYW5kbGVWMVN1Y2Nlc3MiLCJfdGhpcyRlYXN5RmlsdGVySW5wdXQzIiwic2V0QXNJbnZhbGlkIiwibWVzc2FnZSIsIkxvZyIsImVycm9yIiwidW5jbGVhciIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dDQiLCJmaWx0ZXIiLCJkZWJ1ZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJFYXN5RmlsdGVyVXRpbHMiLCJmb3JtYXREYXRhIiwiX2pzeCIsIlBvcG92ZXIiLCJpZCIsImdldElkIiwic2hvd0Fycm93Iiwic2hvd0hlYWRlciIsInBsYWNlbWVudCIsIlBsYWNlbWVudFR5cGUiLCJCb3R0b20iLCJjaGlsZHJlbiIsImZvb3RlciIsImdldFRvb2xiYXIiLCJ0b29sYmFyIiwib2tCdXR0b24iLCJnZXRPa0J1dHRvbiIsInNob3dBbGxCdXR0b24iLCJnZXRTaG93QWxsQnV0dG9uIiwiT3ZlcmZsb3dUb29sYmFyIiwiX2pzeHMiLCJfRnJhZ21lbnQiLCJUb29sYmFyU3BhY2VyIiwiQnV0dG9uIiwidGV4dCIsIkJ1dHRvblR5cGUiLCJFbXBoYXNpemVkIiwib25TdGF0ZUNoYW5nZSIsImNoYW5nZWRQcm9wcyIsImluY2x1ZGVzIiwibWFwIiwiZGVlcENsb25lIiwiZ29CdXR0b25QcmVzc2VkIiwidmFsdWVPZiIsIiR0b3BHb0J0biIsImNyZWF0ZVJlZmVyZW5jZSIsIiRib3RHb0J0biIsIm91dFZCb3giLCJWQm94IiwiRmxleEJveCIsInJlbmRlclR5cGUiLCJFYXN5RmlsdGVySW5wdXQiLCJyZWNvbW1lbmRlZFZhbHVlcyIsInJlZiIsImFwcElkIiwiZW50ZXJQcmVzc2VkIiwiYmluZCIsInF1ZXJ5Q2hhbmdlZCIsInF1ZXJ5IiwibGl2ZUNoYW5nZSIsImljb24iLCJjbGFzcyIsInZpc2libGUiLCJub3QiLCJiaW5kU3RhdGUiLCJwcmVzcyIsIm9uR29CdXR0b25QcmVzcyIsImFsaWduSXRlbXMiLCJGbGV4QWxpZ25JdGVtcyIsIkNlbnRlciIsIndyYXAiLCJGbGV4V3JhcCIsIldyYXAiLCJqdXN0aWZ5Q29udGVudCIsIkZsZXhKdXN0aWZ5Q29udGVudCIsIlNwYWNlQmV0d2VlbiIsIkFJTm90aWNlIiwiVG9rZW5pemVyIiwiZWRpdGFibGUiLCJhbmQiLCJpZHgiLCJjdHgiLCJfdGhpcyRmaWx0ZXJCYXJNZXRhZGEyIiwiX3RoaXMkZmlsdGVyQmFyTWV0YWRhMyIsIm9iamVjdCIsImdldE9iamVjdCIsIlRva2VuIiwiaXRlbXMiLCJtYW5kYXRvcnkiLCJpc0tleU1hbmRhdG9yeSIsImRlbGV0ZSIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dDUiLCJ0b2tlbkluZGV4IiwiZmluZEluZGV4IiwibmV3VG9rZW5zIiwiY29uY2F0Iiwic3BsaWNlIiwiY3VzdG9tRGF0YSIsIkN1c3RvbURhdGEiLCJ2YWx1ZSIsImZpbmQiLCJjb2RlTGlzdCIsIlRyYW5zcGFyZW50IiwiX3RoaXMkZWFzeUZpbHRlcklucHV0NiIsImZvY3VzIiwiRkVTUkhlbHBlciIsInNldFNlbWFudGljU3RlcG5hbWUiLCJfdGhpcyRlYXN5RmlsdGVySW5wdXQ3IiwiX3RoaXMkZWFzeUZpbHRlcklucHV0OCIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dDkiLCJlZGl0YWJsZVN0YXRlIiwiZ2V0RWRpdGFibGUiLCJnZXRWYWx1ZSIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dDEwIiwiX3RoaXMkZWFzeUZpbHRlcklucHV0MTEiLCJfdGhpcyR0b2tlbml6ZXIkY3VycmUyIiwiX3RoaXMkdG9rZW5pemVyJGN1cnJlMyIsInNldFZhbHVlIiwiTm9uZSIsInVwZGF0ZVRva2VuQXJyYXkiLCJjaGFuZ2VUeXBlIiwibmV3VG9rZW5TcGVjaWZpY1ZhbHVlcyIsInRva2VuS2V5IiwidCIsIl90aGlzJGVhc3lGaWx0ZXJJbnB1dDEyIiwic2V0U2VsZWN0ZWRWYWx1ZXMiLCJnZXRUb2tlbnNJbkluaXRpYWxTdGF0ZSIsIm1hbmRhdG9yeVRva2VucyIsIl90aGlzJHRva2VuaXplciRjdXJyZTQiLCJyZXF1aXJlZEtleXMiLCJnZXRLZXkiLCJyZW5kZXIiLCJybSIsImNvbnRyb2wiLCJqc3giLCJyZW5kZXJVc2luZ1JlbmRlck1hbmFnZXIiLCJnZXRBZ2dyZWdhdGlvbiIsIkNvbnRyb2wiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVhc3lGaWx0ZXJCYXJDb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgU3RhdGVPZiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7XG5cdGFnZ3JlZ2F0aW9uLFxuXHRjcmVhdGVSZWZlcmVuY2UsXG5cdGRlZmluZVJlZmVyZW5jZSxcblx0ZGVmaW5lU3RhdGUsXG5cdGRlZmluZVVJNUNsYXNzLFxuXHRldmVudCxcblx0cHJvcGVydHksXG5cdHR5cGUgUHJvcGVydGllc09mXG59IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgVG9rZW4gZnJvbSBcInNhcC9mZS9jb250cm9scy9lYXN5RmlsdGVyL1Rva2VuXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBGbGV4Qm94IGZyb20gXCJzYXAvbS9GbGV4Qm94XCI7XG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwic2FwL20vUG9wb3ZlclwiO1xuaW1wb3J0IFRva2VuaXplciBmcm9tIFwic2FwL20vVG9rZW5pemVyXCI7XG5pbXBvcnQgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IHsgQnV0dG9uVHlwZSwgRmxleEFsaWduSXRlbXMsIEZsZXhKdXN0aWZ5Q29udGVudCwgRmxleFdyYXAsIFBsYWNlbWVudFR5cGUgfSBmcm9tIFwic2FwL20vbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgTGliIGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCB0eXBlIFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCB7IFZhbHVlU3RhdGUgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcblxuaW1wb3J0IHR5cGUgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCBkZWVwQ2xvbmUgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcENsb25lXCI7XG5pbXBvcnQgeyBhbmQsIGJpbmRTdGF0ZSwgbm90IH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgRWFzeUZpbHRlcklucHV0IGZyb20gXCJzYXAvZmUvY29udHJvbHMvZWFzeUZpbHRlci9FYXN5RmlsdGVySW5wdXRcIjtcbmltcG9ydCB0eXBlIEVhc3lGaWx0ZXJUb2tlbiBmcm9tIFwic2FwL2ZlL2NvbnRyb2xzL2Vhc3lGaWx0ZXIvVG9rZW5cIjtcbmltcG9ydCBPdmVyZmxvd1Rvb2xiYXIgZnJvbSBcInNhcC9tL092ZXJmbG93VG9vbGJhclwiO1xuaW1wb3J0IFRvb2xiYXJTcGFjZXIgZnJvbSBcInNhcC9tL1Rvb2xiYXJTcGFjZXJcIjtcbmltcG9ydCB0eXBlIEZpbHRlck9wZXJhdG9yIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyT3BlcmF0b3JcIjtcbmltcG9ydCBGRVNSSGVscGVyIGZyb20gXCJzYXAvdWkvcGVyZm9ybWFuY2UvdHJhY2UvRkVTUkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgRWFzeUZpbHRlciBmcm9tIFwidXgvZW5nL2Zpb3JpYWkvcmV1c2UvZWFzeWZpbHRlci9FYXN5RmlsdGVyXCI7XG5pbXBvcnQgdHlwZSB7IEVhc3lGaWx0ZXJNZXRhZGF0YSwgUHJvcGVydHlNZXRhZGF0YSwgU3VjY2VzcyB9IGZyb20gXCJ1eC9lbmcvZmlvcmlhaS9yZXVzZS9lYXN5ZmlsdGVyL0Vhc3lGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIHsgRXZlbnRIYW5kbGVyIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3R5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuaW1wb3J0IEFJTm90aWNlIGZyb20gXCIuL0FJTm90aWNlXCI7XG5pbXBvcnQgRWFzeUZpbHRlclV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XG5cbi8vRm9yIGN1cnJlbnQgcmVsZWFzZSB3ZSBhcmUgaWdub3JpbmcgXCJBbGxcIiBhbmQgXCJBbnlcIlxuLy9XZSBjYW4gaW5jb3Jwb3JhdGUgdGhlc2UgdmFsdWVzIGluIGZ1dHVyZVxuZXhwb3J0IHR5cGUgQmV0d2VlblNlbGVjdGVkVmFsdWVzID0gW2Jvb2xlYW4sIGJvb2xlYW5dIHwgW3N0cmluZywgc3RyaW5nXSB8IFtudW1iZXIsIG51bWJlcl0gfCBbRGF0ZSwgRGF0ZV07XG5cbi8vV2Ugd2lsbCBiZSBoYW5kbGluZyBcIkFMTFwiIGFuZCBcIkFOWVwiIGF0IGxhdGVyIHBvaW50IG9mIHRpbWVcbmV4cG9ydCB0eXBlIFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uID1cblx0fCB7XG5cdFx0XHRvcGVyYXRvcjogRXhjbHVkZTxGaWx0ZXJPcGVyYXRvciwgRmlsdGVyT3BlcmF0b3IuQlQgfCBGaWx0ZXJPcGVyYXRvci5OQj47XG5cdFx0XHRzZWxlY3RlZFZhbHVlczogc3RyaW5nW10gfCBib29sZWFuW10gfCBudW1iZXJbXSB8IERhdGVbXTtcblx0ICB9XG5cdHwge1xuXHRcdFx0b3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yLkJUIHwgRmlsdGVyT3BlcmF0b3IuTkI7XG5cdFx0XHRzZWxlY3RlZFZhbHVlczogQmV0d2VlblNlbGVjdGVkVmFsdWVzO1xuXHQgIH07XG5cbmV4cG9ydCB0eXBlIFRva2VuVHlwZSA9IFwiTWVudVdpdGhDaGVja0JveFwiIHwgXCJDYWxlbmRhclwiIHwgXCJUaW1lXCIgfCBcIlZhbHVlSGVscFwiO1xuXG5leHBvcnQgdHlwZSBUb2tlbkRlZmluaXRpb24gPSB7XG5cdGtleTogc3RyaW5nO1xuXHRsYWJlbDogc3RyaW5nO1xuXHRrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzOiBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdO1xuXHR0eXBlPzogVG9rZW5UeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgVG9rZW5TZXR0ZXJzID0gXCJzZXRTZWxlY3RlZFZhbHVlc1wiO1xuXG5leHBvcnQgdHlwZSBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YSA9XG5cdHwgKFByb3BlcnR5TWV0YWRhdGEgJiB7XG5cdFx0XHR0eXBlOiBUb2tlblR5cGU7XG5cdFx0XHRsYWJlbDogc3RyaW5nOyAvLyBSZXF1aXJlZCBwcm9wZXJ0eSwgaGVuY2UgbGFiZWwgaXMgbWFuZGF0b3J5XG5cdFx0XHRyZXF1aXJlZDogdHJ1ZTtcblx0XHRcdGRlZmF1bHRWYWx1ZT86IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW107XG5cdCAgfSlcblx0fCAoUHJvcGVydHlNZXRhZGF0YSAmIHtcblx0XHRcdHR5cGU6IFRva2VuVHlwZTtcblx0XHRcdGxhYmVsPzogc3RyaW5nOyAvLyBPcHRpb25hbCBwcm9wZXJ0eSwgaGVuY2UgbGFiZWwgY2FuIGJlIG9taXR0ZWRcblx0XHRcdHJlcXVpcmVkOiBmYWxzZTtcblx0XHRcdGRlZmF1bHRWYWx1ZT86IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW107XG5cdCAgfSk7XG4vKlxuICogRGVsaXZlcnkgZm9yIGJldGEgcmVsZWFzZSBmb3IgdGhlIGVhc3kgZmlsdGVyIGZlYXR1cmUuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb250cm9scy5lYXN5RmlsdGVyLkVhc3lGaWx0ZXJCYXJDb250YWluZXJcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVhc3lGaWx0ZXJCYXJDb250YWluZXIgZXh0ZW5kcyBDb250cm9sIHtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGFwcElkPzogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0ZWFzeUZpbHRlckxpYj86IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFycmF5XCIgfSlcblx0ZmlsdGVyQmFyTWV0YWRhdGEhOiBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YVtdO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYXJyYXlcIiB9KVxuXHRyZWNvbW1lbmRlZFZhbHVlcz86IHN0cmluZ1tdO1xuXG5cdEBkZWZpbmVSZWZlcmVuY2UoKVxuXHRlYXN5RmlsdGVySW5wdXQhOiBSZWY8RW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlcklucHV0Pj47XG5cblx0QGRlZmluZVJlZmVyZW5jZSgpXG5cdHRva2VuaXplciE6IFJlZjxUb2tlbml6ZXI+O1xuXG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiIH0pXG5cdGNvbnRlbnQ/OiBDb250cm9sO1xuXG5cdEBldmVudCgpXG5cdHRva2Vuc0NoYW5nZWQ/OiBFdmVudEhhbmRsZXI8VUk1RXZlbnQ8eyB0b2tlbnM6IFRva2VuRGVmaW5pdGlvbltdOyBnb0J1dHRvblByZXNzZWQ6IGJvb2xlYW4gfSwgRWFzeUZpbHRlckJhckNvbnRhaW5lcj4+O1xuXG5cdEBldmVudCgpXG5cdHF1ZXJ5Q2hhbmdlZD86IEV2ZW50SGFuZGxlcjxVSTVFdmVudDx7IHF1ZXJ5OiBzdHJpbmcgfSwgRWFzeUZpbHRlckJhckNvbnRhaW5lcj4+O1xuXG5cdEBldmVudCgpXG5cdHNob3dWYWx1ZUhlbHA/OiBFdmVudEhhbmRsZXI8XG5cdFx0VUk1RXZlbnQ8XG5cdFx0XHR7IGtleTogc3RyaW5nOyB2YWx1ZXM6IHVua25vd25bXTsgcmVzb2x2ZTogKHZhbHVlOiBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdKSA9PiB2b2lkOyByZWplY3Q6IChyZWFzb24/OiBFcnJvcikgPT4gdm9pZCB9LFxuXHRcdFx0RWFzeUZpbHRlckJhckNvbnRhaW5lclxuXHRcdD5cblx0PjtcblxuXHRAZXZlbnQoKVxuXHRjbGVhckZpbHRlcnM/OiBFdmVudEhhbmRsZXI7XG5cblx0Ly9UaGUgZXZlbnQgd2lsbCBiZSB0cmlnZ2VyZWQgb25seSB3aGVuIHRoZSB0b2tlbnMgaGFzIGJlZW4gY2hhbmdlZCB3aXRoIHRva2VucyBhbmQgcHJlc3NlZCBvbiB0aGUgR28gQnV0dG9uXG5cdC8vSW4gdGhpcyBjYXNlIHRoZSBcIkVudGVyXCIgd29udCBiZSByZWxldmFudCBiZWNhdXNlIHRoZSBpbnB1dCBmaWVsZCB3aWxsIGJlIGluIG5vbiBlZGl0YWJsZSBzdGF0ZVxuXHRAZXZlbnQoKVxuXHRleGVjdXRlU2VhcmNoPzogRXZlbnRIYW5kbGVyO1xuXG5cdEBldmVudCgpXG5cdGJlZm9yZVF1ZXJ5UHJvY2Vzc2luZz86IEV2ZW50SGFuZGxlcjtcblxuXHRAZXZlbnQoKVxuXHRhZnRlclF1ZXJ5UHJvY2Vzc2luZz86IEV2ZW50SGFuZGxlcjtcblxuXHRwcml2YXRlIHJlc291cmNlQnVuZGxlITogUmVzb3VyY2VCdW5kbGU7XG5cblx0QGRlZmluZVN0YXRlKClcblx0cHJvdGVjdGVkIHN0YXRlOiBTdGF0ZU9mPHtcblx0XHRzaG93UmVzdWx0OiBib29sZWFuO1xuXHRcdHRva2VuczogVG9rZW5EZWZpbml0aW9uW107XG5cdFx0Z29QcmVzc2VkOiBib29sZWFuO1xuXHRcdHRva2VuaXplckVkaXRhYmxlOiBib29sZWFuO1xuXHR9PiA9IHtcblx0XHRzaG93UmVzdWx0OiBmYWxzZSxcblx0XHR0b2tlbnM6IFtdIGFzIFRva2VuRGVmaW5pdGlvbltdLFxuXHRcdGdvUHJlc3NlZDogZmFsc2UsXG5cdFx0dG9rZW5pemVyRWRpdGFibGU6IHRydWVcblx0fTtcblxuXHRwcml2YXRlIGlubmVyQ29udHJvbFBvcG92ZXI/OiBQb3BvdmVyO1xuXG5cdHByaXZhdGUgb2tCdXR0b24/OiBCdXR0b247XG5cblx0cHJpdmF0ZSBzaG93QWxsQnV0dG9uPzogQnV0dG9uO1xuXG5cdHByaXZhdGUgdG9vbGJhcj86IE92ZXJmbG93VG9vbGJhcjtcblxuXHRwcml2YXRlIG1hbmRhdG9yeUtleU1hcDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcblxuXHQvL0lmIHNldCB0byB0cnVlIHRoZSBlcnJvciBzdGF0ZSBjYW4gYmUgc2VlbiBvbiB0aGUgdG9rZW5zXG5cdHByaXZhdGUgaXNNYW5kYXRvcnlDaGVja1JlcXVpcmVkPzogYm9vbGVhbjtcblxuXHRwcml2YXRlIHNob3VsZFRva2VuQ2hhbmdlRXZlbnRGaXJlZCA9IHRydWU7XG5cblx0ZWFzeWZpbHRlcj86IFByb21pc2U8dHlwZW9mIEVhc3lGaWx0ZXIgfCB1bmRlZmluZWQ+O1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6IHN0cmluZyB8ICgkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPEVhc3lGaWx0ZXJCYXJDb250YWluZXI+KSwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMgYXMgc3RyaW5nLCBvdGhlcnMpO1xuXHRcdHRoaXMuaW5pdGlhbGl6ZSgpO1xuXHR9XG5cblx0c2V0RWFzeUZpbHRlckxpYihlYXN5RmlsdGVyTGliOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiZWFzeUZpbHRlckxpYlwiLCBlYXN5RmlsdGVyTGliKTtcblx0XHRpZiAodGhpcy5lYXN5RmlsdGVyTGliKSB7XG5cdFx0XHR0aGlzLmVhc3lmaWx0ZXIgPSBpbXBvcnQodGhpcy5lYXN5RmlsdGVyTGliKTtcblx0XHR9XG5cdH1cblxuXHRpbml0aWFsaXplKCk6IHZvaWQge1xuXHRcdHRoaXMucmVzb3VyY2VCdW5kbGUgPSBMaWIuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29udHJvbHNcIikhO1xuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdHRoaXMuaW5uZXJDb250cm9sUG9wb3ZlciA9IHRoaXMuY3JlYXRlUG9wb3ZlckZvcklubmVyQ29udHJvbHMoKTtcblx0XHR0aGlzLmFkZERlcGVuZGVudCh0aGlzLmlubmVyQ29udHJvbFBvcG92ZXIpO1xuXHRcdC8vIHBvcHVsYXRlIHRoZSB0b2tlbnMgd2l0aCBkZWZhdWx0IHZhbHVlXG5cdFx0Y29uc3QgdG9rZW5zID0gdGhpcy5nZXREZWZhdWx0VG9rZW5zKHRydWUpO1xuXHRcdHRoaXMuc3RhdGUudG9rZW5zID0gdG9rZW5zO1xuXHRcdHRoaXMuc3RhdGUuc2hvd1Jlc3VsdCA9IHRva2Vucy5sZW5ndGggPiAwO1xuXHRcdC8vV2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IGVycm9yIHZhbHVlU3RhdGVNZXNzYWdlIGFzIHNvb24gdGhlIGNvbnRyb2wgcmVuZGVyc1xuXHRcdHRoaXMuaXNNYW5kYXRvcnlDaGVja1JlcXVpcmVkID0gdHJ1ZTtcblx0XHQvL29uVG9rZW5DaGFuZ2UgZXZlbnQgc2hvdWxkIG5vdCBiZSBmaXJlZCB3aGVuIGluaXRpYWwgc2V0IG9mIHRva2VucyBhcmUgc2V0XG5cdFx0dGhpcy5zaG91bGRUb2tlbkNoYW5nZUV2ZW50RmlyZWQgPSBmYWxzZTtcblx0fVxuXG5cdGdldERlZmF1bHRUb2tlbnMoaXNEZWZhdWx0VmFsdWVzUmVzcGVjdGVkOiBib29sZWFuKTogVG9rZW5EZWZpbml0aW9uW10ge1xuXHRcdGNvbnN0IHRva2VuczogVG9rZW5EZWZpbml0aW9uW10gPSBbXTtcblx0XHR0aGlzLmZpbHRlckJhck1ldGFkYXRhPy5mb3JFYWNoKChkYXRhKSA9PiB7XG5cdFx0XHRpZiAoZGF0YS5yZXF1aXJlZCA9PT0gdHJ1ZSkge1xuXHRcdFx0XHR0aGlzLm1hbmRhdG9yeUtleU1hcFtkYXRhLm5hbWVdID0gdHJ1ZTtcblx0XHRcdFx0Ly9DaGVjayB3aGV0aGVyIHRoZSBrZXlzIGV4aXN0IGluIHRoZSBjdXJyZW50IHN0YXRlIGVsc2UgcHVzaCBpdCBhY3Jvc3Ncblx0XHRcdFx0dG9rZW5zLnB1c2goe1xuXHRcdFx0XHRcdGtleTogZGF0YS5uYW1lLFxuXHRcdFx0XHRcdGxhYmVsOiBkYXRhLmxhYmVsLFxuXHRcdFx0XHRcdGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXM6IGlzRGVmYXVsdFZhbHVlc1Jlc3BlY3RlZCAmJiBkYXRhLmRlZmF1bHRWYWx1ZSA/IGRhdGEuZGVmYXVsdFZhbHVlIDogW10sXG5cdFx0XHRcdFx0dHlwZTogZGF0YS50eXBlXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiB0b2tlbnM7XG5cdH1cblxuXHRvbkVudGVyUHJlc3NlZChlOiBVSTVFdmVudDx7IHF1ZXJ5OiBzdHJpbmcgfSwgRWFzeUZpbHRlcklucHV0Pik6IHZvaWQge1xuXHRcdHRoaXMub25Hb1ByZXNzKGUuZ2V0UGFyYW1ldGVyKFwicXVlcnlcIiksIGZhbHNlKTtcblx0fVxuXG5cdC8vTWFraW5nIGl0IHB1YmxpYyBiZWNhdXNlIGluIGxpdmUgbW9kZSB0aGUgYXBwIGRldmVsb3BlciBjYW4gZGVjaWRlIHdoZXRoZXIgdG8gZGlzcGxheSB0aGUgZXJyb3IgVmFsdWVTdGF0ZU1lc3NhZ2Vcblx0Ly9JbiBub24tbGl2ZSBtb2RlICwgd2UgYXJlIGFscmVhZHkgaW50ZXJuYWxseSBoYW5kbGluZyBpdCBvbiBldmVyeSB0aW1lIHRpbWUgYSB1c2VyIGNsaWNrcyBvbiBHTy9FbnRlciBidXR0b25zXG5cdHB1YmxpYyBjaGVja0lmQWxsTWFuZGF0b3J5VG9rZW5zRmlsbGVkKCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IHRva2Vuc0luU3RhdGUgPSB0aGlzLmdldFVuU2V0TWFuZGF0b3J5VG9rZW5zSW5DdXJyZW50U3RhdGUoKTtcblx0XHRpZiAodG9rZW5zSW5TdGF0ZS5sZW5ndGggIT09IDApIHtcblx0XHRcdGNvbnN0IHRva2VucyA9IHRoaXMuZ2V0QWN0dWFsVG9rZW5zRnJvbVN0YXRlKHRva2Vuc0luU3RhdGUpO1xuXHRcdFx0dG9rZW5zPy5mb3JFYWNoKCh0b2tlbikgPT4ge1xuXHRcdFx0XHR0b2tlbi5zZXRQcm9wZXJ0eShcInZhbHVlU3RhdGVcIiwgVmFsdWVTdGF0ZS5FcnJvcik7XG5cdFx0XHRcdHRva2VuLnNldFByb3BlcnR5KFwidmFsdWVTdGF0ZVRleHRcIiwgdGhpcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9NQU5EQVRPUllfVE9LRU5fRVJST1JcIikpO1xuXHRcdFx0XHR0b2tlbi5vcGVuVmFsdWVTdGF0ZU1lc3NhZ2UoKTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHB1YmxpYyBjbG9zZUFsbE1hbmRhdG9yeVZhbHVlU3RhdGVNZXNzYWdlcygpOiB2b2lkIHtcblx0XHRjb25zdCBlYXN5VG9rZW5zID0gdGhpcy50b2tlbml6ZXIuY3VycmVudD8uZ2V0VG9rZW5zKCkgYXMgRWFzeUZpbHRlclRva2VuW107XG5cdFx0ZWFzeVRva2Vucy5mb3JFYWNoKCh0b2tlbikgPT4gdG9rZW4uY2xvc2VWYWx1ZVN0YXRlTWVzc2FnZSgpKTtcblx0fVxuXG5cdGFzeW5jIG9uR29QcmVzcyhtYWdpY1F1ZXJ5OiBzdHJpbmcgfCB1bmRlZmluZWQsIGRvU2VhcmNoID0gZmFsc2UpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIW1hZ2ljUXVlcnkpIHtcblx0XHRcdHRoaXMucmVzZXRTdGF0ZSgpO1xuXHRcdFx0dGhpcy5zdGF0ZS5nb1ByZXNzZWQgPSBkb1NlYXJjaDtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5zdGF0ZS50b2tlbml6ZXJFZGl0YWJsZSA9IHRydWU7XG5cdFx0dGhpcy5lYXN5RmlsdGVySW5wdXQuY3VycmVudD8uc2V0RWRpdGFibGUodHJ1ZSk7XG5cblx0XHQvLyBDYWxsIEFJIHNlcnZpY2UgdG8gZ2V0IHRoZSBmaWx0ZXIgY3JpdGVyaWFcblx0XHRjb25zdCBlYXN5ZmlsdGVyID0gYXdhaXQgdGhpcy5lYXN5ZmlsdGVyO1xuXHRcdGlmICghZWFzeWZpbHRlcikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLmZpcmVFdmVudChcImJlZm9yZVF1ZXJ5UHJvY2Vzc2luZ1wiKTtcblxuXHRcdGNvbnN0IGVhc3lGaWx0ZXJNZXRhZGF0YTogRWFzeUZpbHRlck1ldGFkYXRhID0ge1xuXHRcdFx0dmVyc2lvbjogMSxcblx0XHRcdGVudGl0eVNldDogdGhpcy5jb250ZXh0UGF0aCxcblx0XHRcdGZpZWxkczogdGhpcy5maWx0ZXJCYXJNZXRhZGF0YVxuXHRcdH07XG5cblx0XHRjb25zdCBlYXN5RmlsdGVyUmVzdWx0ID0gYXdhaXQgZWFzeWZpbHRlci5lYXN5RmlsdGVyKG1hZ2ljUXVlcnksIGVhc3lGaWx0ZXJNZXRhZGF0YSk7XG5cblx0XHRpZiAoZWFzeUZpbHRlclJlc3VsdC5zdWNjZXNzKSB7XG5cdFx0XHR0aGlzLmVhc3lGaWx0ZXJJbnB1dC5jdXJyZW50Py5hZGRSZWNlbnRRdWVyeShtYWdpY1F1ZXJ5KTtcblx0XHRcdGlmIChlYXN5RmlsdGVyUmVzdWx0LmRhdGEudmVyc2lvbiA9PT0gMSkge1xuXHRcdFx0XHR0aGlzLmhhbmRsZVYxU3VjY2VzcyhlYXN5RmlsdGVyUmVzdWx0LCBkb1NlYXJjaCk7XG5cdFx0XHR9IGVsc2UgaWYgKGVhc3lGaWx0ZXJSZXN1bHQuZGF0YS52ZXJzaW9uID09PSAyKSB7XG5cdFx0XHRcdC8vIENyZWF0ZSB0aGUgc2FwLnVpLm1vZGVsLkZpbHRlciBmcm9tIHRoZSBmaWx0ZXIgYW5kIGFwcGx5IGl0IGRpcmVjdGx5IHRvIHRoZSBsaXN0IGJpbmRpbmdcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gZXJyb3Jcblx0XHRcdHRoaXMuZWFzeUZpbHRlcklucHV0LmN1cnJlbnQ/LnNldEFzSW52YWxpZChlYXN5RmlsdGVyUmVzdWx0Lm1lc3NhZ2UpO1xuXHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZ2VuZXJhdGluZyBmaWx0ZXIgY3JpdGVyaWE6IFwiLCBlYXN5RmlsdGVyUmVzdWx0Lm1lc3NhZ2UpO1xuXHRcdH1cblxuXHRcdHRoaXMuZmlyZUV2ZW50KFwiYWZ0ZXJRdWVyeVByb2Nlc3NpbmdcIik7XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlcyB0aGUgc3VjY2VzcyByZXNwb25zZSBmcm9tIHRoZSBBSSBzZXJ2aWNlIGZvciB2ZXJzaW9uIDEgb2YgdGhlIGVhc3kgZmlsdGVyLlxuXHQgKiBAcGFyYW0gZWFzeUZpbHRlclJlc3VsdCBUaGUgcmVzdWx0IGZyb20gdGhlIEFJIHNlcnZpY2Vcblx0ICogQHBhcmFtIGdvUHJlc3NlZCBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIHNlYXJjaCBhZnRlciB0aGUgZmlsdGVyIGNyaXRlcmlhIGhhcyBiZWVuIGdlbmVyYXRlZFxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBoYW5kbGVWMVN1Y2Nlc3MoZWFzeUZpbHRlclJlc3VsdDogU3VjY2VzczxFYXN5RmlsdGVyLkVhc3lGaWx0ZXJSZXN1bHQ+LCBnb1ByZXNzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAoZWFzeUZpbHRlclJlc3VsdC5kYXRhLnVuY2xlYXIpIHtcblx0XHRcdHRoaXMuZWFzeUZpbHRlcklucHV0LmN1cnJlbnQ/LnNldEFzSW52YWxpZChcblx0XHRcdFx0dGhpcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9VTkNMRUFSX0lOUFVUXCIsIFtlYXN5RmlsdGVyUmVzdWx0LmRhdGEudW5jbGVhcl0pXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRpZiAoZWFzeUZpbHRlclJlc3VsdC5kYXRhLmZpbHRlcikge1xuXHRcdFx0Ly8gV2UgbmVlZCB0byBzaG93IGEgbWVzc2FnZSB0byB0aGUgdXNlciB0aGF0IHRoZSBmaWx0ZXIgY3JpdGVyaWEgaGFzIGJlZW4gZ2VuZXJhdGVkXG5cdFx0XHRMb2cuZGVidWcoXCJGaWx0ZXIgY3JpdGVyaWEgZ2VuZXJhdGVkOiBcIiwgSlNPTi5zdHJpbmdpZnkoZWFzeUZpbHRlclJlc3VsdC5kYXRhLmZpbHRlciwgbnVsbCwgMikpO1xuXG5cdFx0XHQvLyBWYWxpZGF0ZSBhbmQgYXBwbHkgdGhlIGZpbHRlciBjcml0ZXJpYVxuXHRcdFx0Y29uc3QgdG9rZW5zOiBUb2tlbkRlZmluaXRpb25bXSA9IHRoaXMuZ2V0RGVmYXVsdFRva2VucyhmYWxzZSk7XG5cdFx0XHRFYXN5RmlsdGVyVXRpbHMuZm9ybWF0RGF0YSh0b2tlbnMsIGVhc3lGaWx0ZXJSZXN1bHQuZGF0YS5maWx0ZXIsIHRoaXMuZmlsdGVyQmFyTWV0YWRhdGEpO1xuXG5cdFx0XHR0aGlzLnN0YXRlLnNob3dSZXN1bHQgPSB0cnVlO1xuXHRcdFx0dGhpcy5zdGF0ZS5nb1ByZXNzZWQgPSBnb1ByZXNzZWQ7XG5cdFx0XHR0aGlzLnN0YXRlLnRva2VucyA9IHRva2Vucztcblx0XHR9XG5cdH1cblxuXHRjcmVhdGVQb3BvdmVyRm9ySW5uZXJDb250cm9scygpOiBQb3BvdmVyIHtcblx0XHRpZiAoIXRoaXMuaW5uZXJDb250cm9sUG9wb3Zlcikge1xuXHRcdFx0dGhpcy5pbm5lckNvbnRyb2xQb3BvdmVyID0gKFxuXHRcdFx0XHQ8UG9wb3ZlciBpZD17dGhpcy5nZXRJZCgpICsgXCItaW5uZXJQb3BvdmVyXCJ9IHNob3dBcnJvdz17ZmFsc2V9IHNob3dIZWFkZXI9e3RydWV9IHBsYWNlbWVudD17UGxhY2VtZW50VHlwZS5Cb3R0b219PlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRmb290ZXI6IHRoaXMuZ2V0VG9vbGJhcigpXG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PC9Qb3BvdmVyPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuaW5uZXJDb250cm9sUG9wb3ZlciBhcyBQb3BvdmVyO1xuXHR9XG5cblx0Z2V0VG9vbGJhcigpOiBPdmVyZmxvd1Rvb2xiYXIgfCB1bmRlZmluZWQge1xuXHRcdGlmICghdGhpcy50b29sYmFyKSB7XG5cdFx0XHRjb25zdCBva0J1dHRvbiA9IHRoaXMuZ2V0T2tCdXR0b24oKTtcblx0XHRcdGNvbnN0IHNob3dBbGxCdXR0b24gPSB0aGlzLmdldFNob3dBbGxCdXR0b24oKTtcblx0XHRcdHRoaXMudG9vbGJhciA9IChcblx0XHRcdFx0PE92ZXJmbG93VG9vbGJhcj5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHRcdDxUb29sYmFyU3BhY2VyIC8+XG5cdFx0XHRcdFx0XHRcdFx0e29rQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHRcdHtzaG93QWxsQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ8L092ZXJmbG93VG9vbGJhcj5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnRvb2xiYXI7XG5cdH1cblxuXHRnZXRPa0J1dHRvbigpOiBCdXR0b24gfCB1bmRlZmluZWQge1xuXHRcdGlmICghdGhpcy5va0J1dHRvbikge1xuXHRcdFx0dGhpcy5va0J1dHRvbiA9IDxCdXR0b24gdGV4dD17dGhpcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9QT1BPVkVSX09LXCIpfSB0eXBlPXtCdXR0b25UeXBlLkVtcGhhc2l6ZWR9IC8+O1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5va0J1dHRvbjtcblx0fVxuXG5cdGdldFNob3dBbGxCdXR0b24oKTogQnV0dG9uIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoIXRoaXMuc2hvd0FsbEJ1dHRvbikge1xuXHRcdFx0dGhpcy5zaG93QWxsQnV0dG9uID0gPEJ1dHRvbiB0ZXh0PXt0aGlzLnJlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX1BPUE9WRVJfU0hPV19BTExfSVRFTVNcIil9IC8+O1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5zaG93QWxsQnV0dG9uO1xuXHR9XG5cblx0b25TdGF0ZUNoYW5nZShjaGFuZ2VkUHJvcHM6IHN0cmluZ1tdID0gW10pOiB2b2lkIHtcblx0XHRpZiAoY2hhbmdlZFByb3BzLmluY2x1ZGVzKFwidG9rZW5zXCIpKSB7XG5cdFx0XHRpZiAodGhpcy5zaG91bGRUb2tlbkNoYW5nZUV2ZW50RmlyZWQpIHtcblx0XHRcdFx0dGhpcy5maXJlRXZlbnQoXCJ0b2tlbnNDaGFuZ2VkXCIsIHtcblx0XHRcdFx0XHR0b2tlbnM6IHRoaXMuc3RhdGUudG9rZW5zLm1hcCgoZGF0YSkgPT4gZGVlcENsb25lKGRhdGEpKSxcblx0XHRcdFx0XHRnb0J1dHRvblByZXNzZWQ6IHRoaXMuc3RhdGUuZ29QcmVzc2VkLnZhbHVlT2YoKVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMuc3RhdGUuc2hvd1Jlc3VsdCA9IHRoaXMuc3RhdGUudG9rZW5zLmxlbmd0aCA+IDA7XG5cdFx0XHRpZiAoISh0aGlzLmlzTWFuZGF0b3J5Q2hlY2tSZXF1aXJlZCA/PyBmYWxzZSkpIHtcblx0XHRcdFx0dGhpcy5jaGVja0lmQWxsTWFuZGF0b3J5VG9rZW5zRmlsbGVkKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vUmVzZXR0aW5nIHRvIGRlZmF1bHQgdmFsdWVzXG5cdFx0dGhpcy5pc01hbmRhdG9yeUNoZWNrUmVxdWlyZWQgPSBmYWxzZTtcblx0XHR0aGlzLnNob3VsZFRva2VuQ2hhbmdlRXZlbnRGaXJlZCA9IHRydWU7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IFZCb3gge1xuXHRcdGNvbnN0ICR0b3BHb0J0biA9IGNyZWF0ZVJlZmVyZW5jZTxCdXR0b24+KCk7XG5cdFx0Y29uc3QgJGJvdEdvQnRuID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCBvdXRWQm94ID0gKFxuXHRcdFx0PFZCb3g+XG5cdFx0XHRcdDxGbGV4Qm94IHJlbmRlclR5cGU9XCJCYXJlXCI+XG5cdFx0XHRcdFx0PEVhc3lGaWx0ZXJJbnB1dFxuXHRcdFx0XHRcdFx0cmVjb21tZW5kZWRWYWx1ZXM9e3RoaXMucmVjb21tZW5kZWRWYWx1ZXN9XG5cdFx0XHRcdFx0XHRyZWY9e3RoaXMuZWFzeUZpbHRlcklucHV0fVxuXHRcdFx0XHRcdFx0YXBwSWQ9e3RoaXMuYXBwSWR9XG5cdFx0XHRcdFx0XHRlbnRlclByZXNzZWQ9e3RoaXMub25FbnRlclByZXNzZWQuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdHF1ZXJ5Q2hhbmdlZD17KGUpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5maXJlRXZlbnQoXCJxdWVyeUNoYW5nZWRcIiwgeyBxdWVyeTogZS5nZXRQYXJhbWV0ZXIoXCJxdWVyeVwiKSB9KTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRsaXZlQ2hhbmdlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc3RhdGUudG9rZW5pemVyRWRpdGFibGUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0Lz5cblxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly9haVwifVxuXHRcdFx0XHRcdFx0Y2xhc3M9e1wic2FwVWlTbWFsbE1hcmdpbkJlZ2luXCJ9XG5cdFx0XHRcdFx0XHRyZWY9eyR0b3BHb0J0bn1cblx0XHRcdFx0XHRcdHZpc2libGU9e25vdChiaW5kU3RhdGUodGhpcy5zdGF0ZSwgXCJzaG93UmVzdWx0XCIpKX1cblx0XHRcdFx0XHRcdHRleHQ9e3RoaXMucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fRUFTWV9GSUxURVJfR09cIil9XG5cdFx0XHRcdFx0XHR0eXBlPXtCdXR0b25UeXBlLkVtcGhhc2l6ZWR9XG5cdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5vbkdvQnV0dG9uUHJlc3MuYmluZCh0aGlzKX1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdDxGbGV4Qm94XG5cdFx0XHRcdFx0cmVuZGVyVHlwZT1cIkJhcmVcIlxuXHRcdFx0XHRcdHZpc2libGU9e2JpbmRTdGF0ZSh0aGlzLnN0YXRlLCBcInNob3dSZXN1bHRcIil9XG5cdFx0XHRcdFx0YWxpZ25JdGVtcz17RmxleEFsaWduSXRlbXMuQ2VudGVyfVxuXHRcdFx0XHRcdHdyYXA9e0ZsZXhXcmFwLldyYXB9XG5cdFx0XHRcdFx0anVzdGlmeUNvbnRlbnQ9e0ZsZXhKdXN0aWZ5Q29udGVudC5TcGFjZUJldHdlZW59XG5cdFx0XHRcdFx0Y2xhc3M9e1wic2FwVWlUaW55TWFyZ2luVG9wXCJ9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8RmxleEJveCBjbGFzcz17XCJzYXBGZUNvbnRyb2xzR2FwOHB4XCJ9IHJlbmRlclR5cGU9XCJCYXJlXCIgYWxpZ25JdGVtcz17RmxleEFsaWduSXRlbXMuQ2VudGVyfSB3cmFwPXtGbGV4V3JhcC5XcmFwfT5cblx0XHRcdFx0XHRcdDxBSU5vdGljZSByZXNvdXJjZUJ1bmRsZT17dGhpcy5yZXNvdXJjZUJ1bmRsZX0gLz5cblx0XHRcdFx0XHRcdDxUb2tlbml6ZXJcblx0XHRcdFx0XHRcdFx0ZWRpdGFibGU9e2FuZChiaW5kU3RhdGUodGhpcy5zdGF0ZSwgXCJ0b2tlbml6ZXJFZGl0YWJsZVwiKSwgdHJ1ZSl9XG5cdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcEZlQ29udHJvbHNUb2tlbml6ZXJcIn1cblx0XHRcdFx0XHRcdFx0dG9rZW5zPXtiaW5kU3RhdGUodGhpcy5zdGF0ZSwgXCJ0b2tlbnNcIil9XG5cdFx0XHRcdFx0XHRcdHJlZj17dGhpcy50b2tlbml6ZXJ9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRcdFx0dG9rZW5zOiAoaWR4OiBudW1iZXIsIGN0eDogQ29udGV4dCk6IFRva2VuID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IG9iamVjdCA9IGN0eC5nZXRPYmplY3QoKSBhcyBUb2tlbkRlZmluaXRpb247XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8VG9rZW5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRrZXk9e3RoaXMuc3RhdGUudG9rZW5zLmtleX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsYWJlbD17dGhpcy5zdGF0ZS50b2tlbnMubGFiZWx9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aXRlbXM9e3RoaXMuc3RhdGUudG9rZW5zLmtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXN9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWFuZGF0b3J5PXt0aGlzLmlzS2V5TWFuZGF0b3J5KG9iamVjdC5rZXkpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRlbGV0ZT17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgdG9rZW5JbmRleCA9IHRoaXMuc3RhdGUudG9rZW5zLmZpbmRJbmRleCgodG9rZW4pID0+IHRva2VuLmtleSA9PT0gb2JqZWN0LmtleSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBuZXdUb2tlbnMgPSB0aGlzLnN0YXRlLnRva2Vucy5jb25jYXQoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG5ld1Rva2Vucy5zcGxpY2UodG9rZW5JbmRleCwgMSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnN0YXRlLmdvUHJlc3NlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS50b2tlbnMgPSBuZXdUb2tlbnM7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmVhc3lGaWx0ZXJJbnB1dC5jdXJyZW50Py5zZXRFZGl0YWJsZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjdXN0b21EYXRhOiBbXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT1cIlRva2VuSW5mb1wiIHZhbHVlPXtvYmplY3R9IC8+LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8Q3VzdG9tRGF0YSBrZXk9XCJwb3BvdmVyXCIgdmFsdWU9e3RoaXMuaW5uZXJDb250cm9sUG9wb3Zlcn0gLz4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT1cImVhc3lGaWx0ZXJCYXJDb250YWluZXJcIiB2YWx1ZT17dGhpc30gLz4sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0a2V5PVwiY29kZUxpc3RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlPXt0aGlzLmZpbHRlckJhck1ldGFkYXRhPy5maW5kKChkYXRhKSA9PiBkYXRhLm5hbWUgPT09IG9iamVjdC5rZXkpPy5jb2RlTGlzdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L1Rva2VuPlxuXHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHQ8L1Rva2VuaXplcj5cblx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0dGV4dD17dGhpcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9SRVNFVFwiKX1cblx0XHRcdFx0XHRcdFx0dHlwZT17QnV0dG9uVHlwZS5UcmFuc3BhcmVudH1cblx0XHRcdFx0XHRcdFx0cHJlc3M9eygpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnJlc2V0U3RhdGUoKTtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnN0YXRlLmdvUHJlc3NlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRcdC8vUmV0YWluaW5nIHRoZSBmb2N1cyBvbiBwb3BvdmVyIGRvZXNuJ3QgbWFrZSB0aGUgcG9wb3ZlciBjbG9zZSBvbiBldmVyeSBpbnRlcmFjdGlvblxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZWFzeUZpbHRlcklucHV0LmN1cnJlbnQ/LmZvY3VzKCk7XG5cdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvRmxleEJveD5cblx0XHRcdFx0XHQ8RmxleEJveCByZW5kZXJUeXBlPVwiQmFyZVwiIGFsaWduSXRlbXM9e0ZsZXhBbGlnbkl0ZW1zLkNlbnRlcn0+XG5cdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly9haVwifVxuXHRcdFx0XHRcdFx0XHR2aXNpYmxlPXtiaW5kU3RhdGUodGhpcy5zdGF0ZSwgXCJzaG93UmVzdWx0XCIpfVxuXHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLnJlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX0dPXCIpfVxuXHRcdFx0XHRcdFx0XHR0eXBlPXtCdXR0b25UeXBlLkVtcGhhc2l6ZWR9XG5cdFx0XHRcdFx0XHRcdHJlZj17JGJvdEdvQnRufVxuXHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5vbkdvQnV0dG9uUHJlc3MuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0PC9GbGV4Qm94PlxuXHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHQ8L1ZCb3g+XG5cdFx0KSBhcyBWQm94O1xuXHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSgkdG9wR29CdG4uY3VycmVudCEsIFwicHJlc3NcIiwgXCJmZTphaTpzZWFyY2hcIik7XG5cdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKCRib3RHb0J0bi5jdXJyZW50ISwgXCJwcmVzc1wiLCBcImZlOmFpOnNlYXJjaFwiKTtcblx0XHRyZXR1cm4gb3V0VkJveDtcblx0fVxuXG5cdGFzeW5jIG9uR29CdXR0b25QcmVzcygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBlZGl0YWJsZVN0YXRlID0gdGhpcy5lYXN5RmlsdGVySW5wdXQuY3VycmVudD8uZ2V0RWRpdGFibGUoKTtcblx0XHR0aGlzLnN0YXRlLnRva2VuaXplckVkaXRhYmxlID0gdHJ1ZTtcblx0XHR0aGlzLmVhc3lGaWx0ZXJJbnB1dC5jdXJyZW50Py5zZXRFZGl0YWJsZSh0cnVlKTtcblx0XHRpZiAoIShlZGl0YWJsZVN0YXRlID8/IGZhbHNlKSkge1xuXHRcdFx0dGhpcy5maXJlRXZlbnQoXCJleGVjdXRlU2VhcmNoXCIpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRhd2FpdCB0aGlzLm9uR29QcmVzcyh0aGlzLmVhc3lGaWx0ZXJJbnB1dC5jdXJyZW50Py5nZXRWYWx1ZSgpLCB0cnVlKTtcblx0fVxuXG5cdHJlc2V0U3RhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy5maXJlRXZlbnQoXCJjbGVhckZpbHRlcnNcIik7XG5cdFx0dGhpcy5zdGF0ZS50b2tlbnMgPSB0aGlzLmdldERlZmF1bHRUb2tlbnModHJ1ZSk7XG5cdFx0dGhpcy5lYXN5RmlsdGVySW5wdXQuY3VycmVudD8uc2V0VmFsdWUoXCJcIik7XG5cdFx0dGhpcy5zdGF0ZS50b2tlbml6ZXJFZGl0YWJsZSA9IHRydWU7XG5cdFx0dGhpcy5lYXN5RmlsdGVySW5wdXQuY3VycmVudD8uc2V0RWRpdGFibGUodHJ1ZSk7XG5cdFx0dGhpcy5zdGF0ZS5nb1ByZXNzZWQgPSBmYWxzZTtcblx0XHR0aGlzLmlzTWFuZGF0b3J5Q2hlY2tSZXF1aXJlZCA9IHRydWU7XG5cdFx0Ly9TZXQgdGhlIFZhbHVlIFN0YXRlcyBvZiBhbGwgdGhlIFRva2VucyBiYWNrIHRvIE5vbmVcblx0XHR0aGlzLnRva2VuaXplci5jdXJyZW50Py5nZXRUb2tlbnMoKS5mb3JFYWNoKCh0b2tlbikgPT4gdG9rZW4uc2V0UHJvcGVydHkoXCJ2YWx1ZVN0YXRlXCIsIFZhbHVlU3RhdGUuTm9uZSkpO1xuXHRcdHRoaXMudG9rZW5pemVyLmN1cnJlbnQ/LmdldFRva2VucygpLmZvckVhY2goKHRva2VuKSA9PiB0b2tlbi5zZXRQcm9wZXJ0eShcInZhbHVlU3RhdGVUZXh0XCIsIG51bGwpKTtcblx0fVxuXG5cdC8vVGhlIGJlbG93IGNvZGUgdXBkYXRlcyB0aGUgZXhpc3Rpbmcgc3RhdGUgYnkgZmV0Y2hpbmcgdGhlIGtleSBhbmQgc2VsZWN0ZWRWYWx1ZXNcblx0dXBkYXRlVG9rZW5BcnJheShjaGFuZ2VUeXBlOiBUb2tlblNldHRlcnMsIG5ld1Rva2VuU3BlY2lmaWNWYWx1ZXM6IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10sIHRva2VuS2V5OiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBuZXdUb2tlbnMgPSB0aGlzLnN0YXRlLnRva2Vucy5tYXAoKHRva2VuKSA9PiAoeyAuLi50b2tlbiwga2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlczogWy4uLnRva2VuLmtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXNdIH0pKTtcblx0XHRjb25zdCB0b2tlbkluZGV4ID0gbmV3VG9rZW5zLmZpbmRJbmRleCgodCkgPT4gdC5rZXkgPT09IHRva2VuS2V5KTtcblx0XHRjb25zdCB0b2tlbiA9IG5ld1Rva2Vuc1t0b2tlbkluZGV4XTtcblx0XHRpZiAodG9rZW5JbmRleCAhPSAtMSkge1xuXHRcdFx0c3dpdGNoIChjaGFuZ2VUeXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJzZXRTZWxlY3RlZFZhbHVlc1wiOlxuXHRcdFx0XHRcdHRoaXMuc2V0U2VsZWN0ZWRWYWx1ZXModG9rZW4sIG5ld1Rva2VuU3BlY2lmaWNWYWx1ZXMsIHRva2VuSW5kZXgsIG5ld1Rva2Vucyk7XG5cdFx0XHRcdFx0dG9rZW4ua2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcyA9IG5ld1Rva2VuU3BlY2lmaWNWYWx1ZXM7XG5cdFx0XHRcdFx0Ly9SZW1vdmUgdGhlIHRva2VuIGVudGlyZWx5XG5cdFx0XHRcdFx0aWYgKCF0aGlzLmlzS2V5TWFuZGF0b3J5KHRva2VuLmtleSkgJiYgdG9rZW4ua2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRcdG5ld1Rva2Vucy5zcGxpY2UodG9rZW5JbmRleCwgMSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdExvZy5lcnJvcihcIlNwZWNpZnlpbmcgYSBzZXR0ZXIgdGhhdCBpcyBvdXQgb2YgdGhlIGJvdW5kYXJ5XCIpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0Ly8gVXBkYXRlIHRoZSBzdGF0ZSBieSBhc3NpZ25pbmcgdGhlIG5ldyB0b2tlbnMgYXJyYXlcblx0XHRcdHRoaXMuc3RhdGUuZ29QcmVzc2VkID0gZmFsc2U7XG5cdFx0XHR0aGlzLnN0YXRlLnRva2VucyA9IG5ld1Rva2Vucztcblx0XHRcdHRoaXMuc3RhdGUuc2hvd1Jlc3VsdCA9IG5ld1Rva2Vucy5sZW5ndGggPiAwO1xuXHRcdFx0dGhpcy5lYXN5RmlsdGVySW5wdXQuY3VycmVudD8uc2V0RWRpdGFibGUoZmFsc2UpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc2V0U2VsZWN0ZWRWYWx1ZXMoXG5cdFx0dG9rZW46IFRva2VuRGVmaW5pdGlvbixcblx0XHRuZXdUb2tlblNwZWNpZmljVmFsdWVzOiBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdLFxuXHRcdHRva2VuSW5kZXg6IG51bWJlcixcblx0XHRuZXdUb2tlbnM6IFRva2VuRGVmaW5pdGlvbltdXG5cdCk6IHZvaWQge1xuXHRcdHRva2VuLmtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgPSBuZXdUb2tlblNwZWNpZmljVmFsdWVzO1xuXHRcdGlmICghdGhpcy5pc0tleU1hbmRhdG9yeSh0b2tlbi5rZXkpICYmIHRva2VuLmtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRuZXdUb2tlbnMuc3BsaWNlKHRva2VuSW5kZXgsIDEpO1xuXHRcdH1cblx0fVxuXG5cdGlzS2V5TWFuZGF0b3J5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMubWFuZGF0b3J5S2V5TWFwW2tleV0gPyB0cnVlIDogZmFsc2U7XG5cdH1cblxuXHRnZXRUb2tlbnNJbkluaXRpYWxTdGF0ZSgpOiBUb2tlbkRlZmluaXRpb25bXSB7XG5cdFx0Y29uc3QgbmV3VG9rZW5zID0gdGhpcy5zdGF0ZS50b2tlbnMubWFwKCh0b2tlbikgPT4gKHsgLi4udG9rZW4sIGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXM6IFsuLi50b2tlbi5rZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzXSB9KSk7XG5cdFx0Y29uc3QgbWFuZGF0b3J5VG9rZW5zID0gbmV3VG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHtcblx0XHRcdGlmICh0aGlzLmlzS2V5TWFuZGF0b3J5KHRva2VuLmtleSkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG1hbmRhdG9yeVRva2Vucy5tYXAoKHRva2VuKSA9PiAoeyAuLi50b2tlbiwga2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlczogW10gfSkpO1xuXHR9XG5cblx0Z2V0VW5TZXRNYW5kYXRvcnlUb2tlbnNJbkN1cnJlbnRTdGF0ZSgpOiBUb2tlbkRlZmluaXRpb25bXSB7XG5cdFx0cmV0dXJuIHRoaXMuc3RhdGUudG9rZW5zLmZpbHRlcigodG9rZW4pID0+IHtcblx0XHRcdGNvbnN0IGlzS2V5TWFuZGF0b3J5ID0gdGhpcy5pc0tleU1hbmRhdG9yeSh0b2tlbi5rZXkpO1xuXHRcdFx0aWYgKGlzS2V5TWFuZGF0b3J5KSB7XG5cdFx0XHRcdHJldHVybiB0b2tlbi5rZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMDtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGdldEFjdHVhbFRva2Vuc0Zyb21TdGF0ZSh0b2tlbnM6IFRva2VuRGVmaW5pdGlvbltdKTogRWFzeUZpbHRlclRva2VuW10gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHJlcXVpcmVkS2V5cyA9IHRva2Vucy5tYXAoKHRva2VuKSA9PiB0b2tlbi5rZXkpO1xuXHRcdHJldHVybiB0aGlzLnRva2VuaXplci5jdXJyZW50Py5nZXRUb2tlbnMoKS5maWx0ZXIoKHRva2VuKSA9PiByZXF1aXJlZEtleXMuaW5jbHVkZXModG9rZW4uZ2V0S2V5KCkpKSBhc1xuXHRcdFx0fCBFYXN5RmlsdGVyVG9rZW5bXVxuXHRcdFx0fCB1bmRlZmluZWQ7XG5cdH1cblxuXHRzdGF0aWMgcmVuZGVyKHJtOiBSZW5kZXJNYW5hZ2VyLCBjb250cm9sOiBFYXN5RmlsdGVyQmFyQ29udGFpbmVyKTogdm9pZCB7XG5cdFx0cmV0dXJuIGpzeC5yZW5kZXJVc2luZ1JlbmRlck1hbmFnZXIocm0sIGNvbnRyb2wsICgpID0+IHtcblx0XHRcdHJldHVybiA8c3BhbiByZWY9e2NvbnRyb2x9Pntjb250cm9sLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKX08L3NwYW4+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
|
|
@@ -396,7 +396,7 @@ export default class EasyFilterBarContainer extends Control {
|
|
|
396
396
|
icon={"sap-icon://ai"}
|
|
397
397
|
class={"sapUiSmallMarginBegin"}
|
|
398
398
|
ref={$topGoBtn}
|
|
399
|
-
visible={not(bindState(this.state
|
|
399
|
+
visible={not(bindState(this.state, "showResult"))}
|
|
400
400
|
text={this.resourceBundle.getText("M_EASY_FILTER_GO")}
|
|
401
401
|
type={ButtonType.Emphasized}
|
|
402
402
|
press={this.onGoButtonPress.bind(this)}
|
|
@@ -404,7 +404,7 @@ export default class EasyFilterBarContainer extends Control {
|
|
|
404
404
|
</FlexBox>
|
|
405
405
|
<FlexBox
|
|
406
406
|
renderType="Bare"
|
|
407
|
-
visible={this.state
|
|
407
|
+
visible={bindState(this.state, "showResult")}
|
|
408
408
|
alignItems={FlexAlignItems.Center}
|
|
409
409
|
wrap={FlexWrap.Wrap}
|
|
410
410
|
justifyContent={FlexJustifyContent.SpaceBetween}
|
|
@@ -413,9 +413,9 @@ export default class EasyFilterBarContainer extends Control {
|
|
|
413
413
|
<FlexBox class={"sapFeControlsGap8px"} renderType="Bare" alignItems={FlexAlignItems.Center} wrap={FlexWrap.Wrap}>
|
|
414
414
|
<AINotice resourceBundle={this.resourceBundle} />
|
|
415
415
|
<Tokenizer
|
|
416
|
-
editable={and(bindState(this.state
|
|
416
|
+
editable={and(bindState(this.state, "tokenizerEditable"), true)}
|
|
417
417
|
class={"sapFeControlsTokenizer"}
|
|
418
|
-
tokens={bindState(this.state
|
|
418
|
+
tokens={bindState(this.state, "tokens")}
|
|
419
419
|
ref={this.tokenizer}
|
|
420
420
|
>
|
|
421
421
|
{{
|
|
@@ -466,7 +466,7 @@ export default class EasyFilterBarContainer extends Control {
|
|
|
466
466
|
<FlexBox renderType="Bare" alignItems={FlexAlignItems.Center}>
|
|
467
467
|
<Button
|
|
468
468
|
icon={"sap-icon://ai"}
|
|
469
|
-
visible={this.state
|
|
469
|
+
visible={bindState(this.state, "showResult")}
|
|
470
470
|
text={this.resourceBundle.getText("M_EASY_FILTER_GO")}
|
|
471
471
|
type={ButtonType.Emphasized}
|
|
472
472
|
ref={$botGoBtn}
|