@sapui5/sap.fe.controls 1.136.0 → 1.136.2

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.
Files changed (65) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/controls/.library +1 -1
  3. package/src/sap/fe/controls/easyFilter/AINotice.js +65 -33
  4. package/src/sap/fe/controls/easyFilter/AINotice.tsx +72 -43
  5. package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.js +4 -2
  6. package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.tsx +21 -8
  7. package/src/sap/fe/controls/easyFilter/EasyFilterInput.js +45 -4
  8. package/src/sap/fe/controls/easyFilter/EasyFilterInput.tsx +46 -2
  9. package/src/sap/fe/controls/easyFilter/Token.js +1 -5
  10. package/src/sap/fe/controls/easyFilter/Token.tsx +0 -6
  11. package/src/sap/fe/controls/easyFilter/innerControls/ValueHelpPreviewFactory.js +5 -13
  12. package/src/sap/fe/controls/easyFilter/innerControls/ValueHelpPreviewFactory.ts +4 -12
  13. package/src/sap/fe/controls/library.js +1 -1
  14. package/src/sap/fe/controls/messagebundle.properties +2 -0
  15. package/src/sap/fe/controls/messagebundle_ar.properties +3 -2
  16. package/src/sap/fe/controls/messagebundle_bg.properties +3 -2
  17. package/src/sap/fe/controls/messagebundle_ca.properties +3 -2
  18. package/src/sap/fe/controls/messagebundle_cnr.properties +3 -2
  19. package/src/sap/fe/controls/messagebundle_cs.properties +3 -2
  20. package/src/sap/fe/controls/messagebundle_cy.properties +2 -1
  21. package/src/sap/fe/controls/messagebundle_da.properties +3 -2
  22. package/src/sap/fe/controls/messagebundle_de.properties +5 -4
  23. package/src/sap/fe/controls/messagebundle_el.properties +3 -2
  24. package/src/sap/fe/controls/messagebundle_en.properties +2 -1
  25. package/src/sap/fe/controls/messagebundle_en_GB.properties +2 -1
  26. package/src/sap/fe/controls/messagebundle_en_US_saprigi.properties +2 -1
  27. package/src/sap/fe/controls/messagebundle_es.properties +3 -2
  28. package/src/sap/fe/controls/messagebundle_es_MX.properties +4 -3
  29. package/src/sap/fe/controls/messagebundle_et.properties +2 -1
  30. package/src/sap/fe/controls/messagebundle_fi.properties +2 -1
  31. package/src/sap/fe/controls/messagebundle_fr.properties +3 -2
  32. package/src/sap/fe/controls/messagebundle_fr_CA.properties +3 -2
  33. package/src/sap/fe/controls/messagebundle_hi.properties +2 -1
  34. package/src/sap/fe/controls/messagebundle_hr.properties +3 -2
  35. package/src/sap/fe/controls/messagebundle_hu.properties +3 -2
  36. package/src/sap/fe/controls/messagebundle_id.properties +3 -2
  37. package/src/sap/fe/controls/messagebundle_it.properties +3 -2
  38. package/src/sap/fe/controls/messagebundle_iw.properties +2 -1
  39. package/src/sap/fe/controls/messagebundle_ja.properties +3 -2
  40. package/src/sap/fe/controls/messagebundle_kk.properties +3 -2
  41. package/src/sap/fe/controls/messagebundle_ko.properties +2 -1
  42. package/src/sap/fe/controls/messagebundle_lt.properties +3 -2
  43. package/src/sap/fe/controls/messagebundle_lv.properties +3 -2
  44. package/src/sap/fe/controls/messagebundle_mk.properties +2 -1
  45. package/src/sap/fe/controls/messagebundle_ms.properties +3 -2
  46. package/src/sap/fe/controls/messagebundle_nl.properties +3 -2
  47. package/src/sap/fe/controls/messagebundle_no.properties +3 -2
  48. package/src/sap/fe/controls/messagebundle_pl.properties +3 -2
  49. package/src/sap/fe/controls/messagebundle_pt.properties +3 -2
  50. package/src/sap/fe/controls/messagebundle_pt_PT.properties +3 -2
  51. package/src/sap/fe/controls/messagebundle_ro.properties +3 -2
  52. package/src/sap/fe/controls/messagebundle_ru.properties +2 -1
  53. package/src/sap/fe/controls/messagebundle_sh.properties +3 -2
  54. package/src/sap/fe/controls/messagebundle_sk.properties +2 -1
  55. package/src/sap/fe/controls/messagebundle_sl.properties +3 -2
  56. package/src/sap/fe/controls/messagebundle_sr.properties +3 -2
  57. package/src/sap/fe/controls/messagebundle_sv.properties +2 -1
  58. package/src/sap/fe/controls/messagebundle_th.properties +2 -1
  59. package/src/sap/fe/controls/messagebundle_tr.properties +3 -2
  60. package/src/sap/fe/controls/messagebundle_uk.properties +3 -2
  61. package/src/sap/fe/controls/messagebundle_vi.properties +3 -2
  62. package/src/sap/fe/controls/messagebundle_zh_CN.properties +2 -1
  63. package/src/sap/fe/controls/messagebundle_zh_TW.properties +2 -1
  64. package/src/sap/fe/controls/shortcuts/popup/ShortcutTool.js +28 -10
  65. package/src/sap/fe/controls/shortcuts/popup/ShortcutTool.tsx +27 -13
@@ -194,10 +194,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/jsx-runt
194
194
  }
195
195
  };
196
196
  _proto.handleMultipleSelectedValues = function handleMultipleSelectedValues(totalSelectedValues) {
197
- const tokenInfo = this.getCustomDataValue("TokenInfo");
198
- if (tokenInfo?.type === "ValueHelp" && totalSelectedValues > 5) {
199
- totalSelectedValues = 5;
200
- }
201
197
  this.setProperty("value", this.resourceBundle.getText("M_EASY_FILTER_MANDATORY_TOKEN_ITEMS", [totalSelectedValues]), true);
202
198
  };
203
199
  _proto.setValueForMenu = function setValueForMenu(key) {
@@ -489,4 +485,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/jsx-runt
489
485
  _exports = EasyFilterToken;
490
486
  return _exports;
491
487
  }, false);
492
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFYXN5RmlsdGVyVG9rZW4iLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsImdyb3VwIiwiVmFsdWVTdGF0ZSIsIk5vbmUiLCJfZGVjOSIsInZpc2liaWxpdHkiLCJfZGVjMTAiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX1Rva2VuIiwiaWRPclNldHRpbmdzIiwic2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwicmVzb3VyY2VCdW5kbGUiLCJMaWIiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImV2ZW50QXR0YWNoZWQiLCJpc0Rlc2NyaXB0aW9uRmV0Y2hlZCIsInZhbHVlU3RhdGVNZXNzYWdlIiwiVmFsdWVTdGF0ZU1lc3NhZ2UiLCJhdHRhY2hDbG9zZUhhbmRsZXJzRm9yVmFsdWVTdGF0ZU1lc3NhZ2VQb3B1cCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJmaXJlUHJlc3MiLCJfcGFyYW1ldGVycyIsInRva2VuaXplciIsImdldFBhcmVudCIsImdldEVkaXRhYmxlIiwiZmlyZUV2ZW50IiwiY2xvc2UiLCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyIiwiZ2V0Q3VzdG9tRGF0YVZhbHVlIiwicG9wb3ZlciIsImtleSIsImtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMiLCJpc09wZW4iLCJwcmV2VG9rZW5LZXkiLCJzZXRTaG93SGVhZGVyIiwiZ2V0Rm9vdGVyIiwic2V0VmlzaWJsZSIsInNob3VsZE9wZW5EZWZhdWx0RnJhZ21lbnQiLCJpbnZva2VDYWxlbmRhciIsImludm9rZVRpbWUiLCJpbnZva2VNZW51V2l0aENoZWNrQm94IiwiaW52b2tlTWVudVdpdGhTaW5nbGVTZWxlY3QiLCJpbnZva2VWYWx1ZUhlbHBQcmV2aWV3Iiwib2tCdXR0b24iLCJnZXRPa0J1dHRvbiIsInNob3dBbGxCdXR0b24iLCJnZXRTaG93QWxsQnV0dG9uIiwiYXR0YWNoUHJlc3MiLCJoYW5kbGVPa0NsaWNrIiwiYmluZCIsImhhbmRsZVNob3dBbGxDbGljayIsImF0dGFjaEFmdGVyQ2xvc2UiLCJoYW5kbGVBdHRhY2hBZnRlckNsb3NlIiwiZ2V0Q3VzdG9tRGF0YSIsImZpbmQiLCJjdXN0b21EYXRhIiwiZ2V0S2V5IiwiZ2V0VmFsdWUiLCJvbkJlZm9yZVJlbmRlcmluZyIsImUiLCJUb2tlbiIsImFwcGx5Iiwic2V0VmFsdWVGb3JUb2tlbiIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInRva2VuU2VsZWN0ZWRWYWx1ZXMiLCJpdGVtcyIsImxlbmd0aCIsInNldFByb3BlcnR5IiwiZ2V0VGV4dCIsImZpcnN0U2VsZWN0ZWRWYWx1ZSIsInRvdGFsU2VsZWN0ZWRWYWx1ZXMiLCJjYWxjdWxhdGVUb3RhbFNlbGVjdGVkVmFsdWVzIiwiaGFuZGxlU2luZ2xlU2VsZWN0ZWRWYWx1ZSIsImhhbmRsZU11bHRpcGxlU2VsZWN0ZWRWYWx1ZXMiLCJyZWR1Y2UiLCJjb3VudGVyIiwidG9rZW4iLCJFYXN5RmlsdGVyVXRpbHMiLCJpc0JldHdlZW5TZWxlY3RlZFZhbHVlcyIsIm9wZXJhdG9yIiwic2VsZWN0ZWRWYWx1ZXMiLCJ0b2tlbkluZm8iLCJmaXJzdE9wZXJhdG9yIiwiaW5pdFNlbGVjdGVkVmFsdWUiLCJyZXF1aXJlZE1ldGFkYXRhIiwiZmlsdGVyQmFyTWV0YWRhdGEiLCJkYXRhIiwibmFtZSIsImRhdGFUeXBlIiwic2V0VmFsdWVGb3JNZW51IiwibWFwT3BlcmF0b3JGb3JCZXR3ZWVuT3BlcmF0b3IiLCJtYXBPcGVyYXRvckZvclZhbHVlSGVscCIsIm1hcE9wZXJhdG9yIiwic2V0QnVzeSIsImRlc2NyaXB0aW9uIiwiZ2V0RGVzY3JpcHRpb25CeUtleSIsImVycm9yIiwiTG9nIiwiZ2V0RG9tUmVmRm9yVmFsdWVTdGF0ZU1lc3NhZ2UiLCJnZXREb21SZWYiLCJjb2RlTGlzdCIsImdldENvZGVMaXN0QXJyYXkiLCJsaXN0IiwidmFsdWUiLCJtZW51V2l0aENoZWNrQm94IiwiTWVudVdpdGhDaGVja0JveEZhY3RvcnkiLCJpbm5lckNvbnRyb2wiLCJnZXRDb250cm9sIiwiYWRkRGVwZW5kZW50Iiwic2V0SXRlbXMiLCJyZW1vdmVBbGxDb250ZW50IiwiYWRkQ29udGVudCIsIm9wZW5Qb3BvdmVyIiwibWVudVdpdGhTaW5nbGVTZWxlY3QiLCJNZW51V2l0aFNpbmdsZVNlbGVjdEZhY3RvcnkiLCJjYWxlbmRlciIsIkNhbGVuZGVyRmFjdG9yeSIsInRpbWUiLCJUaW1lRmFjdG9yeSIsInZhbHVlSGVscFByZXZpZXciLCJWYWx1ZUhlbHBQcmV2aWV3RmFjdG9yeSIsIm9Qb3BvdmVyIiwic2V0VGl0bGUiLCJsYWJlbCIsIm9wZW5CeSIsIm9rQnV0dG9uSGFuZGxlciIsImludm9rZU9rQnV0dG9uSGFuZGxlciIsInZhbHVlSGVscEhhbmRsZXIiLCJpbnZva2VTaG93QWxsQnV0dG9uSGFuZGxlciIsImludm9rZVBvcHVwQ2xvc2VIYW5kbGVyIiwiZ2V0SW5uZXJDb250cm9sIiwib3BlblZhbHVlU3RhdGVNZXNzYWdlIiwib3BlbiIsImNsb3NlVmFsdWVTdGF0ZU1lc3NhZ2UiLCJpc0JldHdlZW5PcGVyYXRvciIsIkZpbHRlck9wZXJhdG9yIiwiQlQiLCJOQiIsImZvY3Vzb3V0IiwicmVuZGVyIiwicm0iLCJjb250cm9sIiwianN4IiwicmVuZGVyVXNpbmdSZW5kZXJNYW5hZ2VyIiwiY2xhc3NlcyIsImNsYXNzZXNGb3JMYWJlbCIsImNsYXNzZXNGb3JWYWx1ZSIsImlzTWFuZGF0b3J5IiwiZ2V0TWFuZGF0b3J5IiwicHVzaCIsImdldFNlbGVjdGVkIiwiZ2V0VmFsdWVTdGF0ZSIsIkVycm9yIiwiX2pzeHMiLCJyZWYiLCJjbGFzcyIsImpvaW4iLCJ0YWJpbmRleCIsImdldFByb3BlcnR5IiwiY2hpbGRyZW4iLCJnZXRMYWJlbCIsIl9qc3giLCJnZXRBZ2dyZWdhdGlvbiIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVG9rZW4udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgdHlwZSBMaXN0IGZyb20gXCJzYXAvbS9MaXN0XCI7XG5pbXBvcnQgdHlwZSBQb3BvdmVyIGZyb20gXCJzYXAvbS9Qb3BvdmVyXCI7XG5pbXBvcnQgdHlwZSBUaW1lUGlja2VyQ2xvY2tzIGZyb20gXCJzYXAvbS9UaW1lUGlja2VyQ2xvY2tzXCI7XG5pbXBvcnQgdHlwZSB7ICRUb2tlblNldHRpbmdzIH0gZnJvbSBcInNhcC9tL1Rva2VuXCI7XG5pbXBvcnQgVG9rZW4gZnJvbSBcInNhcC9tL1Rva2VuXCI7XG5pbXBvcnQgdHlwZSBUb2tlbml6ZXIgZnJvbSBcInNhcC9tL1Rva2VuaXplclwiO1xuaW1wb3J0IFZhbHVlU3RhdGVNZXNzYWdlIGZyb20gXCJzYXAvbS9kZWxlZ2F0ZS9WYWx1ZVN0YXRlTWVzc2FnZVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgQ3VzdG9tRGF0YSBmcm9tIFwic2FwL3VpL2NvcmUvQ3VzdG9tRGF0YVwiO1xuaW1wb3J0IHR5cGUgVUk1RWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IExpYiBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgeyBWYWx1ZVN0YXRlIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBGaWx0ZXJPcGVyYXRvciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlck9wZXJhdG9yXCI7XG5pbXBvcnQgdHlwZSBDYWxlbmRhciBmcm9tIFwic2FwL3VpL3VuaWZpZWQvQ2FsZW5kYXJcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlNZXRhZGF0YSB9IGZyb20gXCJ1eC9lbmcvZmlvcmlhaS9yZXVzZS9lYXN5ZmlsdGVyL0Vhc3lGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIEVhc3lGaWx0ZXJCYXJDb250YWluZXIgZnJvbSBcIi4vRWFzeUZpbHRlckJhckNvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUge1xuXHRCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMsXG5cdENvZGVMaXN0VHlwZSxcblx0RWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGEsXG5cdFRva2VuRGVmaW5pdGlvbixcblx0VG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb24sXG5cdFZhbHVlSGVscFNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvblxufSBmcm9tIFwiLi9FYXN5RmlsdGVyQmFyQ29udGFpbmVyXCI7XG5pbXBvcnQgQ2FsZW5kZXJGYWN0b3J5IGZyb20gXCIuL2lubmVyQ29udHJvbHMvQ2FsZW5kYXJGYWN0b3J5XCI7XG5pbXBvcnQgTWVudVdpdGhDaGVja0JveEZhY3RvcnkgZnJvbSBcIi4vaW5uZXJDb250cm9scy9NZW51V2l0aENoZWNrQm94RmFjdG9yeVwiO1xuaW1wb3J0IE1lbnVXaXRoU2luZ2xlU2VsZWN0RmFjdG9yeSBmcm9tIFwiLi9pbm5lckNvbnRyb2xzL01lbnVXaXRoU2luZ2xlU2VsZWN0RmFjdG9yeVwiO1xuaW1wb3J0IFRpbWVGYWN0b3J5IGZyb20gXCIuL2lubmVyQ29udHJvbHMvVGltZUZhY3RvcnlcIjtcbmltcG9ydCBWYWx1ZUhlbHBQcmV2aWV3RmFjdG9yeSBmcm9tIFwiLi9pbm5lckNvbnRyb2xzL1ZhbHVlSGVscFByZXZpZXdGYWN0b3J5XCI7XG5pbXBvcnQgRWFzeUZpbHRlclV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XG5cbnR5cGUgY29kZUxpc3RUeXBlID0gUHJvcGVydHlNZXRhZGF0YVtcImNvZGVMaXN0XCJdO1xudHlwZSBDdXN0b21LZXlzID0gXCJUb2tlbkluZm9cIiB8IFwicG9wb3ZlclwiIHwgXCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIgfCBcImNvZGVMaXN0XCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb250cm9scy5lYXN5RmlsdGVyLlRva2VuXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFYXN5RmlsdGVyVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0bGFiZWw/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHR0aXRsZVBvcG92ZXI/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHR2YWx1ZT86IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0dmFsdWVTdGF0ZVRleHQ/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0bWFuZGF0b3J5PzogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFycmF5XCIgfSlcblx0aXRlbXM/OiBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdIHwgVmFsdWVIZWxwU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW107XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5WYWx1ZVN0YXRlXCIsIGdyb3VwOiBcIkFwcGVhcmFuY2VcIiwgZGVmYXVsdFZhbHVlOiBWYWx1ZVN0YXRlLk5vbmUgfSlcblx0dmFsdWVTdGF0ZT86IFZhbHVlU3RhdGU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJpbnRcIiwgdmlzaWJpbGl0eTogXCJoaWRkZW5cIiB9KVxuXHRwb3NpbnNldD86IG51bWJlcjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImludFwiLCB2aXNpYmlsaXR5OiBcImhpZGRlblwiIH0pXG5cdHNldHNpemU/OiBudW1iZXI7XG5cblx0cHJpdmF0ZSByZXNvdXJjZUJ1bmRsZSA9IExpYi5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5jb250cm9sc1wiKSE7XG5cblx0cHJpdmF0ZSBpbm5lckNvbnRyb2w/OiBDYWxlbmRhciB8IFRpbWVQaWNrZXJDbG9ja3MgfCBMaXN0O1xuXG5cdHByaXZhdGUgdGltZT86IFRpbWVGYWN0b3J5O1xuXG5cdHByaXZhdGUgY2FsZW5kZXI/OiBDYWxlbmRlckZhY3Rvcnk7XG5cblx0cHJpdmF0ZSB2YWx1ZUhlbHBQcmV2aWV3PzogVmFsdWVIZWxwUHJldmlld0ZhY3Rvcnk7XG5cblx0cHJpdmF0ZSBtZW51V2l0aENoZWNrQm94PzogTWVudVdpdGhDaGVja0JveEZhY3Rvcnk7XG5cblx0cHJpdmF0ZSBtZW51V2l0aFNpbmdsZVNlbGVjdD86IE1lbnVXaXRoU2luZ2xlU2VsZWN0RmFjdG9yeTtcblxuXHRwcml2YXRlIGV2ZW50QXR0YWNoZWQgPSBmYWxzZTtcblxuXHRwcml2YXRlIGlzRGVzY3JpcHRpb25GZXRjaGVkID0gZmFsc2U7XG5cblx0cHJpdmF0ZSB2YWx1ZVN0YXRlTWVzc2FnZT86IFZhbHVlU3RhdGVNZXNzYWdlO1xuXG5cdHByaXZhdGUgc3RhdGljIHByZXZUb2tlbktleT86IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRpZE9yU2V0dGluZ3M6IHN0cmluZyB8IChQcm9wZXJ0aWVzT2Y8RWFzeUZpbHRlclRva2VuPiAmICRUb2tlblNldHRpbmdzKSxcblx0XHRzZXR0aW5ncz86IFByb3BlcnRpZXNPZjxFYXN5RmlsdGVyVG9rZW4+ICYgJFRva2VuU2V0dGluZ3Ncblx0KSB7XG5cdFx0c3VwZXIoaWRPclNldHRpbmdzIGFzIHN0cmluZywgc2V0dGluZ3MpO1xuXHRcdHRoaXMudmFsdWVTdGF0ZU1lc3NhZ2UgPSBuZXcgVmFsdWVTdGF0ZU1lc3NhZ2UodGhpcyk7XG5cdFx0Ly9DbG9zaW5nIHRoZSBWYWx1ZVN0YXRlIHBvcG92ZXJzIHdoZW5ldmVyIHdlIGFyZSBjbGlja2luZy90YXBwaW5nIGVsc2Ugd2hlcmUgb24gdGhlIHNjcmVlblxuXHRcdHRoaXMuYXR0YWNoQ2xvc2VIYW5kbGVyc0ZvclZhbHVlU3RhdGVNZXNzYWdlUG9wdXAoKTtcblx0fVxuXG5cdGZpcmVQcmVzcyhfcGFyYW1ldGVyczogdW5rbm93bik6IHRoaXMge1xuXHRcdGNvbnN0IHRva2VuaXplciA9IHRoaXMuZ2V0UGFyZW50KCkgYXMgVG9rZW5pemVyO1xuXHRcdGlmICghdG9rZW5pemVyLmdldEVkaXRhYmxlKCkpIHtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHQvLyBXZSBoaWphY2sgdGhlIHByZXNzIGV2ZW50IHRvIG9wZW4gdGhlIGRldGFpbCBwb3BvdmVyXG5cdFx0dGhpcy5maXJlRXZlbnQoXCJwcmVzc1wiKTtcblx0XHR0aGlzLnZhbHVlU3RhdGVNZXNzYWdlPy5jbG9zZSgpO1xuXG5cdFx0Y29uc3QgZWFzeUZpbHRlckJhckNvbnRhaW5lciA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwiZWFzeUZpbHRlckJhckNvbnRhaW5lclwiKSBhcyBFYXN5RmlsdGVyQmFyQ29udGFpbmVyO1xuXHRcdGNvbnN0IHBvcG92ZXIgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcInBvcG92ZXJcIikgYXMgUG9wb3ZlcjtcblxuXHRcdGNvbnN0IHsga2V5LCB0eXBlLCBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzIH0gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKSBhcyBUb2tlbkRlZmluaXRpb247XG5cblx0XHQvLyBDaGVjayBpZiB0aGUgcG9wb3ZlciBpcyBhbHJlYWR5IG9wZW5cblx0XHRpZiAocG9wb3Zlci5pc09wZW4oKSkge1xuXHRcdFx0Ly8gSWYgdGhlIHBvcG92ZXIgaXMgb3BlbiBhbmQgdGhlIG5ldyBrZXkgaXMgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIG9uZSwgZG8gbm90aGluZ1xuXHRcdFx0aWYgKEVhc3lGaWx0ZXJUb2tlbi5wcmV2VG9rZW5LZXkgPT09IGtleSkge1xuXHRcdFx0XHRyZXR1cm4gdGhpczsgLy8gUmV0dXJuIGVhcmx5IHRvIHByZXZlbnQgYW55IGZ1cnRoZXIgYWN0aW9uXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBJZiB0aGUga2V5IGlzIGRpZmZlcmVudCwgdXBkYXRlIHByZXZUb2tlbktleSBhbmQgY2xvc2UgdGhlIHBvcG92ZXJcblx0XHRcdFx0RWFzeUZpbHRlclRva2VuLnByZXZUb2tlbktleSA9IGtleTsgLy8gVXBkYXRlIHRoZSBwcmV2aW91cyB0b2tlbiBrZXkgdG8gdGhlIG5ldyBvbmVcblx0XHRcdFx0cG9wb3Zlci5jbG9zZSgpOyAvLyBDbG9zZSB0aGUgcG9wb3ZlclxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBJZiB0aGUgcG9wb3ZlciBpcyBub3Qgb3BlbiwgdXBkYXRlIHByZXZUb2tlbktleSBmb3IgdGhlIGZpcnN0IHRpbWVcblx0XHRcdEVhc3lGaWx0ZXJUb2tlbi5wcmV2VG9rZW5LZXkgPSBrZXk7XG5cdFx0fVxuXG5cdFx0Ly9yZXNldHRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLCBpZiBoaWRkZW4gYnkgc2luZ2xlc2VsZWN0XG5cdFx0cG9wb3Zlcj8uc2V0U2hvd0hlYWRlcih0cnVlKTtcblx0XHRwb3BvdmVyPy5nZXRGb290ZXIoKT8uc2V0VmlzaWJsZSh0cnVlKTtcblxuXHRcdGlmICh0eXBlID09PSBcIkNhbGVuZGFyXCIgJiYgdGhpcy5zaG91bGRPcGVuRGVmYXVsdEZyYWdtZW50KGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMpKSB7XG5cdFx0XHR0aGlzLmludm9rZUNhbGVuZGFyKCk7XG5cdFx0fSBlbHNlIGlmICh0eXBlID09PSBcIlRpbWVcIiAmJiB0aGlzLnNob3VsZE9wZW5EZWZhdWx0RnJhZ21lbnQoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcykpIHtcblx0XHRcdHRoaXMuaW52b2tlVGltZSgpO1xuXHRcdH0gZWxzZSBpZiAodHlwZSA9PT0gXCJNZW51V2l0aENoZWNrQm94XCIpIHtcblx0XHRcdHRoaXMuaW52b2tlTWVudVdpdGhDaGVja0JveCgpO1xuXHRcdH0gZWxzZSBpZiAodHlwZSA9PT0gXCJNZW51V2l0aFNpbmdsZVNlbGVjdFwiKSB7XG5cdFx0XHR0aGlzLmludm9rZU1lbnVXaXRoU2luZ2xlU2VsZWN0KCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuaW52b2tlVmFsdWVIZWxwUHJldmlldygpO1xuXHRcdH1cblx0XHRjb25zdCBva0J1dHRvbiA9IGVhc3lGaWx0ZXJCYXJDb250YWluZXI/LmdldE9rQnV0dG9uKCk7XG5cdFx0Y29uc3Qgc2hvd0FsbEJ1dHRvbiA9IGVhc3lGaWx0ZXJCYXJDb250YWluZXI/LmdldFNob3dBbGxCdXR0b24oKTtcblx0XHRpZiAoISh0aGlzLmV2ZW50QXR0YWNoZWQgPz8gZmFsc2UpKSB7XG5cdFx0XHRva0J1dHRvbj8uYXR0YWNoUHJlc3ModGhpcy5oYW5kbGVPa0NsaWNrLmJpbmQodGhpcykpO1xuXHRcdFx0c2hvd0FsbEJ1dHRvbj8uYXR0YWNoUHJlc3ModGhpcy5oYW5kbGVTaG93QWxsQ2xpY2suYmluZCh0aGlzKSk7XG5cdFx0XHRwb3BvdmVyLmF0dGFjaEFmdGVyQ2xvc2UodGhpcy5oYW5kbGVBdHRhY2hBZnRlckNsb3NlLmJpbmQodGhpcykpO1xuXHRcdFx0dGhpcy5ldmVudEF0dGFjaGVkID0gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRnZXRDdXN0b21EYXRhVmFsdWUoa2V5OiBDdXN0b21LZXlzKTogVG9rZW5EZWZpbml0aW9uIHwgUG9wb3ZlciB8IEVhc3lGaWx0ZXJCYXJDb250YWluZXIgfCBjb2RlTGlzdFR5cGUgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmdldEN1c3RvbURhdGEoKVxuXHRcdFx0LmZpbmQoKGN1c3RvbURhdGE6IEN1c3RvbURhdGEpID0+IGN1c3RvbURhdGEuZ2V0S2V5KCkgPT09IGtleSlcblx0XHRcdD8uZ2V0VmFsdWUoKTtcblx0fVxuXG5cdG9uQmVmb3JlUmVuZGVyaW5nKGU6IGpRdWVyeS5FdmVudCk6IHZvaWQgfCB1bmRlZmluZWQge1xuXHRcdFRva2VuLnByb3RvdHlwZS5vbkJlZm9yZVJlbmRlcmluZy5hcHBseSh0aGlzLCBbZV0pO1xuXHRcdGlmICghdGhpcy5pc0Rlc2NyaXB0aW9uRmV0Y2hlZCkge1xuXHRcdFx0dGhpcy5zZXRWYWx1ZUZvclRva2VuKCk7XG5cdFx0fVxuXHRcdHRoaXMuaXNEZXNjcmlwdGlvbkZldGNoZWQgPSBmYWxzZTtcblx0fVxuXG5cdGF0dGFjaENsb3NlSGFuZGxlcnNGb3JWYWx1ZVN0YXRlTWVzc2FnZVBvcHVwKCk6IHZvaWQge1xuXHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XG5cdFx0XHRpZiAodGhpcz8udmFsdWVTdGF0ZU1lc3NhZ2UpIHtcblx0XHRcdFx0dGhpcy52YWx1ZVN0YXRlTWVzc2FnZS5jbG9zZSgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXM/LnZhbHVlU3RhdGVNZXNzYWdlKSB7XG5cdFx0XHRcdHRoaXMudmFsdWVTdGF0ZU1lc3NhZ2UuY2xvc2UoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHNldFZhbHVlRm9yVG9rZW4oKTogdm9pZCB7XG5cdFx0Y29uc3QgdG9rZW5TZWxlY3RlZFZhbHVlcyA9IHRoaXMuaXRlbXMgYXMgKFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uIHwgVmFsdWVIZWxwU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uKVtdO1xuXHRcdGlmICh0b2tlblNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhbHVlXCIsIHRoaXMucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fRUFTWV9GSUxURVJfTUFOREFUT1JZX1RPS0VOX1NFTEVDVF9WQUxVRVwiKSwgdHJ1ZSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgZmlyc3RTZWxlY3RlZFZhbHVlID0gdG9rZW5TZWxlY3RlZFZhbHVlc1swXTtcblx0XHRjb25zdCB0b3RhbFNlbGVjdGVkVmFsdWVzID0gdGhpcy5jYWxjdWxhdGVUb3RhbFNlbGVjdGVkVmFsdWVzKHRva2VuU2VsZWN0ZWRWYWx1ZXMpO1xuXG5cdFx0aWYgKHRvdGFsU2VsZWN0ZWRWYWx1ZXMgPT09IDEpIHtcblx0XHRcdHRoaXMuaGFuZGxlU2luZ2xlU2VsZWN0ZWRWYWx1ZShmaXJzdFNlbGVjdGVkVmFsdWUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmhhbmRsZU11bHRpcGxlU2VsZWN0ZWRWYWx1ZXModG90YWxTZWxlY3RlZFZhbHVlcyk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBjYWxjdWxhdGVUb3RhbFNlbGVjdGVkVmFsdWVzKFxuXHRcdHRva2VuU2VsZWN0ZWRWYWx1ZXM6IChUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbiB8IFZhbHVlSGVscFNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbilbXVxuXHQpOiBudW1iZXIge1xuXHRcdHJldHVybiB0b2tlblNlbGVjdGVkVmFsdWVzLnJlZHVjZSgoY291bnRlciwgdG9rZW4pID0+IHtcblx0XHRcdHJldHVybiBFYXN5RmlsdGVyVXRpbHMuaXNCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXModG9rZW4ub3BlcmF0b3IpID8gY291bnRlciArIDEgOiBjb3VudGVyICsgdG9rZW4uc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoO1xuXHRcdH0sIDApO1xuXHR9XG5cblx0cHJpdmF0ZSBoYW5kbGVTaW5nbGVTZWxlY3RlZFZhbHVlKGZpcnN0U2VsZWN0ZWRWYWx1ZTogVG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb24gfCBWYWx1ZUhlbHBTZWxlY3RlZFZhbHVlc0RlZmluaXRpb24pOiB2b2lkIHtcblx0XHRjb25zdCB0b2tlbkluZm8gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKTtcblx0XHRjb25zdCBmaXJzdE9wZXJhdG9yID0gZmlyc3RTZWxlY3RlZFZhbHVlPy5vcGVyYXRvcjtcblx0XHRjb25zdCBpbml0U2VsZWN0ZWRWYWx1ZSA9IGZpcnN0U2VsZWN0ZWRWYWx1ZS5zZWxlY3RlZFZhbHVlc1swXTtcblx0XHRjb25zdCBzZWxlY3RlZFZhbHVlcyA9IGZpcnN0U2VsZWN0ZWRWYWx1ZS5zZWxlY3RlZFZhbHVlcztcblx0XHRjb25zdCBlYXN5RmlsdGVyQmFyQ29udGFpbmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIpIGFzIEVhc3lGaWx0ZXJCYXJDb250YWluZXIgfCB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgcmVxdWlyZWRNZXRhZGF0YSA9IGVhc3lGaWx0ZXJCYXJDb250YWluZXI/LmZpbHRlckJhck1ldGFkYXRhPy5maW5kKChkYXRhKSA9PiBkYXRhLm5hbWUgPT09IHRoaXMuZ2V0S2V5KCkpO1xuXG5cdFx0aWYgKCFyZXF1aXJlZE1ldGFkYXRhKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgeyB0eXBlLCBkYXRhVHlwZSB9ID0gcmVxdWlyZWRNZXRhZGF0YTtcblx0XHRpZiAodG9rZW5JbmZvKSB7XG5cdFx0XHRjb25zdCB7IGtleSB9ID0gdG9rZW5JbmZvIGFzIFRva2VuRGVmaW5pdGlvbjtcblx0XHRcdGlmICh0eXBlID09PSBcIk1lbnVXaXRoQ2hlY2tCb3hcIiB8fCB0eXBlID09PSBcIk1lbnVXaXRoU2luZ2xlU2VsZWN0XCIpIHtcblx0XHRcdFx0dGhpcy5zZXRWYWx1ZUZvck1lbnUoa2V5KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHR5cGUgPT09IFwiVmFsdWVIZWxwXCIpIHtcblx0XHRcdFx0aWYgKEVhc3lGaWx0ZXJVdGlscy5pc0JldHdlZW5TZWxlY3RlZFZhbHVlcyhmaXJzdE9wZXJhdG9yKSkge1xuXHRcdFx0XHRcdHRoaXMuc2V0UHJvcGVydHkoXG5cdFx0XHRcdFx0XHRcInZhbHVlXCIsXG5cdFx0XHRcdFx0XHRFYXN5RmlsdGVyVXRpbHMubWFwT3BlcmF0b3JGb3JCZXR3ZWVuT3BlcmF0b3IoXG5cdFx0XHRcdFx0XHRcdGZpcnN0T3BlcmF0b3IsXG5cdFx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzIGFzIEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0XHRcdFx0XHRcdFx0dHlwZSxcblx0XHRcdFx0XHRcdFx0ZGF0YVR5cGUgPT09IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCJcblx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnNldFByb3BlcnR5KFxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiLFxuXHRcdFx0XHRcdFx0RWFzeUZpbHRlclV0aWxzLm1hcE9wZXJhdG9yRm9yVmFsdWVIZWxwKFxuXHRcdFx0XHRcdFx0XHRmaXJzdE9wZXJhdG9yLFxuXHRcdFx0XHRcdFx0XHRpbml0U2VsZWN0ZWRWYWx1ZSBhcyBDb2RlTGlzdFR5cGUsXG5cdFx0XHRcdFx0XHRcdHR5cGUsXG5cdFx0XHRcdFx0XHRcdGRhdGFUeXBlID09PSBcIkVkbS5EYXRlVGltZU9mZnNldFwiXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoRWFzeUZpbHRlclV0aWxzLmlzQmV0d2VlblNlbGVjdGVkVmFsdWVzKGZpcnN0T3BlcmF0b3IpKSB7XG5cdFx0XHRcdHRoaXMuc2V0UHJvcGVydHkoXG5cdFx0XHRcdFx0XCJ2YWx1ZVwiLFxuXHRcdFx0XHRcdEVhc3lGaWx0ZXJVdGlscy5tYXBPcGVyYXRvckZvckJldHdlZW5PcGVyYXRvcihcblx0XHRcdFx0XHRcdGZpcnN0T3BlcmF0b3IsXG5cdFx0XHRcdFx0XHRzZWxlY3RlZFZhbHVlcyBhcyBCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMsXG5cdFx0XHRcdFx0XHR0eXBlLFxuXHRcdFx0XHRcdFx0ZGF0YVR5cGUgPT09IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCJcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdHRydWVcblx0XHRcdFx0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuc2V0UHJvcGVydHkoXG5cdFx0XHRcdFx0XCJ2YWx1ZVwiLFxuXHRcdFx0XHRcdEVhc3lGaWx0ZXJVdGlscy5tYXBPcGVyYXRvcihcblx0XHRcdFx0XHRcdGZpcnN0T3BlcmF0b3IsXG5cdFx0XHRcdFx0XHRpbml0U2VsZWN0ZWRWYWx1ZSBhcyBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSxcblx0XHRcdFx0XHRcdHR5cGUsXG5cdFx0XHRcdFx0XHRkYXRhVHlwZSA9PT0gXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIlxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgaGFuZGxlTXVsdGlwbGVTZWxlY3RlZFZhbHVlcyh0b3RhbFNlbGVjdGVkVmFsdWVzOiBudW1iZXIpOiB2b2lkIHtcblx0XHRjb25zdCB0b2tlbkluZm8gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKSBhcyBUb2tlbkRlZmluaXRpb24gfCB1bmRlZmluZWQ7XG5cblx0XHRpZiAodG9rZW5JbmZvPy50eXBlID09PSBcIlZhbHVlSGVscFwiICYmIHRvdGFsU2VsZWN0ZWRWYWx1ZXMgPiA1KSB7XG5cdFx0XHR0b3RhbFNlbGVjdGVkVmFsdWVzID0gNTtcblx0XHR9XG5cblx0XHR0aGlzLnNldFByb3BlcnR5KFwidmFsdWVcIiwgdGhpcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9NQU5EQVRPUllfVE9LRU5fSVRFTVNcIiwgW3RvdGFsU2VsZWN0ZWRWYWx1ZXNdKSwgdHJ1ZSk7XG5cdH1cblxuXHRzZXRWYWx1ZUZvck1lbnUoa2V5OiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBlYXN5RmlsdGVyQmFyQ29udGFpbmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIpIGFzIEVhc3lGaWx0ZXJCYXJDb250YWluZXI7XG5cdFx0Ly9UaGUgcmV0cmlldmFsIG9mIGNvZGVMaXN0IG1pZ2h0IHRha2UgbW9yZSB0aW1lIHNvIG1hcmtpbmcgdGhlIGNvbnRyb2wgYXMgYnVzeSB1bnRpbCB0aGVuXG5cdFx0dGhpcy5zZXRCdXN5KHRydWUpO1xuXHRcdChhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCBkZXNjcmlwdGlvbiA9IGF3YWl0IHRoaXMuZ2V0RGVzY3JpcHRpb25CeUtleShcblx0XHRcdFx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyLmZpbHRlckJhck1ldGFkYXRhPy5maW5kKChkYXRhKSA9PiBkYXRhLm5hbWUgPT09IGtleSkgYXMgRWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGEsXG5cdFx0XHRcdFx0dGhpcy5pdGVtcyBhcyBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdXG5cdFx0XHRcdCk7XG5cdFx0XHRcdC8vUmVyZW5kZXIgdGhlIHRva2VuIG9uY2UgdGhlIGRlc2NyaXB0aW9uIGlzIGZldGNoZWRcblx0XHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhbHVlXCIsIGRlc2NyaXB0aW9uKTtcblx0XHRcdFx0dGhpcy5pc0Rlc2NyaXB0aW9uRmV0Y2hlZCA9IHRydWU7XG5cdFx0XHRcdHRoaXMuc2V0QnVzeShmYWxzZSk7XG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBmZXRjaGluZyBjb2RlTGlzdFwiLCBlcnJvciBhcyBFcnJvcik7XG5cdFx0XHR9XG5cdFx0fSkoKTtcblx0fVxuXG5cdGdldERvbVJlZkZvclZhbHVlU3RhdGVNZXNzYWdlKCk6IEVsZW1lbnQgfCBudWxsIHtcblx0XHRyZXR1cm4gdGhpcy5nZXREb21SZWYoKTtcblx0fVxuXG5cdGFzeW5jIGdldERlc2NyaXB0aW9uQnlLZXkoXG5cdFx0ZGF0YTogRWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGEsXG5cdFx0c2VsZWN0ZWRWYWx1ZXM6IFRva2VuRGVmaW5pdGlvbltcImtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXNcIl1cblx0KTogUHJvbWlzZTxzdHJpbmc+IHtcblx0XHRjb25zdCBjb2RlTGlzdCA9IGF3YWl0IEVhc3lGaWx0ZXJVdGlscy5nZXRDb2RlTGlzdEFycmF5KGRhdGEuY29kZUxpc3QpO1xuXHRcdHJldHVybiBjb2RlTGlzdD8uZmluZCgobGlzdCkgPT4gbGlzdC52YWx1ZSA9PT0gc2VsZWN0ZWRWYWx1ZXNbMF0uc2VsZWN0ZWRWYWx1ZXNbMF0pPy5kZXNjcmlwdGlvbiBhcyBzdHJpbmc7XG5cdH1cblxuXHRhc3luYyBpbnZva2VNZW51V2l0aENoZWNrQm94KCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGVhc3lGaWx0ZXJCYXJDb250YWluZXIgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcImVhc3lGaWx0ZXJCYXJDb250YWluZXJcIikgYXMgRWFzeUZpbHRlckJhckNvbnRhaW5lcjtcblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cdFx0Y29uc3QgY29kZUxpc3QgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcImNvZGVMaXN0XCIpIGFzIGNvZGVMaXN0VHlwZTtcblx0XHRjb25zdCB7IGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgfSA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwiVG9rZW5JbmZvXCIpIGFzIFRva2VuRGVmaW5pdGlvbjtcblx0XHRpZiAoIXRoaXMubWVudVdpdGhDaGVja0JveCkge1xuXHRcdFx0dGhpcy5tZW51V2l0aENoZWNrQm94ID0gbmV3IE1lbnVXaXRoQ2hlY2tCb3hGYWN0b3J5KFxuXHRcdFx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyIGFzIEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJCYXJDb250YWluZXI+LFxuXHRcdFx0XHR0aGlzIGFzIEVhc3lGaWx0ZXJUb2tlbiBhcyBFbmhhbmNlV2l0aFVJNTxFYXN5RmlsdGVyVG9rZW4+XG5cdFx0XHQpO1xuXHRcdH1cblx0XHR0aGlzLmlubmVyQ29udHJvbCA9IHRoaXMubWVudVdpdGhDaGVja0JveC5nZXRDb250cm9sKCk7XG5cdFx0dGhpcy5hZGREZXBlbmRlbnQodGhpcy5pbm5lckNvbnRyb2wgYXMgVUk1RWxlbWVudCk7XG5cdFx0YXdhaXQgdGhpcy5tZW51V2l0aENoZWNrQm94LnNldEl0ZW1zKGNvZGVMaXN0LCBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzKTtcblx0XHRwb3BvdmVyPy5yZW1vdmVBbGxDb250ZW50KCk7XG5cdFx0cG9wb3Zlcj8uYWRkQ29udGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBDb250cm9sKTtcblx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyPy5nZXRTaG93QWxsQnV0dG9uKCk/LnNldFZpc2libGUoZmFsc2UpO1xuXHRcdHRoaXMub3BlblBvcG92ZXIoKTtcblx0fVxuXG5cdGFzeW5jIGludm9rZU1lbnVXaXRoU2luZ2xlU2VsZWN0KCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGVhc3lGaWx0ZXJCYXJDb250YWluZXIgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcImVhc3lGaWx0ZXJCYXJDb250YWluZXJcIikgYXMgRWFzeUZpbHRlckJhckNvbnRhaW5lcjtcblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cdFx0Y29uc3QgY29kZUxpc3QgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcImNvZGVMaXN0XCIpIGFzIGNvZGVMaXN0VHlwZTtcblx0XHRjb25zdCB7IGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgfSA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwiVG9rZW5JbmZvXCIpIGFzIFRva2VuRGVmaW5pdGlvbjtcblx0XHRpZiAoIXRoaXMubWVudVdpdGhTaW5nbGVTZWxlY3QpIHtcblx0XHRcdHRoaXMubWVudVdpdGhTaW5nbGVTZWxlY3QgPSBuZXcgTWVudVdpdGhTaW5nbGVTZWxlY3RGYWN0b3J5KFxuXHRcdFx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyIGFzIEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJCYXJDb250YWluZXI+LFxuXHRcdFx0XHR0aGlzIGFzIEVhc3lGaWx0ZXJUb2tlbiBhcyBFbmhhbmNlV2l0aFVJNTxFYXN5RmlsdGVyVG9rZW4+XG5cdFx0XHQpO1xuXHRcdH1cblx0XHR0aGlzLmlubmVyQ29udHJvbCA9IHRoaXMubWVudVdpdGhTaW5nbGVTZWxlY3QuZ2V0Q29udHJvbCgpO1xuXHRcdHRoaXMuYWRkRGVwZW5kZW50KHRoaXMuaW5uZXJDb250cm9sIGFzIFVJNUVsZW1lbnQpO1xuXHRcdGF3YWl0IHRoaXMubWVudVdpdGhTaW5nbGVTZWxlY3Quc2V0SXRlbXMoY29kZUxpc3QsIGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMpO1xuXG5cdFx0cG9wb3Zlci5zZXRTaG93SGVhZGVyKGZhbHNlKTtcblx0XHRwb3BvdmVyLmdldEZvb3RlcigpPy5zZXRWaXNpYmxlKGZhbHNlKTtcblxuXHRcdHBvcG92ZXI/LnJlbW92ZUFsbENvbnRlbnQoKTtcblx0XHRwb3BvdmVyPy5hZGRDb250ZW50KHRoaXMuaW5uZXJDb250cm9sIGFzIENvbnRyb2wpO1xuXHRcdHRoaXMub3BlblBvcG92ZXIoKTtcblx0fVxuXG5cdGludm9rZUNhbGVuZGFyKCk6IHZvaWQge1xuXHRcdGNvbnN0IGVhc3lGaWx0ZXJCYXJDb250YWluZXIgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcImVhc3lGaWx0ZXJCYXJDb250YWluZXJcIikgYXMgRWFzeUZpbHRlckJhckNvbnRhaW5lcjtcblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cdFx0aWYgKCF0aGlzLmNhbGVuZGVyKSB7XG5cdFx0XHR0aGlzLmNhbGVuZGVyID0gbmV3IENhbGVuZGVyRmFjdG9yeShcblx0XHRcdFx0ZWFzeUZpbHRlckJhckNvbnRhaW5lciBhcyBFbmhhbmNlV2l0aFVJNTxFYXN5RmlsdGVyQmFyQ29udGFpbmVyPixcblx0XHRcdFx0dGhpcyBhcyBFYXN5RmlsdGVyVG9rZW4gYXMgRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlclRva2VuPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0dGhpcy5pbm5lckNvbnRyb2wgPSB0aGlzLmNhbGVuZGVyLmdldENvbnRyb2woKTtcblx0XHR0aGlzLmFkZERlcGVuZGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBVSTVFbGVtZW50KTtcblx0XHRwb3BvdmVyPy5yZW1vdmVBbGxDb250ZW50KCk7XG5cdFx0cG9wb3Zlcj8uYWRkQ29udGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBDb250cm9sKTtcblx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyPy5nZXRTaG93QWxsQnV0dG9uKCk/LnNldFZpc2libGUodHJ1ZSk7XG5cdFx0dGhpcy5vcGVuUG9wb3ZlcigpO1xuXHR9XG5cblx0aW52b2tlVGltZSgpOiB2b2lkIHtcblx0XHRjb25zdCBlYXN5RmlsdGVyQmFyQ29udGFpbmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIpIGFzIEVhc3lGaWx0ZXJCYXJDb250YWluZXI7XG5cdFx0Y29uc3QgcG9wb3ZlciA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwicG9wb3ZlclwiKSBhcyBQb3BvdmVyO1xuXHRcdGlmICghdGhpcy50aW1lKSB7XG5cdFx0XHR0aGlzLnRpbWUgPSBuZXcgVGltZUZhY3RvcnkoXG5cdFx0XHRcdGVhc3lGaWx0ZXJCYXJDb250YWluZXIgYXMgRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlckJhckNvbnRhaW5lcj4sXG5cdFx0XHRcdHRoaXMgYXMgRWFzeUZpbHRlclRva2VuIGFzIEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJUb2tlbj5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHRoaXMuaW5uZXJDb250cm9sID0gdGhpcy50aW1lLmdldENvbnRyb2woKTtcblx0XHR0aGlzLmFkZERlcGVuZGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBVSTVFbGVtZW50KTtcblx0XHRwb3BvdmVyPy5yZW1vdmVBbGxDb250ZW50KCk7XG5cdFx0cG9wb3Zlcj8uYWRkQ29udGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBDb250cm9sKTtcblx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyPy5nZXRTaG93QWxsQnV0dG9uKCk/LnNldFZpc2libGUodHJ1ZSk7XG5cdFx0dGhpcy5vcGVuUG9wb3ZlcigpO1xuXHR9XG5cblx0aW52b2tlVmFsdWVIZWxwUHJldmlldygpOiB2b2lkIHtcblx0XHRjb25zdCBlYXN5RmlsdGVyQmFyQ29udGFpbmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIpIGFzIEVhc3lGaWx0ZXJCYXJDb250YWluZXI7XG5cdFx0Y29uc3QgcG9wb3ZlciA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwicG9wb3ZlclwiKSBhcyBQb3BvdmVyO1xuXHRcdGlmICghdGhpcy52YWx1ZUhlbHBQcmV2aWV3KSB7XG5cdFx0XHR0aGlzLnZhbHVlSGVscFByZXZpZXcgPSBuZXcgVmFsdWVIZWxwUHJldmlld0ZhY3RvcnkoXG5cdFx0XHRcdGVhc3lGaWx0ZXJCYXJDb250YWluZXIgYXMgRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlckJhckNvbnRhaW5lcj4sXG5cdFx0XHRcdHRoaXMgYXMgRWFzeUZpbHRlclRva2VuIGFzIEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJUb2tlbj5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdGNvbnN0IHsgdHlwZSwgZGF0YVR5cGUgfSA9IGVhc3lGaWx0ZXJCYXJDb250YWluZXIuZmlsdGVyQmFyTWV0YWRhdGE/LmZpbmQoXG5cdFx0XHQoZGF0YSkgPT4gZGF0YS5uYW1lID09PSB0aGlzLmdldEtleSgpXG5cdFx0KSBhcyBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YTtcblxuXHRcdGlmICh0eXBlID09PSBcIlZhbHVlSGVscFwiKSB7XG5cdFx0XHR0aGlzLnZhbHVlSGVscFByZXZpZXcuc2V0SXRlbXModGhpcy5pdGVtcyBhcyBWYWx1ZUhlbHBTZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSwgdHlwZSwgZGF0YVR5cGUgPT09IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnZhbHVlSGVscFByZXZpZXcuc2V0SXRlbXModGhpcy5pdGVtcyBhcyBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdLCB0eXBlLCBkYXRhVHlwZSA9PT0gXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIik7XG5cdFx0fVxuXHRcdHRoaXMuaW5uZXJDb250cm9sID0gdGhpcy52YWx1ZUhlbHBQcmV2aWV3LmdldENvbnRyb2woKTtcblx0XHR0aGlzLmFkZERlcGVuZGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBVSTVFbGVtZW50KTtcblx0XHRwb3BvdmVyPy5yZW1vdmVBbGxDb250ZW50KCk7XG5cdFx0cG9wb3Zlcj8uYWRkQ29udGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBDb250cm9sKTtcblx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyPy5nZXRTaG93QWxsQnV0dG9uKCk/LnNldFZpc2libGUodHJ1ZSk7XG5cdFx0dGhpcy5vcGVuUG9wb3ZlcigpO1xuXHR9XG5cblx0b3BlblBvcG92ZXIoKTogdm9pZCB7XG5cdFx0Y29uc3Qgb1BvcG92ZXIgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcInBvcG92ZXJcIikgYXMgUG9wb3Zlcjtcblx0XHRvUG9wb3Zlcj8uc2V0VGl0bGUodGhpcy5sYWJlbCk7XG5cdFx0b1BvcG92ZXI/Lm9wZW5CeSh0aGlzKTtcblx0fVxuXG5cdGhhbmRsZU9rQ2xpY2soKTogdm9pZCB7XG5cdFx0Ly8gVGhlIGJlbG93IGV2ZW50IGhhbmRsZXIgd291bGQgYmUgaW52b2tlZCBvbiBhbGwgdGhlIHRva2VucyB3aGVuIE9LIGJ1dHRvbiBpcyBjbGlja2VkIG9uIHRoZSBwb3BvdmVyXG5cdFx0Ly9Xcml0aW5nIHRoZSBiZWxvdyBjaGVjayBzbyB0aGF0IHdlIGtub3cgdGhhdCB0aGUgY3VycmVudCB0b2tlbiBpbnN0YW5jZSBpcyBoYW5kbGluZyB0aGUgcHJlc3MgZXZlbnRzIGFwcHJvcHJpYXRlbHlcblx0XHRpZiAoIXRoaXMuaW5uZXJDb250cm9sPy5nZXREb21SZWYoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB7IHR5cGUsIGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgfSA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwiVG9rZW5JbmZvXCIpIGFzIFRva2VuRGVmaW5pdGlvbjtcblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cblx0XHRsZXQgb2tCdXR0b25IYW5kbGVyOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHR5cGUgPT09IFwiQ2FsZW5kYXJcIiAmJiB0aGlzLnNob3VsZE9wZW5EZWZhdWx0RnJhZ21lbnQoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcykpIHtcblx0XHRcdG9rQnV0dG9uSGFuZGxlciA9IHRoaXMuY2FsZW5kZXI/Lmludm9rZU9rQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMuY2FsZW5kZXIpO1xuXHRcdH0gZWxzZSBpZiAodHlwZSA9PT0gXCJUaW1lXCIgJiYgdGhpcy5zaG91bGRPcGVuRGVmYXVsdEZyYWdtZW50KGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMpKSB7XG5cdFx0XHRva0J1dHRvbkhhbmRsZXIgPSB0aGlzLnRpbWU/Lmludm9rZU9rQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMudGltZSk7XG5cdFx0fSBlbHNlIGlmICh0eXBlID09PSBcIk1lbnVXaXRoQ2hlY2tCb3hcIikge1xuXHRcdFx0b2tCdXR0b25IYW5kbGVyID0gdGhpcy5tZW51V2l0aENoZWNrQm94Py5pbnZva2VPa0J1dHRvbkhhbmRsZXIuYmluZCh0aGlzLm1lbnVXaXRoQ2hlY2tCb3gpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRva0J1dHRvbkhhbmRsZXIgPSB0aGlzLnZhbHVlSGVscFByZXZpZXc/Lmludm9rZU9rQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMudmFsdWVIZWxwUHJldmlldyk7XG5cdFx0fVxuXG5cdFx0aWYgKG9rQnV0dG9uSGFuZGxlcikge1xuXHRcdFx0b2tCdXR0b25IYW5kbGVyKCk7XG5cdFx0fVxuXHRcdHBvcG92ZXI/LmNsb3NlKCk7XG5cdH1cblxuXHRoYW5kbGVTaG93QWxsQ2xpY2soKTogdm9pZCB7XG5cdFx0Ly8gVGhlIGJlbG93IGV2ZW50IGhhbmRsZXIgd291bGQgYmUgaW52b2tlZCBvbiBhbGwgdGhlIHRva2VucyB3aGVuIE9LIGJ1dHRvbiBpcyBjbGlja2VkIG9uIHRoZSBwb3BvdmVyXG5cdFx0Ly9Xcml0aW5nIHRoZSBiZWxvdyBjaGVjayBzbyB0aGF0IHdlIGtub3cgdGhhdCB0aGUgY3VycmVudCB0b2tlbiBpbnN0YW5jZSBpcyBoYW5kbGluZyB0aGUgcHJlc3MgZXZlbnRzIGFwcHJvcHJpYXRlbHlcblx0XHRpZiAoIXRoaXMuaW5uZXJDb250cm9sPy5nZXREb21SZWYoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cdFx0Y29uc3QgeyB0eXBlLCBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzIH0gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKSBhcyBUb2tlbkRlZmluaXRpb247XG5cdFx0cG9wb3Zlci5jbG9zZSgpO1xuXHRcdGxldCB2YWx1ZUhlbHBIYW5kbGVyOiAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHR5cGUgPT09IFwiQ2FsZW5kYXJcIiAmJiB0aGlzLnNob3VsZE9wZW5EZWZhdWx0RnJhZ21lbnQoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcykpIHtcblx0XHRcdHZhbHVlSGVscEhhbmRsZXIgPSB0aGlzLmNhbGVuZGVyPy5pbnZva2VTaG93QWxsQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMuY2FsZW5kZXIpO1xuXHRcdH0gZWxzZSBpZiAodHlwZSA9PT0gXCJUaW1lXCIgJiYgdGhpcy5zaG91bGRPcGVuRGVmYXVsdEZyYWdtZW50KGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMpKSB7XG5cdFx0XHR2YWx1ZUhlbHBIYW5kbGVyID0gdGhpcy50aW1lPy5pbnZva2VTaG93QWxsQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMudGltZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZhbHVlSGVscEhhbmRsZXIgPSB0aGlzLnZhbHVlSGVscFByZXZpZXc/Lmludm9rZVNob3dBbGxCdXR0b25IYW5kbGVyLmJpbmQodGhpcy52YWx1ZUhlbHBQcmV2aWV3KTtcblx0XHR9XG5cdFx0aWYgKHZhbHVlSGVscEhhbmRsZXIpIHtcblx0XHRcdCgoKTogdm9pZCA9PiB7XG5cdFx0XHRcdHZhbHVlSGVscEhhbmRsZXIoKTtcblx0XHRcdH0pKCk7XG5cdFx0fVxuXHR9XG5cblx0aGFuZGxlQXR0YWNoQWZ0ZXJDbG9zZSgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuaW5uZXJDb250cm9sPy5nZXREb21SZWYoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB0b2tlbkluZm8gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKSBhcyBUb2tlbkRlZmluaXRpb24gfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHRva2VuSW5mbykge1xuXHRcdFx0Y29uc3QgeyB0eXBlLCBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzIH0gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKSBhcyBUb2tlbkRlZmluaXRpb247XG5cdFx0XHRpZiAoXG5cdFx0XHRcdHR5cGUgPT09IFwiVmFsdWVIZWxwXCIgfHxcblx0XHRcdFx0KCh0eXBlID09PSBcIkNhbGVuZGFyXCIgfHwgdHlwZSA9PT0gXCJUaW1lXCIpICYmICF0aGlzLnNob3VsZE9wZW5EZWZhdWx0RnJhZ21lbnQoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcykpXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy52YWx1ZUhlbHBQcmV2aWV3Py5pbnZva2VQb3B1cENsb3NlSGFuZGxlcigpO1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09PSBcIk1lbnVXaXRoQ2hlY2tCb3hcIikge1xuXHRcdFx0XHR0aGlzLm1lbnVXaXRoQ2hlY2tCb3g/Lmludm9rZVBvcHVwQ2xvc2VIYW5kbGVyKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Z2V0SW5uZXJDb250cm9sKCk6IENhbGVuZGFyIHwgVGltZVBpY2tlckNsb2NrcyB8IExpc3QgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmlubmVyQ29udHJvbDtcblx0fVxuXG5cdG9wZW5WYWx1ZVN0YXRlTWVzc2FnZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlU3RhdGVNZXNzYWdlPy5vcGVuKCk7XG5cdH1cblxuXHRjbG9zZVZhbHVlU3RhdGVNZXNzYWdlKCk6IHZvaWQge1xuXHRcdHRoaXMudmFsdWVTdGF0ZU1lc3NhZ2U/LmNsb3NlKCk7XG5cdH1cblxuXHRzaG91bGRPcGVuRGVmYXVsdEZyYWdtZW50KGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXM6IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10pOiBib29sZWFuIHtcblx0XHQvL0JldHdlZW4gYW5kIE5vdEJldHdlZW4gY2FudCBiZSBoYW5kbGVkIGJ5IGRlZmF1bHQgZnJhZ21lbnRzXG5cdFx0Y29uc3QgaXNCZXR3ZWVuT3BlcmF0b3IgPSBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzLmZpbmQoXG5cdFx0XHQoc2VsZWN0ZWRWYWx1ZXMpID0+IHNlbGVjdGVkVmFsdWVzLm9wZXJhdG9yID09PSBGaWx0ZXJPcGVyYXRvci5CVCB8fCBzZWxlY3RlZFZhbHVlcy5vcGVyYXRvciA9PT0gRmlsdGVyT3BlcmF0b3IuTkJcblx0XHQpO1xuXHRcdC8vVGhpcyBmaXJzdCBjb25kaXRpb24gd291bGQgYmUgdXNlZnVsIGluIG1hbmRhdG9yeSB0b2tlbiBzY2VuYXJpbyBhbmQgbm8gdmFsdWUgaGFzIGJlZW4gc2V0IHRvIGl0XG5cdFx0cmV0dXJuIChcblx0XHRcdGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAwIHx8XG5cdFx0XHQoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDEgJiYga2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlc1swXS5zZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDEgJiYgIWlzQmV0d2Vlbk9wZXJhdG9yKVxuXHRcdCk7XG5cdH1cblxuXHRmb2N1c291dCgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlU3RhdGVNZXNzYWdlPy5jbG9zZSgpO1xuXHR9XG5cblx0c3RhdGljIHJlbmRlcihybTogUmVuZGVyTWFuYWdlciwgY29udHJvbDogRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlclRva2VuPik6IHZvaWQge1xuXHRcdHJldHVybiBqc3gucmVuZGVyVXNpbmdSZW5kZXJNYW5hZ2VyKHJtLCBjb250cm9sLCAoKSA9PiB7XG5cdFx0XHRjb25zdCB0b2tlbml6ZXIgPSBjb250cm9sLmdldFBhcmVudCgpIGFzIEVuaGFuY2VXaXRoVUk1PFRva2VuaXplcj47XG5cdFx0XHRjb25zdCBjbGFzc2VzID0gW1wic2FwTVRva2VuXCIsIFwic2FwRmVDb250cm9sc1Rva2VuXCJdO1xuXHRcdFx0Y29uc3QgY2xhc3Nlc0ZvckxhYmVsID0gW1wic2FwTVRva2VuVGV4dFwiLCBcInNhcEZlQ29udHJvbHNUb2tlblByb3BlcnR5TmFtZVwiXTtcblx0XHRcdGNvbnN0IGNsYXNzZXNGb3JWYWx1ZSA9IFtcInNhcE1Ub2tlblRleHRcIiwgXCJzYXBGZUNvbnRyb2xzVG9rZW5Qcm9wZXJ0eVZhbHVlc1wiXTtcblx0XHRcdGNvbnN0IGlzTWFuZGF0b3J5ID0gY29udHJvbC5nZXRNYW5kYXRvcnkoKTtcblx0XHRcdGlmICh0eXBlb2YgdG9rZW5pemVyPy5nZXRFZGl0YWJsZSA9PT0gXCJmdW5jdGlvblwiICYmIHRva2VuaXplcj8uZ2V0RWRpdGFibGUoKSkge1xuXHRcdFx0XHRjbGFzc2VzLnB1c2goXCJzYXBGRUNvbnRyb2xzUG9pbnRlclwiKTtcblx0XHRcdH1cblx0XHRcdGlmIChjb250cm9sLmdldFNlbGVjdGVkKCkpIHtcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKFwic2FwTVRva2VuU2VsZWN0ZWRcIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAoaXNNYW5kYXRvcnkgPz8gZmFsc2UpIHtcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKFwic2FwRmVDb250cm9sc1Rva2VuTWFuZGF0b3J5XCIpO1xuXHRcdFx0XHRpZiAoY29udHJvbC5nZXRWYWx1ZSgpID09PSBjb250cm9sLnJlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX01BTkRBVE9SWV9UT0tFTl9TRUxFQ1RfVkFMVUVcIikpIHtcblx0XHRcdFx0XHRjbGFzc2VzRm9yVmFsdWUucHVzaChcInNhcEZlQ29udHJvbHNUb2tlbk1hbmRhdG9yeVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGNvbnRyb2wuZ2V0VmFsdWVTdGF0ZSgpID09PSBWYWx1ZVN0YXRlLkVycm9yKSB7XG5cdFx0XHRcdGNsYXNzZXMucHVzaChcInNhcEZlVG9rZW5FcnJvclwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRyZWY9e2NvbnRyb2x9XG5cdFx0XHRcdFx0Y2xhc3M9e2NsYXNzZXMuam9pbihcIiBcIil9XG5cdFx0XHRcdFx0YXJpYS1zZWxlY3RlZD17Y29udHJvbC5nZXRTZWxlY3RlZCgpfVxuXHRcdFx0XHRcdHRhYmluZGV4PXstMX1cblx0XHRcdFx0XHRhcmlhLXBvc2luc2V0PXtjb250cm9sLmdldFByb3BlcnR5KFwicG9zaW5zZXRcIil9XG5cdFx0XHRcdFx0YXJpYS1zZXRzaXplPXtjb250cm9sLmdldFByb3BlcnR5KFwic2V0c2l6ZVwiKX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPXtjbGFzc2VzRm9yTGFiZWwuam9pbihcIiBcIil9Pntjb250cm9sLmdldExhYmVsKCl9Ojwvc3Bhbj5cblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz17Y2xhc3Nlc0ZvclZhbHVlLmpvaW4oXCIgXCIpfT57Y29udHJvbC5nZXRWYWx1ZSgpfTwvc3Bhbj5cblx0XHRcdFx0XHR7aXNNYW5kYXRvcnkgPT09IHRydWUgPyBudWxsIDogY29udHJvbC5nZXRBZ2dyZWdhdGlvbihcImRlbGV0ZUljb25cIil9XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0KTtcblx0XHR9KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztNQXdDcUJBLGVBQWUsSUFBQUMsSUFBQSxHQURuQ0MsY0FBYyxDQUFDLGtDQUFrQyxDQUFDLEVBQUFDLEtBQUEsR0FFakRDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUc1QkYsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBRSxLQUFBLEdBRzVCSCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFHLEtBQUEsR0FHNUJKLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsUUFBUTtJQUFFSSxZQUFZLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUdoRE4sUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFVLENBQUMsQ0FBQyxFQUFBTSxLQUFBLEdBRzdCUCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVEsQ0FBQyxDQUFDLEVBQUFPLEtBQUEsR0FHM0JSLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsd0JBQXdCO0lBQUVRLEtBQUssRUFBRSxZQUFZO0lBQUVKLFlBQVksRUFBRUssVUFBVSxDQUFDQztFQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBR2hHWixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLEtBQUs7SUFBRVksVUFBVSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFDLE1BQUEsR0FHL0NkLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsS0FBSztJQUFFWSxVQUFVLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQWhCLElBQUEsQ0FBQWtCLE1BQUEsSUFBQUMsT0FBQSwwQkFBQUMsTUFBQTtJQXlCaEQsU0FBQXJCLGdCQUNDc0IsWUFBdUUsRUFD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
488
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFYXN5RmlsdGVyVG9rZW4iLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsImdyb3VwIiwiVmFsdWVTdGF0ZSIsIk5vbmUiLCJfZGVjOSIsInZpc2liaWxpdHkiLCJfZGVjMTAiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX1Rva2VuIiwiaWRPclNldHRpbmdzIiwic2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwicmVzb3VyY2VCdW5kbGUiLCJMaWIiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsImV2ZW50QXR0YWNoZWQiLCJpc0Rlc2NyaXB0aW9uRmV0Y2hlZCIsInZhbHVlU3RhdGVNZXNzYWdlIiwiVmFsdWVTdGF0ZU1lc3NhZ2UiLCJhdHRhY2hDbG9zZUhhbmRsZXJzRm9yVmFsdWVTdGF0ZU1lc3NhZ2VQb3B1cCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJmaXJlUHJlc3MiLCJfcGFyYW1ldGVycyIsInRva2VuaXplciIsImdldFBhcmVudCIsImdldEVkaXRhYmxlIiwiZmlyZUV2ZW50IiwiY2xvc2UiLCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyIiwiZ2V0Q3VzdG9tRGF0YVZhbHVlIiwicG9wb3ZlciIsImtleSIsImtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMiLCJpc09wZW4iLCJwcmV2VG9rZW5LZXkiLCJzZXRTaG93SGVhZGVyIiwiZ2V0Rm9vdGVyIiwic2V0VmlzaWJsZSIsInNob3VsZE9wZW5EZWZhdWx0RnJhZ21lbnQiLCJpbnZva2VDYWxlbmRhciIsImludm9rZVRpbWUiLCJpbnZva2VNZW51V2l0aENoZWNrQm94IiwiaW52b2tlTWVudVdpdGhTaW5nbGVTZWxlY3QiLCJpbnZva2VWYWx1ZUhlbHBQcmV2aWV3Iiwib2tCdXR0b24iLCJnZXRPa0J1dHRvbiIsInNob3dBbGxCdXR0b24iLCJnZXRTaG93QWxsQnV0dG9uIiwiYXR0YWNoUHJlc3MiLCJoYW5kbGVPa0NsaWNrIiwiYmluZCIsImhhbmRsZVNob3dBbGxDbGljayIsImF0dGFjaEFmdGVyQ2xvc2UiLCJoYW5kbGVBdHRhY2hBZnRlckNsb3NlIiwiZ2V0Q3VzdG9tRGF0YSIsImZpbmQiLCJjdXN0b21EYXRhIiwiZ2V0S2V5IiwiZ2V0VmFsdWUiLCJvbkJlZm9yZVJlbmRlcmluZyIsImUiLCJUb2tlbiIsImFwcGx5Iiwic2V0VmFsdWVGb3JUb2tlbiIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInRva2VuU2VsZWN0ZWRWYWx1ZXMiLCJpdGVtcyIsImxlbmd0aCIsInNldFByb3BlcnR5IiwiZ2V0VGV4dCIsImZpcnN0U2VsZWN0ZWRWYWx1ZSIsInRvdGFsU2VsZWN0ZWRWYWx1ZXMiLCJjYWxjdWxhdGVUb3RhbFNlbGVjdGVkVmFsdWVzIiwiaGFuZGxlU2luZ2xlU2VsZWN0ZWRWYWx1ZSIsImhhbmRsZU11bHRpcGxlU2VsZWN0ZWRWYWx1ZXMiLCJyZWR1Y2UiLCJjb3VudGVyIiwidG9rZW4iLCJFYXN5RmlsdGVyVXRpbHMiLCJpc0JldHdlZW5TZWxlY3RlZFZhbHVlcyIsIm9wZXJhdG9yIiwic2VsZWN0ZWRWYWx1ZXMiLCJ0b2tlbkluZm8iLCJmaXJzdE9wZXJhdG9yIiwiaW5pdFNlbGVjdGVkVmFsdWUiLCJyZXF1aXJlZE1ldGFkYXRhIiwiZmlsdGVyQmFyTWV0YWRhdGEiLCJkYXRhIiwibmFtZSIsImRhdGFUeXBlIiwic2V0VmFsdWVGb3JNZW51IiwibWFwT3BlcmF0b3JGb3JCZXR3ZWVuT3BlcmF0b3IiLCJtYXBPcGVyYXRvckZvclZhbHVlSGVscCIsIm1hcE9wZXJhdG9yIiwic2V0QnVzeSIsImRlc2NyaXB0aW9uIiwiZ2V0RGVzY3JpcHRpb25CeUtleSIsImVycm9yIiwiTG9nIiwiZ2V0RG9tUmVmRm9yVmFsdWVTdGF0ZU1lc3NhZ2UiLCJnZXREb21SZWYiLCJjb2RlTGlzdCIsImdldENvZGVMaXN0QXJyYXkiLCJsaXN0IiwidmFsdWUiLCJtZW51V2l0aENoZWNrQm94IiwiTWVudVdpdGhDaGVja0JveEZhY3RvcnkiLCJpbm5lckNvbnRyb2wiLCJnZXRDb250cm9sIiwiYWRkRGVwZW5kZW50Iiwic2V0SXRlbXMiLCJyZW1vdmVBbGxDb250ZW50IiwiYWRkQ29udGVudCIsIm9wZW5Qb3BvdmVyIiwibWVudVdpdGhTaW5nbGVTZWxlY3QiLCJNZW51V2l0aFNpbmdsZVNlbGVjdEZhY3RvcnkiLCJjYWxlbmRlciIsIkNhbGVuZGVyRmFjdG9yeSIsInRpbWUiLCJUaW1lRmFjdG9yeSIsInZhbHVlSGVscFByZXZpZXciLCJWYWx1ZUhlbHBQcmV2aWV3RmFjdG9yeSIsIm9Qb3BvdmVyIiwic2V0VGl0bGUiLCJsYWJlbCIsIm9wZW5CeSIsIm9rQnV0dG9uSGFuZGxlciIsImludm9rZU9rQnV0dG9uSGFuZGxlciIsInZhbHVlSGVscEhhbmRsZXIiLCJpbnZva2VTaG93QWxsQnV0dG9uSGFuZGxlciIsImludm9rZVBvcHVwQ2xvc2VIYW5kbGVyIiwiZ2V0SW5uZXJDb250cm9sIiwib3BlblZhbHVlU3RhdGVNZXNzYWdlIiwib3BlbiIsImNsb3NlVmFsdWVTdGF0ZU1lc3NhZ2UiLCJpc0JldHdlZW5PcGVyYXRvciIsIkZpbHRlck9wZXJhdG9yIiwiQlQiLCJOQiIsImZvY3Vzb3V0IiwicmVuZGVyIiwicm0iLCJjb250cm9sIiwianN4IiwicmVuZGVyVXNpbmdSZW5kZXJNYW5hZ2VyIiwiY2xhc3NlcyIsImNsYXNzZXNGb3JMYWJlbCIsImNsYXNzZXNGb3JWYWx1ZSIsImlzTWFuZGF0b3J5IiwiZ2V0TWFuZGF0b3J5IiwicHVzaCIsImdldFNlbGVjdGVkIiwiZ2V0VmFsdWVTdGF0ZSIsIkVycm9yIiwiX2pzeHMiLCJyZWYiLCJjbGFzcyIsImpvaW4iLCJ0YWJpbmRleCIsImdldFByb3BlcnR5IiwiY2hpbGRyZW4iLCJnZXRMYWJlbCIsIl9qc3giLCJnZXRBZ2dyZWdhdGlvbiIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVG9rZW4udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgdHlwZSBMaXN0IGZyb20gXCJzYXAvbS9MaXN0XCI7XG5pbXBvcnQgdHlwZSBQb3BvdmVyIGZyb20gXCJzYXAvbS9Qb3BvdmVyXCI7XG5pbXBvcnQgdHlwZSBUaW1lUGlja2VyQ2xvY2tzIGZyb20gXCJzYXAvbS9UaW1lUGlja2VyQ2xvY2tzXCI7XG5pbXBvcnQgdHlwZSB7ICRUb2tlblNldHRpbmdzIH0gZnJvbSBcInNhcC9tL1Rva2VuXCI7XG5pbXBvcnQgVG9rZW4gZnJvbSBcInNhcC9tL1Rva2VuXCI7XG5pbXBvcnQgdHlwZSBUb2tlbml6ZXIgZnJvbSBcInNhcC9tL1Rva2VuaXplclwiO1xuaW1wb3J0IFZhbHVlU3RhdGVNZXNzYWdlIGZyb20gXCJzYXAvbS9kZWxlZ2F0ZS9WYWx1ZVN0YXRlTWVzc2FnZVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgQ3VzdG9tRGF0YSBmcm9tIFwic2FwL3VpL2NvcmUvQ3VzdG9tRGF0YVwiO1xuaW1wb3J0IHR5cGUgVUk1RWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IExpYiBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgdHlwZSBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgeyBWYWx1ZVN0YXRlIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBGaWx0ZXJPcGVyYXRvciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlck9wZXJhdG9yXCI7XG5pbXBvcnQgdHlwZSBDYWxlbmRhciBmcm9tIFwic2FwL3VpL3VuaWZpZWQvQ2FsZW5kYXJcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlNZXRhZGF0YSB9IGZyb20gXCJ1eC9lbmcvZmlvcmlhaS9yZXVzZS9lYXN5ZmlsdGVyL0Vhc3lGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIEVhc3lGaWx0ZXJCYXJDb250YWluZXIgZnJvbSBcIi4vRWFzeUZpbHRlckJhckNvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUge1xuXHRCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMsXG5cdENvZGVMaXN0VHlwZSxcblx0RWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGEsXG5cdFRva2VuRGVmaW5pdGlvbixcblx0VG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb24sXG5cdFZhbHVlSGVscFNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvblxufSBmcm9tIFwiLi9FYXN5RmlsdGVyQmFyQ29udGFpbmVyXCI7XG5pbXBvcnQgQ2FsZW5kZXJGYWN0b3J5IGZyb20gXCIuL2lubmVyQ29udHJvbHMvQ2FsZW5kYXJGYWN0b3J5XCI7XG5pbXBvcnQgTWVudVdpdGhDaGVja0JveEZhY3RvcnkgZnJvbSBcIi4vaW5uZXJDb250cm9scy9NZW51V2l0aENoZWNrQm94RmFjdG9yeVwiO1xuaW1wb3J0IE1lbnVXaXRoU2luZ2xlU2VsZWN0RmFjdG9yeSBmcm9tIFwiLi9pbm5lckNvbnRyb2xzL01lbnVXaXRoU2luZ2xlU2VsZWN0RmFjdG9yeVwiO1xuaW1wb3J0IFRpbWVGYWN0b3J5IGZyb20gXCIuL2lubmVyQ29udHJvbHMvVGltZUZhY3RvcnlcIjtcbmltcG9ydCBWYWx1ZUhlbHBQcmV2aWV3RmFjdG9yeSBmcm9tIFwiLi9pbm5lckNvbnRyb2xzL1ZhbHVlSGVscFByZXZpZXdGYWN0b3J5XCI7XG5pbXBvcnQgRWFzeUZpbHRlclV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XG5cbnR5cGUgY29kZUxpc3RUeXBlID0gUHJvcGVydHlNZXRhZGF0YVtcImNvZGVMaXN0XCJdO1xudHlwZSBDdXN0b21LZXlzID0gXCJUb2tlbkluZm9cIiB8IFwicG9wb3ZlclwiIHwgXCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIgfCBcImNvZGVMaXN0XCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb250cm9scy5lYXN5RmlsdGVyLlRva2VuXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFYXN5RmlsdGVyVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0bGFiZWw/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHR0aXRsZVBvcG92ZXI/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHR2YWx1ZT86IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0dmFsdWVTdGF0ZVRleHQ/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0bWFuZGF0b3J5PzogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFycmF5XCIgfSlcblx0aXRlbXM/OiBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdIHwgVmFsdWVIZWxwU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW107XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5WYWx1ZVN0YXRlXCIsIGdyb3VwOiBcIkFwcGVhcmFuY2VcIiwgZGVmYXVsdFZhbHVlOiBWYWx1ZVN0YXRlLk5vbmUgfSlcblx0dmFsdWVTdGF0ZT86IFZhbHVlU3RhdGU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJpbnRcIiwgdmlzaWJpbGl0eTogXCJoaWRkZW5cIiB9KVxuXHRwb3NpbnNldD86IG51bWJlcjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImludFwiLCB2aXNpYmlsaXR5OiBcImhpZGRlblwiIH0pXG5cdHNldHNpemU/OiBudW1iZXI7XG5cblx0cHJpdmF0ZSByZXNvdXJjZUJ1bmRsZSA9IExpYi5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5jb250cm9sc1wiKSE7XG5cblx0cHJpdmF0ZSBpbm5lckNvbnRyb2w/OiBDYWxlbmRhciB8IFRpbWVQaWNrZXJDbG9ja3MgfCBMaXN0O1xuXG5cdHByaXZhdGUgdGltZT86IFRpbWVGYWN0b3J5O1xuXG5cdHByaXZhdGUgY2FsZW5kZXI/OiBDYWxlbmRlckZhY3Rvcnk7XG5cblx0cHJpdmF0ZSB2YWx1ZUhlbHBQcmV2aWV3PzogVmFsdWVIZWxwUHJldmlld0ZhY3Rvcnk7XG5cblx0cHJpdmF0ZSBtZW51V2l0aENoZWNrQm94PzogTWVudVdpdGhDaGVja0JveEZhY3Rvcnk7XG5cblx0cHJpdmF0ZSBtZW51V2l0aFNpbmdsZVNlbGVjdD86IE1lbnVXaXRoU2luZ2xlU2VsZWN0RmFjdG9yeTtcblxuXHRwcml2YXRlIGV2ZW50QXR0YWNoZWQgPSBmYWxzZTtcblxuXHRwcml2YXRlIGlzRGVzY3JpcHRpb25GZXRjaGVkID0gZmFsc2U7XG5cblx0cHJpdmF0ZSB2YWx1ZVN0YXRlTWVzc2FnZT86IFZhbHVlU3RhdGVNZXNzYWdlO1xuXG5cdHByaXZhdGUgc3RhdGljIHByZXZUb2tlbktleT86IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRpZE9yU2V0dGluZ3M6IHN0cmluZyB8IChQcm9wZXJ0aWVzT2Y8RWFzeUZpbHRlclRva2VuPiAmICRUb2tlblNldHRpbmdzKSxcblx0XHRzZXR0aW5ncz86IFByb3BlcnRpZXNPZjxFYXN5RmlsdGVyVG9rZW4+ICYgJFRva2VuU2V0dGluZ3Ncblx0KSB7XG5cdFx0c3VwZXIoaWRPclNldHRpbmdzIGFzIHN0cmluZywgc2V0dGluZ3MpO1xuXHRcdHRoaXMudmFsdWVTdGF0ZU1lc3NhZ2UgPSBuZXcgVmFsdWVTdGF0ZU1lc3NhZ2UodGhpcyk7XG5cdFx0Ly9DbG9zaW5nIHRoZSBWYWx1ZVN0YXRlIHBvcG92ZXJzIHdoZW5ldmVyIHdlIGFyZSBjbGlja2luZy90YXBwaW5nIGVsc2Ugd2hlcmUgb24gdGhlIHNjcmVlblxuXHRcdHRoaXMuYXR0YWNoQ2xvc2VIYW5kbGVyc0ZvclZhbHVlU3RhdGVNZXNzYWdlUG9wdXAoKTtcblx0fVxuXG5cdGZpcmVQcmVzcyhfcGFyYW1ldGVyczogdW5rbm93bik6IHRoaXMge1xuXHRcdGNvbnN0IHRva2VuaXplciA9IHRoaXMuZ2V0UGFyZW50KCkgYXMgVG9rZW5pemVyO1xuXHRcdGlmICghdG9rZW5pemVyLmdldEVkaXRhYmxlKCkpIHtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHQvLyBXZSBoaWphY2sgdGhlIHByZXNzIGV2ZW50IHRvIG9wZW4gdGhlIGRldGFpbCBwb3BvdmVyXG5cdFx0dGhpcy5maXJlRXZlbnQoXCJwcmVzc1wiKTtcblx0XHR0aGlzLnZhbHVlU3RhdGVNZXNzYWdlPy5jbG9zZSgpO1xuXG5cdFx0Y29uc3QgZWFzeUZpbHRlckJhckNvbnRhaW5lciA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwiZWFzeUZpbHRlckJhckNvbnRhaW5lclwiKSBhcyBFYXN5RmlsdGVyQmFyQ29udGFpbmVyO1xuXHRcdGNvbnN0IHBvcG92ZXIgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcInBvcG92ZXJcIikgYXMgUG9wb3ZlcjtcblxuXHRcdGNvbnN0IHsga2V5LCB0eXBlLCBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzIH0gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKSBhcyBUb2tlbkRlZmluaXRpb247XG5cblx0XHQvLyBDaGVjayBpZiB0aGUgcG9wb3ZlciBpcyBhbHJlYWR5IG9wZW5cblx0XHRpZiAocG9wb3Zlci5pc09wZW4oKSkge1xuXHRcdFx0Ly8gSWYgdGhlIHBvcG92ZXIgaXMgb3BlbiBhbmQgdGhlIG5ldyBrZXkgaXMgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIG9uZSwgZG8gbm90aGluZ1xuXHRcdFx0aWYgKEVhc3lGaWx0ZXJUb2tlbi5wcmV2VG9rZW5LZXkgPT09IGtleSkge1xuXHRcdFx0XHRyZXR1cm4gdGhpczsgLy8gUmV0dXJuIGVhcmx5IHRvIHByZXZlbnQgYW55IGZ1cnRoZXIgYWN0aW9uXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBJZiB0aGUga2V5IGlzIGRpZmZlcmVudCwgdXBkYXRlIHByZXZUb2tlbktleSBhbmQgY2xvc2UgdGhlIHBvcG92ZXJcblx0XHRcdFx0RWFzeUZpbHRlclRva2VuLnByZXZUb2tlbktleSA9IGtleTsgLy8gVXBkYXRlIHRoZSBwcmV2aW91cyB0b2tlbiBrZXkgdG8gdGhlIG5ldyBvbmVcblx0XHRcdFx0cG9wb3Zlci5jbG9zZSgpOyAvLyBDbG9zZSB0aGUgcG9wb3ZlclxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBJZiB0aGUgcG9wb3ZlciBpcyBub3Qgb3BlbiwgdXBkYXRlIHByZXZUb2tlbktleSBmb3IgdGhlIGZpcnN0IHRpbWVcblx0XHRcdEVhc3lGaWx0ZXJUb2tlbi5wcmV2VG9rZW5LZXkgPSBrZXk7XG5cdFx0fVxuXG5cdFx0Ly9yZXNldHRpbmcgdGhlIGhlYWRlciBhbmQgZm9vdGVyLCBpZiBoaWRkZW4gYnkgc2luZ2xlc2VsZWN0XG5cdFx0cG9wb3Zlcj8uc2V0U2hvd0hlYWRlcih0cnVlKTtcblx0XHRwb3BvdmVyPy5nZXRGb290ZXIoKT8uc2V0VmlzaWJsZSh0cnVlKTtcblxuXHRcdGlmICh0eXBlID09PSBcIkNhbGVuZGFyXCIgJiYgdGhpcy5zaG91bGRPcGVuRGVmYXVsdEZyYWdtZW50KGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMpKSB7XG5cdFx0XHR0aGlzLmludm9rZUNhbGVuZGFyKCk7XG5cdFx0fSBlbHNlIGlmICh0eXBlID09PSBcIlRpbWVcIiAmJiB0aGlzLnNob3VsZE9wZW5EZWZhdWx0RnJhZ21lbnQoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcykpIHtcblx0XHRcdHRoaXMuaW52b2tlVGltZSgpO1xuXHRcdH0gZWxzZSBpZiAodHlwZSA9PT0gXCJNZW51V2l0aENoZWNrQm94XCIpIHtcblx0XHRcdHRoaXMuaW52b2tlTWVudVdpdGhDaGVja0JveCgpO1xuXHRcdH0gZWxzZSBpZiAodHlwZSA9PT0gXCJNZW51V2l0aFNpbmdsZVNlbGVjdFwiKSB7XG5cdFx0XHR0aGlzLmludm9rZU1lbnVXaXRoU2luZ2xlU2VsZWN0KCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuaW52b2tlVmFsdWVIZWxwUHJldmlldygpO1xuXHRcdH1cblx0XHRjb25zdCBva0J1dHRvbiA9IGVhc3lGaWx0ZXJCYXJDb250YWluZXI/LmdldE9rQnV0dG9uKCk7XG5cdFx0Y29uc3Qgc2hvd0FsbEJ1dHRvbiA9IGVhc3lGaWx0ZXJCYXJDb250YWluZXI/LmdldFNob3dBbGxCdXR0b24oKTtcblx0XHRpZiAoISh0aGlzLmV2ZW50QXR0YWNoZWQgPz8gZmFsc2UpKSB7XG5cdFx0XHRva0J1dHRvbj8uYXR0YWNoUHJlc3ModGhpcy5oYW5kbGVPa0NsaWNrLmJpbmQodGhpcykpO1xuXHRcdFx0c2hvd0FsbEJ1dHRvbj8uYXR0YWNoUHJlc3ModGhpcy5oYW5kbGVTaG93QWxsQ2xpY2suYmluZCh0aGlzKSk7XG5cdFx0XHRwb3BvdmVyLmF0dGFjaEFmdGVyQ2xvc2UodGhpcy5oYW5kbGVBdHRhY2hBZnRlckNsb3NlLmJpbmQodGhpcykpO1xuXHRcdFx0dGhpcy5ldmVudEF0dGFjaGVkID0gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRnZXRDdXN0b21EYXRhVmFsdWUoa2V5OiBDdXN0b21LZXlzKTogVG9rZW5EZWZpbml0aW9uIHwgUG9wb3ZlciB8IEVhc3lGaWx0ZXJCYXJDb250YWluZXIgfCBjb2RlTGlzdFR5cGUgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmdldEN1c3RvbURhdGEoKVxuXHRcdFx0LmZpbmQoKGN1c3RvbURhdGE6IEN1c3RvbURhdGEpID0+IGN1c3RvbURhdGEuZ2V0S2V5KCkgPT09IGtleSlcblx0XHRcdD8uZ2V0VmFsdWUoKTtcblx0fVxuXG5cdG9uQmVmb3JlUmVuZGVyaW5nKGU6IGpRdWVyeS5FdmVudCk6IHZvaWQgfCB1bmRlZmluZWQge1xuXHRcdFRva2VuLnByb3RvdHlwZS5vbkJlZm9yZVJlbmRlcmluZy5hcHBseSh0aGlzLCBbZV0pO1xuXHRcdGlmICghdGhpcy5pc0Rlc2NyaXB0aW9uRmV0Y2hlZCkge1xuXHRcdFx0dGhpcy5zZXRWYWx1ZUZvclRva2VuKCk7XG5cdFx0fVxuXHRcdHRoaXMuaXNEZXNjcmlwdGlvbkZldGNoZWQgPSBmYWxzZTtcblx0fVxuXG5cdGF0dGFjaENsb3NlSGFuZGxlcnNGb3JWYWx1ZVN0YXRlTWVzc2FnZVBvcHVwKCk6IHZvaWQge1xuXHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XG5cdFx0XHRpZiAodGhpcz8udmFsdWVTdGF0ZU1lc3NhZ2UpIHtcblx0XHRcdFx0dGhpcy52YWx1ZVN0YXRlTWVzc2FnZS5jbG9zZSgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXM/LnZhbHVlU3RhdGVNZXNzYWdlKSB7XG5cdFx0XHRcdHRoaXMudmFsdWVTdGF0ZU1lc3NhZ2UuY2xvc2UoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHNldFZhbHVlRm9yVG9rZW4oKTogdm9pZCB7XG5cdFx0Y29uc3QgdG9rZW5TZWxlY3RlZFZhbHVlcyA9IHRoaXMuaXRlbXMgYXMgKFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uIHwgVmFsdWVIZWxwU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uKVtdO1xuXHRcdGlmICh0b2tlblNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhbHVlXCIsIHRoaXMucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fRUFTWV9GSUxURVJfTUFOREFUT1JZX1RPS0VOX1NFTEVDVF9WQUxVRVwiKSwgdHJ1ZSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgZmlyc3RTZWxlY3RlZFZhbHVlID0gdG9rZW5TZWxlY3RlZFZhbHVlc1swXTtcblx0XHRjb25zdCB0b3RhbFNlbGVjdGVkVmFsdWVzID0gdGhpcy5jYWxjdWxhdGVUb3RhbFNlbGVjdGVkVmFsdWVzKHRva2VuU2VsZWN0ZWRWYWx1ZXMpO1xuXG5cdFx0aWYgKHRvdGFsU2VsZWN0ZWRWYWx1ZXMgPT09IDEpIHtcblx0XHRcdHRoaXMuaGFuZGxlU2luZ2xlU2VsZWN0ZWRWYWx1ZShmaXJzdFNlbGVjdGVkVmFsdWUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmhhbmRsZU11bHRpcGxlU2VsZWN0ZWRWYWx1ZXModG90YWxTZWxlY3RlZFZhbHVlcyk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBjYWxjdWxhdGVUb3RhbFNlbGVjdGVkVmFsdWVzKFxuXHRcdHRva2VuU2VsZWN0ZWRWYWx1ZXM6IChUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbiB8IFZhbHVlSGVscFNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbilbXVxuXHQpOiBudW1iZXIge1xuXHRcdHJldHVybiB0b2tlblNlbGVjdGVkVmFsdWVzLnJlZHVjZSgoY291bnRlciwgdG9rZW4pID0+IHtcblx0XHRcdHJldHVybiBFYXN5RmlsdGVyVXRpbHMuaXNCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXModG9rZW4ub3BlcmF0b3IpID8gY291bnRlciArIDEgOiBjb3VudGVyICsgdG9rZW4uc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoO1xuXHRcdH0sIDApO1xuXHR9XG5cblx0cHJpdmF0ZSBoYW5kbGVTaW5nbGVTZWxlY3RlZFZhbHVlKGZpcnN0U2VsZWN0ZWRWYWx1ZTogVG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb24gfCBWYWx1ZUhlbHBTZWxlY3RlZFZhbHVlc0RlZmluaXRpb24pOiB2b2lkIHtcblx0XHRjb25zdCB0b2tlbkluZm8gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKTtcblx0XHRjb25zdCBmaXJzdE9wZXJhdG9yID0gZmlyc3RTZWxlY3RlZFZhbHVlPy5vcGVyYXRvcjtcblx0XHRjb25zdCBpbml0U2VsZWN0ZWRWYWx1ZSA9IGZpcnN0U2VsZWN0ZWRWYWx1ZS5zZWxlY3RlZFZhbHVlc1swXTtcblx0XHRjb25zdCBzZWxlY3RlZFZhbHVlcyA9IGZpcnN0U2VsZWN0ZWRWYWx1ZS5zZWxlY3RlZFZhbHVlcztcblx0XHRjb25zdCBlYXN5RmlsdGVyQmFyQ29udGFpbmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIpIGFzIEVhc3lGaWx0ZXJCYXJDb250YWluZXIgfCB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgcmVxdWlyZWRNZXRhZGF0YSA9IGVhc3lGaWx0ZXJCYXJDb250YWluZXI/LmZpbHRlckJhck1ldGFkYXRhPy5maW5kKChkYXRhKSA9PiBkYXRhLm5hbWUgPT09IHRoaXMuZ2V0S2V5KCkpO1xuXG5cdFx0aWYgKCFyZXF1aXJlZE1ldGFkYXRhKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgeyB0eXBlLCBkYXRhVHlwZSB9ID0gcmVxdWlyZWRNZXRhZGF0YTtcblx0XHRpZiAodG9rZW5JbmZvKSB7XG5cdFx0XHRjb25zdCB7IGtleSB9ID0gdG9rZW5JbmZvIGFzIFRva2VuRGVmaW5pdGlvbjtcblx0XHRcdGlmICh0eXBlID09PSBcIk1lbnVXaXRoQ2hlY2tCb3hcIiB8fCB0eXBlID09PSBcIk1lbnVXaXRoU2luZ2xlU2VsZWN0XCIpIHtcblx0XHRcdFx0dGhpcy5zZXRWYWx1ZUZvck1lbnUoa2V5KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHR5cGUgPT09IFwiVmFsdWVIZWxwXCIpIHtcblx0XHRcdFx0aWYgKEVhc3lGaWx0ZXJVdGlscy5pc0JldHdlZW5TZWxlY3RlZFZhbHVlcyhmaXJzdE9wZXJhdG9yKSkge1xuXHRcdFx0XHRcdHRoaXMuc2V0UHJvcGVydHkoXG5cdFx0XHRcdFx0XHRcInZhbHVlXCIsXG5cdFx0XHRcdFx0XHRFYXN5RmlsdGVyVXRpbHMubWFwT3BlcmF0b3JGb3JCZXR3ZWVuT3BlcmF0b3IoXG5cdFx0XHRcdFx0XHRcdGZpcnN0T3BlcmF0b3IsXG5cdFx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzIGFzIEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0XHRcdFx0XHRcdFx0dHlwZSxcblx0XHRcdFx0XHRcdFx0ZGF0YVR5cGUgPT09IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCJcblx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnNldFByb3BlcnR5KFxuXHRcdFx0XHRcdFx0XCJ2YWx1ZVwiLFxuXHRcdFx0XHRcdFx0RWFzeUZpbHRlclV0aWxzLm1hcE9wZXJhdG9yRm9yVmFsdWVIZWxwKFxuXHRcdFx0XHRcdFx0XHRmaXJzdE9wZXJhdG9yLFxuXHRcdFx0XHRcdFx0XHRpbml0U2VsZWN0ZWRWYWx1ZSBhcyBDb2RlTGlzdFR5cGUsXG5cdFx0XHRcdFx0XHRcdHR5cGUsXG5cdFx0XHRcdFx0XHRcdGRhdGFUeXBlID09PSBcIkVkbS5EYXRlVGltZU9mZnNldFwiXG5cdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoRWFzeUZpbHRlclV0aWxzLmlzQmV0d2VlblNlbGVjdGVkVmFsdWVzKGZpcnN0T3BlcmF0b3IpKSB7XG5cdFx0XHRcdHRoaXMuc2V0UHJvcGVydHkoXG5cdFx0XHRcdFx0XCJ2YWx1ZVwiLFxuXHRcdFx0XHRcdEVhc3lGaWx0ZXJVdGlscy5tYXBPcGVyYXRvckZvckJldHdlZW5PcGVyYXRvcihcblx0XHRcdFx0XHRcdGZpcnN0T3BlcmF0b3IsXG5cdFx0XHRcdFx0XHRzZWxlY3RlZFZhbHVlcyBhcyBCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMsXG5cdFx0XHRcdFx0XHR0eXBlLFxuXHRcdFx0XHRcdFx0ZGF0YVR5cGUgPT09IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCJcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdHRydWVcblx0XHRcdFx0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuc2V0UHJvcGVydHkoXG5cdFx0XHRcdFx0XCJ2YWx1ZVwiLFxuXHRcdFx0XHRcdEVhc3lGaWx0ZXJVdGlscy5tYXBPcGVyYXRvcihcblx0XHRcdFx0XHRcdGZpcnN0T3BlcmF0b3IsXG5cdFx0XHRcdFx0XHRpbml0U2VsZWN0ZWRWYWx1ZSBhcyBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSxcblx0XHRcdFx0XHRcdHR5cGUsXG5cdFx0XHRcdFx0XHRkYXRhVHlwZSA9PT0gXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIlxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgaGFuZGxlTXVsdGlwbGVTZWxlY3RlZFZhbHVlcyh0b3RhbFNlbGVjdGVkVmFsdWVzOiBudW1iZXIpOiB2b2lkIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwidmFsdWVcIiwgdGhpcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9NQU5EQVRPUllfVE9LRU5fSVRFTVNcIiwgW3RvdGFsU2VsZWN0ZWRWYWx1ZXNdKSwgdHJ1ZSk7XG5cdH1cblxuXHRzZXRWYWx1ZUZvck1lbnUoa2V5OiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBlYXN5RmlsdGVyQmFyQ29udGFpbmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIpIGFzIEVhc3lGaWx0ZXJCYXJDb250YWluZXI7XG5cdFx0Ly9UaGUgcmV0cmlldmFsIG9mIGNvZGVMaXN0IG1pZ2h0IHRha2UgbW9yZSB0aW1lIHNvIG1hcmtpbmcgdGhlIGNvbnRyb2wgYXMgYnVzeSB1bnRpbCB0aGVuXG5cdFx0dGhpcy5zZXRCdXN5KHRydWUpO1xuXHRcdChhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCBkZXNjcmlwdGlvbiA9IGF3YWl0IHRoaXMuZ2V0RGVzY3JpcHRpb25CeUtleShcblx0XHRcdFx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyLmZpbHRlckJhck1ldGFkYXRhPy5maW5kKChkYXRhKSA9PiBkYXRhLm5hbWUgPT09IGtleSkgYXMgRWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGEsXG5cdFx0XHRcdFx0dGhpcy5pdGVtcyBhcyBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdXG5cdFx0XHRcdCk7XG5cdFx0XHRcdC8vUmVyZW5kZXIgdGhlIHRva2VuIG9uY2UgdGhlIGRlc2NyaXB0aW9uIGlzIGZldGNoZWRcblx0XHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhbHVlXCIsIGRlc2NyaXB0aW9uKTtcblx0XHRcdFx0dGhpcy5pc0Rlc2NyaXB0aW9uRmV0Y2hlZCA9IHRydWU7XG5cdFx0XHRcdHRoaXMuc2V0QnVzeShmYWxzZSk7XG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBmZXRjaGluZyBjb2RlTGlzdFwiLCBlcnJvciBhcyBFcnJvcik7XG5cdFx0XHR9XG5cdFx0fSkoKTtcblx0fVxuXG5cdGdldERvbVJlZkZvclZhbHVlU3RhdGVNZXNzYWdlKCk6IEVsZW1lbnQgfCBudWxsIHtcblx0XHRyZXR1cm4gdGhpcy5nZXREb21SZWYoKTtcblx0fVxuXG5cdGFzeW5jIGdldERlc2NyaXB0aW9uQnlLZXkoXG5cdFx0ZGF0YTogRWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGEsXG5cdFx0c2VsZWN0ZWRWYWx1ZXM6IFRva2VuRGVmaW5pdGlvbltcImtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXNcIl1cblx0KTogUHJvbWlzZTxzdHJpbmc+IHtcblx0XHRjb25zdCBjb2RlTGlzdCA9IGF3YWl0IEVhc3lGaWx0ZXJVdGlscy5nZXRDb2RlTGlzdEFycmF5KGRhdGEuY29kZUxpc3QpO1xuXHRcdHJldHVybiBjb2RlTGlzdD8uZmluZCgobGlzdCkgPT4gbGlzdC52YWx1ZSA9PT0gc2VsZWN0ZWRWYWx1ZXNbMF0uc2VsZWN0ZWRWYWx1ZXNbMF0pPy5kZXNjcmlwdGlvbiBhcyBzdHJpbmc7XG5cdH1cblxuXHRhc3luYyBpbnZva2VNZW51V2l0aENoZWNrQm94KCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGVhc3lGaWx0ZXJCYXJDb250YWluZXIgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcImVhc3lGaWx0ZXJCYXJDb250YWluZXJcIikgYXMgRWFzeUZpbHRlckJhckNvbnRhaW5lcjtcblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cdFx0Y29uc3QgY29kZUxpc3QgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcImNvZGVMaXN0XCIpIGFzIGNvZGVMaXN0VHlwZTtcblx0XHRjb25zdCB7IGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgfSA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwiVG9rZW5JbmZvXCIpIGFzIFRva2VuRGVmaW5pdGlvbjtcblx0XHRpZiAoIXRoaXMubWVudVdpdGhDaGVja0JveCkge1xuXHRcdFx0dGhpcy5tZW51V2l0aENoZWNrQm94ID0gbmV3IE1lbnVXaXRoQ2hlY2tCb3hGYWN0b3J5KFxuXHRcdFx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyIGFzIEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJCYXJDb250YWluZXI+LFxuXHRcdFx0XHR0aGlzIGFzIEVhc3lGaWx0ZXJUb2tlbiBhcyBFbmhhbmNlV2l0aFVJNTxFYXN5RmlsdGVyVG9rZW4+XG5cdFx0XHQpO1xuXHRcdH1cblx0XHR0aGlzLmlubmVyQ29udHJvbCA9IHRoaXMubWVudVdpdGhDaGVja0JveC5nZXRDb250cm9sKCk7XG5cdFx0dGhpcy5hZGREZXBlbmRlbnQodGhpcy5pbm5lckNvbnRyb2wgYXMgVUk1RWxlbWVudCk7XG5cdFx0YXdhaXQgdGhpcy5tZW51V2l0aENoZWNrQm94LnNldEl0ZW1zKGNvZGVMaXN0LCBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzKTtcblx0XHRwb3BvdmVyPy5yZW1vdmVBbGxDb250ZW50KCk7XG5cdFx0cG9wb3Zlcj8uYWRkQ29udGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBDb250cm9sKTtcblx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyPy5nZXRTaG93QWxsQnV0dG9uKCk/LnNldFZpc2libGUoZmFsc2UpO1xuXHRcdHRoaXMub3BlblBvcG92ZXIoKTtcblx0fVxuXG5cdGFzeW5jIGludm9rZU1lbnVXaXRoU2luZ2xlU2VsZWN0KCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGVhc3lGaWx0ZXJCYXJDb250YWluZXIgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcImVhc3lGaWx0ZXJCYXJDb250YWluZXJcIikgYXMgRWFzeUZpbHRlckJhckNvbnRhaW5lcjtcblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cdFx0Y29uc3QgY29kZUxpc3QgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcImNvZGVMaXN0XCIpIGFzIGNvZGVMaXN0VHlwZTtcblx0XHRjb25zdCB7IGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgfSA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwiVG9rZW5JbmZvXCIpIGFzIFRva2VuRGVmaW5pdGlvbjtcblx0XHRpZiAoIXRoaXMubWVudVdpdGhTaW5nbGVTZWxlY3QpIHtcblx0XHRcdHRoaXMubWVudVdpdGhTaW5nbGVTZWxlY3QgPSBuZXcgTWVudVdpdGhTaW5nbGVTZWxlY3RGYWN0b3J5KFxuXHRcdFx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyIGFzIEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJCYXJDb250YWluZXI+LFxuXHRcdFx0XHR0aGlzIGFzIEVhc3lGaWx0ZXJUb2tlbiBhcyBFbmhhbmNlV2l0aFVJNTxFYXN5RmlsdGVyVG9rZW4+XG5cdFx0XHQpO1xuXHRcdH1cblx0XHR0aGlzLmlubmVyQ29udHJvbCA9IHRoaXMubWVudVdpdGhTaW5nbGVTZWxlY3QuZ2V0Q29udHJvbCgpO1xuXHRcdHRoaXMuYWRkRGVwZW5kZW50KHRoaXMuaW5uZXJDb250cm9sIGFzIFVJNUVsZW1lbnQpO1xuXHRcdGF3YWl0IHRoaXMubWVudVdpdGhTaW5nbGVTZWxlY3Quc2V0SXRlbXMoY29kZUxpc3QsIGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMpO1xuXG5cdFx0cG9wb3Zlci5zZXRTaG93SGVhZGVyKGZhbHNlKTtcblx0XHRwb3BvdmVyLmdldEZvb3RlcigpPy5zZXRWaXNpYmxlKGZhbHNlKTtcblxuXHRcdHBvcG92ZXI/LnJlbW92ZUFsbENvbnRlbnQoKTtcblx0XHRwb3BvdmVyPy5hZGRDb250ZW50KHRoaXMuaW5uZXJDb250cm9sIGFzIENvbnRyb2wpO1xuXHRcdHRoaXMub3BlblBvcG92ZXIoKTtcblx0fVxuXG5cdGludm9rZUNhbGVuZGFyKCk6IHZvaWQge1xuXHRcdGNvbnN0IGVhc3lGaWx0ZXJCYXJDb250YWluZXIgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcImVhc3lGaWx0ZXJCYXJDb250YWluZXJcIikgYXMgRWFzeUZpbHRlckJhckNvbnRhaW5lcjtcblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cdFx0aWYgKCF0aGlzLmNhbGVuZGVyKSB7XG5cdFx0XHR0aGlzLmNhbGVuZGVyID0gbmV3IENhbGVuZGVyRmFjdG9yeShcblx0XHRcdFx0ZWFzeUZpbHRlckJhckNvbnRhaW5lciBhcyBFbmhhbmNlV2l0aFVJNTxFYXN5RmlsdGVyQmFyQ29udGFpbmVyPixcblx0XHRcdFx0dGhpcyBhcyBFYXN5RmlsdGVyVG9rZW4gYXMgRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlclRva2VuPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0dGhpcy5pbm5lckNvbnRyb2wgPSB0aGlzLmNhbGVuZGVyLmdldENvbnRyb2woKTtcblx0XHR0aGlzLmFkZERlcGVuZGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBVSTVFbGVtZW50KTtcblx0XHRwb3BvdmVyPy5yZW1vdmVBbGxDb250ZW50KCk7XG5cdFx0cG9wb3Zlcj8uYWRkQ29udGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBDb250cm9sKTtcblx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyPy5nZXRTaG93QWxsQnV0dG9uKCk/LnNldFZpc2libGUodHJ1ZSk7XG5cdFx0dGhpcy5vcGVuUG9wb3ZlcigpO1xuXHR9XG5cblx0aW52b2tlVGltZSgpOiB2b2lkIHtcblx0XHRjb25zdCBlYXN5RmlsdGVyQmFyQ29udGFpbmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIpIGFzIEVhc3lGaWx0ZXJCYXJDb250YWluZXI7XG5cdFx0Y29uc3QgcG9wb3ZlciA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwicG9wb3ZlclwiKSBhcyBQb3BvdmVyO1xuXHRcdGlmICghdGhpcy50aW1lKSB7XG5cdFx0XHR0aGlzLnRpbWUgPSBuZXcgVGltZUZhY3RvcnkoXG5cdFx0XHRcdGVhc3lGaWx0ZXJCYXJDb250YWluZXIgYXMgRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlckJhckNvbnRhaW5lcj4sXG5cdFx0XHRcdHRoaXMgYXMgRWFzeUZpbHRlclRva2VuIGFzIEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJUb2tlbj5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHRoaXMuaW5uZXJDb250cm9sID0gdGhpcy50aW1lLmdldENvbnRyb2woKTtcblx0XHR0aGlzLmFkZERlcGVuZGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBVSTVFbGVtZW50KTtcblx0XHRwb3BvdmVyPy5yZW1vdmVBbGxDb250ZW50KCk7XG5cdFx0cG9wb3Zlcj8uYWRkQ29udGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBDb250cm9sKTtcblx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyPy5nZXRTaG93QWxsQnV0dG9uKCk/LnNldFZpc2libGUodHJ1ZSk7XG5cdFx0dGhpcy5vcGVuUG9wb3ZlcigpO1xuXHR9XG5cblx0aW52b2tlVmFsdWVIZWxwUHJldmlldygpOiB2b2lkIHtcblx0XHRjb25zdCBlYXN5RmlsdGVyQmFyQ29udGFpbmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJlYXN5RmlsdGVyQmFyQ29udGFpbmVyXCIpIGFzIEVhc3lGaWx0ZXJCYXJDb250YWluZXI7XG5cdFx0Y29uc3QgcG9wb3ZlciA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwicG9wb3ZlclwiKSBhcyBQb3BvdmVyO1xuXHRcdGlmICghdGhpcy52YWx1ZUhlbHBQcmV2aWV3KSB7XG5cdFx0XHR0aGlzLnZhbHVlSGVscFByZXZpZXcgPSBuZXcgVmFsdWVIZWxwUHJldmlld0ZhY3RvcnkoXG5cdFx0XHRcdGVhc3lGaWx0ZXJCYXJDb250YWluZXIgYXMgRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlckJhckNvbnRhaW5lcj4sXG5cdFx0XHRcdHRoaXMgYXMgRWFzeUZpbHRlclRva2VuIGFzIEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJUb2tlbj5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdGNvbnN0IHsgdHlwZSwgZGF0YVR5cGUgfSA9IGVhc3lGaWx0ZXJCYXJDb250YWluZXIuZmlsdGVyQmFyTWV0YWRhdGE/LmZpbmQoXG5cdFx0XHQoZGF0YSkgPT4gZGF0YS5uYW1lID09PSB0aGlzLmdldEtleSgpXG5cdFx0KSBhcyBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YTtcblxuXHRcdGlmICh0eXBlID09PSBcIlZhbHVlSGVscFwiKSB7XG5cdFx0XHR0aGlzLnZhbHVlSGVscFByZXZpZXcuc2V0SXRlbXModGhpcy5pdGVtcyBhcyBWYWx1ZUhlbHBTZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSwgdHlwZSwgZGF0YVR5cGUgPT09IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnZhbHVlSGVscFByZXZpZXcuc2V0SXRlbXModGhpcy5pdGVtcyBhcyBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdLCB0eXBlLCBkYXRhVHlwZSA9PT0gXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIik7XG5cdFx0fVxuXHRcdHRoaXMuaW5uZXJDb250cm9sID0gdGhpcy52YWx1ZUhlbHBQcmV2aWV3LmdldENvbnRyb2woKTtcblx0XHR0aGlzLmFkZERlcGVuZGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBVSTVFbGVtZW50KTtcblx0XHRwb3BvdmVyPy5yZW1vdmVBbGxDb250ZW50KCk7XG5cdFx0cG9wb3Zlcj8uYWRkQ29udGVudCh0aGlzLmlubmVyQ29udHJvbCBhcyBDb250cm9sKTtcblx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyPy5nZXRTaG93QWxsQnV0dG9uKCk/LnNldFZpc2libGUodHJ1ZSk7XG5cdFx0dGhpcy5vcGVuUG9wb3ZlcigpO1xuXHR9XG5cblx0b3BlblBvcG92ZXIoKTogdm9pZCB7XG5cdFx0Y29uc3Qgb1BvcG92ZXIgPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcInBvcG92ZXJcIikgYXMgUG9wb3Zlcjtcblx0XHRvUG9wb3Zlcj8uc2V0VGl0bGUodGhpcy5sYWJlbCk7XG5cdFx0b1BvcG92ZXI/Lm9wZW5CeSh0aGlzKTtcblx0fVxuXG5cdGhhbmRsZU9rQ2xpY2soKTogdm9pZCB7XG5cdFx0Ly8gVGhlIGJlbG93IGV2ZW50IGhhbmRsZXIgd291bGQgYmUgaW52b2tlZCBvbiBhbGwgdGhlIHRva2VucyB3aGVuIE9LIGJ1dHRvbiBpcyBjbGlja2VkIG9uIHRoZSBwb3BvdmVyXG5cdFx0Ly9Xcml0aW5nIHRoZSBiZWxvdyBjaGVjayBzbyB0aGF0IHdlIGtub3cgdGhhdCB0aGUgY3VycmVudCB0b2tlbiBpbnN0YW5jZSBpcyBoYW5kbGluZyB0aGUgcHJlc3MgZXZlbnRzIGFwcHJvcHJpYXRlbHlcblx0XHRpZiAoIXRoaXMuaW5uZXJDb250cm9sPy5nZXREb21SZWYoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB7IHR5cGUsIGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgfSA9IHRoaXMuZ2V0Q3VzdG9tRGF0YVZhbHVlKFwiVG9rZW5JbmZvXCIpIGFzIFRva2VuRGVmaW5pdGlvbjtcblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cblx0XHRsZXQgb2tCdXR0b25IYW5kbGVyOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHR5cGUgPT09IFwiQ2FsZW5kYXJcIiAmJiB0aGlzLnNob3VsZE9wZW5EZWZhdWx0RnJhZ21lbnQoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcykpIHtcblx0XHRcdG9rQnV0dG9uSGFuZGxlciA9IHRoaXMuY2FsZW5kZXI/Lmludm9rZU9rQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMuY2FsZW5kZXIpO1xuXHRcdH0gZWxzZSBpZiAodHlwZSA9PT0gXCJUaW1lXCIgJiYgdGhpcy5zaG91bGRPcGVuRGVmYXVsdEZyYWdtZW50KGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMpKSB7XG5cdFx0XHRva0J1dHRvbkhhbmRsZXIgPSB0aGlzLnRpbWU/Lmludm9rZU9rQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMudGltZSk7XG5cdFx0fSBlbHNlIGlmICh0eXBlID09PSBcIk1lbnVXaXRoQ2hlY2tCb3hcIikge1xuXHRcdFx0b2tCdXR0b25IYW5kbGVyID0gdGhpcy5tZW51V2l0aENoZWNrQm94Py5pbnZva2VPa0J1dHRvbkhhbmRsZXIuYmluZCh0aGlzLm1lbnVXaXRoQ2hlY2tCb3gpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRva0J1dHRvbkhhbmRsZXIgPSB0aGlzLnZhbHVlSGVscFByZXZpZXc/Lmludm9rZU9rQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMudmFsdWVIZWxwUHJldmlldyk7XG5cdFx0fVxuXG5cdFx0aWYgKG9rQnV0dG9uSGFuZGxlcikge1xuXHRcdFx0b2tCdXR0b25IYW5kbGVyKCk7XG5cdFx0fVxuXHRcdHBvcG92ZXI/LmNsb3NlKCk7XG5cdH1cblxuXHRoYW5kbGVTaG93QWxsQ2xpY2soKTogdm9pZCB7XG5cdFx0Ly8gVGhlIGJlbG93IGV2ZW50IGhhbmRsZXIgd291bGQgYmUgaW52b2tlZCBvbiBhbGwgdGhlIHRva2VucyB3aGVuIE9LIGJ1dHRvbiBpcyBjbGlja2VkIG9uIHRoZSBwb3BvdmVyXG5cdFx0Ly9Xcml0aW5nIHRoZSBiZWxvdyBjaGVjayBzbyB0aGF0IHdlIGtub3cgdGhhdCB0aGUgY3VycmVudCB0b2tlbiBpbnN0YW5jZSBpcyBoYW5kbGluZyB0aGUgcHJlc3MgZXZlbnRzIGFwcHJvcHJpYXRlbHlcblx0XHRpZiAoIXRoaXMuaW5uZXJDb250cm9sPy5nZXREb21SZWYoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cdFx0Y29uc3QgeyB0eXBlLCBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzIH0gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKSBhcyBUb2tlbkRlZmluaXRpb247XG5cdFx0cG9wb3Zlci5jbG9zZSgpO1xuXHRcdGxldCB2YWx1ZUhlbHBIYW5kbGVyOiAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHR5cGUgPT09IFwiQ2FsZW5kYXJcIiAmJiB0aGlzLnNob3VsZE9wZW5EZWZhdWx0RnJhZ21lbnQoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcykpIHtcblx0XHRcdHZhbHVlSGVscEhhbmRsZXIgPSB0aGlzLmNhbGVuZGVyPy5pbnZva2VTaG93QWxsQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMuY2FsZW5kZXIpO1xuXHRcdH0gZWxzZSBpZiAodHlwZSA9PT0gXCJUaW1lXCIgJiYgdGhpcy5zaG91bGRPcGVuRGVmYXVsdEZyYWdtZW50KGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMpKSB7XG5cdFx0XHR2YWx1ZUhlbHBIYW5kbGVyID0gdGhpcy50aW1lPy5pbnZva2VTaG93QWxsQnV0dG9uSGFuZGxlci5iaW5kKHRoaXMudGltZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZhbHVlSGVscEhhbmRsZXIgPSB0aGlzLnZhbHVlSGVscFByZXZpZXc/Lmludm9rZVNob3dBbGxCdXR0b25IYW5kbGVyLmJpbmQodGhpcy52YWx1ZUhlbHBQcmV2aWV3KTtcblx0XHR9XG5cdFx0aWYgKHZhbHVlSGVscEhhbmRsZXIpIHtcblx0XHRcdCgoKTogdm9pZCA9PiB7XG5cdFx0XHRcdHZhbHVlSGVscEhhbmRsZXIoKTtcblx0XHRcdH0pKCk7XG5cdFx0fVxuXHR9XG5cblx0aGFuZGxlQXR0YWNoQWZ0ZXJDbG9zZSgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuaW5uZXJDb250cm9sPy5nZXREb21SZWYoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB0b2tlbkluZm8gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKSBhcyBUb2tlbkRlZmluaXRpb24gfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHRva2VuSW5mbykge1xuXHRcdFx0Y29uc3QgeyB0eXBlLCBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzIH0gPSB0aGlzLmdldEN1c3RvbURhdGFWYWx1ZShcIlRva2VuSW5mb1wiKSBhcyBUb2tlbkRlZmluaXRpb247XG5cdFx0XHRpZiAoXG5cdFx0XHRcdHR5cGUgPT09IFwiVmFsdWVIZWxwXCIgfHxcblx0XHRcdFx0KCh0eXBlID09PSBcIkNhbGVuZGFyXCIgfHwgdHlwZSA9PT0gXCJUaW1lXCIpICYmICF0aGlzLnNob3VsZE9wZW5EZWZhdWx0RnJhZ21lbnQoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcykpXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhpcy52YWx1ZUhlbHBQcmV2aWV3Py5pbnZva2VQb3B1cENsb3NlSGFuZGxlcigpO1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlID09PSBcIk1lbnVXaXRoQ2hlY2tCb3hcIikge1xuXHRcdFx0XHR0aGlzLm1lbnVXaXRoQ2hlY2tCb3g/Lmludm9rZVBvcHVwQ2xvc2VIYW5kbGVyKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Z2V0SW5uZXJDb250cm9sKCk6IENhbGVuZGFyIHwgVGltZVBpY2tlckNsb2NrcyB8IExpc3QgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmlubmVyQ29udHJvbDtcblx0fVxuXG5cdG9wZW5WYWx1ZVN0YXRlTWVzc2FnZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlU3RhdGVNZXNzYWdlPy5vcGVuKCk7XG5cdH1cblxuXHRjbG9zZVZhbHVlU3RhdGVNZXNzYWdlKCk6IHZvaWQge1xuXHRcdHRoaXMudmFsdWVTdGF0ZU1lc3NhZ2U/LmNsb3NlKCk7XG5cdH1cblxuXHRzaG91bGRPcGVuRGVmYXVsdEZyYWdtZW50KGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXM6IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10pOiBib29sZWFuIHtcblx0XHQvL0JldHdlZW4gYW5kIE5vdEJldHdlZW4gY2FudCBiZSBoYW5kbGVkIGJ5IGRlZmF1bHQgZnJhZ21lbnRzXG5cdFx0Y29uc3QgaXNCZXR3ZWVuT3BlcmF0b3IgPSBrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzLmZpbmQoXG5cdFx0XHQoc2VsZWN0ZWRWYWx1ZXMpID0+IHNlbGVjdGVkVmFsdWVzLm9wZXJhdG9yID09PSBGaWx0ZXJPcGVyYXRvci5CVCB8fCBzZWxlY3RlZFZhbHVlcy5vcGVyYXRvciA9PT0gRmlsdGVyT3BlcmF0b3IuTkJcblx0XHQpO1xuXHRcdC8vVGhpcyBmaXJzdCBjb25kaXRpb24gd291bGQgYmUgdXNlZnVsIGluIG1hbmRhdG9yeSB0b2tlbiBzY2VuYXJpbyBhbmQgbm8gdmFsdWUgaGFzIGJlZW4gc2V0IHRvIGl0XG5cdFx0cmV0dXJuIChcblx0XHRcdGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAwIHx8XG5cdFx0XHQoa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDEgJiYga2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlc1swXS5zZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDEgJiYgIWlzQmV0d2Vlbk9wZXJhdG9yKVxuXHRcdCk7XG5cdH1cblxuXHRmb2N1c291dCgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlU3RhdGVNZXNzYWdlPy5jbG9zZSgpO1xuXHR9XG5cblx0c3RhdGljIHJlbmRlcihybTogUmVuZGVyTWFuYWdlciwgY29udHJvbDogRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlclRva2VuPik6IHZvaWQge1xuXHRcdHJldHVybiBqc3gucmVuZGVyVXNpbmdSZW5kZXJNYW5hZ2VyKHJtLCBjb250cm9sLCAoKSA9PiB7XG5cdFx0XHRjb25zdCB0b2tlbml6ZXIgPSBjb250cm9sLmdldFBhcmVudCgpIGFzIEVuaGFuY2VXaXRoVUk1PFRva2VuaXplcj47XG5cdFx0XHRjb25zdCBjbGFzc2VzID0gW1wic2FwTVRva2VuXCIsIFwic2FwRmVDb250cm9sc1Rva2VuXCJdO1xuXHRcdFx0Y29uc3QgY2xhc3Nlc0ZvckxhYmVsID0gW1wic2FwTVRva2VuVGV4dFwiLCBcInNhcEZlQ29udHJvbHNUb2tlblByb3BlcnR5TmFtZVwiXTtcblx0XHRcdGNvbnN0IGNsYXNzZXNGb3JWYWx1ZSA9IFtcInNhcE1Ub2tlblRleHRcIiwgXCJzYXBGZUNvbnRyb2xzVG9rZW5Qcm9wZXJ0eVZhbHVlc1wiXTtcblx0XHRcdGNvbnN0IGlzTWFuZGF0b3J5ID0gY29udHJvbC5nZXRNYW5kYXRvcnkoKTtcblx0XHRcdGlmICh0eXBlb2YgdG9rZW5pemVyPy5nZXRFZGl0YWJsZSA9PT0gXCJmdW5jdGlvblwiICYmIHRva2VuaXplcj8uZ2V0RWRpdGFibGUoKSkge1xuXHRcdFx0XHRjbGFzc2VzLnB1c2goXCJzYXBGRUNvbnRyb2xzUG9pbnRlclwiKTtcblx0XHRcdH1cblx0XHRcdGlmIChjb250cm9sLmdldFNlbGVjdGVkKCkpIHtcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKFwic2FwTVRva2VuU2VsZWN0ZWRcIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAoaXNNYW5kYXRvcnkgPz8gZmFsc2UpIHtcblx0XHRcdFx0Y2xhc3Nlcy5wdXNoKFwic2FwRmVDb250cm9sc1Rva2VuTWFuZGF0b3J5XCIpO1xuXHRcdFx0XHRpZiAoY29udHJvbC5nZXRWYWx1ZSgpID09PSBjb250cm9sLnJlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX01BTkRBVE9SWV9UT0tFTl9TRUxFQ1RfVkFMVUVcIikpIHtcblx0XHRcdFx0XHRjbGFzc2VzRm9yVmFsdWUucHVzaChcInNhcEZlQ29udHJvbHNUb2tlbk1hbmRhdG9yeVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGNvbnRyb2wuZ2V0VmFsdWVTdGF0ZSgpID09PSBWYWx1ZVN0YXRlLkVycm9yKSB7XG5cdFx0XHRcdGNsYXNzZXMucHVzaChcInNhcEZlVG9rZW5FcnJvclwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRyZWY9e2NvbnRyb2x9XG5cdFx0XHRcdFx0Y2xhc3M9e2NsYXNzZXMuam9pbihcIiBcIil9XG5cdFx0XHRcdFx0YXJpYS1zZWxlY3RlZD17Y29udHJvbC5nZXRTZWxlY3RlZCgpfVxuXHRcdFx0XHRcdHRhYmluZGV4PXstMX1cblx0XHRcdFx0XHRhcmlhLXBvc2luc2V0PXtjb250cm9sLmdldFByb3BlcnR5KFwicG9zaW5zZXRcIil9XG5cdFx0XHRcdFx0YXJpYS1zZXRzaXplPXtjb250cm9sLmdldFByb3BlcnR5KFwic2V0c2l6ZVwiKX1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPXtjbGFzc2VzRm9yTGFiZWwuam9pbihcIiBcIil9Pntjb250cm9sLmdldExhYmVsKCl9Ojwvc3Bhbj5cblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz17Y2xhc3Nlc0ZvclZhbHVlLmpvaW4oXCIgXCIpfT57Y29udHJvbC5nZXRWYWx1ZSgpfTwvc3Bhbj5cblx0XHRcdFx0XHR7aXNNYW5kYXRvcnkgPT09IHRydWUgPyBudWxsIDogY29udHJvbC5nZXRBZ2dyZWdhdGlvbihcImRlbGV0ZUljb25cIil9XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0KTtcblx0XHR9KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztNQXdDcUJBLGVBQWUsSUFBQUMsSUFBQSxHQURuQ0MsY0FBYyxDQUFDLGtDQUFrQyxDQUFDLEVBQUFDLEtBQUEsR0FFakRDLFFBQVEsQ0FBQztJQUFFQyxJQUFJ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
@@ -276,12 +276,6 @@ export default class EasyFilterToken extends Token {
276
276
  }
277
277
 
278
278
  private handleMultipleSelectedValues(totalSelectedValues: number): void {
279
- const tokenInfo = this.getCustomDataValue("TokenInfo") as TokenDefinition | undefined;
280
-
281
- if (tokenInfo?.type === "ValueHelp" && totalSelectedValues > 5) {
282
- totalSelectedValues = 5;
283
- }
284
-
285
279
  this.setProperty("value", this.resourceBundle.getText("M_EASY_FILTER_MANDATORY_TOKEN_ITEMS", [totalSelectedValues]), true);
286
280
  }
287
281
 
@@ -30,31 +30,23 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepClone", "sap/fe/controls/easyF
30
30
  this.items = items;
31
31
  const list = this.getControl();
32
32
  list?.destroyAggregation("items");
33
- //Make sure only top 5 values are shown
34
- let ctr = 0;
35
33
  items.forEach((item, index1) => {
36
34
  const {
37
35
  operator,
38
36
  selectedValues
39
37
  } = item;
40
38
  let title = "";
41
- //Currently hardCoding the most number of values that can be shown is 5
42
- //ValueHelp will have non-fixed values, so its important to limit the number of values to be shown
43
- if (tokenType === "ValueHelp" && ctr < 5) {
39
+ if (tokenType === "ValueHelp") {
44
40
  if (Utils.isBetweenSelectedValues(operator)) {
45
41
  title = Utils.mapOperatorForBetweenOperator(operator, selectedValues, tokenType, isDateTimeOffset);
46
42
  this.insertItem(list, title, [index1]);
47
- ++ctr;
48
43
  } else {
49
44
  selectedValues.forEach((selectedValue, index2) => {
50
- if (ctr < 5) {
51
- title = Utils.mapOperatorForValueHelp(operator, selectedValue, tokenType, isDateTimeOffset);
52
- this.insertItem(list, title, [index1, index2]);
53
- ++ctr;
54
- }
45
+ title = Utils.mapOperatorForValueHelp(operator, selectedValue, tokenType, isDateTimeOffset);
46
+ this.insertItem(list, title, [index1, index2]);
55
47
  });
56
48
  }
57
- } else if (tokenType !== "ValueHelp") {
49
+ } else {
58
50
  if (Utils.isBetweenSelectedValues(operator)) {
59
51
  title = Utils.mapOperatorForBetweenOperator(operator, selectedValues, tokenType, isDateTimeOffset);
60
52
  //In this case, we don't need t to store index2, because we know that LLM or VHD always gives you only 2 values in return
@@ -179,4 +171,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepClone", "sap/fe/controls/easyF
179
171
  }(BaseFactory);
180
172
  return ValueHelpPreviewFactory;
181
173
  }, false);
182
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWYWx1ZUhlbHBQcmV2aWV3RmFjdG9yeSIsIl9CYXNlRmFjdG9yeSIsIkVGQiIsInRva2VuIiwiX3RoaXMiLCJjYWxsIiwic2V0Q29udHJvbCIsIkxpc3QiLCJkZWxldGUiLCJvbkRlbGV0ZSIsImJpbmQiLCJtb2RlIiwiTGlzdE1vZGUiLCJEZWxldGUiLCJzaG93U2VwYXJhdG9ycyIsIkxpc3RTZXBhcmF0b3JzIiwiTm9uZSIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwic2V0SXRlbXMiLCJpdGVtcyIsInRva2VuVHlwZSIsImlzRGF0ZVRpbWVPZmZzZXQiLCJVdGlscyIsImFyZUl0ZW1zU2FtZSIsImxpc3QiLCJnZXRDb250cm9sIiwiZGVzdHJveUFnZ3JlZ2F0aW9uIiwiY3RyIiwiZm9yRWFjaCIsIml0ZW0iLCJpbmRleDEiLCJvcGVyYXRvciIsInNlbGVjdGVkVmFsdWVzIiwidGl0bGUiLCJpc0JldHdlZW5TZWxlY3RlZFZhbHVlcyIsIm1hcE9wZXJhdG9yRm9yQmV0d2Vlbk9wZXJhdG9yIiwiaW5zZXJ0SXRlbSIsInNlbGVjdGVkVmFsdWUiLCJpbmRleDIiLCJtYXBPcGVyYXRvckZvclZhbHVlSGVscCIsIm1hcE9wZXJhdG9yIiwiaW5kZXhQb3NpdGlvbnMiLCJhZGRJdGVtIiwiU3RhbmRhcmRMaXN0SXRlbSIsImN1c3RvbURhdGEiLCJDdXN0b21EYXRhIiwia2V5IiwidmFsdWUiLCJldmVudCIsInBvcG92ZXIiLCJnZXRUb2tlbiIsImdldEN1c3RvbURhdGFWYWx1ZSIsImdldFBhcmFtZXRlciIsInNldFZpc2libGUiLCJmb2N1cyIsIm5vcm1hbGl6ZVN0cmluZyIsInN0ciIsInJlZ2V4IiwicmVwbGFjZSIsImludm9rZU9rQnV0dG9uSGFuZGxlciIsImVhc3lGaWx0ZXJCYXJDb250YWluZXIiLCJnZXRFYXN5RmlsdGVyIiwiZ2V0SXRlbXMiLCJtYXAiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJkZWVwQ2xvbmUiLCJpbmRpY2VzVG9CZVJlbW92ZWQiLCJsaXN0SXRlbSIsImdldFZpc2libGUiLCJJbmZpbml0eSIsImdldEN1c3RvbURhdGEiLCJmaW5kIiwiZGF0YSIsImdldEtleSIsImdldFZhbHVlIiwicHVzaCIsInNvcnQiLCJhIiwiYiIsIl9yZWYiLCJvYmpJbmRleCIsInZhbHVlSW5kZXgiLCJzcGxpY2UiLCJsZW5ndGgiLCJ1cGRhdGVUb2tlbkFycmF5IiwiY2xvc2UiLCJpbnZva2VTaG93QWxsQnV0dG9uSGFuZGxlciIsInR5cGUiLCJ2YWx1ZUhlbHBQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaXJlRXZlbnQiLCJ2YWx1ZXMiLCJuZXdTZWxlY3RlZFZhbHVlcyIsImVycm9yIiwiRXJyb3IiLCJMb2ciLCJtZXNzYWdlIiwiU3RyaW5nIiwiaW52b2tlUG9wdXBDbG9zZUhhbmRsZXIiLCJCYXNlRmFjdG9yeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVmFsdWVIZWxwUHJldmlld0ZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgZGVlcENsb25lIGZyb20gXCJzYXAvYmFzZS91dGlsL2RlZXBDbG9uZVwiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IEJhc2VGYWN0b3J5IH0gZnJvbSBcInNhcC9mZS9jb250cm9scy9lYXN5RmlsdGVyL2lubmVyQ29udHJvbHMvQmFzZUZhY3RvcnlcIjtcbmltcG9ydCBVdGlscyBmcm9tIFwic2FwL2ZlL2NvbnRyb2xzL2Vhc3lGaWx0ZXIvdXRpbHNcIjtcbmltcG9ydCBMaXN0IGZyb20gXCJzYXAvbS9MaXN0XCI7XG5pbXBvcnQgdHlwZSB7IExpc3RCYXNlJERlbGV0ZUV2ZW50IH0gZnJvbSBcInNhcC9tL0xpc3RCYXNlXCI7XG5pbXBvcnQgdHlwZSBQb3BvdmVyIGZyb20gXCJzYXAvbS9Qb3BvdmVyXCI7XG5pbXBvcnQgU3RhbmRhcmRMaXN0SXRlbSBmcm9tIFwic2FwL20vU3RhbmRhcmRMaXN0SXRlbVwiO1xuaW1wb3J0IHsgTGlzdE1vZGUsIExpc3RTZXBhcmF0b3JzIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgdHlwZSBFYXN5RmlsdGVyQmFyQ29udGFpbmVyIGZyb20gXCIuLi9FYXN5RmlsdGVyQmFyQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7XG5cdEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0Q29kZUxpc3RUeXBlLFxuXHRUb2tlbkRlZmluaXRpb24sXG5cdFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uLFxuXHRUb2tlblR5cGUsXG5cdFZhbHVlSGVscEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0VmFsdWVIZWxwU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uXG59IGZyb20gXCIuLi9FYXN5RmlsdGVyQmFyQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBFYXN5RmlsdGVyVG9rZW4gZnJvbSBcIi4uL1Rva2VuXCI7XG5cbmNsYXNzIFZhbHVlSGVscFByZXZpZXdGYWN0b3J5IGV4dGVuZHMgQmFzZUZhY3Rvcnk8TGlzdD4ge1xuXHRjb25zdHJ1Y3RvcihFRkI6IEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJCYXJDb250YWluZXI+LCB0b2tlbjogRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlclRva2VuPikge1xuXHRcdHN1cGVyKEVGQiwgdG9rZW4pO1xuXHRcdHRoaXMuc2V0Q29udHJvbChcblx0XHRcdG5ldyBMaXN0KHtcblx0XHRcdFx0ZGVsZXRlOiB0aGlzLm9uRGVsZXRlLmJpbmQodGhpcyksXG5cdFx0XHRcdG1vZGU6IExpc3RNb2RlLkRlbGV0ZSxcblx0XHRcdFx0c2hvd1NlcGFyYXRvcnM6IExpc3RTZXBhcmF0b3JzLk5vbmVcblx0XHRcdH0pXG5cdFx0KTtcblx0fVxuXG5cdHNldEl0ZW1zKFxuXHRcdGl0ZW1zOiBWYWx1ZUhlbHBTZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSB8IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10sXG5cdFx0dG9rZW5UeXBlOiBUb2tlblR5cGUsXG5cdFx0aXNEYXRlVGltZU9mZnNldDogYm9vbGVhblxuXHQpOiB2b2lkIHtcblx0XHRpZiAoVXRpbHMuYXJlSXRlbXNTYW1lKGl0ZW1zLCB0aGlzLml0ZW1zIGFzIFZhbHVlSGVscFNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLml0ZW1zID0gaXRlbXM7XG5cdFx0Y29uc3QgbGlzdCA9IHRoaXMuZ2V0Q29udHJvbCgpO1xuXHRcdGxpc3Q/LmRlc3Ryb3lBZ2dyZWdhdGlvbihcIml0ZW1zXCIpO1xuXHRcdC8vTWFrZSBzdXJlIG9ubHkgdG9wIDUgdmFsdWVzIGFyZSBzaG93blxuXHRcdGxldCBjdHIgPSAwO1xuXHRcdGl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4MSkgPT4ge1xuXHRcdFx0Y29uc3QgeyBvcGVyYXRvciwgc2VsZWN0ZWRWYWx1ZXMgfSA9IGl0ZW07XG5cdFx0XHRsZXQgdGl0bGUgPSBcIlwiO1xuXHRcdFx0Ly9DdXJyZW50bHkgaGFyZENvZGluZyB0aGUgbW9zdCBudW1iZXIgb2YgdmFsdWVzIHRoYXQgY2FuIGJlIHNob3duIGlzIDVcblx0XHRcdC8vVmFsdWVIZWxwIHdpbGwgaGF2ZSBub24tZml4ZWQgdmFsdWVzLCBzbyBpdHMgaW1wb3J0YW50IHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgdmFsdWVzIHRvIGJlIHNob3duXG5cdFx0XHRpZiAodG9rZW5UeXBlID09PSBcIlZhbHVlSGVscFwiICYmIGN0ciA8IDUpIHtcblx0XHRcdFx0aWYgKFV0aWxzLmlzQmV0d2VlblNlbGVjdGVkVmFsdWVzKG9wZXJhdG9yKSkge1xuXHRcdFx0XHRcdHRpdGxlID0gVXRpbHMubWFwT3BlcmF0b3JGb3JCZXR3ZWVuT3BlcmF0b3IoXG5cdFx0XHRcdFx0XHRvcGVyYXRvcixcblx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzIGFzIFZhbHVlSGVscEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0XHRcdFx0XHRcdHRva2VuVHlwZSxcblx0XHRcdFx0XHRcdGlzRGF0ZVRpbWVPZmZzZXRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHRoaXMuaW5zZXJ0SXRlbShsaXN0IGFzIExpc3QsIHRpdGxlLCBbaW5kZXgxXSk7XG5cdFx0XHRcdFx0KytjdHI7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXMuZm9yRWFjaCgoc2VsZWN0ZWRWYWx1ZSwgaW5kZXgyKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoY3RyIDwgNSkge1xuXHRcdFx0XHRcdFx0XHR0aXRsZSA9IFV0aWxzLm1hcE9wZXJhdG9yRm9yVmFsdWVIZWxwKG9wZXJhdG9yLCBzZWxlY3RlZFZhbHVlIGFzIENvZGVMaXN0VHlwZSwgdG9rZW5UeXBlLCBpc0RhdGVUaW1lT2Zmc2V0KTtcblx0XHRcdFx0XHRcdFx0dGhpcy5pbnNlcnRJdGVtKGxpc3QgYXMgTGlzdCwgdGl0bGUsIFtpbmRleDEsIGluZGV4Ml0pO1xuXHRcdFx0XHRcdFx0XHQrK2N0cjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmICh0b2tlblR5cGUgIT09IFwiVmFsdWVIZWxwXCIpIHtcblx0XHRcdFx0aWYgKFV0aWxzLmlzQmV0d2VlblNlbGVjdGVkVmFsdWVzKG9wZXJhdG9yKSkge1xuXHRcdFx0XHRcdHRpdGxlID0gVXRpbHMubWFwT3BlcmF0b3JGb3JCZXR3ZWVuT3BlcmF0b3IoXG5cdFx0XHRcdFx0XHRvcGVyYXRvcixcblx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzIGFzIEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0XHRcdFx0XHRcdHRva2VuVHlwZSxcblx0XHRcdFx0XHRcdGlzRGF0ZVRpbWVPZmZzZXRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdC8vSW4gdGhpcyBjYXNlLCB3ZSBkb24ndCBuZWVkIHQgdG8gc3RvcmUgaW5kZXgyLCBiZWNhdXNlIHdlIGtub3cgdGhhdCBMTE0gb3IgVkhEIGFsd2F5cyBnaXZlcyB5b3Ugb25seSAyIHZhbHVlcyBpbiByZXR1cm5cblx0XHRcdFx0XHR0aGlzLmluc2VydEl0ZW0obGlzdCBhcyBMaXN0LCB0aXRsZSwgW2luZGV4MV0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzLmZvckVhY2goKHNlbGVjdGVkVmFsdWUsIGluZGV4MikgPT4ge1xuXHRcdFx0XHRcdFx0dGl0bGUgPSBVdGlscy5tYXBPcGVyYXRvcihvcGVyYXRvciwgc2VsZWN0ZWRWYWx1ZSBhcyBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgRGF0ZSwgdG9rZW5UeXBlLCBpc0RhdGVUaW1lT2Zmc2V0KTtcblx0XHRcdFx0XHRcdC8vV2UgbmVlZCB0byBzdG9yZSBpbmRleDIgdG8gZmluZCBvdXQgd2hpY2ggaXRlbSBoYXMgYmVlbiByZW1vdmVkIGluc2lkZSB0aGUgYXJyYXlcblx0XHRcdFx0XHRcdHRoaXMuaW5zZXJ0SXRlbShsaXN0IGFzIExpc3QsIHRpdGxlLCBbaW5kZXgxLCBpbmRleDJdKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0aW5zZXJ0SXRlbShsaXN0OiBMaXN0LCB0aXRsZTogc3RyaW5nLCBpbmRleFBvc2l0aW9uczogbnVtYmVyW10pOiB2b2lkIHtcblx0XHRsaXN0Py5hZGRJdGVtKFxuXHRcdFx0bmV3IFN0YW5kYXJkTGlzdEl0ZW0oe1xuXHRcdFx0XHR0aXRsZSxcblx0XHRcdFx0Y3VzdG9tRGF0YTogbmV3IEN1c3RvbURhdGEoe1xuXHRcdFx0XHRcdGtleTogXCJhcnJheUluZGV4XCIsXG5cdFx0XHRcdFx0dmFsdWU6IGluZGV4UG9zaXRpb25zXG5cdFx0XHRcdH0pXG5cdFx0XHR9KVxuXHRcdCk7XG5cdH1cblxuXHRvbkRlbGV0ZShldmVudDogTGlzdEJhc2UkRGVsZXRlRXZlbnQpOiB2b2lkIHtcblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRUb2tlbigpPy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cdFx0ZXZlbnQuZ2V0UGFyYW1ldGVyKFwibGlzdEl0ZW1cIik/LnNldFZpc2libGUoZmFsc2UpO1xuXHRcdHBvcG92ZXIuZm9jdXMoKTtcblx0fVxuXG5cdG5vcm1hbGl6ZVN0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Y29uc3QgcmVnZXggPSAvXig+PXw8PXwhPXw+fDwpKy87XG5cdFx0cmV0dXJuIHN0ci5yZXBsYWNlKHJlZ2V4LCBcIlwiKTtcblx0fVxuXG5cdGludm9rZU9rQnV0dG9uSGFuZGxlcigpOiB2b2lkIHtcblx0XHRjb25zdCBwb3BvdmVyID0gdGhpcy5nZXRUb2tlbigpPy5nZXRDdXN0b21EYXRhVmFsdWUoXCJwb3BvdmVyXCIpIGFzIFBvcG92ZXI7XG5cdFx0Y29uc3QgdG9rZW4gPSB0aGlzLmdldFRva2VuKCk7XG5cdFx0Y29uc3QgZWFzeUZpbHRlckJhckNvbnRhaW5lciA9IHRoaXMuZ2V0RWFzeUZpbHRlcigpIGFzIEVhc3lGaWx0ZXJCYXJDb250YWluZXI7XG5cdFx0Y29uc3QgaXRlbXMgPSB0b2tlbj8uZ2V0SXRlbXMoKT8ubWFwKChpdGVtKSA9PiAoe1xuXHRcdFx0b3BlcmF0b3I6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbS5vcGVyYXRvcikpLCAvLyBEZWVwIGNvcHkgb2Ygb3BlcmF0b3Jcblx0XHRcdHNlbGVjdGVkVmFsdWVzOiBkZWVwQ2xvbmUoaXRlbS5zZWxlY3RlZFZhbHVlcykgLy8gRGVlcCBjb3B5IG9mIHNlbGVjdGVkVmFsdWVzLCBpZiBpdHMgYSBjb21wbGV4IG9iamVjdFxuXHRcdH0pKTtcblx0XHRjb25zdCBpbmRpY2VzVG9CZVJlbW92ZWQ6IG51bWJlcltdW10gPSBbXTtcblx0XHR0aGlzLmdldENvbnRyb2woKVxuXHRcdFx0Py5nZXRJdGVtcygpXG5cdFx0XHQuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcblx0XHRcdFx0Ly9JZiB0aGUgaXRlbSBpcyBoaWRkZW4gdGhhdCBtZWFucyBpdCBzaG91bGQgYmUgcmVtb3ZlZCBjb21wbGV0ZWx5XG5cdFx0XHRcdGlmICghbGlzdEl0ZW0uZ2V0VmlzaWJsZSgpKSB7XG5cdFx0XHRcdFx0Y29uc3QgW2luZGV4MSA9IEluZmluaXR5LCBpbmRleDIgPSBJbmZpbml0eV0gPVxuXHRcdFx0XHRcdFx0KGxpc3RJdGVtXG5cdFx0XHRcdFx0XHRcdD8uZ2V0Q3VzdG9tRGF0YSgpXG5cdFx0XHRcdFx0XHRcdD8uZmluZCgoZGF0YSkgPT4gZGF0YT8uZ2V0S2V5KCkgPT09IFwiYXJyYXlJbmRleFwiKVxuXHRcdFx0XHRcdFx0XHQ/LmdldFZhbHVlKCkgYXMgbnVtYmVyW10pID8/IFtdO1xuXHRcdFx0XHRcdGlmIChpbmRleDEgPT09IEluZmluaXR5IHx8ICFpdGVtcykge1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpbmRpY2VzVG9CZVJlbW92ZWQucHVzaChbaW5kZXgxLCBpbmRleDJdKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHQvKlxuXHRcdFdpdGhvdXQgc29ydGluZyBpbiBkZXNjZW5kaW5nIG9yZGVyOlxuXG5cdFx0UmVtb3ZpbmcgYW4gb2JqZWN0IHdvdWxkIHNoaWZ0IGFsbCBzdWJzZXF1ZW50IGluZGljZXMsIHBvdGVudGlhbGx5IGNhdXNpbmcgaW5jb3JyZWN0IHJlbW92YWxzIG9yIHNraXBzLlxuXHRcdFJlbW92aW5nIHZhbHVlcyBmcm9tIHNlbGVjdGVkVmFsdWVzIGNvdWxkIHNoaWZ0IG90aGVyIHZhbHVlcywgcmVzdWx0aW5nIGluIG1pc3NlZCBvciB1bmludGVuZGVkIHJlbW92YWxzLlxuXHRcdFRoaXMgYXBwcm9hY2ggZW5zdXJlcyB0aGF0IGVhY2ggcmVtb3ZhbCBvcGVyYXRlcyBvbiBzdGFibGUsIGNvcnJlY3QgaW5kaWNlcy5cblxuXHRcdFRoaXMgaXMgdGhlIHJlYXNvbiB3aHkgd2UgaGF2ZSBhZGRlZCB2YWx1ZUluZGV4IHRvIGluZmluaXR5XG5cdFx0SW5maW5pdHkgaXMgZ3JlYXRlciB0aGFuIGFueSB2YWxpZCBpbmRleCwgc28gc29ydGluZyBpbiBkZXNjZW5kaW5nIG9yZGVyIHdpbGwgbmF0dXJhbGx5IHBsYWNlIGVudHJpZXMgd2l0aCB2YWx1ZUluZGV4ID0gSW5maW5pdHkgYXQgdGhlIHRvcCBmb3IgZWFjaCBvYmpJbmRleC5cblx0XHRUaGlzIHdheSwgd2UgY2FuIHByb2Nlc3MgdGhlIGNvbXBsZXRlIHJlbW92YWwgb2YgYW4gb2JqZWN0IGJlZm9yZSBoYW5kbGluZyBhbnkgaW5kaXZpZHVhbCBzZWxlY3RlZFZhbHVlcyByZW1vdmFscyB3aXRoaW4gdGhhdCBvYmplY3QsIHByZXZlbnRpbmcgdW53YW50ZWQgc2hpZnRzLlxuXHRcdCAqL1xuXHRcdGluZGljZXNUb0JlUmVtb3ZlZC5zb3J0KChhLCBiKSA9PiBiWzBdIC0gYVswXSB8fCBiWzFdIC0gYVsxXSk7XG5cblx0XHRpbmRpY2VzVG9CZVJlbW92ZWQuZm9yRWFjaCgoW29iakluZGV4LCB2YWx1ZUluZGV4XSkgPT4ge1xuXHRcdFx0aWYgKGl0ZW1zKSB7XG5cdFx0XHRcdC8vSWYgdmFsdWVJbmRleCBpcyBpbmZpbml0eSwgdGhlbiBpdCBtZWFucyBpdCBzaG91bGQgYmUgYSBiZXR3ZWVuIG9wZXJhdG9yIHNjZW5hcmlvLCBzbyByZW1vdmUgdGhlIHRvdGFsIG9iamVjdCBvbmx5XG5cdFx0XHRcdGlmICh2YWx1ZUluZGV4ID09PSBJbmZpbml0eSkge1xuXHRcdFx0XHRcdGl0ZW1zLnNwbGljZShvYmpJbmRleCwgMSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGl0ZW1zW29iakluZGV4XS5zZWxlY3RlZFZhbHVlcy5zcGxpY2UodmFsdWVJbmRleCwgMSk7XG5cdFx0XHRcdC8vIElmIHRoZSB2YWx1ZXMgYXJyYXkgYmVjb21lcyBlbXB0eSwgcmVtb3ZlIHRoZSB3aG9sZSBvYmplY3Rcblx0XHRcdFx0aWYgKGl0ZW1zW29iakluZGV4XS5zZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRpdGVtcy5zcGxpY2Uob2JqSW5kZXgsIDEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZWFzeUZpbHRlckJhckNvbnRhaW5lci51cGRhdGVUb2tlbkFycmF5KFxuXHRcdFx0XCJzZXRTZWxlY3RlZFZhbHVlc1wiLFxuXHRcdFx0aXRlbXMgYXMgVG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSB8IFZhbHVlSGVscFNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdLFxuXHRcdFx0dG9rZW4/LmdldEtleSgpIGFzIHN0cmluZ1xuXHRcdCk7XG5cdFx0cG9wb3Zlci5jbG9zZSgpO1xuXHR9XG5cblx0YXN5bmMgaW52b2tlU2hvd0FsbEJ1dHRvbkhhbmRsZXIoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgdG9rZW4gPSB0aGlzLmdldFRva2VuKCk7XG5cdFx0Y29uc3QgeyB0eXBlIH0gPSB0b2tlbj8uZ2V0Q3VzdG9tRGF0YVZhbHVlKFwiVG9rZW5JbmZvXCIpIGFzIFRva2VuRGVmaW5pdGlvbjtcblx0XHRjb25zdCBrZXkgPSB0b2tlbj8uZ2V0S2V5KCkgYXMgc3RyaW5nO1xuXHRcdGNvbnN0IHZhbHVlSGVscFByb21pc2UgPSBuZXcgUHJvbWlzZTxUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHR0aGlzLmdldEVhc3lGaWx0ZXIoKT8uZmlyZUV2ZW50KFwic2hvd1ZhbHVlSGVscFwiLCB7XG5cdFx0XHRcdGtleSxcblx0XHRcdFx0dmFsdWVzOiB0b2tlbj8uZ2V0SXRlbXMoKT8ubWFwKChpdGVtOiBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbiB8IFZhbHVlSGVscFNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbikgPT4ge1xuXHRcdFx0XHRcdGlmICh0eXBlID09PSBcIlZhbHVlSGVscFwiKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRvcGVyYXRvcjogaXRlbS5vcGVyYXRvcixcblx0XHRcdFx0XHRcdFx0Ly9NYWtpbmcgc3VyZSB0aGF0IG9ubHkgdGhlIGlkIHBhcnQgaXMgcGFzc2VkXG5cdFx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzOiAoaXRlbSBhcyBWYWx1ZUhlbHBTZWxlY3RlZFZhbHVlc0RlZmluaXRpb24pLnNlbGVjdGVkVmFsdWVzLm1hcChcblx0XHRcdFx0XHRcdFx0XHQoc2VsZWN0ZWRWYWx1ZSkgPT4gc2VsZWN0ZWRWYWx1ZS52YWx1ZVxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gaXRlbTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRyZXNvbHZlLFxuXHRcdFx0XHRyZWplY3Rcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IG5ld1NlbGVjdGVkVmFsdWVzID0gYXdhaXQgdmFsdWVIZWxwUHJvbWlzZTtcblx0XHRcdHRoaXMuZ2V0RWFzeUZpbHRlcigpPy51cGRhdGVUb2tlbkFycmF5KFwic2V0U2VsZWN0ZWRWYWx1ZXNcIiwgbmV3U2VsZWN0ZWRWYWx1ZXMsIGtleSk7XG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGZldGNoaW5nIG5ldyB0b2tlbnNcIiwgZXJyb3IubWVzc2FnZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBmZXRjaGluZyBuZXcgdG9rZW5zXCIsIFN0cmluZyhlcnJvcikpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGludm9rZVBvcHVwQ2xvc2VIYW5kbGVyKCk6IHZvaWQge1xuXHRcdC8vV2hhdGV2ZXIgaGFzIGJlZW4gZGVsZXRlZCwgbWFrZSB0aGVtIGFwcGVhciBhZ2FpbiBzbyB0aGF0IHRoZXkgY2FuIGJlIHZpc2libGUgYXMgc29vbiBhcyB5b3UgY2xpY2sgdGhlIHRva2VuIGFnYWluXG5cdFx0dGhpcy5nZXRDb250cm9sKClcblx0XHRcdD8uZ2V0SXRlbXMoKVxuXHRcdFx0LmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uc2V0VmlzaWJsZSh0cnVlKSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmFsdWVIZWxwUHJldmlld0ZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztNQXVCTUEsdUJBQXVCLDBCQUFBQyxZQUFBO0lBQzVCLFNBQUFELHdCQUFZRSxHQUEyQyxFQUFFQyxLQUFzQyxFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUNoR0EsS0FBQSxHQUFBSCxZQUFBLENBQUFJLElBQUEsT0FBTUgsR0FBRyxFQUFFQyxLQUFLLENBQUM7TUFDakJDLEtBQUEsQ0FBS0UsVUFBVSxDQUNkLElBQUlDLElBQUksQ0FBQztRQUNSQyxNQUFNLEVBQUVKLEtBQUEsQ0FBS0ssUUFBUSxDQUFDQyxJQUFJLENBQUFOLEtBQUssQ0FBQztRQUNoQ08sSUFBSSxFQUFFQyxRQUFRLENBQUNDLE1BQU07UUFDckJDLGNBQWMsRUFBRUMsY0FBYyxDQUFDQztNQUNoQyxDQUFDLENBQ0YsQ0FBQztNQUFDLE9BQUFaLEtBQUE7SUFDSDtJQUFDYSxjQUFBLENBQUFqQix1QkFBQSxFQUFBQyxZQUFBO0lBQUEsSUFBQWlCLE1BQUEsR0FBQWxCLHVCQUFBLENBQUFtQixTQUFBO0lBQUFELE1BQUEsQ0FFREUsUUFBUSxHQUFSLFNBQUFBLFFBQVFBLENBQ1BDLEtBQTRFLEVBQzVFQyxTQUFvQixFQUNwQkMsZ0JBQXlCLEVBQ2xCO01BQ1AsSUFBSUMsS0FBSyxD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
174
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWYWx1ZUhlbHBQcmV2aWV3RmFjdG9yeSIsIl9CYXNlRmFjdG9yeSIsIkVGQiIsInRva2VuIiwiX3RoaXMiLCJjYWxsIiwic2V0Q29udHJvbCIsIkxpc3QiLCJkZWxldGUiLCJvbkRlbGV0ZSIsImJpbmQiLCJtb2RlIiwiTGlzdE1vZGUiLCJEZWxldGUiLCJzaG93U2VwYXJhdG9ycyIsIkxpc3RTZXBhcmF0b3JzIiwiTm9uZSIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwic2V0SXRlbXMiLCJpdGVtcyIsInRva2VuVHlwZSIsImlzRGF0ZVRpbWVPZmZzZXQiLCJVdGlscyIsImFyZUl0ZW1zU2FtZSIsImxpc3QiLCJnZXRDb250cm9sIiwiZGVzdHJveUFnZ3JlZ2F0aW9uIiwiZm9yRWFjaCIsIml0ZW0iLCJpbmRleDEiLCJvcGVyYXRvciIsInNlbGVjdGVkVmFsdWVzIiwidGl0bGUiLCJpc0JldHdlZW5TZWxlY3RlZFZhbHVlcyIsIm1hcE9wZXJhdG9yRm9yQmV0d2Vlbk9wZXJhdG9yIiwiaW5zZXJ0SXRlbSIsInNlbGVjdGVkVmFsdWUiLCJpbmRleDIiLCJtYXBPcGVyYXRvckZvclZhbHVlSGVscCIsIm1hcE9wZXJhdG9yIiwiaW5kZXhQb3NpdGlvbnMiLCJhZGRJdGVtIiwiU3RhbmRhcmRMaXN0SXRlbSIsImN1c3RvbURhdGEiLCJDdXN0b21EYXRhIiwia2V5IiwidmFsdWUiLCJldmVudCIsInBvcG92ZXIiLCJnZXRUb2tlbiIsImdldEN1c3RvbURhdGFWYWx1ZSIsImdldFBhcmFtZXRlciIsInNldFZpc2libGUiLCJmb2N1cyIsIm5vcm1hbGl6ZVN0cmluZyIsInN0ciIsInJlZ2V4IiwicmVwbGFjZSIsImludm9rZU9rQnV0dG9uSGFuZGxlciIsImVhc3lGaWx0ZXJCYXJDb250YWluZXIiLCJnZXRFYXN5RmlsdGVyIiwiZ2V0SXRlbXMiLCJtYXAiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJkZWVwQ2xvbmUiLCJpbmRpY2VzVG9CZVJlbW92ZWQiLCJsaXN0SXRlbSIsImdldFZpc2libGUiLCJJbmZpbml0eSIsImdldEN1c3RvbURhdGEiLCJmaW5kIiwiZGF0YSIsImdldEtleSIsImdldFZhbHVlIiwicHVzaCIsInNvcnQiLCJhIiwiYiIsIl9yZWYiLCJvYmpJbmRleCIsInZhbHVlSW5kZXgiLCJzcGxpY2UiLCJsZW5ndGgiLCJ1cGRhdGVUb2tlbkFycmF5IiwiY2xvc2UiLCJpbnZva2VTaG93QWxsQnV0dG9uSGFuZGxlciIsInR5cGUiLCJ2YWx1ZUhlbHBQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaXJlRXZlbnQiLCJ2YWx1ZXMiLCJuZXdTZWxlY3RlZFZhbHVlcyIsImVycm9yIiwiRXJyb3IiLCJMb2ciLCJtZXNzYWdlIiwiU3RyaW5nIiwiaW52b2tlUG9wdXBDbG9zZUhhbmRsZXIiLCJCYXNlRmFjdG9yeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVmFsdWVIZWxwUHJldmlld0ZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgZGVlcENsb25lIGZyb20gXCJzYXAvYmFzZS91dGlsL2RlZXBDbG9uZVwiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IEJhc2VGYWN0b3J5IH0gZnJvbSBcInNhcC9mZS9jb250cm9scy9lYXN5RmlsdGVyL2lubmVyQ29udHJvbHMvQmFzZUZhY3RvcnlcIjtcbmltcG9ydCBVdGlscyBmcm9tIFwic2FwL2ZlL2NvbnRyb2xzL2Vhc3lGaWx0ZXIvdXRpbHNcIjtcbmltcG9ydCBMaXN0IGZyb20gXCJzYXAvbS9MaXN0XCI7XG5pbXBvcnQgdHlwZSB7IExpc3RCYXNlJERlbGV0ZUV2ZW50IH0gZnJvbSBcInNhcC9tL0xpc3RCYXNlXCI7XG5pbXBvcnQgdHlwZSBQb3BvdmVyIGZyb20gXCJzYXAvbS9Qb3BvdmVyXCI7XG5pbXBvcnQgU3RhbmRhcmRMaXN0SXRlbSBmcm9tIFwic2FwL20vU3RhbmRhcmRMaXN0SXRlbVwiO1xuaW1wb3J0IHsgTGlzdE1vZGUsIExpc3RTZXBhcmF0b3JzIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgdHlwZSBFYXN5RmlsdGVyQmFyQ29udGFpbmVyIGZyb20gXCIuLi9FYXN5RmlsdGVyQmFyQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7XG5cdEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0Q29kZUxpc3RUeXBlLFxuXHRUb2tlbkRlZmluaXRpb24sXG5cdFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uLFxuXHRUb2tlblR5cGUsXG5cdFZhbHVlSGVscEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0VmFsdWVIZWxwU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uXG59IGZyb20gXCIuLi9FYXN5RmlsdGVyQmFyQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBFYXN5RmlsdGVyVG9rZW4gZnJvbSBcIi4uL1Rva2VuXCI7XG5cbmNsYXNzIFZhbHVlSGVscFByZXZpZXdGYWN0b3J5IGV4dGVuZHMgQmFzZUZhY3Rvcnk8TGlzdD4ge1xuXHRjb25zdHJ1Y3RvcihFRkI6IEVuaGFuY2VXaXRoVUk1PEVhc3lGaWx0ZXJCYXJDb250YWluZXI+LCB0b2tlbjogRW5oYW5jZVdpdGhVSTU8RWFzeUZpbHRlclRva2VuPikge1xuXHRcdHN1cGVyKEVGQiwgdG9rZW4pO1xuXHRcdHRoaXMuc2V0Q29udHJvbChcblx0XHRcdG5ldyBMaXN0KHtcblx0XHRcdFx0ZGVsZXRlOiB0aGlzLm9uRGVsZXRlLmJpbmQodGhpcyksXG5cdFx0XHRcdG1vZGU6IExpc3RNb2RlLkRlbGV0ZSxcblx0XHRcdFx0c2hvd1NlcGFyYXRvcnM6IExpc3RTZXBhcmF0b3JzLk5vbmVcblx0XHRcdH0pXG5cdFx0KTtcblx0fVxuXG5cdHNldEl0ZW1zKFxuXHRcdGl0ZW1zOiBWYWx1ZUhlbHBTZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSB8IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10sXG5cdFx0dG9rZW5UeXBlOiBUb2tlblR5cGUsXG5cdFx0aXNEYXRlVGltZU9mZnNldDogYm9vbGVhblxuXHQpOiB2b2lkIHtcblx0XHRpZiAoVXRpbHMuYXJlSXRlbXNTYW1lKGl0ZW1zLCB0aGlzLml0ZW1zIGFzIFZhbHVlSGVscFNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLml0ZW1zID0gaXRlbXM7XG5cdFx0Y29uc3QgbGlzdCA9IHRoaXMuZ2V0Q29udHJvbCgpO1xuXHRcdGxpc3Q/LmRlc3Ryb3lBZ2dyZWdhdGlvbihcIml0ZW1zXCIpO1xuXHRcdGl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4MSkgPT4ge1xuXHRcdFx0Y29uc3QgeyBvcGVyYXRvciwgc2VsZWN0ZWRWYWx1ZXMgfSA9IGl0ZW07XG5cdFx0XHRsZXQgdGl0bGUgPSBcIlwiO1xuXHRcdFx0aWYgKHRva2VuVHlwZSA9PT0gXCJWYWx1ZUhlbHBcIikge1xuXHRcdFx0XHRpZiAoVXRpbHMuaXNCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMob3BlcmF0b3IpKSB7XG5cdFx0XHRcdFx0dGl0bGUgPSBVdGlscy5tYXBPcGVyYXRvckZvckJldHdlZW5PcGVyYXRvcihcblx0XHRcdFx0XHRcdG9wZXJhdG9yLFxuXHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXMgYXMgVmFsdWVIZWxwQmV0d2VlblNlbGVjdGVkVmFsdWVzLFxuXHRcdFx0XHRcdFx0dG9rZW5UeXBlLFxuXHRcdFx0XHRcdFx0aXNEYXRlVGltZU9mZnNldFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0dGhpcy5pbnNlcnRJdGVtKGxpc3QgYXMgTGlzdCwgdGl0bGUsIFtpbmRleDFdKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzZWxlY3RlZFZhbHVlcy5mb3JFYWNoKChzZWxlY3RlZFZhbHVlLCBpbmRleDIpID0+IHtcblx0XHRcdFx0XHRcdHRpdGxlID0gVXRpbHMubWFwT3BlcmF0b3JGb3JWYWx1ZUhlbHAob3BlcmF0b3IsIHNlbGVjdGVkVmFsdWUgYXMgQ29kZUxpc3RUeXBlLCB0b2tlblR5cGUsIGlzRGF0ZVRpbWVPZmZzZXQpO1xuXHRcdFx0XHRcdFx0dGhpcy5pbnNlcnRJdGVtKGxpc3QgYXMgTGlzdCwgdGl0bGUsIFtpbmRleDEsIGluZGV4Ml0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAoVXRpbHMuaXNCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMob3BlcmF0b3IpKSB7XG5cdFx0XHRcdFx0dGl0bGUgPSBVdGlscy5tYXBPcGVyYXRvckZvckJldHdlZW5PcGVyYXRvcihcblx0XHRcdFx0XHRcdG9wZXJhdG9yLFxuXHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXMgYXMgQmV0d2VlblNlbGVjdGVkVmFsdWVzLFxuXHRcdFx0XHRcdFx0dG9rZW5UeXBlLFxuXHRcdFx0XHRcdFx0aXNEYXRlVGltZU9mZnNldFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0Ly9JbiB0aGlzIGNhc2UsIHdlIGRvbid0IG5lZWQgdCB0byBzdG9yZSBpbmRleDIsIGJlY2F1c2Ugd2Uga25vdyB0aGF0IExMTSBvciBWSEQgYWx3YXlzIGdpdmVzIHlvdSBvbmx5IDIgdmFsdWVzIGluIHJldHVyblxuXHRcdFx0XHRcdHRoaXMuaW5zZXJ0SXRlbShsaXN0IGFzIExpc3QsIHRpdGxlLCBbaW5kZXgxXSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXMuZm9yRWFjaCgoc2VsZWN0ZWRWYWx1ZSwgaW5kZXgyKSA9PiB7XG5cdFx0XHRcdFx0XHR0aXRsZSA9IFV0aWxzLm1hcE9wZXJhdG9yKG9wZXJhdG9yLCBzZWxlY3RlZFZhbHVlIGFzIHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBEYXRlLCB0b2tlblR5cGUsIGlzRGF0ZVRpbWVPZmZzZXQpO1xuXHRcdFx0XHRcdFx0Ly9XZSBuZWVkIHRvIHN0b3JlIGluZGV4MiB0byBmaW5kIG91dCB3aGljaCBpdGVtIGhhcyBiZWVuIHJlbW92ZWQgaW5zaWRlIHRoZSBhcnJheVxuXHRcdFx0XHRcdFx0dGhpcy5pbnNlcnRJdGVtKGxpc3QgYXMgTGlzdCwgdGl0bGUsIFtpbmRleDEsIGluZGV4Ml0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRpbnNlcnRJdGVtKGxpc3Q6IExpc3QsIHRpdGxlOiBzdHJpbmcsIGluZGV4UG9zaXRpb25zOiBudW1iZXJbXSk6IHZvaWQge1xuXHRcdGxpc3Q/LmFkZEl0ZW0oXG5cdFx0XHRuZXcgU3RhbmRhcmRMaXN0SXRlbSh7XG5cdFx0XHRcdHRpdGxlLFxuXHRcdFx0XHRjdXN0b21EYXRhOiBuZXcgQ3VzdG9tRGF0YSh7XG5cdFx0XHRcdFx0a2V5OiBcImFycmF5SW5kZXhcIixcblx0XHRcdFx0XHR2YWx1ZTogaW5kZXhQb3NpdGlvbnNcblx0XHRcdFx0fSlcblx0XHRcdH0pXG5cdFx0KTtcblx0fVxuXG5cdG9uRGVsZXRlKGV2ZW50OiBMaXN0QmFzZSREZWxldGVFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHBvcG92ZXIgPSB0aGlzLmdldFRva2VuKCk/LmdldEN1c3RvbURhdGFWYWx1ZShcInBvcG92ZXJcIikgYXMgUG9wb3Zlcjtcblx0XHRldmVudC5nZXRQYXJhbWV0ZXIoXCJsaXN0SXRlbVwiKT8uc2V0VmlzaWJsZShmYWxzZSk7XG5cdFx0cG9wb3Zlci5mb2N1cygpO1xuXHR9XG5cblx0bm9ybWFsaXplU3RyaW5nKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRjb25zdCByZWdleCA9IC9eKD49fDw9fCE9fD58PCkrLztcblx0XHRyZXR1cm4gc3RyLnJlcGxhY2UocmVnZXgsIFwiXCIpO1xuXHR9XG5cblx0aW52b2tlT2tCdXR0b25IYW5kbGVyKCk6IHZvaWQge1xuXHRcdGNvbnN0IHBvcG92ZXIgPSB0aGlzLmdldFRva2VuKCk/LmdldEN1c3RvbURhdGFWYWx1ZShcInBvcG92ZXJcIikgYXMgUG9wb3Zlcjtcblx0XHRjb25zdCB0b2tlbiA9IHRoaXMuZ2V0VG9rZW4oKTtcblx0XHRjb25zdCBlYXN5RmlsdGVyQmFyQ29udGFpbmVyID0gdGhpcy5nZXRFYXN5RmlsdGVyKCkgYXMgRWFzeUZpbHRlckJhckNvbnRhaW5lcjtcblx0XHRjb25zdCBpdGVtcyA9IHRva2VuPy5nZXRJdGVtcygpPy5tYXAoKGl0ZW0pID0+ICh7XG5cdFx0XHRvcGVyYXRvcjogSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpdGVtLm9wZXJhdG9yKSksIC8vIERlZXAgY29weSBvZiBvcGVyYXRvclxuXHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IGRlZXBDbG9uZShpdGVtLnNlbGVjdGVkVmFsdWVzKSAvLyBEZWVwIGNvcHkgb2Ygc2VsZWN0ZWRWYWx1ZXMsIGlmIGl0cyBhIGNvbXBsZXggb2JqZWN0XG5cdFx0fSkpO1xuXHRcdGNvbnN0IGluZGljZXNUb0JlUmVtb3ZlZDogbnVtYmVyW11bXSA9IFtdO1xuXHRcdHRoaXMuZ2V0Q29udHJvbCgpXG5cdFx0XHQ/LmdldEl0ZW1zKClcblx0XHRcdC5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuXHRcdFx0XHQvL0lmIHRoZSBpdGVtIGlzIGhpZGRlbiB0aGF0IG1lYW5zIGl0IHNob3VsZCBiZSByZW1vdmVkIGNvbXBsZXRlbHlcblx0XHRcdFx0aWYgKCFsaXN0SXRlbS5nZXRWaXNpYmxlKCkpIHtcblx0XHRcdFx0XHRjb25zdCBbaW5kZXgxID0gSW5maW5pdHksIGluZGV4MiA9IEluZmluaXR5XSA9XG5cdFx0XHRcdFx0XHQobGlzdEl0ZW1cblx0XHRcdFx0XHRcdFx0Py5nZXRDdXN0b21EYXRhKClcblx0XHRcdFx0XHRcdFx0Py5maW5kKChkYXRhKSA9PiBkYXRhPy5nZXRLZXkoKSA9PT0gXCJhcnJheUluZGV4XCIpXG5cdFx0XHRcdFx0XHRcdD8uZ2V0VmFsdWUoKSBhcyBudW1iZXJbXSkgPz8gW107XG5cdFx0XHRcdFx0aWYgKGluZGV4MSA9PT0gSW5maW5pdHkgfHwgIWl0ZW1zKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGluZGljZXNUb0JlUmVtb3ZlZC5wdXNoKFtpbmRleDEsIGluZGV4Ml0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdC8qXG5cdFx0V2l0aG91dCBzb3J0aW5nIGluIGRlc2NlbmRpbmcgb3JkZXI6XG5cblx0XHRSZW1vdmluZyBhbiBvYmplY3Qgd291bGQgc2hpZnQgYWxsIHN1YnNlcXVlbnQgaW5kaWNlcywgcG90ZW50aWFsbHkgY2F1c2luZyBpbmNvcnJlY3QgcmVtb3ZhbHMgb3Igc2tpcHMuXG5cdFx0UmVtb3ZpbmcgdmFsdWVzIGZyb20gc2VsZWN0ZWRWYWx1ZXMgY291bGQgc2hpZnQgb3RoZXIgdmFsdWVzLCByZXN1bHRpbmcgaW4gbWlzc2VkIG9yIHVuaW50ZW5kZWQgcmVtb3ZhbHMuXG5cdFx0VGhpcyBhcHByb2FjaCBlbnN1cmVzIHRoYXQgZWFjaCByZW1vdmFsIG9wZXJhdGVzIG9uIHN0YWJsZSwgY29ycmVjdCBpbmRpY2VzLlxuXG5cdFx0VGhpcyBpcyB0aGUgcmVhc29uIHdoeSB3ZSBoYXZlIGFkZGVkIHZhbHVlSW5kZXggdG8gaW5maW5pdHlcblx0XHRJbmZpbml0eSBpcyBncmVhdGVyIHRoYW4gYW55IHZhbGlkIGluZGV4LCBzbyBzb3J0aW5nIGluIGRlc2NlbmRpbmcgb3JkZXIgd2lsbCBuYXR1cmFsbHkgcGxhY2UgZW50cmllcyB3aXRoIHZhbHVlSW5kZXggPSBJbmZpbml0eSBhdCB0aGUgdG9wIGZvciBlYWNoIG9iakluZGV4LlxuXHRcdFRoaXMgd2F5LCB3ZSBjYW4gcHJvY2VzcyB0aGUgY29tcGxldGUgcmVtb3ZhbCBvZiBhbiBvYmplY3QgYmVmb3JlIGhhbmRsaW5nIGFueSBpbmRpdmlkdWFsIHNlbGVjdGVkVmFsdWVzIHJlbW92YWxzIHdpdGhpbiB0aGF0IG9iamVjdCwgcHJldmVudGluZyB1bndhbnRlZCBzaGlmdHMuXG5cdFx0ICovXG5cdFx0aW5kaWNlc1RvQmVSZW1vdmVkLnNvcnQoKGEsIGIpID0+IGJbMF0gLSBhWzBdIHx8IGJbMV0gLSBhWzFdKTtcblxuXHRcdGluZGljZXNUb0JlUmVtb3ZlZC5mb3JFYWNoKChbb2JqSW5kZXgsIHZhbHVlSW5kZXhdKSA9PiB7XG5cdFx0XHRpZiAoaXRlbXMpIHtcblx0XHRcdFx0Ly9JZiB2YWx1ZUluZGV4IGlzIGluZmluaXR5LCB0aGVuIGl0IG1lYW5zIGl0IHNob3VsZCBiZSBhIGJldHdlZW4gb3BlcmF0b3Igc2NlbmFyaW8sIHNvIHJlbW92ZSB0aGUgdG90YWwgb2JqZWN0IG9ubHlcblx0XHRcdFx0aWYgKHZhbHVlSW5kZXggPT09IEluZmluaXR5KSB7XG5cdFx0XHRcdFx0aXRlbXMuc3BsaWNlKG9iakluZGV4LCAxKTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aXRlbXNbb2JqSW5kZXhdLnNlbGVjdGVkVmFsdWVzLnNwbGljZSh2YWx1ZUluZGV4LCAxKTtcblx0XHRcdFx0Ly8gSWYgdGhlIHZhbHVlcyBhcnJheSBiZWNvbWVzIGVtcHR5LCByZW1vdmUgdGhlIHdob2xlIG9iamVjdFxuXHRcdFx0XHRpZiAoaXRlbXNbb2JqSW5kZXhdLnNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdGl0ZW1zLnNwbGljZShvYmpJbmRleCwgMSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHRlYXN5RmlsdGVyQmFyQ29udGFpbmVyLnVwZGF0ZVRva2VuQXJyYXkoXG5cdFx0XHRcInNldFNlbGVjdGVkVmFsdWVzXCIsXG5cdFx0XHRpdGVtcyBhcyBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdIHwgVmFsdWVIZWxwU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10sXG5cdFx0XHR0b2tlbj8uZ2V0S2V5KCkgYXMgc3RyaW5nXG5cdFx0KTtcblx0XHRwb3BvdmVyLmNsb3NlKCk7XG5cdH1cblxuXHRhc3luYyBpbnZva2VTaG93QWxsQnV0dG9uSGFuZGxlcigpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCB0b2tlbiA9IHRoaXMuZ2V0VG9rZW4oKTtcblx0XHRjb25zdCB7IHR5cGUgfSA9IHRva2VuPy5nZXRDdXN0b21EYXRhVmFsdWUoXCJUb2tlbkluZm9cIikgYXMgVG9rZW5EZWZpbml0aW9uO1xuXHRcdGNvbnN0IGtleSA9IHRva2VuPy5nZXRLZXkoKSBhcyBzdHJpbmc7XG5cdFx0Y29uc3QgdmFsdWVIZWxwUHJvbWlzZSA9IG5ldyBQcm9taXNlPFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMuZ2V0RWFzeUZpbHRlcigpPy5maXJlRXZlbnQoXCJzaG93VmFsdWVIZWxwXCIsIHtcblx0XHRcdFx0a2V5LFxuXHRcdFx0XHR2YWx1ZXM6IHRva2VuPy5nZXRJdGVtcygpPy5tYXAoKGl0ZW06IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uIHwgVmFsdWVIZWxwU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHR5cGUgPT09IFwiVmFsdWVIZWxwXCIpIHtcblx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBpdGVtLm9wZXJhdG9yLFxuXHRcdFx0XHRcdFx0XHQvL01ha2luZyBzdXJlIHRoYXQgb25seSB0aGUgaWQgcGFydCBpcyBwYXNzZWRcblx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IChpdGVtIGFzIFZhbHVlSGVscFNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbikuc2VsZWN0ZWRWYWx1ZXMubWFwKFxuXHRcdFx0XHRcdFx0XHRcdChzZWxlY3RlZFZhbHVlKSA9PiBzZWxlY3RlZFZhbHVlLnZhbHVlXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJldHVybiBpdGVtO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSksXG5cdFx0XHRcdHJlc29sdmUsXG5cdFx0XHRcdHJlamVjdFxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgbmV3U2VsZWN0ZWRWYWx1ZXMgPSBhd2FpdCB2YWx1ZUhlbHBQcm9taXNlO1xuXHRcdFx0dGhpcy5nZXRFYXN5RmlsdGVyKCk/LnVwZGF0ZVRva2VuQXJyYXkoXCJzZXRTZWxlY3RlZFZhbHVlc1wiLCBuZXdTZWxlY3RlZFZhbHVlcywga2V5KTtcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0aWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgbmV3IHRva2Vuc1wiLCBlcnJvci5tZXNzYWdlKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGZldGNoaW5nIG5ldyB0b2tlbnNcIiwgU3RyaW5nKGVycm9yKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0aW52b2tlUG9wdXBDbG9zZUhhbmRsZXIoKTogdm9pZCB7XG5cdFx0Ly9XaGF0ZXZlciBoYXMgYmVlbiBkZWxldGVkLCBtYWtlIHRoZW0gYXBwZWFyIGFnYWluIHNvIHRoYXQgdGhleSBjYW4gYmUgdmlzaWJsZSBhcyBzb29uIGFzIHlvdSBjbGljayB0aGUgdG9rZW4gYWdhaW5cblx0XHR0aGlzLmdldENvbnRyb2woKVxuXHRcdFx0Py5nZXRJdGVtcygpXG5cdFx0XHQuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5zZXRWaXNpYmxlKHRydWUpKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBWYWx1ZUhlbHBQcmV2aWV3RmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O01BdUJNQSx1QkFBdUIsMEJB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eUUsTUFBTSxDQUFDLENBQVc7TUFDckMsTUFBTWUsZ0JBQWdCLEdBQUcsSUFBSUMsT0FBTyxDQUFrQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztRQUMxRixJQUFJLENBQUNoQyxhQUFhLENBQUMsQ0FBQyxFQUFFaUMsU0FBUyxDQUFDLGVBQWUsRUFBRTtVQUNoRGhELEdBQUc7VUFDSGlELE1BQU0sRUFBRTdGLEtBQUssRUFBRTRELFFBQVEsQ0FBQyxDQUFDLEVBQUVDLEdBQUcsQ0FBRWxDLElBQXVFLElBQUs7WUFDM0csSUFBSTRELElBQUksS0FBSyxXQUFXLEVBQUU7Y0FDekIsT0FBTztnQkFDTjFELFFBQVEsRUFBRUYsSUFBSSxDQUFDRSxRQUFRO2dCQUN2QjtnQkFDQUMsY0FBYyxFQUFHSCxJQUFJLENBQXVDRyxjQUFjLENBQUMrQixHQUFHLENBQzVFMUIsYUFBYSxJQUFLQSxhQUFhLENBQUNVLEtBQ2xDO2NBQ0QsQ0FBQztZQUNGLENBQUMsTUFBTTtjQUNOLE9BQU9sQixJQUFJO1lBQ1o7VUFDRCxDQUFDLENBQUM7VUFDRitELE9BQU87VUFDUEM7UUFDRCxDQUFDLENBQUM7TUFDSCxDQUFDLENBQUM7TUFFRixJQUFJO1FBQ0gsTUFBTUcsaUJBQWlCLEdBQUcsTUFBTU4sZ0JBQWdCO1FBQ2hELElBQUksQ0FBQzdCLGFBQWEsQ0FBQyxDQUFDLEVBQUV5QixnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRVUsaUJBQWlCLEVBQUVsRCxHQUFHLENBQUM7TUFDcEYsQ0FBQyxDQUFDLE9BQU9tRCxLQUFLLEVBQUU7UUFDZixJQUFJQSxLQUFLLFlBQVlDLEtBQUssRUFBRTtVQUMzQkMsR0FBRyxDQUFDRixLQUFLLENBQUMsaUNBQWlDLEVBQUVBLEtBQUssQ0FBQ0csT0FBTyxDQUFDO1FBQzVELENBQUMsTUFBTTtVQUNORCxHQUFHLENBQUNGLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRUksTUFBTSxDQUFDSixLQUFLLENBQUMsQ0FBQztRQUM1RDtNQUNEO0lBQ0QsQ0FBQztJQUFBaEYsTUFBQSxDQUVEcUYsdUJBQXVCLEdBQXZCLFNBQUFBLHVCQUF1QkEsQ0FBQSxFQUFTO01BQy9CO01BQ0EsSUFBSSxDQUFDNUUsVUFBVSxDQUFDLENBQUMsRUFDZG9DLFFBQVEsQ0FBQyxDQUFDLENBQ1hsQyxPQUFPLENBQUVDLElBQUksSUFBS0EsSUFBSSxDQUFDd0IsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFBQSxPQUFBdEQsdUJBQUE7RUFBQSxFQTVMb0N3RyxXQUFXO0VBQUEsT0ErTGxDeEcsdUJBQXVCO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -44,14 +44,10 @@ class ValueHelpPreviewFactory extends BaseFactory<List> {
44
44
  this.items = items;
45
45
  const list = this.getControl();
46
46
  list?.destroyAggregation("items");
47
- //Make sure only top 5 values are shown
48
- let ctr = 0;
49
47
  items.forEach((item, index1) => {
50
48
  const { operator, selectedValues } = item;
51
49
  let title = "";
52
- //Currently hardCoding the most number of values that can be shown is 5
53
- //ValueHelp will have non-fixed values, so its important to limit the number of values to be shown
54
- if (tokenType === "ValueHelp" && ctr < 5) {
50
+ if (tokenType === "ValueHelp") {
55
51
  if (Utils.isBetweenSelectedValues(operator)) {
56
52
  title = Utils.mapOperatorForBetweenOperator(
57
53
  operator,
@@ -60,17 +56,13 @@ class ValueHelpPreviewFactory extends BaseFactory<List> {
60
56
  isDateTimeOffset
61
57
  );
62
58
  this.insertItem(list as List, title, [index1]);
63
- ++ctr;
64
59
  } else {
65
60
  selectedValues.forEach((selectedValue, index2) => {
66
- if (ctr < 5) {
67
- title = Utils.mapOperatorForValueHelp(operator, selectedValue as CodeListType, tokenType, isDateTimeOffset);
68
- this.insertItem(list as List, title, [index1, index2]);
69
- ++ctr;
70
- }
61
+ title = Utils.mapOperatorForValueHelp(operator, selectedValue as CodeListType, tokenType, isDateTimeOffset);
62
+ this.insertItem(list as List, title, [index1, index2]);
71
63
  });
72
64
  }
73
- } else if (tokenType !== "ValueHelp") {
65
+ } else {
74
66
  if (Utils.isBetweenSelectedValues(operator)) {
75
67
  title = Utils.mapOperatorForBetweenOperator(
76
68
  operator,
@@ -22,7 +22,7 @@ sap.ui.define(["sap/fe/base/library", "sap/fe/controls/shortcuts/ShortcutExplana
22
22
  controls: [],
23
23
  elements: [],
24
24
  // eslint-disable-next-line no-template-curly-in-string
25
- version: "1.136.0",
25
+ version: "1.136.2",
26
26
  noLibraryCSS: false
27
27
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
28
  });
@@ -63,6 +63,8 @@ M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=No Last Used Queries
63
63
  M_EASY_FILTER_FILLED_STAR=Remove from Favorites
64
64
  # XMSG
65
65
  M_EASY_FILTER_EMPTY_START=Add to Favorites
66
+ # XMSG: Text read out by the screenreader, telling users how to move to the list under the search field containing favorite queries and last used queries, if available
67
+ T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=To move to the list of favorite queries and last used queries, press the ArrowDown key
66
68
  # XMSG
67
69
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Note that only one single value can be applied to the following: {0}
68
70
  # XTIT: Title in the shell user menu to open the shortcut dialog and the dialog title
@@ -30,11 +30,12 @@ M_EASY_FILTER_POPOVER_CLOSE=\u0625\u063A\u0644\u0627\u0642
30
30
  M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=\u0644\u0627 \u062A\u0648\u062C\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0645\u0633\u062A\u062E\u062F\u0645\u0629 \u0645\u0624\u062E\u0631\u064B\u0627
31
31
  M_EASY_FILTER_FILLED_STAR=\u0625\u0632\u0627\u0644\u0629 \u0645\u0646 \u0627\u0644\u0645\u0641\u0636\u0644\u0629
32
32
  M_EASY_FILTER_EMPTY_START=\u0625\u0636\u0627\u0641\u0629 \u0625\u0644\u0649 \u0627\u0644\u0645\u0641\u0636\u0644\u0629
33
+ T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u0644\u0644\u0627\u0646\u062A\u0642\u0627\u0644 \u0625\u0644\u0649 \u0627\u0644\u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0627\u0644\u0645\u0641\u0636\u0644\u0629 \u0648\u0622\u062E\u0631 \u0627\u0644\u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645\u0629\u060C \u0627\u0636\u063A\u0637 \u0639\u0644\u0649 \u0645\u0641\u062A\u0627\u062D \u0627\u0644\u0633\u0647\u0645 \u0644\u0623\u0633\u0641\u0644
33
34
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u064A\u0645\u0643\u0646 \u062A\u0637\u0628\u064A\u0642 \u0642\u064A\u0645\u0629 \u0648\u0627\u062D\u062F\u0629 \u0641\u0642\u0637 \u0639\u0644\u0649 \u0627\u0644\u062A\u0627\u0644\u064A\: {0}
34
35
  C_SHORTCUT_TITLE=\u0627\u062E\u062A\u0635\u0627\u0631\u0627\u062A \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0641\u0627\u062A\u064A\u062D
35
36
  C_SHORTCUT_PLACEHOLDER=\u0627\u0644\u0628\u062D\u062B \u0639\u0646 \u0627\u062E\u062A\u0635\u0627\u0631 \u0644\u0648\u062D\u0629 \u0645\u0641\u0627\u062A\u064A\u062D
36
- C_SHORTCUT_NODATA=\u062A\u0631\u0643\u064A\u0632 \u0639\u0644\u0649 \u062C\u0632\u0621 \u0645\u0646 \u0634\u0627\u0634\u0629 \u0644\u0639\u0631\u0636 \u0627\u062E\u062A\u0635\u0627\u0631\u0627\u062A \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0641\u0627\u062A\u064A\u062D
37
- M_INLINE_EDIT_TOOLTIP_EDIT=\u062A\u062D\u0631\u064A\u0631 (\u0625\u062F\u062E\u0627\u0644)
37
+ C_SHORTCUT_NODATA=\u062A\u0631\u0643\u064A\u0632 \u0639\u0644\u0649 \u062C\u0632\u0621 \u0645\u0646 \u0627\u0644\u0634\u0627\u0634\u0629 \u0644\u0644\u0627\u0637\u0644\u0627\u0639 \u0639\u0644\u0649 \u0627\u062E\u062A\u0635\u0627\u0631\u0627\u062A \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0641\u0627\u062A\u064A\u062D
38
+ M_INLINE_EDIT_TOOLTIP_EDIT=\u062A\u062D\u0631\u064A\u0631
38
39
  M_INLINE_EDIT_TOOLTIP_SAVE=\u062D\u0641\u0638
39
40
  M_INLINE_EDIT_TOOLTIP_CANCEL=\u0625\u0644\u063A\u0627\u0621
40
41
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=\u0627\u0644\u0646\u0642\u0631 \u0627\u0644\u0645\u0632\u062F\u0648\u062C \u0644\u0644\u062A\u062D\u0631\u064A\u0631
@@ -30,11 +30,12 @@ M_EASY_FILTER_POPOVER_CLOSE=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u04
30
30
  M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=\u041D\u044F\u043C\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F
31
31
  M_EASY_FILTER_FILLED_STAR=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043E\u0442 \u0444\u0430\u0432\u043E\u0440\u0438\u0442\u0438\u0442\u0435
32
32
  M_EASY_FILTER_EMPTY_START=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043A\u044A\u043C \u0444\u0430\u0432\u043E\u0440\u0438\u0442\u0438\u0442\u0435
33
+ T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u0417\u0430 \u043F\u0440\u0435\u043C\u0438\u043D\u0430\u0432\u0430\u043D\u0435 \u043A\u044A\u043C \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u043D\u0438 \u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u043D\u0430\u043F\u0440\u0430\u0432\u0435\u043D\u0438 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F \u043D\u0430\u0442\u0438\u0441\u043D\u0435\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0430 \u0441\u044A\u0441 \u0441\u0442\u0440\u0435\u043B\u043A\u0430 \u043D\u0430\u0434\u043E\u043B\u0443
33
34
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u0421\u0430\u043C\u043E \u0435\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0430 \u043A\u044A\u043C \u0441\u043B\u0435\u0434\u043D\u043E\u0442\u043E\: {0}
34
35
  C_SHORTCUT_TITLE=\u041A\u043B\u0430\u0432\u0438\u0448\u043D\u0438 \u043A\u043E\u043C\u0431\u0438\u043D\u0430\u0446\u0438\u0438
35
36
  C_SHORTCUT_PLACEHOLDER=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u043A\u043B\u0430\u0432\u0438\u0448\u043D\u0430 \u043A\u043E\u043C\u0431\u0438\u043D\u0430\u0446\u0438\u044F
36
- C_SHORTCUT_NODATA=\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u0430\u0439\u0442\u0435 \u0447\u0430\u0441\u0442 \u043E\u0442 \u0435\u043A\u0440\u0430\u043D\u0430 \u0437\u0430 \u043A\u043B\u0430\u0432\u0438\u0448\u043D\u0438 \u043A\u043E\u043C\u0431\u0438\u043D\u0430\u0446\u0438\u0438
37
- M_INLINE_EDIT_TOOLTIP_EDIT=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435 (Enter)
37
+ C_SHORTCUT_NODATA=\u0424\u043E\u043A\u0443\u0441\u0438\u0440\u0430\u0439\u0442\u0435 \u0447\u0430\u0441\u0442 \u043E\u0442 \u0435\u043A\u0440\u0430\u043D\u0430, \u0437\u0430 \u0434\u0430 \u0432\u0438\u0434\u0438\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u043D\u0438\u0442\u0435 \u043A\u043E\u043C\u0431\u0438\u043D\u0430\u0446\u0438\u0438
38
+ M_INLINE_EDIT_TOOLTIP_EDIT=\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435
38
39
  M_INLINE_EDIT_TOOLTIP_SAVE=\u0417\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435
39
40
  M_INLINE_EDIT_TOOLTIP_CANCEL=\u041E\u0442\u043A\u0430\u0437
40
41
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=\u0414\u0432\u043E\u0439\u043D\u043E \u043A\u043B\u0438\u043A\u0432\u0430\u043D\u0435 \u0437\u0430 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043D\u0435
@@ -30,11 +30,12 @@ M_EASY_FILTER_POPOVER_CLOSE=Tancar
30
30
  M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=No hi ha \u00FAltimes consultes utilitzades
31
31
  M_EASY_FILTER_FILLED_STAR=Eliminar dels preferits
32
32
  M_EASY_FILTER_EMPTY_START=Afegir a preferits
33
+ T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=Per anar a la llista de consultes preferides i \u00FAltimes consultes utilitzades, premeu la tecla FletxaAvall
33
34
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Nom\u00E9s es pot aplicar un valor a l''element seg\u00FCent\: {0}
34
35
  C_SHORTCUT_TITLE=Acc\u00E9s r\u00E0pid
35
36
  C_SHORTCUT_PLACEHOLDER=Cercar una drecera de teclat
36
- C_SHORTCUT_NODATA=Imatge parcial de pantalla p.veure dreceres teclat
37
- M_INLINE_EDIT_TOOLTIP_EDIT=Editar (Retorn)
37
+ C_SHORTCUT_NODATA=Centreu-vos en una part de la pantalla per a veure les dreceres de teclat
38
+ M_INLINE_EDIT_TOOLTIP_EDIT=Editar
38
39
  M_INLINE_EDIT_TOOLTIP_SAVE=Desar
39
40
  M_INLINE_EDIT_TOOLTIP_CANCEL=Cancel\u00B7lar
40
41
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=Fer doble clic per editar
@@ -30,11 +30,12 @@ M_EASY_FILTER_POPOVER_CLOSE=Zatvori
30
30
  M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=Nema posljednje kori\u0161\u0107enih upita
31
31
  M_EASY_FILTER_FILLED_STAR=Ukloni iz omiljenih
32
32
  M_EASY_FILTER_EMPTY_START=Dodaj u omiljene
33
+ T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=Da pomjerite listu omiljenih upita i posljednje kori\u0161tenih upita, pritisnite taster Strelica nadolje
33
34
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Samo jedna vrijednost se mo\u017Ee primijeniti na sljede\u0107e\: {0}
34
35
  C_SHORTCUT_TITLE=Pre\u010Dice na tastaturi
35
36
  C_SHORTCUT_PLACEHOLDER=Na\u0111i pre\u010Dicu na tastaturi
36
- C_SHORTCUT_NODATA=Fokus.se na odr.dio ekrana da vidite pre\u010D.na tast.
37
- M_INLINE_EDIT_TOOLTIP_EDIT=Uredi (unesi)
37
+ C_SHORTCUT_NODATA=Fokusirajte se na odre\u0111eni dio ekrana da vidite pre\u010Dice na tastaturi
38
+ M_INLINE_EDIT_TOOLTIP_EDIT=Uredi
38
39
  M_INLINE_EDIT_TOOLTIP_SAVE=Sa\u010Duvaj
39
40
  M_INLINE_EDIT_TOOLTIP_CANCEL=Odustani
40
41
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=Klikni dvaput za ure\u0111ivanje
@@ -30,11 +30,12 @@ M_EASY_FILTER_POPOVER_CLOSE=Zav\u0159\u00EDt
30
30
  M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=Ne naposledy pou\u017Eit\u00E9 dotazy
31
31
  M_EASY_FILTER_FILLED_STAR=Odebrat z obl\u00EDben\u00FDch
32
32
  M_EASY_FILTER_EMPTY_START=P\u0159idat k obl\u00EDben\u00FDm
33
+ T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=Pro p\u0159echod k seznamu obl\u00EDben\u00FDch dotaz\u016F a k naposledy pou\u017Eit\u00FDm dotaz\u016Fm stiskn\u011Bte \u0161ipku dol\u016F
33
34
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Jen jednu jednotlivou hodnotu lze pou\u017E\u00EDt pro toto\: {0}
34
35
  C_SHORTCUT_TITLE=Kl\u00E1vesov\u00E9 zkratky
35
36
  C_SHORTCUT_PLACEHOLDER=Najd\u011Bte kl\u00E1vesovou zkratku
36
- C_SHORTCUT_NODATA=Zam\u011B\u0159it se na \u010D\u00E1st obrazovky pro kl\u00E1ves. zkratky
37
- M_INLINE_EDIT_TOOLTIP_EDIT=Upravit (Zadat)
37
+ C_SHORTCUT_NODATA=Zam\u011B\u0159it se na \u010D\u00E1st obrazovky pro kl\u00E1vesov\u00E9 zkratky
38
+ M_INLINE_EDIT_TOOLTIP_EDIT=Upravit
38
39
  M_INLINE_EDIT_TOOLTIP_SAVE=Ulo\u017Eit
39
40
  M_INLINE_EDIT_TOOLTIP_CANCEL=Zru\u0161it
40
41
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=Uprav\u00EDte dvoj\u00EDm kliknut\u00EDm
@@ -30,11 +30,12 @@ M_EASY_FILTER_POPOVER_CLOSE=Cau
30
30
  M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=Dim Ymholiadau a Ddefnyddiwyd Ddiwethaf
31
31
  M_EASY_FILTER_FILLED_STAR=Tynnu o'r Ffefrynnau
32
32
  M_EASY_FILTER_EMPTY_START=Ychwanegu at y Ffefrynnau
33
+ T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=Er mwyn symud i'r rhestr o ymholiadau ffefryn ac ymholiadau a ddefnyddiwyd ddiwethaf, pwyswch yr allwedd SaethLawr
33
34
  M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Nodwch mai dim ond un gwerth all gael ei gymhwyso i''r canlynol\: {0}
34
35
  C_SHORTCUT_TITLE=Bysellau Hwylus
35
36
  C_SHORTCUT_PLACEHOLDER=Dod o hyd i fysellau hwylus
36
37
  C_SHORTCUT_NODATA=Ffocyswch ar ran o'r sgrin i weld bysellau hwylus
37
- M_INLINE_EDIT_TOOLTIP_EDIT=Golygu (Nodi)
38
+ M_INLINE_EDIT_TOOLTIP_EDIT=Golygu
38
39
  M_INLINE_EDIT_TOOLTIP_SAVE=Cadw
39
40
  M_INLINE_EDIT_TOOLTIP_CANCEL=Canslo
40
41
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=Dwbl-glic i olygu