matsuri-ui 18.0.2-alpha-1763159707702-41e8023.0 → 18.0.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.
- package/Calendar/CalendarDay.js +4 -4
- package/Calendar/CalendarDay.js.map +1 -1
- package/FieldBase/useValidation.js +11 -0
- package/FieldBase/useValidation.js.map +1 -1
- package/FieldGroup/index.js +2 -0
- package/FieldGroup/index.js.map +1 -1
- package/FullHeight/FullHeight.js +1 -0
- package/FullHeight/FullHeight.js.map +1 -1
- package/NumberField/NumberField.js +3 -0
- package/NumberField/NumberField.js.map +1 -1
- package/Portal/Portal.js +8 -0
- package/Portal/Portal.js.map +1 -1
- package/RadioButton/RadioButtonGroup.js +1 -0
- package/RadioButton/RadioButtonGroup.js.map +1 -1
- package/SelectField/SelectField.js +10 -6
- package/SelectField/SelectField.js.map +1 -1
- package/Table/useTable.js +1 -0
- package/Table/useTable.js.map +1 -1
- package/Tooltip/Tooltip.js +5 -4
- package/Tooltip/Tooltip.js.map +1 -1
- package/Typography/index.js +20 -17
- package/Typography/index.js.map +1 -1
- package/cjs/Calendar/CalendarDay.js +4 -4
- package/cjs/Calendar/CalendarDay.js.map +1 -1
- package/cjs/FieldBase/useValidation.js +11 -0
- package/cjs/FieldBase/useValidation.js.map +1 -1
- package/cjs/FieldGroup/index.js +2 -0
- package/cjs/FieldGroup/index.js.map +1 -1
- package/cjs/FullHeight/FullHeight.js +1 -0
- package/cjs/FullHeight/FullHeight.js.map +1 -1
- package/cjs/NumberField/NumberField.js +3 -0
- package/cjs/NumberField/NumberField.js.map +1 -1
- package/cjs/Portal/Portal.js +8 -0
- package/cjs/Portal/Portal.js.map +1 -1
- package/cjs/RadioButton/RadioButtonGroup.js +1 -0
- package/cjs/RadioButton/RadioButtonGroup.js.map +1 -1
- package/cjs/SelectField/SelectField.js +10 -6
- package/cjs/SelectField/SelectField.js.map +1 -1
- package/cjs/Table/useTable.js +1 -0
- package/cjs/Table/useTable.js.map +1 -1
- package/cjs/Tooltip/Tooltip.js +5 -4
- package/cjs/Tooltip/Tooltip.js.map +1 -1
- package/cjs/Typography/index.js +20 -17
- package/cjs/Typography/index.js.map +1 -1
- package/cjs/hooks/useInputValue.js +3 -0
- package/cjs/hooks/useInputValue.js.map +1 -1
- package/cjs/hooks/useStateWithDeps.js +2 -0
- package/cjs/hooks/useStateWithDeps.js.map +1 -1
- package/cjs/hooks/useWindowResize.js +1 -0
- package/cjs/hooks/useWindowResize.js.map +1 -1
- package/esm/Calendar/CalendarDay.js +4 -4
- package/esm/Calendar/CalendarDay.js.map +1 -1
- package/esm/FieldBase/useValidation.js +11 -0
- package/esm/FieldBase/useValidation.js.map +1 -1
- package/esm/FieldGroup/index.js +2 -0
- package/esm/FieldGroup/index.js.map +1 -1
- package/esm/FullHeight/FullHeight.js +1 -0
- package/esm/FullHeight/FullHeight.js.map +1 -1
- package/esm/NumberField/NumberField.js +3 -0
- package/esm/NumberField/NumberField.js.map +1 -1
- package/esm/Portal/Portal.js +8 -0
- package/esm/Portal/Portal.js.map +1 -1
- package/esm/RadioButton/RadioButtonGroup.js +1 -0
- package/esm/RadioButton/RadioButtonGroup.js.map +1 -1
- package/esm/SelectField/SelectField.js +10 -6
- package/esm/SelectField/SelectField.js.map +1 -1
- package/esm/Table/useTable.js +1 -0
- package/esm/Table/useTable.js.map +1 -1
- package/esm/Tooltip/Tooltip.js +5 -4
- package/esm/Tooltip/Tooltip.js.map +1 -1
- package/esm/Typography/index.js +20 -17
- package/esm/Typography/index.js.map +1 -1
- package/esm/hooks/useInputValue.js +3 -0
- package/esm/hooks/useInputValue.js.map +1 -1
- package/esm/hooks/useStateWithDeps.js +2 -0
- package/esm/hooks/useStateWithDeps.js.map +1 -1
- package/esm/hooks/useWindowResize.js +1 -0
- package/esm/hooks/useWindowResize.js.map +1 -1
- package/hooks/useInputValue.js +3 -0
- package/hooks/useInputValue.js.map +1 -1
- package/hooks/useStateWithDeps.js +2 -0
- package/hooks/useStateWithDeps.js.map +1 -1
- package/hooks/useWindowResize.js +1 -0
- package/hooks/useWindowResize.js.map +1 -1
- package/package.json +1 -1
|
@@ -68,7 +68,7 @@ var _ref2 = process.env.NODE_ENV === "production" ? {
|
|
|
68
68
|
styles: "transform:rotateX(180deg)"
|
|
69
69
|
} : {
|
|
70
70
|
name: "90i0qq-SelectInnerSpinButton",
|
|
71
|
-
styles: "transform:rotateX(180deg);label:SelectInnerSpinButton;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEdlIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBzZWxlY3RlZE9wdGlvbnNDYWNoZS5jdXJyZW50Py5maW5kKFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICkgfHwgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKVxuICAgICk/LmxhYmVsO1xuICB9LCBbb3B0aW9ucywgdmFsdWVdKTtcblxuICBjb25zdCBsaXN0UmVmID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VPbkNsaWNrT3V0c2lkZShbcmVmLCBsaXN0UmVmXSwgKCkgPT4ge1xuICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIHNldFF1ZXJ5KFwiXCIpO1xuICB9KTtcblxuICBjb25zdCBwc2V1ZG9JbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgcHNldWRvSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0UmVmLCBwc2V1ZG9JbnB1dFJlZik7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0SGFzVmFsdWVSZWYsIG9yaWdpbmFsSW5wdXRSZWYpO1xuXG4gIGNvbnN0IHVwZGF0ZVZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogVCkgPT4ge1xuICAgICAgb25DaGFuZ2U/LihvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICBzZXRWYWx1ZShvcHRpb24udmFsdWUpO1xuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCA9IG9wdGlvbnM7XG4gICAgICBzZXRRdWVyeShcIlwiKTtcbiAgICAgIGlmIChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2hDaGFuZ2VFdmVudChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQsIG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIG9wdGlvbnMsIHNldFZhbHVlXSxcbiAgKTtcblxuICBjb25zdCByZXNldFZhbHVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICBjb25zdCBvcHRpb24gPVxuICAgICAgICBvcHRpb25zPy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdW5kZWZpbmVkKSA/P1xuICAgICAgICAoeyB2YWx1ZTogdW5kZWZpbmVkLCBsYWJlbDogXCJcIiB9IGFzIFQpO1xuICAgICAgb25DaGFuZ2UodW5kZWZpbmVkLCBvcHRpb24pO1xuICAgIH1cbiAgfSwgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0pO1xuXG4gIGNvbnN0IFt0b3VjaGVkLCBpbnB1dFByb3BzXSA9IHVzZURpdGVjdElucHV0VG91Y2hlZChvbkZvY3VzKTtcblxuICBjb25zdCBwb3BwZXJPcHRpb25zOiBQYXJ0aWFsPFBvcHBlcmpzT3B0aW9ucz4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgIGRpc2FibGVQb3J0YWxcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgbmFtZTogXCJjb21wdXRlU3R5bGVzXCIsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICByb3VuZE9mZnNldHM6ICh7IHkgfTogeyB5OiBudW1iZXIgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICB5OiBNYXRoLnJvdW5kKHkpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInNhbWVXaWR0aFwiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgcGhhc2U6IFwiYmVmb3JlV3JpdGVcIixcbiAgICAgICAgICByZXF1aXJlczogW1wiY29tcHV0ZVN0eWxlc1wiXSxcbiAgICAgICAgICBmbjogKHsgc3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuc3R5bGVzLnBvcHBlci53aWR0aCA9IGAke3N0YXRlLnJlY3RzLnJlZmVyZW5jZS53aWR0aH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlZmZlY3Q6ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmVsZW1lbnRzLnBvcHBlci5zdHlsZS53aWR0aCA9IGAke1xuICAgICAgICAgICAgICAoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9LCBbZGlzYWJsZVBvcnRhbF0pO1xuXG4gIGNvbnN0IGludGVybmFsSW5wdXRJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IGlucHV0SWQgPSBpZCA/PyBpbnRlcm5hbElucHV0SWQ7XG5cbiAgLy8gQXV0byBmaWxs44Gr44KI44Gj44Gm5YCk44GM5b6M44GL44KJ5pu05paw44GV44KM44KL44GT44Go44KS6Ziy44GQXG4gIGNvbnN0IFthdXRvRmlsbFByZXZlbnRpb25LZXksIHVwZGF0ZUF1dG9GaWxsUHJldmVudGlvbktleV0gPSB1c2VSZWR1Y2VyKFxuICAgIChwcmV2OiBudW1iZXIpID0+IHByZXYgKyAxLFxuICAgIDAsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9ybUNvbnRyb2wgc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7bGFiZWwgPyAoXG4gICAgICAgIDxJbnB1dExhYmVsXG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9JbnB1dExhYmVsPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17b3JpZ2luYWxJbnB1dFJlZnN9XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPXtvcmlnaW5hbElucHV0VGVzdElkfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIGtleT17YCR7dmFsdWV9LSR7YXV0b0ZpbGxQcmV2ZW50aW9uS2V5fWB9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgb25JbnB1dD17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgLy8g6YG45oqe6IKi44GM6YG45oqe44GV44KM44Gm44GE44Gq44GE54q25oWL44Gn44CB5YCk44Gr6YG45oqe6IKi44Go5LiA6Ie044GZ44KL44KC44Gu44GM44GC44KL5aC05ZCI44CB44Gd44Gu5YCk44Gr5pu05paw44GZ44KLXG4gICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyDkuIDoh7TjgZnjgovpgbjmip7ogqLjgYzjgarjgYTloLTlkIjjgIFBdXRvIGZpbGzjgYzpgannlKjjgZXjgozjgovjgajlm7DjgovjgZ/jgoHnhKHlirnljJbjgZnjgotcbiAgICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8g44GT44GuaW5wdXTopoHntKDjga7lgKTjgadvbklucHV044GM55m654Gr44GZ44KL44Kx44O844K544GvQXV0byBmaWxs44Gr44KI44KL5aC05ZCI44Gu44G/44CB6YG45oqe6IKi44Gu6YG45oqe44Gn44Gv55m654Gr44GX44Gq44GE44CCXG4gICAgICAgICAgICAgIC8vIOOBk+OBk+OBp2tleeOCkuabtOaWsOOBmeOCi+OBk+OBqOOBp2F1dG8gZmlsbOOBq+OCiOOCi+WApOOBruS4iuabuOOBjeOCkuOAgeOBleOCieOBq+S4iuabuOOBjeOBp+OBjeOCi+OAglxuICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICBzcGVsbENoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgLz5cbiAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG5cbiAgICAgIDxkaXYgcmVmPXtyZWZ9PlxuICAgICAgICA8U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgdmFsdWU9eyFxdWVyeSA/IGRpc3BsYXlWYWx1ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxJbnB1dEJhc2VcbiAgICAgICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICAgICAgcmVuZGVySW5wdXRXcmFwcGVyPXtTZWxlY3RGaWVsZElucHV0V3JhcHBlcn1cbiAgICAgICAgICAgIHJlZj17cHNldWRvSW5wdXRSZWZzfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e3BzZXVkb0lucHV0VGVzdElkfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgIGF1dG9DYXBpdGFsaXplPVwibm9uZVwiXG4gICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b0NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHsga2V5IH0gPSBldmVudDtcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJEZWxldGVcIiB8fCBrZXkgPT09IFwiQmFja3NwYWNlXCIpIHtcbiAgICAgICAgICAgICAgICBzZXRRdWVyeSgocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHByZXYgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gbGlzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgbnVsbCwgbmV4dEl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgdmFsdWUgfHxcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dCB8fFxuICAgICAgICAgICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICApKSA/IHVuZGVmaW5lZCA6IChcbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvbiAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbmRBZG9ybm1lbnQ9e1xuICAgICAgICAgICAgICA8U2VsZWN0SW5uZXJTcGluQnV0dG9uXG4gICAgICAgICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRPcGVuKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBzZXVkb0lucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEtaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgICAgIHZhbHVlPXtxdWVyeX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dFxuICAgICAgICAgICAgICAgID8gLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0c3VyaS10ZWNoL21hdHN1cmktdWkvaXNzdWVzLzI0NTFcbiAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICgpID0+IHt9XG4gICAgICAgICAgICAgICAgOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBzZXRRdWVyeSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLXRvdWNoZWQ9e2lucHV0UHJvcHNbXCJkYXRhLXRvdWNoZWRcIl19XG4gICAgICAgICAgICBvbkZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaW5wdXRQcm9wcy5vbkZvY3VzKGV2ZW50KTtcbiAgICAgICAgICAgICAgaWYgKHJlYWRPbmx5ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGNzcz17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgICAgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TZWxlY3RGaWVsZElucHV0V3JhcHBlckNvbnRleHQuUHJvdmlkZXI+XG5cbiAgICAgICAgPFBvcHBlclxuICAgICAgICAgIGRpc2FibGVQb3J0YWw9e2Rpc2FibGVQb3J0YWx9XG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */",
|
|
71
|
+
styles: "transform:rotateX(180deg);label:SelectInnerSpinButton;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEdlIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgICByZXR1cm4gKFxuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudD8uZmluZChcbiAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICApIHx8IG9wdGlvbnM/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSlcbiAgICApPy5sYWJlbDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgfSwgW29wdGlvbnMsIHZhbHVlXSk7XG5cbiAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZjxIVE1MVUxpc3RFbGVtZW50PihudWxsKTtcbiAgdXNlT25DbGlja091dHNpZGUoW3JlZiwgbGlzdFJlZl0sICgpID0+IHtcbiAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICBzZXRRdWVyeShcIlwiKTtcbiAgfSk7XG5cbiAgY29uc3QgcHNldWRvSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHBzZXVkb0lucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dFJlZiwgcHNldWRvSW5wdXRSZWYpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dEhhc1ZhbHVlUmVmLCBvcmlnaW5hbElucHV0UmVmKTtcblxuICBjb25zdCB1cGRhdGVWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChvcHRpb246IFQpID0+IHtcbiAgICAgIG9uQ2hhbmdlPy4ob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICAgIHNlbGVjdGVkT3B0aW9uc0NhY2hlLmN1cnJlbnQgPSBvcHRpb25zO1xuICAgICAgc2V0UXVlcnkoXCJcIik7XG4gICAgICBpZiAob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGRpc3BhdGNoQ2hhbmdlRXZlbnQob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50LCBvcHRpb24udmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0sXG4gICk7XG5cbiAgY29uc3QgcmVzZXRWYWx1ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgY29uc3Qgb3B0aW9uID1cbiAgICAgICAgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCkgPz9cbiAgICAgICAgKHsgdmFsdWU6IHVuZGVmaW5lZCwgbGFiZWw6IFwiXCIgfSBhcyBUKTtcbiAgICAgIG9uQ2hhbmdlKHVuZGVmaW5lZCwgb3B0aW9uKTtcbiAgICB9XG4gIH0sIFtvbkNoYW5nZSwgb3B0aW9ucywgc2V0VmFsdWVdKTtcblxuICBjb25zdCBbdG91Y2hlZCwgaW5wdXRQcm9wc10gPSB1c2VEaXRlY3RJbnB1dFRvdWNoZWQob25Gb2N1cyk7XG5cbiAgY29uc3QgcG9wcGVyT3B0aW9uczogUGFydGlhbDxQb3BwZXJqc09wdGlvbnM+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICBkaXNhYmxlUG9ydGFsXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiY29tcHV0ZVN0eWxlc1wiLFxuICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgcm91bmRPZmZzZXRzOiAoeyB5IH06IHsgeTogbnVtYmVyIH0pID0+ICh7XG4gICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgeTogTWF0aC5yb3VuZCh5KSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJzYW1lV2lkdGhcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHBoYXNlOiBcImJlZm9yZVdyaXRlXCIsXG4gICAgICAgICAgcmVxdWlyZXM6IFtcImNvbXB1dGVTdHlsZXNcIl0sXG4gICAgICAgICAgZm46ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLnN0eWxlcy5wb3BwZXIud2lkdGggPSBgJHtzdGF0ZS5yZWN0cy5yZWZlcmVuY2Uud2lkdGh9cHhgO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZWZmZWN0OiAoeyBzdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5lbGVtZW50cy5wb3BwZXIuc3R5bGUud2lkdGggPSBgJHtcbiAgICAgICAgICAgICAgKHN0YXRlLmVsZW1lbnRzLnJlZmVyZW5jZSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgIH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfSwgW2Rpc2FibGVQb3J0YWxdKTtcblxuICBjb25zdCBpbnRlcm5hbElucHV0SWQgPSB1c2VJZCgpO1xuICBjb25zdCBpbnB1dElkID0gaWQgPz8gaW50ZXJuYWxJbnB1dElkO1xuXG4gIC8vIEF1dG8gZmlsbOOBq+OCiOOBo+OBpuWApOOBjOW+jOOBi+OCieabtOaWsOOBleOCjOOCi+OBk+OBqOOCkumYsuOBkFxuICBjb25zdCBbYXV0b0ZpbGxQcmV2ZW50aW9uS2V5LCB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXldID0gdXNlUmVkdWNlcihcbiAgICAocHJldjogbnVtYmVyKSA9PiBwcmV2ICsgMSxcbiAgICAwLFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEZvcm1Db250cm9sIHN0eWxlPXtzdHlsZX0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAge2xhYmVsID8gKFxuICAgICAgICA8SW5wdXRMYWJlbFxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgID5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvSW5wdXRMYWJlbD5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFZpc3VhbGx5SGlkZGVuPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e29yaWdpbmFsSW5wdXRSZWZzfVxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD17b3JpZ2luYWxJbnB1dFRlc3RJZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICBrZXk9e2Ake3ZhbHVlfS0ke2F1dG9GaWxsUHJldmVudGlvbktleX1gfVxuICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b0NhcGl0YWxpemU9XCJub25lXCJcbiAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgIG9uSW5wdXQ9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIC8vIOmBuOaKnuiCouOBjOmBuOaKnuOBleOCjOOBpuOBhOOBquOBhOeKtuaFi+OBp+OAgeWApOOBq+mBuOaKnuiCouOBqOS4gOiHtOOBmeOCi+OCguOBruOBjOOBguOCi+WgtOWQiOOAgeOBneOBruWApOOBq+abtOaWsOOBmeOCi1xuICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zPy5maW5kKFxuICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8g5LiA6Ie044GZ44KL6YG45oqe6IKi44GM44Gq44GE5aC05ZCI44CBQXV0byBmaWxs44GM6YGp55So44GV44KM44KL44Go5Zuw44KL44Gf44KB54Sh5Yq55YyW44GZ44KLXG4gICAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIOOBk+OBrmlucHV06KaB57Sg44Gu5YCk44Gnb25JbnB1dOOBjOeZuueBq+OBmeOCi+OCseODvOOCueOBr0F1dG8gZmlsbOOBq+OCiOOCi+WgtOWQiOOBruOBv+OAgemBuOaKnuiCouOBrumBuOaKnuOBp+OBr+eZuueBq+OBl+OBquOBhOOAglxuICAgICAgICAgICAgICAvLyDjgZPjgZPjgadrZXnjgpLmm7TmlrDjgZnjgovjgZPjgajjgadhdXRvIGZpbGzjgavjgojjgovlgKTjga7kuIrmm7jjgY3jgpLjgIHjgZXjgonjgavkuIrmm7jjgY3jgafjgY3jgovjgIJcbiAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhdXRvQ29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIC8+XG4gICAgICA8L1Zpc3VhbGx5SGlkZGVuPlxuXG4gICAgICA8ZGl2IHJlZj17cmVmfT5cbiAgICAgICAgPFNlbGVjdEZpZWxkSW5wdXRXcmFwcGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgIHZhbHVlPXshcXVlcnkgPyBkaXNwbGF5VmFsdWUgOiB1bmRlZmluZWR9XG4gICAgICAgID5cbiAgICAgICAgICA8SW5wdXRCYXNlXG4gICAgICAgICAgICBpZD17aW5wdXRJZH1cbiAgICAgICAgICAgIHJlbmRlcklucHV0V3JhcHBlcj17U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJ9XG4gICAgICAgICAgICByZWY9e3BzZXVkb0lucHV0UmVmc31cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtwc2V1ZG9JbnB1dFRlc3RJZH1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgIHNwZWxsQ2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XG4gICAgICAgICAgICAgIGlmIChrZXkgPT09IFwiRGVsZXRlXCIgfHwga2V5ID09PSBcIkJhY2tzcGFjZVwiKSB7XG4gICAgICAgICAgICAgICAgc2V0UXVlcnkoKHByZXYpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChwcmV2ID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IGxpc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgICAgICAgbW92ZUZvY3VzKGxpc3QsIG51bGwsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBzdGFydEFkb3JubWVudD17XG4gICAgICAgICAgICAgIHZhbHVlIHx8XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXQgfHxcbiAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5zb21lKFxuICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgKSkgPyB1bmRlZmluZWQgOiAoXG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb24gLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kQWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgPFNlbGVjdElubmVyU3BpbkJ1dHRvblxuICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0T3BlbigocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLWludmFsaWQ9e2ludmFsaWR9XG4gICAgICAgICAgICB2YWx1ZT17cXVlcnl9XG4gICAgICAgICAgICBvbkNoYW5nZT17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hdHN1cmktdGVjaC9tYXRzdXJpLXVpL2lzc3Vlcy8yNDUxXG4gICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICAgICAgICAgIDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2V0UXVlcnkodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS10b3VjaGVkPXtpbnB1dFByb3BzW1wiZGF0YS10b3VjaGVkXCJdfVxuICAgICAgICAgICAgb25Gb2N1cz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlucHV0UHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICAgICAgICAgIGlmIChyZWFkT25seSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjc3M9e1xuICAgICAgICAgICAgICBkaXNhYmxlZElucHV0XG4gICAgICAgICAgICAgICAgPyBjc3NgXG4gICAgICAgICAgICAgICAgICAgIGNhcmV0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyPlxuXG4gICAgICAgIDxQb3BwZXJcbiAgICAgICAgICBkaXNhYmxlUG9ydGFsPXtkaXNhYmxlUG9ydGFsfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9yZWZzXG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */",
|
|
72
72
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
73
73
|
};
|
|
74
74
|
const SelectInnerSpinButton = ({
|
|
@@ -79,7 +79,7 @@ const SelectInnerSpinButton = ({
|
|
|
79
79
|
return (0, _react.jsx)(_Triangle.Triangle, {
|
|
80
80
|
onClick: onClick,
|
|
81
81
|
"data-testid": "SelectFieldSpinButton",
|
|
82
|
-
css: [/*#__PURE__*/(0, _react.css)("font-size:", theme.typography.body.fontSize, "px;transition:", theme.transitions.duration.shorter, " ", theme.transitions.easing.easeInOut, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:SelectInnerSpinButton;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0dXIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBzZWxlY3RlZE9wdGlvbnNDYWNoZS5jdXJyZW50Py5maW5kKFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICkgfHwgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKVxuICAgICk/LmxhYmVsO1xuICB9LCBbb3B0aW9ucywgdmFsdWVdKTtcblxuICBjb25zdCBsaXN0UmVmID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VPbkNsaWNrT3V0c2lkZShbcmVmLCBsaXN0UmVmXSwgKCkgPT4ge1xuICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIHNldFF1ZXJ5KFwiXCIpO1xuICB9KTtcblxuICBjb25zdCBwc2V1ZG9JbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgcHNldWRvSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0UmVmLCBwc2V1ZG9JbnB1dFJlZik7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0SGFzVmFsdWVSZWYsIG9yaWdpbmFsSW5wdXRSZWYpO1xuXG4gIGNvbnN0IHVwZGF0ZVZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogVCkgPT4ge1xuICAgICAgb25DaGFuZ2U/LihvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICBzZXRWYWx1ZShvcHRpb24udmFsdWUpO1xuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCA9IG9wdGlvbnM7XG4gICAgICBzZXRRdWVyeShcIlwiKTtcbiAgICAgIGlmIChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2hDaGFuZ2VFdmVudChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQsIG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIG9wdGlvbnMsIHNldFZhbHVlXSxcbiAgKTtcblxuICBjb25zdCByZXNldFZhbHVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICBjb25zdCBvcHRpb24gPVxuICAgICAgICBvcHRpb25zPy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdW5kZWZpbmVkKSA/P1xuICAgICAgICAoeyB2YWx1ZTogdW5kZWZpbmVkLCBsYWJlbDogXCJcIiB9IGFzIFQpO1xuICAgICAgb25DaGFuZ2UodW5kZWZpbmVkLCBvcHRpb24pO1xuICAgIH1cbiAgfSwgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0pO1xuXG4gIGNvbnN0IFt0b3VjaGVkLCBpbnB1dFByb3BzXSA9IHVzZURpdGVjdElucHV0VG91Y2hlZChvbkZvY3VzKTtcblxuICBjb25zdCBwb3BwZXJPcHRpb25zOiBQYXJ0aWFsPFBvcHBlcmpzT3B0aW9ucz4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgIGRpc2FibGVQb3J0YWxcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgbmFtZTogXCJjb21wdXRlU3R5bGVzXCIsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICByb3VuZE9mZnNldHM6ICh7IHkgfTogeyB5OiBudW1iZXIgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICB5OiBNYXRoLnJvdW5kKHkpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInNhbWVXaWR0aFwiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgcGhhc2U6IFwiYmVmb3JlV3JpdGVcIixcbiAgICAgICAgICByZXF1aXJlczogW1wiY29tcHV0ZVN0eWxlc1wiXSxcbiAgICAgICAgICBmbjogKHsgc3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuc3R5bGVzLnBvcHBlci53aWR0aCA9IGAke3N0YXRlLnJlY3RzLnJlZmVyZW5jZS53aWR0aH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlZmZlY3Q6ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmVsZW1lbnRzLnBvcHBlci5zdHlsZS53aWR0aCA9IGAke1xuICAgICAgICAgICAgICAoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9LCBbZGlzYWJsZVBvcnRhbF0pO1xuXG4gIGNvbnN0IGludGVybmFsSW5wdXRJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IGlucHV0SWQgPSBpZCA/PyBpbnRlcm5hbElucHV0SWQ7XG5cbiAgLy8gQXV0byBmaWxs44Gr44KI44Gj44Gm5YCk44GM5b6M44GL44KJ5pu05paw44GV44KM44KL44GT44Go44KS6Ziy44GQXG4gIGNvbnN0IFthdXRvRmlsbFByZXZlbnRpb25LZXksIHVwZGF0ZUF1dG9GaWxsUHJldmVudGlvbktleV0gPSB1c2VSZWR1Y2VyKFxuICAgIChwcmV2OiBudW1iZXIpID0+IHByZXYgKyAxLFxuICAgIDAsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9ybUNvbnRyb2wgc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7bGFiZWwgPyAoXG4gICAgICAgIDxJbnB1dExhYmVsXG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9JbnB1dExhYmVsPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17b3JpZ2luYWxJbnB1dFJlZnN9XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPXtvcmlnaW5hbElucHV0VGVzdElkfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIGtleT17YCR7dmFsdWV9LSR7YXV0b0ZpbGxQcmV2ZW50aW9uS2V5fWB9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgb25JbnB1dD17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgLy8g6YG45oqe6IKi44GM6YG45oqe44GV44KM44Gm44GE44Gq44GE54q25oWL44Gn44CB5YCk44Gr6YG45oqe6IKi44Go5LiA6Ie044GZ44KL44KC44Gu44GM44GC44KL5aC05ZCI44CB44Gd44Gu5YCk44Gr5pu05paw44GZ44KLXG4gICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyDkuIDoh7TjgZnjgovpgbjmip7ogqLjgYzjgarjgYTloLTlkIjjgIFBdXRvIGZpbGzjgYzpgannlKjjgZXjgozjgovjgajlm7DjgovjgZ/jgoHnhKHlirnljJbjgZnjgotcbiAgICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8g44GT44GuaW5wdXTopoHntKDjga7lgKTjgadvbklucHV044GM55m654Gr44GZ44KL44Kx44O844K544GvQXV0byBmaWxs44Gr44KI44KL5aC05ZCI44Gu44G/44CB6YG45oqe6IKi44Gu6YG45oqe44Gn44Gv55m654Gr44GX44Gq44GE44CCXG4gICAgICAgICAgICAgIC8vIOOBk+OBk+OBp2tleeOCkuabtOaWsOOBmeOCi+OBk+OBqOOBp2F1dG8gZmlsbOOBq+OCiOOCi+WApOOBruS4iuabuOOBjeOCkuOAgeOBleOCieOBq+S4iuabuOOBjeOBp+OBjeOCi+OAglxuICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICBzcGVsbENoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgLz5cbiAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG5cbiAgICAgIDxkaXYgcmVmPXtyZWZ9PlxuICAgICAgICA8U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgdmFsdWU9eyFxdWVyeSA/IGRpc3BsYXlWYWx1ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxJbnB1dEJhc2VcbiAgICAgICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICAgICAgcmVuZGVySW5wdXRXcmFwcGVyPXtTZWxlY3RGaWVsZElucHV0V3JhcHBlcn1cbiAgICAgICAgICAgIHJlZj17cHNldWRvSW5wdXRSZWZzfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e3BzZXVkb0lucHV0VGVzdElkfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgIGF1dG9DYXBpdGFsaXplPVwibm9uZVwiXG4gICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b0NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHsga2V5IH0gPSBldmVudDtcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJEZWxldGVcIiB8fCBrZXkgPT09IFwiQmFja3NwYWNlXCIpIHtcbiAgICAgICAgICAgICAgICBzZXRRdWVyeSgocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHByZXYgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gbGlzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgbnVsbCwgbmV4dEl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgdmFsdWUgfHxcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dCB8fFxuICAgICAgICAgICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICApKSA/IHVuZGVmaW5lZCA6IChcbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvbiAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbmRBZG9ybm1lbnQ9e1xuICAgICAgICAgICAgICA8U2VsZWN0SW5uZXJTcGluQnV0dG9uXG4gICAgICAgICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRPcGVuKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBzZXVkb0lucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEtaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgICAgIHZhbHVlPXtxdWVyeX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dFxuICAgICAgICAgICAgICAgID8gLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0c3VyaS10ZWNoL21hdHN1cmktdWkvaXNzdWVzLzI0NTFcbiAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICgpID0+IHt9XG4gICAgICAgICAgICAgICAgOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBzZXRRdWVyeSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLXRvdWNoZWQ9e2lucHV0UHJvcHNbXCJkYXRhLXRvdWNoZWRcIl19XG4gICAgICAgICAgICBvbkZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaW5wdXRQcm9wcy5vbkZvY3VzKGV2ZW50KTtcbiAgICAgICAgICAgICAgaWYgKHJlYWRPbmx5ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGNzcz17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgICAgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TZWxlY3RGaWVsZElucHV0V3JhcHBlckNvbnRleHQuUHJvdmlkZXI+XG5cbiAgICAgICAgPFBvcHBlclxuICAgICAgICAgIGRpc2FibGVQb3J0YWw9e2Rpc2FibGVQb3J0YWx9XG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */"), open ? _ref2 : null, process.env.NODE_ENV === "production" ? "" : ";label:SelectInnerSpinButton;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUdNIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBzZWxlY3RlZE9wdGlvbnNDYWNoZS5jdXJyZW50Py5maW5kKFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICkgfHwgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKVxuICAgICk/LmxhYmVsO1xuICB9LCBbb3B0aW9ucywgdmFsdWVdKTtcblxuICBjb25zdCBsaXN0UmVmID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VPbkNsaWNrT3V0c2lkZShbcmVmLCBsaXN0UmVmXSwgKCkgPT4ge1xuICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIHNldFF1ZXJ5KFwiXCIpO1xuICB9KTtcblxuICBjb25zdCBwc2V1ZG9JbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgcHNldWRvSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0UmVmLCBwc2V1ZG9JbnB1dFJlZik7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0SGFzVmFsdWVSZWYsIG9yaWdpbmFsSW5wdXRSZWYpO1xuXG4gIGNvbnN0IHVwZGF0ZVZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogVCkgPT4ge1xuICAgICAgb25DaGFuZ2U/LihvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICBzZXRWYWx1ZShvcHRpb24udmFsdWUpO1xuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCA9IG9wdGlvbnM7XG4gICAgICBzZXRRdWVyeShcIlwiKTtcbiAgICAgIGlmIChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2hDaGFuZ2VFdmVudChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQsIG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIG9wdGlvbnMsIHNldFZhbHVlXSxcbiAgKTtcblxuICBjb25zdCByZXNldFZhbHVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICBjb25zdCBvcHRpb24gPVxuICAgICAgICBvcHRpb25zPy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdW5kZWZpbmVkKSA/P1xuICAgICAgICAoeyB2YWx1ZTogdW5kZWZpbmVkLCBsYWJlbDogXCJcIiB9IGFzIFQpO1xuICAgICAgb25DaGFuZ2UodW5kZWZpbmVkLCBvcHRpb24pO1xuICAgIH1cbiAgfSwgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0pO1xuXG4gIGNvbnN0IFt0b3VjaGVkLCBpbnB1dFByb3BzXSA9IHVzZURpdGVjdElucHV0VG91Y2hlZChvbkZvY3VzKTtcblxuICBjb25zdCBwb3BwZXJPcHRpb25zOiBQYXJ0aWFsPFBvcHBlcmpzT3B0aW9ucz4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgIGRpc2FibGVQb3J0YWxcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgbmFtZTogXCJjb21wdXRlU3R5bGVzXCIsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICByb3VuZE9mZnNldHM6ICh7IHkgfTogeyB5OiBudW1iZXIgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICB5OiBNYXRoLnJvdW5kKHkpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInNhbWVXaWR0aFwiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgcGhhc2U6IFwiYmVmb3JlV3JpdGVcIixcbiAgICAgICAgICByZXF1aXJlczogW1wiY29tcHV0ZVN0eWxlc1wiXSxcbiAgICAgICAgICBmbjogKHsgc3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuc3R5bGVzLnBvcHBlci53aWR0aCA9IGAke3N0YXRlLnJlY3RzLnJlZmVyZW5jZS53aWR0aH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlZmZlY3Q6ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmVsZW1lbnRzLnBvcHBlci5zdHlsZS53aWR0aCA9IGAke1xuICAgICAgICAgICAgICAoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9LCBbZGlzYWJsZVBvcnRhbF0pO1xuXG4gIGNvbnN0IGludGVybmFsSW5wdXRJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IGlucHV0SWQgPSBpZCA/PyBpbnRlcm5hbElucHV0SWQ7XG5cbiAgLy8gQXV0byBmaWxs44Gr44KI44Gj44Gm5YCk44GM5b6M44GL44KJ5pu05paw44GV44KM44KL44GT44Go44KS6Ziy44GQXG4gIGNvbnN0IFthdXRvRmlsbFByZXZlbnRpb25LZXksIHVwZGF0ZUF1dG9GaWxsUHJldmVudGlvbktleV0gPSB1c2VSZWR1Y2VyKFxuICAgIChwcmV2OiBudW1iZXIpID0+IHByZXYgKyAxLFxuICAgIDAsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9ybUNvbnRyb2wgc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7bGFiZWwgPyAoXG4gICAgICAgIDxJbnB1dExhYmVsXG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9JbnB1dExhYmVsPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17b3JpZ2luYWxJbnB1dFJlZnN9XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPXtvcmlnaW5hbElucHV0VGVzdElkfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIGtleT17YCR7dmFsdWV9LSR7YXV0b0ZpbGxQcmV2ZW50aW9uS2V5fWB9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgb25JbnB1dD17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgLy8g6YG45oqe6IKi44GM6YG45oqe44GV44KM44Gm44GE44Gq44GE54q25oWL44Gn44CB5YCk44Gr6YG45oqe6IKi44Go5LiA6Ie044GZ44KL44KC44Gu44GM44GC44KL5aC05ZCI44CB44Gd44Gu5YCk44Gr5pu05paw44GZ44KLXG4gICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyDkuIDoh7TjgZnjgovpgbjmip7ogqLjgYzjgarjgYTloLTlkIjjgIFBdXRvIGZpbGzjgYzpgannlKjjgZXjgozjgovjgajlm7DjgovjgZ/jgoHnhKHlirnljJbjgZnjgotcbiAgICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8g44GT44GuaW5wdXTopoHntKDjga7lgKTjgadvbklucHV044GM55m654Gr44GZ44KL44Kx44O844K544GvQXV0byBmaWxs44Gr44KI44KL5aC05ZCI44Gu44G/44CB6YG45oqe6IKi44Gu6YG45oqe44Gn44Gv55m654Gr44GX44Gq44GE44CCXG4gICAgICAgICAgICAgIC8vIOOBk+OBk+OBp2tleeOCkuabtOaWsOOBmeOCi+OBk+OBqOOBp2F1dG8gZmlsbOOBq+OCiOOCi+WApOOBruS4iuabuOOBjeOCkuOAgeOBleOCieOBq+S4iuabuOOBjeOBp+OBjeOCi+OAglxuICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICBzcGVsbENoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgLz5cbiAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG5cbiAgICAgIDxkaXYgcmVmPXtyZWZ9PlxuICAgICAgICA8U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgdmFsdWU9eyFxdWVyeSA/IGRpc3BsYXlWYWx1ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxJbnB1dEJhc2VcbiAgICAgICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICAgICAgcmVuZGVySW5wdXRXcmFwcGVyPXtTZWxlY3RGaWVsZElucHV0V3JhcHBlcn1cbiAgICAgICAgICAgIHJlZj17cHNldWRvSW5wdXRSZWZzfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e3BzZXVkb0lucHV0VGVzdElkfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgIGF1dG9DYXBpdGFsaXplPVwibm9uZVwiXG4gICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b0NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHsga2V5IH0gPSBldmVudDtcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJEZWxldGVcIiB8fCBrZXkgPT09IFwiQmFja3NwYWNlXCIpIHtcbiAgICAgICAgICAgICAgICBzZXRRdWVyeSgocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHByZXYgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gbGlzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgbnVsbCwgbmV4dEl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgdmFsdWUgfHxcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dCB8fFxuICAgICAgICAgICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICApKSA/IHVuZGVmaW5lZCA6IChcbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvbiAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbmRBZG9ybm1lbnQ9e1xuICAgICAgICAgICAgICA8U2VsZWN0SW5uZXJTcGluQnV0dG9uXG4gICAgICAgICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRPcGVuKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBzZXVkb0lucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEtaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgICAgIHZhbHVlPXtxdWVyeX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dFxuICAgICAgICAgICAgICAgID8gLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0c3VyaS10ZWNoL21hdHN1cmktdWkvaXNzdWVzLzI0NTFcbiAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICgpID0+IHt9XG4gICAgICAgICAgICAgICAgOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBzZXRRdWVyeSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLXRvdWNoZWQ9e2lucHV0UHJvcHNbXCJkYXRhLXRvdWNoZWRcIl19XG4gICAgICAgICAgICBvbkZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaW5wdXRQcm9wcy5vbkZvY3VzKGV2ZW50KTtcbiAgICAgICAgICAgICAgaWYgKHJlYWRPbmx5ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGNzcz17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgICAgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TZWxlY3RGaWVsZElucHV0V3JhcHBlckNvbnRleHQuUHJvdmlkZXI+XG5cbiAgICAgICAgPFBvcHBlclxuICAgICAgICAgIGRpc2FibGVQb3J0YWw9e2Rpc2FibGVQb3J0YWx9XG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */"]
|
|
82
|
+
css: [/*#__PURE__*/(0, _react.css)("font-size:", theme.typography.body.fontSize, "px;transition:", theme.transitions.duration.shorter, " ", theme.transitions.easing.easeInOut, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:SelectInnerSpinButton;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0dXIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgICByZXR1cm4gKFxuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudD8uZmluZChcbiAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICApIHx8IG9wdGlvbnM/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSlcbiAgICApPy5sYWJlbDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgfSwgW29wdGlvbnMsIHZhbHVlXSk7XG5cbiAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZjxIVE1MVUxpc3RFbGVtZW50PihudWxsKTtcbiAgdXNlT25DbGlja091dHNpZGUoW3JlZiwgbGlzdFJlZl0sICgpID0+IHtcbiAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICBzZXRRdWVyeShcIlwiKTtcbiAgfSk7XG5cbiAgY29uc3QgcHNldWRvSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHBzZXVkb0lucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dFJlZiwgcHNldWRvSW5wdXRSZWYpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dEhhc1ZhbHVlUmVmLCBvcmlnaW5hbElucHV0UmVmKTtcblxuICBjb25zdCB1cGRhdGVWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChvcHRpb246IFQpID0+IHtcbiAgICAgIG9uQ2hhbmdlPy4ob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICAgIHNlbGVjdGVkT3B0aW9uc0NhY2hlLmN1cnJlbnQgPSBvcHRpb25zO1xuICAgICAgc2V0UXVlcnkoXCJcIik7XG4gICAgICBpZiAob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGRpc3BhdGNoQ2hhbmdlRXZlbnQob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50LCBvcHRpb24udmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0sXG4gICk7XG5cbiAgY29uc3QgcmVzZXRWYWx1ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgY29uc3Qgb3B0aW9uID1cbiAgICAgICAgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCkgPz9cbiAgICAgICAgKHsgdmFsdWU6IHVuZGVmaW5lZCwgbGFiZWw6IFwiXCIgfSBhcyBUKTtcbiAgICAgIG9uQ2hhbmdlKHVuZGVmaW5lZCwgb3B0aW9uKTtcbiAgICB9XG4gIH0sIFtvbkNoYW5nZSwgb3B0aW9ucywgc2V0VmFsdWVdKTtcblxuICBjb25zdCBbdG91Y2hlZCwgaW5wdXRQcm9wc10gPSB1c2VEaXRlY3RJbnB1dFRvdWNoZWQob25Gb2N1cyk7XG5cbiAgY29uc3QgcG9wcGVyT3B0aW9uczogUGFydGlhbDxQb3BwZXJqc09wdGlvbnM+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICBkaXNhYmxlUG9ydGFsXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiY29tcHV0ZVN0eWxlc1wiLFxuICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgcm91bmRPZmZzZXRzOiAoeyB5IH06IHsgeTogbnVtYmVyIH0pID0+ICh7XG4gICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgeTogTWF0aC5yb3VuZCh5KSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJzYW1lV2lkdGhcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHBoYXNlOiBcImJlZm9yZVdyaXRlXCIsXG4gICAgICAgICAgcmVxdWlyZXM6IFtcImNvbXB1dGVTdHlsZXNcIl0sXG4gICAgICAgICAgZm46ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLnN0eWxlcy5wb3BwZXIud2lkdGggPSBgJHtzdGF0ZS5yZWN0cy5yZWZlcmVuY2Uud2lkdGh9cHhgO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZWZmZWN0OiAoeyBzdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5lbGVtZW50cy5wb3BwZXIuc3R5bGUud2lkdGggPSBgJHtcbiAgICAgICAgICAgICAgKHN0YXRlLmVsZW1lbnRzLnJlZmVyZW5jZSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgIH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfSwgW2Rpc2FibGVQb3J0YWxdKTtcblxuICBjb25zdCBpbnRlcm5hbElucHV0SWQgPSB1c2VJZCgpO1xuICBjb25zdCBpbnB1dElkID0gaWQgPz8gaW50ZXJuYWxJbnB1dElkO1xuXG4gIC8vIEF1dG8gZmlsbOOBq+OCiOOBo+OBpuWApOOBjOW+jOOBi+OCieabtOaWsOOBleOCjOOCi+OBk+OBqOOCkumYsuOBkFxuICBjb25zdCBbYXV0b0ZpbGxQcmV2ZW50aW9uS2V5LCB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXldID0gdXNlUmVkdWNlcihcbiAgICAocHJldjogbnVtYmVyKSA9PiBwcmV2ICsgMSxcbiAgICAwLFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEZvcm1Db250cm9sIHN0eWxlPXtzdHlsZX0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAge2xhYmVsID8gKFxuICAgICAgICA8SW5wdXRMYWJlbFxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgID5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvSW5wdXRMYWJlbD5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFZpc3VhbGx5SGlkZGVuPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e29yaWdpbmFsSW5wdXRSZWZzfVxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD17b3JpZ2luYWxJbnB1dFRlc3RJZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICBrZXk9e2Ake3ZhbHVlfS0ke2F1dG9GaWxsUHJldmVudGlvbktleX1gfVxuICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b0NhcGl0YWxpemU9XCJub25lXCJcbiAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgIG9uSW5wdXQ9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIC8vIOmBuOaKnuiCouOBjOmBuOaKnuOBleOCjOOBpuOBhOOBquOBhOeKtuaFi+OBp+OAgeWApOOBq+mBuOaKnuiCouOBqOS4gOiHtOOBmeOCi+OCguOBruOBjOOBguOCi+WgtOWQiOOAgeOBneOBruWApOOBq+abtOaWsOOBmeOCi1xuICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zPy5maW5kKFxuICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8g5LiA6Ie044GZ44KL6YG45oqe6IKi44GM44Gq44GE5aC05ZCI44CBQXV0byBmaWxs44GM6YGp55So44GV44KM44KL44Go5Zuw44KL44Gf44KB54Sh5Yq55YyW44GZ44KLXG4gICAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIOOBk+OBrmlucHV06KaB57Sg44Gu5YCk44Gnb25JbnB1dOOBjOeZuueBq+OBmeOCi+OCseODvOOCueOBr0F1dG8gZmlsbOOBq+OCiOOCi+WgtOWQiOOBruOBv+OAgemBuOaKnuiCouOBrumBuOaKnuOBp+OBr+eZuueBq+OBl+OBquOBhOOAglxuICAgICAgICAgICAgICAvLyDjgZPjgZPjgadrZXnjgpLmm7TmlrDjgZnjgovjgZPjgajjgadhdXRvIGZpbGzjgavjgojjgovlgKTjga7kuIrmm7jjgY3jgpLjgIHjgZXjgonjgavkuIrmm7jjgY3jgafjgY3jgovjgIJcbiAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhdXRvQ29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIC8+XG4gICAgICA8L1Zpc3VhbGx5SGlkZGVuPlxuXG4gICAgICA8ZGl2IHJlZj17cmVmfT5cbiAgICAgICAgPFNlbGVjdEZpZWxkSW5wdXRXcmFwcGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgIHZhbHVlPXshcXVlcnkgPyBkaXNwbGF5VmFsdWUgOiB1bmRlZmluZWR9XG4gICAgICAgID5cbiAgICAgICAgICA8SW5wdXRCYXNlXG4gICAgICAgICAgICBpZD17aW5wdXRJZH1cbiAgICAgICAgICAgIHJlbmRlcklucHV0V3JhcHBlcj17U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJ9XG4gICAgICAgICAgICByZWY9e3BzZXVkb0lucHV0UmVmc31cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtwc2V1ZG9JbnB1dFRlc3RJZH1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgIHNwZWxsQ2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XG4gICAgICAgICAgICAgIGlmIChrZXkgPT09IFwiRGVsZXRlXCIgfHwga2V5ID09PSBcIkJhY2tzcGFjZVwiKSB7XG4gICAgICAgICAgICAgICAgc2V0UXVlcnkoKHByZXYpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChwcmV2ID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IGxpc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgICAgICAgbW92ZUZvY3VzKGxpc3QsIG51bGwsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBzdGFydEFkb3JubWVudD17XG4gICAgICAgICAgICAgIHZhbHVlIHx8XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXQgfHxcbiAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5zb21lKFxuICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgKSkgPyB1bmRlZmluZWQgOiAoXG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb24gLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kQWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgPFNlbGVjdElubmVyU3BpbkJ1dHRvblxuICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0T3BlbigocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLWludmFsaWQ9e2ludmFsaWR9XG4gICAgICAgICAgICB2YWx1ZT17cXVlcnl9XG4gICAgICAgICAgICBvbkNoYW5nZT17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hdHN1cmktdGVjaC9tYXRzdXJpLXVpL2lzc3Vlcy8yNDUxXG4gICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICAgICAgICAgIDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2V0UXVlcnkodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS10b3VjaGVkPXtpbnB1dFByb3BzW1wiZGF0YS10b3VjaGVkXCJdfVxuICAgICAgICAgICAgb25Gb2N1cz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlucHV0UHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICAgICAgICAgIGlmIChyZWFkT25seSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjc3M9e1xuICAgICAgICAgICAgICBkaXNhYmxlZElucHV0XG4gICAgICAgICAgICAgICAgPyBjc3NgXG4gICAgICAgICAgICAgICAgICAgIGNhcmV0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyPlxuXG4gICAgICAgIDxQb3BwZXJcbiAgICAgICAgICBkaXNhYmxlUG9ydGFsPXtkaXNhYmxlUG9ydGFsfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9yZWZzXG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */"), open ? _ref2 : null, process.env.NODE_ENV === "production" ? "" : ";label:SelectInnerSpinButton;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUdNIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgICByZXR1cm4gKFxuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudD8uZmluZChcbiAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICApIHx8IG9wdGlvbnM/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSlcbiAgICApPy5sYWJlbDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgfSwgW29wdGlvbnMsIHZhbHVlXSk7XG5cbiAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZjxIVE1MVUxpc3RFbGVtZW50PihudWxsKTtcbiAgdXNlT25DbGlja091dHNpZGUoW3JlZiwgbGlzdFJlZl0sICgpID0+IHtcbiAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICBzZXRRdWVyeShcIlwiKTtcbiAgfSk7XG5cbiAgY29uc3QgcHNldWRvSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHBzZXVkb0lucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dFJlZiwgcHNldWRvSW5wdXRSZWYpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dEhhc1ZhbHVlUmVmLCBvcmlnaW5hbElucHV0UmVmKTtcblxuICBjb25zdCB1cGRhdGVWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChvcHRpb246IFQpID0+IHtcbiAgICAgIG9uQ2hhbmdlPy4ob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICAgIHNlbGVjdGVkT3B0aW9uc0NhY2hlLmN1cnJlbnQgPSBvcHRpb25zO1xuICAgICAgc2V0UXVlcnkoXCJcIik7XG4gICAgICBpZiAob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGRpc3BhdGNoQ2hhbmdlRXZlbnQob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50LCBvcHRpb24udmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0sXG4gICk7XG5cbiAgY29uc3QgcmVzZXRWYWx1ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgY29uc3Qgb3B0aW9uID1cbiAgICAgICAgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCkgPz9cbiAgICAgICAgKHsgdmFsdWU6IHVuZGVmaW5lZCwgbGFiZWw6IFwiXCIgfSBhcyBUKTtcbiAgICAgIG9uQ2hhbmdlKHVuZGVmaW5lZCwgb3B0aW9uKTtcbiAgICB9XG4gIH0sIFtvbkNoYW5nZSwgb3B0aW9ucywgc2V0VmFsdWVdKTtcblxuICBjb25zdCBbdG91Y2hlZCwgaW5wdXRQcm9wc10gPSB1c2VEaXRlY3RJbnB1dFRvdWNoZWQob25Gb2N1cyk7XG5cbiAgY29uc3QgcG9wcGVyT3B0aW9uczogUGFydGlhbDxQb3BwZXJqc09wdGlvbnM+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICBkaXNhYmxlUG9ydGFsXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiY29tcHV0ZVN0eWxlc1wiLFxuICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgcm91bmRPZmZzZXRzOiAoeyB5IH06IHsgeTogbnVtYmVyIH0pID0+ICh7XG4gICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgeTogTWF0aC5yb3VuZCh5KSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJzYW1lV2lkdGhcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHBoYXNlOiBcImJlZm9yZVdyaXRlXCIsXG4gICAgICAgICAgcmVxdWlyZXM6IFtcImNvbXB1dGVTdHlsZXNcIl0sXG4gICAgICAgICAgZm46ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLnN0eWxlcy5wb3BwZXIud2lkdGggPSBgJHtzdGF0ZS5yZWN0cy5yZWZlcmVuY2Uud2lkdGh9cHhgO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZWZmZWN0OiAoeyBzdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5lbGVtZW50cy5wb3BwZXIuc3R5bGUud2lkdGggPSBgJHtcbiAgICAgICAgICAgICAgKHN0YXRlLmVsZW1lbnRzLnJlZmVyZW5jZSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgIH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfSwgW2Rpc2FibGVQb3J0YWxdKTtcblxuICBjb25zdCBpbnRlcm5hbElucHV0SWQgPSB1c2VJZCgpO1xuICBjb25zdCBpbnB1dElkID0gaWQgPz8gaW50ZXJuYWxJbnB1dElkO1xuXG4gIC8vIEF1dG8gZmlsbOOBq+OCiOOBo+OBpuWApOOBjOW+jOOBi+OCieabtOaWsOOBleOCjOOCi+OBk+OBqOOCkumYsuOBkFxuICBjb25zdCBbYXV0b0ZpbGxQcmV2ZW50aW9uS2V5LCB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXldID0gdXNlUmVkdWNlcihcbiAgICAocHJldjogbnVtYmVyKSA9PiBwcmV2ICsgMSxcbiAgICAwLFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEZvcm1Db250cm9sIHN0eWxlPXtzdHlsZX0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAge2xhYmVsID8gKFxuICAgICAgICA8SW5wdXRMYWJlbFxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgID5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvSW5wdXRMYWJlbD5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFZpc3VhbGx5SGlkZGVuPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e29yaWdpbmFsSW5wdXRSZWZzfVxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD17b3JpZ2luYWxJbnB1dFRlc3RJZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICBrZXk9e2Ake3ZhbHVlfS0ke2F1dG9GaWxsUHJldmVudGlvbktleX1gfVxuICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b0NhcGl0YWxpemU9XCJub25lXCJcbiAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgIG9uSW5wdXQ9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIC8vIOmBuOaKnuiCouOBjOmBuOaKnuOBleOCjOOBpuOBhOOBquOBhOeKtuaFi+OBp+OAgeWApOOBq+mBuOaKnuiCouOBqOS4gOiHtOOBmeOCi+OCguOBruOBjOOBguOCi+WgtOWQiOOAgeOBneOBruWApOOBq+abtOaWsOOBmeOCi1xuICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zPy5maW5kKFxuICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8g5LiA6Ie044GZ44KL6YG45oqe6IKi44GM44Gq44GE5aC05ZCI44CBQXV0byBmaWxs44GM6YGp55So44GV44KM44KL44Go5Zuw44KL44Gf44KB54Sh5Yq55YyW44GZ44KLXG4gICAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIOOBk+OBrmlucHV06KaB57Sg44Gu5YCk44Gnb25JbnB1dOOBjOeZuueBq+OBmeOCi+OCseODvOOCueOBr0F1dG8gZmlsbOOBq+OCiOOCi+WgtOWQiOOBruOBv+OAgemBuOaKnuiCouOBrumBuOaKnuOBp+OBr+eZuueBq+OBl+OBquOBhOOAglxuICAgICAgICAgICAgICAvLyDjgZPjgZPjgadrZXnjgpLmm7TmlrDjgZnjgovjgZPjgajjgadhdXRvIGZpbGzjgavjgojjgovlgKTjga7kuIrmm7jjgY3jgpLjgIHjgZXjgonjgavkuIrmm7jjgY3jgafjgY3jgovjgIJcbiAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhdXRvQ29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIC8+XG4gICAgICA8L1Zpc3VhbGx5SGlkZGVuPlxuXG4gICAgICA8ZGl2IHJlZj17cmVmfT5cbiAgICAgICAgPFNlbGVjdEZpZWxkSW5wdXRXcmFwcGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgIHZhbHVlPXshcXVlcnkgPyBkaXNwbGF5VmFsdWUgOiB1bmRlZmluZWR9XG4gICAgICAgID5cbiAgICAgICAgICA8SW5wdXRCYXNlXG4gICAgICAgICAgICBpZD17aW5wdXRJZH1cbiAgICAgICAgICAgIHJlbmRlcklucHV0V3JhcHBlcj17U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJ9XG4gICAgICAgICAgICByZWY9e3BzZXVkb0lucHV0UmVmc31cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtwc2V1ZG9JbnB1dFRlc3RJZH1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgIHNwZWxsQ2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XG4gICAgICAgICAgICAgIGlmIChrZXkgPT09IFwiRGVsZXRlXCIgfHwga2V5ID09PSBcIkJhY2tzcGFjZVwiKSB7XG4gICAgICAgICAgICAgICAgc2V0UXVlcnkoKHByZXYpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChwcmV2ID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IGxpc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgICAgICAgbW92ZUZvY3VzKGxpc3QsIG51bGwsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBzdGFydEFkb3JubWVudD17XG4gICAgICAgICAgICAgIHZhbHVlIHx8XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXQgfHxcbiAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5zb21lKFxuICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgKSkgPyB1bmRlZmluZWQgOiAoXG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb24gLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kQWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgPFNlbGVjdElubmVyU3BpbkJ1dHRvblxuICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0T3BlbigocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLWludmFsaWQ9e2ludmFsaWR9XG4gICAgICAgICAgICB2YWx1ZT17cXVlcnl9XG4gICAgICAgICAgICBvbkNoYW5nZT17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hdHN1cmktdGVjaC9tYXRzdXJpLXVpL2lzc3Vlcy8yNDUxXG4gICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICAgICAgICAgIDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2V0UXVlcnkodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS10b3VjaGVkPXtpbnB1dFByb3BzW1wiZGF0YS10b3VjaGVkXCJdfVxuICAgICAgICAgICAgb25Gb2N1cz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlucHV0UHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICAgICAgICAgIGlmIChyZWFkT25seSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjc3M9e1xuICAgICAgICAgICAgICBkaXNhYmxlZElucHV0XG4gICAgICAgICAgICAgICAgPyBjc3NgXG4gICAgICAgICAgICAgICAgICAgIGNhcmV0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyPlxuXG4gICAgICAgIDxQb3BwZXJcbiAgICAgICAgICBkaXNhYmxlUG9ydGFsPXtkaXNhYmxlUG9ydGFsfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9yZWZzXG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */"]
|
|
83
83
|
});
|
|
84
84
|
};
|
|
85
85
|
const SelectList = /*#__PURE__*/(0, _react2.forwardRef)((props, ref) => {
|
|
@@ -87,7 +87,7 @@ const SelectList = /*#__PURE__*/(0, _react2.forwardRef)((props, ref) => {
|
|
|
87
87
|
ref: ref,
|
|
88
88
|
role: "listbox",
|
|
89
89
|
tabIndex: -1,
|
|
90
|
-
css: /*#__PURE__*/(0, _react.css)("box-sizing:border-box;min-height:", 42 * 3.5, "px;max-height:", 42 * 7.5, "px;padding:0;margin:0;overflow-x:hidden;overflow-y:auto;list-style:none;border-radius:inherit;" + (process.env.NODE_ENV === "production" ? "" : ";label:SelectList;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0ljIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBzZWxlY3RlZE9wdGlvbnNDYWNoZS5jdXJyZW50Py5maW5kKFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICkgfHwgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKVxuICAgICk/LmxhYmVsO1xuICB9LCBbb3B0aW9ucywgdmFsdWVdKTtcblxuICBjb25zdCBsaXN0UmVmID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VPbkNsaWNrT3V0c2lkZShbcmVmLCBsaXN0UmVmXSwgKCkgPT4ge1xuICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIHNldFF1ZXJ5KFwiXCIpO1xuICB9KTtcblxuICBjb25zdCBwc2V1ZG9JbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgcHNldWRvSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0UmVmLCBwc2V1ZG9JbnB1dFJlZik7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0SGFzVmFsdWVSZWYsIG9yaWdpbmFsSW5wdXRSZWYpO1xuXG4gIGNvbnN0IHVwZGF0ZVZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogVCkgPT4ge1xuICAgICAgb25DaGFuZ2U/LihvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICBzZXRWYWx1ZShvcHRpb24udmFsdWUpO1xuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCA9IG9wdGlvbnM7XG4gICAgICBzZXRRdWVyeShcIlwiKTtcbiAgICAgIGlmIChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2hDaGFuZ2VFdmVudChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQsIG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIG9wdGlvbnMsIHNldFZhbHVlXSxcbiAgKTtcblxuICBjb25zdCByZXNldFZhbHVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICBjb25zdCBvcHRpb24gPVxuICAgICAgICBvcHRpb25zPy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdW5kZWZpbmVkKSA/P1xuICAgICAgICAoeyB2YWx1ZTogdW5kZWZpbmVkLCBsYWJlbDogXCJcIiB9IGFzIFQpO1xuICAgICAgb25DaGFuZ2UodW5kZWZpbmVkLCBvcHRpb24pO1xuICAgIH1cbiAgfSwgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0pO1xuXG4gIGNvbnN0IFt0b3VjaGVkLCBpbnB1dFByb3BzXSA9IHVzZURpdGVjdElucHV0VG91Y2hlZChvbkZvY3VzKTtcblxuICBjb25zdCBwb3BwZXJPcHRpb25zOiBQYXJ0aWFsPFBvcHBlcmpzT3B0aW9ucz4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgIGRpc2FibGVQb3J0YWxcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgbmFtZTogXCJjb21wdXRlU3R5bGVzXCIsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICByb3VuZE9mZnNldHM6ICh7IHkgfTogeyB5OiBudW1iZXIgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICB5OiBNYXRoLnJvdW5kKHkpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInNhbWVXaWR0aFwiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgcGhhc2U6IFwiYmVmb3JlV3JpdGVcIixcbiAgICAgICAgICByZXF1aXJlczogW1wiY29tcHV0ZVN0eWxlc1wiXSxcbiAgICAgICAgICBmbjogKHsgc3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuc3R5bGVzLnBvcHBlci53aWR0aCA9IGAke3N0YXRlLnJlY3RzLnJlZmVyZW5jZS53aWR0aH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlZmZlY3Q6ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmVsZW1lbnRzLnBvcHBlci5zdHlsZS53aWR0aCA9IGAke1xuICAgICAgICAgICAgICAoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9LCBbZGlzYWJsZVBvcnRhbF0pO1xuXG4gIGNvbnN0IGludGVybmFsSW5wdXRJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IGlucHV0SWQgPSBpZCA/PyBpbnRlcm5hbElucHV0SWQ7XG5cbiAgLy8gQXV0byBmaWxs44Gr44KI44Gj44Gm5YCk44GM5b6M44GL44KJ5pu05paw44GV44KM44KL44GT44Go44KS6Ziy44GQXG4gIGNvbnN0IFthdXRvRmlsbFByZXZlbnRpb25LZXksIHVwZGF0ZUF1dG9GaWxsUHJldmVudGlvbktleV0gPSB1c2VSZWR1Y2VyKFxuICAgIChwcmV2OiBudW1iZXIpID0+IHByZXYgKyAxLFxuICAgIDAsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9ybUNvbnRyb2wgc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7bGFiZWwgPyAoXG4gICAgICAgIDxJbnB1dExhYmVsXG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9JbnB1dExhYmVsPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17b3JpZ2luYWxJbnB1dFJlZnN9XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPXtvcmlnaW5hbElucHV0VGVzdElkfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIGtleT17YCR7dmFsdWV9LSR7YXV0b0ZpbGxQcmV2ZW50aW9uS2V5fWB9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgb25JbnB1dD17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgLy8g6YG45oqe6IKi44GM6YG45oqe44GV44KM44Gm44GE44Gq44GE54q25oWL44Gn44CB5YCk44Gr6YG45oqe6IKi44Go5LiA6Ie044GZ44KL44KC44Gu44GM44GC44KL5aC05ZCI44CB44Gd44Gu5YCk44Gr5pu05paw44GZ44KLXG4gICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyDkuIDoh7TjgZnjgovpgbjmip7ogqLjgYzjgarjgYTloLTlkIjjgIFBdXRvIGZpbGzjgYzpgannlKjjgZXjgozjgovjgajlm7DjgovjgZ/jgoHnhKHlirnljJbjgZnjgotcbiAgICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8g44GT44GuaW5wdXTopoHntKDjga7lgKTjgadvbklucHV044GM55m654Gr44GZ44KL44Kx44O844K544GvQXV0byBmaWxs44Gr44KI44KL5aC05ZCI44Gu44G/44CB6YG45oqe6IKi44Gu6YG45oqe44Gn44Gv55m654Gr44GX44Gq44GE44CCXG4gICAgICAgICAgICAgIC8vIOOBk+OBk+OBp2tleeOCkuabtOaWsOOBmeOCi+OBk+OBqOOBp2F1dG8gZmlsbOOBq+OCiOOCi+WApOOBruS4iuabuOOBjeOCkuOAgeOBleOCieOBq+S4iuabuOOBjeOBp+OBjeOCi+OAglxuICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICBzcGVsbENoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgLz5cbiAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG5cbiAgICAgIDxkaXYgcmVmPXtyZWZ9PlxuICAgICAgICA8U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgdmFsdWU9eyFxdWVyeSA/IGRpc3BsYXlWYWx1ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxJbnB1dEJhc2VcbiAgICAgICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICAgICAgcmVuZGVySW5wdXRXcmFwcGVyPXtTZWxlY3RGaWVsZElucHV0V3JhcHBlcn1cbiAgICAgICAgICAgIHJlZj17cHNldWRvSW5wdXRSZWZzfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e3BzZXVkb0lucHV0VGVzdElkfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgIGF1dG9DYXBpdGFsaXplPVwibm9uZVwiXG4gICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b0NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHsga2V5IH0gPSBldmVudDtcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJEZWxldGVcIiB8fCBrZXkgPT09IFwiQmFja3NwYWNlXCIpIHtcbiAgICAgICAgICAgICAgICBzZXRRdWVyeSgocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHByZXYgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gbGlzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgbnVsbCwgbmV4dEl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgdmFsdWUgfHxcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dCB8fFxuICAgICAgICAgICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICApKSA/IHVuZGVmaW5lZCA6IChcbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvbiAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbmRBZG9ybm1lbnQ9e1xuICAgICAgICAgICAgICA8U2VsZWN0SW5uZXJTcGluQnV0dG9uXG4gICAgICAgICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRPcGVuKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBzZXVkb0lucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEtaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgICAgIHZhbHVlPXtxdWVyeX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dFxuICAgICAgICAgICAgICAgID8gLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0c3VyaS10ZWNoL21hdHN1cmktdWkvaXNzdWVzLzI0NTFcbiAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICgpID0+IHt9XG4gICAgICAgICAgICAgICAgOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBzZXRRdWVyeSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLXRvdWNoZWQ9e2lucHV0UHJvcHNbXCJkYXRhLXRvdWNoZWRcIl19XG4gICAgICAgICAgICBvbkZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaW5wdXRQcm9wcy5vbkZvY3VzKGV2ZW50KTtcbiAgICAgICAgICAgICAgaWYgKHJlYWRPbmx5ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGNzcz17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgICAgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TZWxlY3RGaWVsZElucHV0V3JhcHBlckNvbnRleHQuUHJvdmlkZXI+XG5cbiAgICAgICAgPFBvcHBlclxuICAgICAgICAgIGRpc2FibGVQb3J0YWw9e2Rpc2FibGVQb3J0YWx9XG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */")
|
|
90
|
+
css: /*#__PURE__*/(0, _react.css)("box-sizing:border-box;min-height:", 42 * 3.5, "px;max-height:", 42 * 7.5, "px;padding:0;margin:0;overflow-x:hidden;overflow-y:auto;list-style:none;border-radius:inherit;" + (process.env.NODE_ENV === "production" ? "" : ";label:SelectList;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0ljIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgICByZXR1cm4gKFxuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudD8uZmluZChcbiAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICApIHx8IG9wdGlvbnM/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSlcbiAgICApPy5sYWJlbDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgfSwgW29wdGlvbnMsIHZhbHVlXSk7XG5cbiAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZjxIVE1MVUxpc3RFbGVtZW50PihudWxsKTtcbiAgdXNlT25DbGlja091dHNpZGUoW3JlZiwgbGlzdFJlZl0sICgpID0+IHtcbiAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICBzZXRRdWVyeShcIlwiKTtcbiAgfSk7XG5cbiAgY29uc3QgcHNldWRvSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHBzZXVkb0lucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dFJlZiwgcHNldWRvSW5wdXRSZWYpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dEhhc1ZhbHVlUmVmLCBvcmlnaW5hbElucHV0UmVmKTtcblxuICBjb25zdCB1cGRhdGVWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChvcHRpb246IFQpID0+IHtcbiAgICAgIG9uQ2hhbmdlPy4ob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICAgIHNlbGVjdGVkT3B0aW9uc0NhY2hlLmN1cnJlbnQgPSBvcHRpb25zO1xuICAgICAgc2V0UXVlcnkoXCJcIik7XG4gICAgICBpZiAob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGRpc3BhdGNoQ2hhbmdlRXZlbnQob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50LCBvcHRpb24udmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0sXG4gICk7XG5cbiAgY29uc3QgcmVzZXRWYWx1ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgY29uc3Qgb3B0aW9uID1cbiAgICAgICAgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCkgPz9cbiAgICAgICAgKHsgdmFsdWU6IHVuZGVmaW5lZCwgbGFiZWw6IFwiXCIgfSBhcyBUKTtcbiAgICAgIG9uQ2hhbmdlKHVuZGVmaW5lZCwgb3B0aW9uKTtcbiAgICB9XG4gIH0sIFtvbkNoYW5nZSwgb3B0aW9ucywgc2V0VmFsdWVdKTtcblxuICBjb25zdCBbdG91Y2hlZCwgaW5wdXRQcm9wc10gPSB1c2VEaXRlY3RJbnB1dFRvdWNoZWQob25Gb2N1cyk7XG5cbiAgY29uc3QgcG9wcGVyT3B0aW9uczogUGFydGlhbDxQb3BwZXJqc09wdGlvbnM+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICBkaXNhYmxlUG9ydGFsXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiY29tcHV0ZVN0eWxlc1wiLFxuICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgcm91bmRPZmZzZXRzOiAoeyB5IH06IHsgeTogbnVtYmVyIH0pID0+ICh7XG4gICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgeTogTWF0aC5yb3VuZCh5KSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJzYW1lV2lkdGhcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHBoYXNlOiBcImJlZm9yZVdyaXRlXCIsXG4gICAgICAgICAgcmVxdWlyZXM6IFtcImNvbXB1dGVTdHlsZXNcIl0sXG4gICAgICAgICAgZm46ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLnN0eWxlcy5wb3BwZXIud2lkdGggPSBgJHtzdGF0ZS5yZWN0cy5yZWZlcmVuY2Uud2lkdGh9cHhgO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZWZmZWN0OiAoeyBzdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5lbGVtZW50cy5wb3BwZXIuc3R5bGUud2lkdGggPSBgJHtcbiAgICAgICAgICAgICAgKHN0YXRlLmVsZW1lbnRzLnJlZmVyZW5jZSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgIH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfSwgW2Rpc2FibGVQb3J0YWxdKTtcblxuICBjb25zdCBpbnRlcm5hbElucHV0SWQgPSB1c2VJZCgpO1xuICBjb25zdCBpbnB1dElkID0gaWQgPz8gaW50ZXJuYWxJbnB1dElkO1xuXG4gIC8vIEF1dG8gZmlsbOOBq+OCiOOBo+OBpuWApOOBjOW+jOOBi+OCieabtOaWsOOBleOCjOOCi+OBk+OBqOOCkumYsuOBkFxuICBjb25zdCBbYXV0b0ZpbGxQcmV2ZW50aW9uS2V5LCB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXldID0gdXNlUmVkdWNlcihcbiAgICAocHJldjogbnVtYmVyKSA9PiBwcmV2ICsgMSxcbiAgICAwLFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEZvcm1Db250cm9sIHN0eWxlPXtzdHlsZX0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAge2xhYmVsID8gKFxuICAgICAgICA8SW5wdXRMYWJlbFxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgID5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvSW5wdXRMYWJlbD5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFZpc3VhbGx5SGlkZGVuPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e29yaWdpbmFsSW5wdXRSZWZzfVxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD17b3JpZ2luYWxJbnB1dFRlc3RJZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICBrZXk9e2Ake3ZhbHVlfS0ke2F1dG9GaWxsUHJldmVudGlvbktleX1gfVxuICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b0NhcGl0YWxpemU9XCJub25lXCJcbiAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgIG9uSW5wdXQ9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIC8vIOmBuOaKnuiCouOBjOmBuOaKnuOBleOCjOOBpuOBhOOBquOBhOeKtuaFi+OBp+OAgeWApOOBq+mBuOaKnuiCouOBqOS4gOiHtOOBmeOCi+OCguOBruOBjOOBguOCi+WgtOWQiOOAgeOBneOBruWApOOBq+abtOaWsOOBmeOCi1xuICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zPy5maW5kKFxuICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8g5LiA6Ie044GZ44KL6YG45oqe6IKi44GM44Gq44GE5aC05ZCI44CBQXV0byBmaWxs44GM6YGp55So44GV44KM44KL44Go5Zuw44KL44Gf44KB54Sh5Yq55YyW44GZ44KLXG4gICAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIOOBk+OBrmlucHV06KaB57Sg44Gu5YCk44Gnb25JbnB1dOOBjOeZuueBq+OBmeOCi+OCseODvOOCueOBr0F1dG8gZmlsbOOBq+OCiOOCi+WgtOWQiOOBruOBv+OAgemBuOaKnuiCouOBrumBuOaKnuOBp+OBr+eZuueBq+OBl+OBquOBhOOAglxuICAgICAgICAgICAgICAvLyDjgZPjgZPjgadrZXnjgpLmm7TmlrDjgZnjgovjgZPjgajjgadhdXRvIGZpbGzjgavjgojjgovlgKTjga7kuIrmm7jjgY3jgpLjgIHjgZXjgonjgavkuIrmm7jjgY3jgafjgY3jgovjgIJcbiAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhdXRvQ29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIC8+XG4gICAgICA8L1Zpc3VhbGx5SGlkZGVuPlxuXG4gICAgICA8ZGl2IHJlZj17cmVmfT5cbiAgICAgICAgPFNlbGVjdEZpZWxkSW5wdXRXcmFwcGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgIHZhbHVlPXshcXVlcnkgPyBkaXNwbGF5VmFsdWUgOiB1bmRlZmluZWR9XG4gICAgICAgID5cbiAgICAgICAgICA8SW5wdXRCYXNlXG4gICAgICAgICAgICBpZD17aW5wdXRJZH1cbiAgICAgICAgICAgIHJlbmRlcklucHV0V3JhcHBlcj17U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJ9XG4gICAgICAgICAgICByZWY9e3BzZXVkb0lucHV0UmVmc31cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtwc2V1ZG9JbnB1dFRlc3RJZH1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgIHNwZWxsQ2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XG4gICAgICAgICAgICAgIGlmIChrZXkgPT09IFwiRGVsZXRlXCIgfHwga2V5ID09PSBcIkJhY2tzcGFjZVwiKSB7XG4gICAgICAgICAgICAgICAgc2V0UXVlcnkoKHByZXYpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChwcmV2ID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IGxpc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgICAgICAgbW92ZUZvY3VzKGxpc3QsIG51bGwsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBzdGFydEFkb3JubWVudD17XG4gICAgICAgICAgICAgIHZhbHVlIHx8XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXQgfHxcbiAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5zb21lKFxuICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgKSkgPyB1bmRlZmluZWQgOiAoXG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb24gLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kQWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgPFNlbGVjdElubmVyU3BpbkJ1dHRvblxuICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0T3BlbigocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLWludmFsaWQ9e2ludmFsaWR9XG4gICAgICAgICAgICB2YWx1ZT17cXVlcnl9XG4gICAgICAgICAgICBvbkNoYW5nZT17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hdHN1cmktdGVjaC9tYXRzdXJpLXVpL2lzc3Vlcy8yNDUxXG4gICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICAgICAgICAgIDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2V0UXVlcnkodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS10b3VjaGVkPXtpbnB1dFByb3BzW1wiZGF0YS10b3VjaGVkXCJdfVxuICAgICAgICAgICAgb25Gb2N1cz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlucHV0UHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICAgICAgICAgIGlmIChyZWFkT25seSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjc3M9e1xuICAgICAgICAgICAgICBkaXNhYmxlZElucHV0XG4gICAgICAgICAgICAgICAgPyBjc3NgXG4gICAgICAgICAgICAgICAgICAgIGNhcmV0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyPlxuXG4gICAgICAgIDxQb3BwZXJcbiAgICAgICAgICBkaXNhYmxlUG9ydGFsPXtkaXNhYmxlUG9ydGFsfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9yZWZzXG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */")
|
|
91
91
|
}, props));
|
|
92
92
|
});
|
|
93
93
|
const SelectOption = props => {
|
|
@@ -97,7 +97,7 @@ const SelectOption = props => {
|
|
|
97
97
|
// aria-selectedは親要素から設定するため、この値は上書きされる
|
|
98
98
|
,
|
|
99
99
|
"aria-selected": false,
|
|
100
|
-
css: /*#__PURE__*/(0, _react.css)("box-sizing:border-box;min-height:", theme.spacing * 6, "px;padding:9px 12px;color:", theme.palette.text.primary, ";cursor:pointer;background-color:", theme.palette.background.paper, ";border-bottom:1px solid ", theme.palette.gray[300], ";outline:0px;transition:", theme.transitions.duration.shortest, ";", /*#__PURE__*/(0, _react.css)(theme.typography.body, process.env.NODE_ENV === "production" ? "" : ";label:SelectOption;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0tVIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBzZWxlY3RlZE9wdGlvbnNDYWNoZS5jdXJyZW50Py5maW5kKFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICkgfHwgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKVxuICAgICk/LmxhYmVsO1xuICB9LCBbb3B0aW9ucywgdmFsdWVdKTtcblxuICBjb25zdCBsaXN0UmVmID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VPbkNsaWNrT3V0c2lkZShbcmVmLCBsaXN0UmVmXSwgKCkgPT4ge1xuICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIHNldFF1ZXJ5KFwiXCIpO1xuICB9KTtcblxuICBjb25zdCBwc2V1ZG9JbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgcHNldWRvSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0UmVmLCBwc2V1ZG9JbnB1dFJlZik7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0SGFzVmFsdWVSZWYsIG9yaWdpbmFsSW5wdXRSZWYpO1xuXG4gIGNvbnN0IHVwZGF0ZVZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogVCkgPT4ge1xuICAgICAgb25DaGFuZ2U/LihvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICBzZXRWYWx1ZShvcHRpb24udmFsdWUpO1xuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCA9IG9wdGlvbnM7XG4gICAgICBzZXRRdWVyeShcIlwiKTtcbiAgICAgIGlmIChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2hDaGFuZ2VFdmVudChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQsIG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIG9wdGlvbnMsIHNldFZhbHVlXSxcbiAgKTtcblxuICBjb25zdCByZXNldFZhbHVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICBjb25zdCBvcHRpb24gPVxuICAgICAgICBvcHRpb25zPy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdW5kZWZpbmVkKSA/P1xuICAgICAgICAoeyB2YWx1ZTogdW5kZWZpbmVkLCBsYWJlbDogXCJcIiB9IGFzIFQpO1xuICAgICAgb25DaGFuZ2UodW5kZWZpbmVkLCBvcHRpb24pO1xuICAgIH1cbiAgfSwgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0pO1xuXG4gIGNvbnN0IFt0b3VjaGVkLCBpbnB1dFByb3BzXSA9IHVzZURpdGVjdElucHV0VG91Y2hlZChvbkZvY3VzKTtcblxuICBjb25zdCBwb3BwZXJPcHRpb25zOiBQYXJ0aWFsPFBvcHBlcmpzT3B0aW9ucz4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgIGRpc2FibGVQb3J0YWxcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgbmFtZTogXCJjb21wdXRlU3R5bGVzXCIsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICByb3VuZE9mZnNldHM6ICh7IHkgfTogeyB5OiBudW1iZXIgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICB5OiBNYXRoLnJvdW5kKHkpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInNhbWVXaWR0aFwiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgcGhhc2U6IFwiYmVmb3JlV3JpdGVcIixcbiAgICAgICAgICByZXF1aXJlczogW1wiY29tcHV0ZVN0eWxlc1wiXSxcbiAgICAgICAgICBmbjogKHsgc3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuc3R5bGVzLnBvcHBlci53aWR0aCA9IGAke3N0YXRlLnJlY3RzLnJlZmVyZW5jZS53aWR0aH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlZmZlY3Q6ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmVsZW1lbnRzLnBvcHBlci5zdHlsZS53aWR0aCA9IGAke1xuICAgICAgICAgICAgICAoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9LCBbZGlzYWJsZVBvcnRhbF0pO1xuXG4gIGNvbnN0IGludGVybmFsSW5wdXRJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IGlucHV0SWQgPSBpZCA/PyBpbnRlcm5hbElucHV0SWQ7XG5cbiAgLy8gQXV0byBmaWxs44Gr44KI44Gj44Gm5YCk44GM5b6M44GL44KJ5pu05paw44GV44KM44KL44GT44Go44KS6Ziy44GQXG4gIGNvbnN0IFthdXRvRmlsbFByZXZlbnRpb25LZXksIHVwZGF0ZUF1dG9GaWxsUHJldmVudGlvbktleV0gPSB1c2VSZWR1Y2VyKFxuICAgIChwcmV2OiBudW1iZXIpID0+IHByZXYgKyAxLFxuICAgIDAsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9ybUNvbnRyb2wgc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7bGFiZWwgPyAoXG4gICAgICAgIDxJbnB1dExhYmVsXG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9JbnB1dExhYmVsPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17b3JpZ2luYWxJbnB1dFJlZnN9XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPXtvcmlnaW5hbElucHV0VGVzdElkfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIGtleT17YCR7dmFsdWV9LSR7YXV0b0ZpbGxQcmV2ZW50aW9uS2V5fWB9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgb25JbnB1dD17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgLy8g6YG45oqe6IKi44GM6YG45oqe44GV44KM44Gm44GE44Gq44GE54q25oWL44Gn44CB5YCk44Gr6YG45oqe6IKi44Go5LiA6Ie044GZ44KL44KC44Gu44GM44GC44KL5aC05ZCI44CB44Gd44Gu5YCk44Gr5pu05paw44GZ44KLXG4gICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyDkuIDoh7TjgZnjgovpgbjmip7ogqLjgYzjgarjgYTloLTlkIjjgIFBdXRvIGZpbGzjgYzpgannlKjjgZXjgozjgovjgajlm7DjgovjgZ/jgoHnhKHlirnljJbjgZnjgotcbiAgICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8g44GT44GuaW5wdXTopoHntKDjga7lgKTjgadvbklucHV044GM55m654Gr44GZ44KL44Kx44O844K544GvQXV0byBmaWxs44Gr44KI44KL5aC05ZCI44Gu44G/44CB6YG45oqe6IKi44Gu6YG45oqe44Gn44Gv55m654Gr44GX44Gq44GE44CCXG4gICAgICAgICAgICAgIC8vIOOBk+OBk+OBp2tleeOCkuabtOaWsOOBmeOCi+OBk+OBqOOBp2F1dG8gZmlsbOOBq+OCiOOCi+WApOOBruS4iuabuOOBjeOCkuOAgeOBleOCieOBq+S4iuabuOOBjeOBp+OBjeOCi+OAglxuICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICBzcGVsbENoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgLz5cbiAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG5cbiAgICAgIDxkaXYgcmVmPXtyZWZ9PlxuICAgICAgICA8U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgdmFsdWU9eyFxdWVyeSA/IGRpc3BsYXlWYWx1ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxJbnB1dEJhc2VcbiAgICAgICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICAgICAgcmVuZGVySW5wdXRXcmFwcGVyPXtTZWxlY3RGaWVsZElucHV0V3JhcHBlcn1cbiAgICAgICAgICAgIHJlZj17cHNldWRvSW5wdXRSZWZzfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e3BzZXVkb0lucHV0VGVzdElkfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgIGF1dG9DYXBpdGFsaXplPVwibm9uZVwiXG4gICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b0NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHsga2V5IH0gPSBldmVudDtcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJEZWxldGVcIiB8fCBrZXkgPT09IFwiQmFja3NwYWNlXCIpIHtcbiAgICAgICAgICAgICAgICBzZXRRdWVyeSgocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHByZXYgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gbGlzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgbnVsbCwgbmV4dEl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgdmFsdWUgfHxcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dCB8fFxuICAgICAgICAgICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICApKSA/IHVuZGVmaW5lZCA6IChcbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvbiAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbmRBZG9ybm1lbnQ9e1xuICAgICAgICAgICAgICA8U2VsZWN0SW5uZXJTcGluQnV0dG9uXG4gICAgICAgICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRPcGVuKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBzZXVkb0lucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEtaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgICAgIHZhbHVlPXtxdWVyeX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dFxuICAgICAgICAgICAgICAgID8gLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0c3VyaS10ZWNoL21hdHN1cmktdWkvaXNzdWVzLzI0NTFcbiAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICgpID0+IHt9XG4gICAgICAgICAgICAgICAgOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBzZXRRdWVyeSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLXRvdWNoZWQ9e2lucHV0UHJvcHNbXCJkYXRhLXRvdWNoZWRcIl19XG4gICAgICAgICAgICBvbkZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaW5wdXRQcm9wcy5vbkZvY3VzKGV2ZW50KTtcbiAgICAgICAgICAgICAgaWYgKHJlYWRPbmx5ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGNzcz17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgICAgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TZWxlY3RGaWVsZElucHV0V3JhcHBlckNvbnRleHQuUHJvdmlkZXI+XG5cbiAgICAgICAgPFBvcHBlclxuICAgICAgICAgIGRpc2FibGVQb3J0YWw9e2Rpc2FibGVQb3J0YWx9XG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */"), " &:last-child{border-bottom:none;}&:hover,&:focus{background-color:", theme.palette.action.hover, ";}&[aria-selected=\"true\"]{background-color:", theme.palette.action.selected, ";}&[aria-disabled=\"true\"]{color:", theme.palette.text.disabled, ";cursor:default;}&[aria-readonly=\"true\"],&[aria-disabled=\"true\"]{&:hover{background-color:", theme.palette.background.paper, ";}}" + (process.env.NODE_ENV === "production" ? "" : ";label:SelectOption;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUpjIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBzZWxlY3RlZE9wdGlvbnNDYWNoZS5jdXJyZW50Py5maW5kKFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICkgfHwgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKVxuICAgICk/LmxhYmVsO1xuICB9LCBbb3B0aW9ucywgdmFsdWVdKTtcblxuICBjb25zdCBsaXN0UmVmID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VPbkNsaWNrT3V0c2lkZShbcmVmLCBsaXN0UmVmXSwgKCkgPT4ge1xuICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIHNldFF1ZXJ5KFwiXCIpO1xuICB9KTtcblxuICBjb25zdCBwc2V1ZG9JbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgcHNldWRvSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0UmVmLCBwc2V1ZG9JbnB1dFJlZik7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0SGFzVmFsdWVSZWYsIG9yaWdpbmFsSW5wdXRSZWYpO1xuXG4gIGNvbnN0IHVwZGF0ZVZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogVCkgPT4ge1xuICAgICAgb25DaGFuZ2U/LihvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICBzZXRWYWx1ZShvcHRpb24udmFsdWUpO1xuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCA9IG9wdGlvbnM7XG4gICAgICBzZXRRdWVyeShcIlwiKTtcbiAgICAgIGlmIChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2hDaGFuZ2VFdmVudChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQsIG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIG9wdGlvbnMsIHNldFZhbHVlXSxcbiAgKTtcblxuICBjb25zdCByZXNldFZhbHVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICBjb25zdCBvcHRpb24gPVxuICAgICAgICBvcHRpb25zPy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdW5kZWZpbmVkKSA/P1xuICAgICAgICAoeyB2YWx1ZTogdW5kZWZpbmVkLCBsYWJlbDogXCJcIiB9IGFzIFQpO1xuICAgICAgb25DaGFuZ2UodW5kZWZpbmVkLCBvcHRpb24pO1xuICAgIH1cbiAgfSwgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0pO1xuXG4gIGNvbnN0IFt0b3VjaGVkLCBpbnB1dFByb3BzXSA9IHVzZURpdGVjdElucHV0VG91Y2hlZChvbkZvY3VzKTtcblxuICBjb25zdCBwb3BwZXJPcHRpb25zOiBQYXJ0aWFsPFBvcHBlcmpzT3B0aW9ucz4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgIGRpc2FibGVQb3J0YWxcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgbmFtZTogXCJjb21wdXRlU3R5bGVzXCIsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICByb3VuZE9mZnNldHM6ICh7IHkgfTogeyB5OiBudW1iZXIgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICB5OiBNYXRoLnJvdW5kKHkpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInNhbWVXaWR0aFwiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgcGhhc2U6IFwiYmVmb3JlV3JpdGVcIixcbiAgICAgICAgICByZXF1aXJlczogW1wiY29tcHV0ZVN0eWxlc1wiXSxcbiAgICAgICAgICBmbjogKHsgc3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuc3R5bGVzLnBvcHBlci53aWR0aCA9IGAke3N0YXRlLnJlY3RzLnJlZmVyZW5jZS53aWR0aH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlZmZlY3Q6ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmVsZW1lbnRzLnBvcHBlci5zdHlsZS53aWR0aCA9IGAke1xuICAgICAgICAgICAgICAoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9LCBbZGlzYWJsZVBvcnRhbF0pO1xuXG4gIGNvbnN0IGludGVybmFsSW5wdXRJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IGlucHV0SWQgPSBpZCA/PyBpbnRlcm5hbElucHV0SWQ7XG5cbiAgLy8gQXV0byBmaWxs44Gr44KI44Gj44Gm5YCk44GM5b6M44GL44KJ5pu05paw44GV44KM44KL44GT44Go44KS6Ziy44GQXG4gIGNvbnN0IFthdXRvRmlsbFByZXZlbnRpb25LZXksIHVwZGF0ZUF1dG9GaWxsUHJldmVudGlvbktleV0gPSB1c2VSZWR1Y2VyKFxuICAgIChwcmV2OiBudW1iZXIpID0+IHByZXYgKyAxLFxuICAgIDAsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9ybUNvbnRyb2wgc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7bGFiZWwgPyAoXG4gICAgICAgIDxJbnB1dExhYmVsXG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9JbnB1dExhYmVsPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17b3JpZ2luYWxJbnB1dFJlZnN9XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPXtvcmlnaW5hbElucHV0VGVzdElkfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIGtleT17YCR7dmFsdWV9LSR7YXV0b0ZpbGxQcmV2ZW50aW9uS2V5fWB9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgb25JbnB1dD17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgLy8g6YG45oqe6IKi44GM6YG45oqe44GV44KM44Gm44GE44Gq44GE54q25oWL44Gn44CB5YCk44Gr6YG45oqe6IKi44Go5LiA6Ie044GZ44KL44KC44Gu44GM44GC44KL5aC05ZCI44CB44Gd44Gu5YCk44Gr5pu05paw44GZ44KLXG4gICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyDkuIDoh7TjgZnjgovpgbjmip7ogqLjgYzjgarjgYTloLTlkIjjgIFBdXRvIGZpbGzjgYzpgannlKjjgZXjgozjgovjgajlm7DjgovjgZ/jgoHnhKHlirnljJbjgZnjgotcbiAgICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8g44GT44GuaW5wdXTopoHntKDjga7lgKTjgadvbklucHV044GM55m654Gr44GZ44KL44Kx44O844K544GvQXV0byBmaWxs44Gr44KI44KL5aC05ZCI44Gu44G/44CB6YG45oqe6IKi44Gu6YG45oqe44Gn44Gv55m654Gr44GX44Gq44GE44CCXG4gICAgICAgICAgICAgIC8vIOOBk+OBk+OBp2tleeOCkuabtOaWsOOBmeOCi+OBk+OBqOOBp2F1dG8gZmlsbOOBq+OCiOOCi+WApOOBruS4iuabuOOBjeOCkuOAgeOBleOCieOBq+S4iuabuOOBjeOBp+OBjeOCi+OAglxuICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICBzcGVsbENoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgLz5cbiAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG5cbiAgICAgIDxkaXYgcmVmPXtyZWZ9PlxuICAgICAgICA8U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgdmFsdWU9eyFxdWVyeSA/IGRpc3BsYXlWYWx1ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxJbnB1dEJhc2VcbiAgICAgICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICAgICAgcmVuZGVySW5wdXRXcmFwcGVyPXtTZWxlY3RGaWVsZElucHV0V3JhcHBlcn1cbiAgICAgICAgICAgIHJlZj17cHNldWRvSW5wdXRSZWZzfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e3BzZXVkb0lucHV0VGVzdElkfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgIGF1dG9DYXBpdGFsaXplPVwibm9uZVwiXG4gICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b0NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHsga2V5IH0gPSBldmVudDtcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJEZWxldGVcIiB8fCBrZXkgPT09IFwiQmFja3NwYWNlXCIpIHtcbiAgICAgICAgICAgICAgICBzZXRRdWVyeSgocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHByZXYgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gbGlzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgbnVsbCwgbmV4dEl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgdmFsdWUgfHxcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dCB8fFxuICAgICAgICAgICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICApKSA/IHVuZGVmaW5lZCA6IChcbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvbiAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbmRBZG9ybm1lbnQ9e1xuICAgICAgICAgICAgICA8U2VsZWN0SW5uZXJTcGluQnV0dG9uXG4gICAgICAgICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRPcGVuKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBzZXVkb0lucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEtaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgICAgIHZhbHVlPXtxdWVyeX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dFxuICAgICAgICAgICAgICAgID8gLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0c3VyaS10ZWNoL21hdHN1cmktdWkvaXNzdWVzLzI0NTFcbiAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICgpID0+IHt9XG4gICAgICAgICAgICAgICAgOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBzZXRRdWVyeSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLXRvdWNoZWQ9e2lucHV0UHJvcHNbXCJkYXRhLXRvdWNoZWRcIl19XG4gICAgICAgICAgICBvbkZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaW5wdXRQcm9wcy5vbkZvY3VzKGV2ZW50KTtcbiAgICAgICAgICAgICAgaWYgKHJlYWRPbmx5ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGNzcz17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgICAgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TZWxlY3RGaWVsZElucHV0V3JhcHBlckNvbnRleHQuUHJvdmlkZXI+XG5cbiAgICAgICAgPFBvcHBlclxuICAgICAgICAgIGRpc2FibGVQb3J0YWw9e2Rpc2FibGVQb3J0YWx9XG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */")
|
|
100
|
+
css: /*#__PURE__*/(0, _react.css)("box-sizing:border-box;min-height:", theme.spacing * 6, "px;padding:9px 12px;color:", theme.palette.text.primary, ";cursor:pointer;background-color:", theme.palette.background.paper, ";border-bottom:1px solid ", theme.palette.gray[300], ";outline:0px;transition:", theme.transitions.duration.shortest, ";", /*#__PURE__*/(0, _react.css)(theme.typography.body, process.env.NODE_ENV === "production" ? "" : ";label:SelectOption;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0tVIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgICByZXR1cm4gKFxuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudD8uZmluZChcbiAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICApIHx8IG9wdGlvbnM/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSlcbiAgICApPy5sYWJlbDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgfSwgW29wdGlvbnMsIHZhbHVlXSk7XG5cbiAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZjxIVE1MVUxpc3RFbGVtZW50PihudWxsKTtcbiAgdXNlT25DbGlja091dHNpZGUoW3JlZiwgbGlzdFJlZl0sICgpID0+IHtcbiAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICBzZXRRdWVyeShcIlwiKTtcbiAgfSk7XG5cbiAgY29uc3QgcHNldWRvSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHBzZXVkb0lucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dFJlZiwgcHNldWRvSW5wdXRSZWYpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dEhhc1ZhbHVlUmVmLCBvcmlnaW5hbElucHV0UmVmKTtcblxuICBjb25zdCB1cGRhdGVWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChvcHRpb246IFQpID0+IHtcbiAgICAgIG9uQ2hhbmdlPy4ob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICAgIHNlbGVjdGVkT3B0aW9uc0NhY2hlLmN1cnJlbnQgPSBvcHRpb25zO1xuICAgICAgc2V0UXVlcnkoXCJcIik7XG4gICAgICBpZiAob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGRpc3BhdGNoQ2hhbmdlRXZlbnQob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50LCBvcHRpb24udmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0sXG4gICk7XG5cbiAgY29uc3QgcmVzZXRWYWx1ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgY29uc3Qgb3B0aW9uID1cbiAgICAgICAgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCkgPz9cbiAgICAgICAgKHsgdmFsdWU6IHVuZGVmaW5lZCwgbGFiZWw6IFwiXCIgfSBhcyBUKTtcbiAgICAgIG9uQ2hhbmdlKHVuZGVmaW5lZCwgb3B0aW9uKTtcbiAgICB9XG4gIH0sIFtvbkNoYW5nZSwgb3B0aW9ucywgc2V0VmFsdWVdKTtcblxuICBjb25zdCBbdG91Y2hlZCwgaW5wdXRQcm9wc10gPSB1c2VEaXRlY3RJbnB1dFRvdWNoZWQob25Gb2N1cyk7XG5cbiAgY29uc3QgcG9wcGVyT3B0aW9uczogUGFydGlhbDxQb3BwZXJqc09wdGlvbnM+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICBkaXNhYmxlUG9ydGFsXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiY29tcHV0ZVN0eWxlc1wiLFxuICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgcm91bmRPZmZzZXRzOiAoeyB5IH06IHsgeTogbnVtYmVyIH0pID0+ICh7XG4gICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgeTogTWF0aC5yb3VuZCh5KSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJzYW1lV2lkdGhcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHBoYXNlOiBcImJlZm9yZVdyaXRlXCIsXG4gICAgICAgICAgcmVxdWlyZXM6IFtcImNvbXB1dGVTdHlsZXNcIl0sXG4gICAgICAgICAgZm46ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLnN0eWxlcy5wb3BwZXIud2lkdGggPSBgJHtzdGF0ZS5yZWN0cy5yZWZlcmVuY2Uud2lkdGh9cHhgO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZWZmZWN0OiAoeyBzdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5lbGVtZW50cy5wb3BwZXIuc3R5bGUud2lkdGggPSBgJHtcbiAgICAgICAgICAgICAgKHN0YXRlLmVsZW1lbnRzLnJlZmVyZW5jZSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgIH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfSwgW2Rpc2FibGVQb3J0YWxdKTtcblxuICBjb25zdCBpbnRlcm5hbElucHV0SWQgPSB1c2VJZCgpO1xuICBjb25zdCBpbnB1dElkID0gaWQgPz8gaW50ZXJuYWxJbnB1dElkO1xuXG4gIC8vIEF1dG8gZmlsbOOBq+OCiOOBo+OBpuWApOOBjOW+jOOBi+OCieabtOaWsOOBleOCjOOCi+OBk+OBqOOCkumYsuOBkFxuICBjb25zdCBbYXV0b0ZpbGxQcmV2ZW50aW9uS2V5LCB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXldID0gdXNlUmVkdWNlcihcbiAgICAocHJldjogbnVtYmVyKSA9PiBwcmV2ICsgMSxcbiAgICAwLFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEZvcm1Db250cm9sIHN0eWxlPXtzdHlsZX0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAge2xhYmVsID8gKFxuICAgICAgICA8SW5wdXRMYWJlbFxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgID5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvSW5wdXRMYWJlbD5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFZpc3VhbGx5SGlkZGVuPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e29yaWdpbmFsSW5wdXRSZWZzfVxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD17b3JpZ2luYWxJbnB1dFRlc3RJZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICBrZXk9e2Ake3ZhbHVlfS0ke2F1dG9GaWxsUHJldmVudGlvbktleX1gfVxuICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b0NhcGl0YWxpemU9XCJub25lXCJcbiAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgIG9uSW5wdXQ9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIC8vIOmBuOaKnuiCouOBjOmBuOaKnuOBleOCjOOBpuOBhOOBquOBhOeKtuaFi+OBp+OAgeWApOOBq+mBuOaKnuiCouOBqOS4gOiHtOOBmeOCi+OCguOBruOBjOOBguOCi+WgtOWQiOOAgeOBneOBruWApOOBq+abtOaWsOOBmeOCi1xuICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zPy5maW5kKFxuICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8g5LiA6Ie044GZ44KL6YG45oqe6IKi44GM44Gq44GE5aC05ZCI44CBQXV0byBmaWxs44GM6YGp55So44GV44KM44KL44Go5Zuw44KL44Gf44KB54Sh5Yq55YyW44GZ44KLXG4gICAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIOOBk+OBrmlucHV06KaB57Sg44Gu5YCk44Gnb25JbnB1dOOBjOeZuueBq+OBmeOCi+OCseODvOOCueOBr0F1dG8gZmlsbOOBq+OCiOOCi+WgtOWQiOOBruOBv+OAgemBuOaKnuiCouOBrumBuOaKnuOBp+OBr+eZuueBq+OBl+OBquOBhOOAglxuICAgICAgICAgICAgICAvLyDjgZPjgZPjgadrZXnjgpLmm7TmlrDjgZnjgovjgZPjgajjgadhdXRvIGZpbGzjgavjgojjgovlgKTjga7kuIrmm7jjgY3jgpLjgIHjgZXjgonjgavkuIrmm7jjgY3jgafjgY3jgovjgIJcbiAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhdXRvQ29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIC8+XG4gICAgICA8L1Zpc3VhbGx5SGlkZGVuPlxuXG4gICAgICA8ZGl2IHJlZj17cmVmfT5cbiAgICAgICAgPFNlbGVjdEZpZWxkSW5wdXRXcmFwcGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgIHZhbHVlPXshcXVlcnkgPyBkaXNwbGF5VmFsdWUgOiB1bmRlZmluZWR9XG4gICAgICAgID5cbiAgICAgICAgICA8SW5wdXRCYXNlXG4gICAgICAgICAgICBpZD17aW5wdXRJZH1cbiAgICAgICAgICAgIHJlbmRlcklucHV0V3JhcHBlcj17U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJ9XG4gICAgICAgICAgICByZWY9e3BzZXVkb0lucHV0UmVmc31cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtwc2V1ZG9JbnB1dFRlc3RJZH1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgIHNwZWxsQ2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XG4gICAgICAgICAgICAgIGlmIChrZXkgPT09IFwiRGVsZXRlXCIgfHwga2V5ID09PSBcIkJhY2tzcGFjZVwiKSB7XG4gICAgICAgICAgICAgICAgc2V0UXVlcnkoKHByZXYpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChwcmV2ID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IGxpc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgICAgICAgbW92ZUZvY3VzKGxpc3QsIG51bGwsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBzdGFydEFkb3JubWVudD17XG4gICAgICAgICAgICAgIHZhbHVlIHx8XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXQgfHxcbiAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5zb21lKFxuICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgKSkgPyB1bmRlZmluZWQgOiAoXG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb24gLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kQWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgPFNlbGVjdElubmVyU3BpbkJ1dHRvblxuICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0T3BlbigocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLWludmFsaWQ9e2ludmFsaWR9XG4gICAgICAgICAgICB2YWx1ZT17cXVlcnl9XG4gICAgICAgICAgICBvbkNoYW5nZT17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hdHN1cmktdGVjaC9tYXRzdXJpLXVpL2lzc3Vlcy8yNDUxXG4gICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICAgICAgICAgIDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2V0UXVlcnkodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS10b3VjaGVkPXtpbnB1dFByb3BzW1wiZGF0YS10b3VjaGVkXCJdfVxuICAgICAgICAgICAgb25Gb2N1cz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlucHV0UHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICAgICAgICAgIGlmIChyZWFkT25seSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjc3M9e1xuICAgICAgICAgICAgICBkaXNhYmxlZElucHV0XG4gICAgICAgICAgICAgICAgPyBjc3NgXG4gICAgICAgICAgICAgICAgICAgIGNhcmV0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyPlxuXG4gICAgICAgIDxQb3BwZXJcbiAgICAgICAgICBkaXNhYmxlUG9ydGFsPXtkaXNhYmxlUG9ydGFsfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9yZWZzXG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */"), " &:last-child{border-bottom:none;}&:hover,&:focus{background-color:", theme.palette.action.hover, ";}&[aria-selected=\"true\"]{background-color:", theme.palette.action.selected, ";}&[aria-disabled=\"true\"]{color:", theme.palette.text.disabled, ";cursor:default;}&[aria-readonly=\"true\"],&[aria-disabled=\"true\"]{&:hover{background-color:", theme.palette.background.paper, ";}}" + (process.env.NODE_ENV === "production" ? "" : ";label:SelectOption;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUpjIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBSZWFjdCwge1xuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VJZCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVkdWNlcixcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCB7IEZpZWxkR3JvdXBQcm9wcywgdXNlRmllbGRHcm91cCB9IGZyb20gXCIuLi9GaWVsZEdyb3VwXCI7XG5pbXBvcnQgeyBGaWVsZFByb3BzIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vRm9ybUNvbnRyb2xcIjtcbmltcG9ydCB7IEZvcm1IZWxwZXJUZXh0IH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSBcIi4uL0lucHV0QmFzZVwiO1xuaW1wb3J0IHsgSW5wdXRMYWJlbCB9IGZyb20gXCIuLi9JbnB1dExhYmVsXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCIuLi9QYXBlclwiO1xuaW1wb3J0IHsgUG9wcGVyIH0gZnJvbSBcIi4uL1BvcHBlclwiO1xuaW1wb3J0IHsgVHJpYW5nbGUgfSBmcm9tIFwiLi4vSWNvbi9UcmlhbmdsZVwiO1xuaW1wb3J0IHsgVmlzdWFsbHlIaWRkZW4gfSBmcm9tIFwiLi4vVmlzdWFsbHlIaWRkZW4vVmlzdWFsbHlIaWRkZW5cIjtcbmltcG9ydCB7IGRpc3BhdGNoQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vQHV0aWxzL2Rpc3BhdGNoQ2hhbmdlRXZlbnRcIjtcbmltcG9ydCB7IHVzZURpdGVjdElucHV0VG91Y2hlZCB9IGZyb20gXCIuLi9GaWVsZEJhc2UvdXNlRGl0ZWN0SW5wdXRUb3VjaGVkXCI7XG5pbXBvcnQgeyB1c2VJbnB1dFZhbHVlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZUlucHV0VmFsdWVcIjtcbmltcG9ydCB7IHVzZU1lcmdlUmVmcyB9IGZyb20gXCIuLi9ob29rcy91c2VNZXJnZVJlZnNcIjtcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU9uQ2xpY2tPdXRzaWRlXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCIuLi90aGVtZVwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoIH0gZnJvbSBcIi4vdXNlU2VhcmNoXCI7XG5pbXBvcnQge1xuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlcixcbiAgU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LFxufSBmcm9tIFwiLi9TZWxlY3RGaWVsZElucHV0V3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFBvcHBlcmpzT3B0aW9ucyB9IGZyb20gXCJAcG9wcGVyanMvY29yZVwiO1xuXG5mdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGU6IE5vZGUgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9jdW1lbnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgcmV0dXJuIG5vZGU/Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG59XG5cbnR5cGUgVHJhdmVyc2FsRnVuY3Rpb24gPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGl0ZW0/OiBFbGVtZW50IHwgbnVsbCxcbikgPT4gQ2hpbGROb2RlIHwgbnVsbDtcblxuY29uc3QgbmV4dEl0ZW06IFRyYXZlcnNhbEZ1bmN0aW9uID0gKGxpc3QsIGl0ZW0pID0+IHtcbiAgaWYgKGxpc3QgPT09IGl0ZW0pIHtcbiAgICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICByZXR1cm4gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QuZmlyc3RDaGlsZDtcbn07XG5cbmNvbnN0IHByZXZpb3VzSXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0Lmxhc3RDaGlsZDtcbiAgfVxuICBpZiAoaXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xufTtcblxuY29uc3QgbW92ZUZvY3VzID0gKFxuICBsaXN0OiBIVE1MVUxpc3RFbGVtZW50LFxuICBjdXJyZW50Rm9jdXM6IEVsZW1lbnQgfCBudWxsLFxuICB0cmF2ZXJzYWxGdW5jdGlvbjogVHJhdmVyc2FsRnVuY3Rpb24sXG4pID0+IHtcbiAgbGV0IG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIGN1cnJlbnRGb2N1cykgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICB3aGlsZSAobmV4dEZvY3VzKSB7XG4gICAgaWYgKFxuICAgICAgY3VycmVudEZvY3VzID09PSBudWxsXG4gICAgICAgID8gbmV4dEZvY3VzID09PSBsaXN0Lmxhc3RDaGlsZFxuICAgICAgICA6IG5leHRGb2N1cyA9PT0gY3VycmVudEZvY3VzXG4gICAgKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgZGlzYWJsZWRGb2N1cyA9XG4gICAgICAobmV4dEZvY3VzIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmRpc2FibGVkIHx8XG4gICAgICBuZXh0Rm9jdXMuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKSA9PT0gXCJ0cnVlXCI7XG4gICAgaWYgKGRpc2FibGVkRm9jdXMpIHtcbiAgICAgIG5leHRGb2N1cyA9IHRyYXZlcnNhbEZ1bmN0aW9uKGxpc3QsIG5leHRGb2N1cykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRGb2N1cy5mb2N1cygpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBTZWxlY3RJbm5lclNwaW5CdXR0b24gPSAoe1xuICBvcGVuLFxuICBvbkNsaWNrLFxufToge1xuICBvcGVuOiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIHJldHVybiAoXG4gICAgPFRyaWFuZ2xlXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJTZWxlY3RGaWVsZFNwaW5CdXR0b25cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIGNzc2BcbiAgICAgICAgICBmb250LXNpemU6ICR7dGhlbWUudHlwb2dyYXBoeS5ib2R5LmZvbnRTaXplfXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlcn1cbiAgICAgICAgICAgICR7dGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dH07XG4gICAgICAgIGAsXG4gICAgICAgIG9wZW5cbiAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgXX1cbiAgICAvPlxuICApO1xufTtcblxuY29uc3QgU2VsZWN0TGlzdCA9IGZvcndhcmRSZWY8XG4gIEhUTUxVTGlzdEVsZW1lbnQsXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcInVsXCI+XG4+KChwcm9wcywgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPHVsXG4gICAgICByZWY9e3JlZn1cbiAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAkezQyICogMy41fXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAkezQyICogNy41fXB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTZWxlY3RPcHRpb24gPSAocHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjxcImxpXCI+KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgLy8gYXJpYS1zZWxlY3RlZOOBr+imquimgee0oOOBi+OCieioreWumuOBmeOCi+OBn+OCgeOAgeOBk+OBruWApOOBr+S4iuabuOOBjeOBleOCjOOCi1xuICAgICAgYXJpYS1zZWxlY3RlZD17ZmFsc2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLWhlaWdodDogJHt0aGVtZS5zcGFjaW5nICogNn1weDtcbiAgICAgICAgcGFkZGluZzogOXB4IDEycHg7XG4gICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuZ3JheVszMDBdfTtcbiAgICAgICAgb3V0bGluZTogMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAke3RoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0ZXN0fTtcblxuICAgICAgICAke2Nzcyh0aGVtZS50eXBvZ3JhcGh5LmJvZHkpfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5ob3Zlcn07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjdGlvbi5zZWxlY3RlZH07XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LmRpc2FibGVkfTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgJlthcmlhLXJlYWRvbmx5PVwidHJ1ZVwiXSxcbiAgICAgICAgJlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcn07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvblZhbHVlIHtcbiAgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGFiZWw6IHN0cmluZztcbiAga2V5cz86IHN0cmluZ1tdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFJlbmRlclNlbGVjdE9wdGlvbjxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+ID0gKHBlb3BzOiBUKSA9PiBSZWFjdC5KU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RGaWVsZFByb3BzPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gZXh0ZW5kcyBQaWNrPEZpZWxkUHJvcHM8c3RyaW5nPiwgXCJoZWxwZXJUZXh0XCIgfCBcImludmFsaWRcIj4sXG4gICAgRmllbGRHcm91cFByb3BzIHtcbiAgcmVuZGVyT3B0aW9uPzogUmVuZGVyU2VsZWN0T3B0aW9uPFQ+O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIOimi+WHuuOBl1xuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHZhbHVl44Gu5aSJ5pu044Gv44CBZGVmYXVsdFZhbHVl44GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE44Go44GN44Gu44G/5Y+N5pig44GV44KM44G+44GZ44CCXG4gICAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGlkPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlclxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBzZWxlY3RpbmcgZGF0YSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25zPzogVFtdO1xuICBsb2FkT3B0aW9ucz86IFNlbGVjdExvYWRPcHRpb25zPFQ+O1xuICBkaXNhYmxlZElucHV0PzogYm9vbGVhbjtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogU2VsZWN0RmllbGTjga5PcHRpb27jgYzjgq/jg6rjg4Pjgq/jgZXjgozjgZ/pmpvjgavnmbrngavjgZnjgovplqLmlbDjgIJcbiAgICovXG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBUW1widmFsdWVcIl0sIG9wdGlvbnM6IFQpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoZTogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgbG9hZGluZz86IGJvb2xlYW47XG4gIG9yaWdpbmFsSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIHBzZXVkb0lucHV0VGVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgICog44Kq44OX44K344On44Oz44Gu6KGo56S644GrUG9ydGFs44KS5Yip55So44GZ44KL44GL44Gp44GG44GL44KS5oyH5a6a44GX44G+44GZ44CCXG4gICAqIOOBk+OBrnByb3DjgYx0cnVl44Gu5aC05ZCI44CBUG9ydGFs44GM54Sh5Yq55YyW44GV44KM44G+44GZ44CCXG4gICAqIOOBvuOBn+WIneacn+WApOOBjHRydWXjgafjgYLjgovjgZPjgajjgavms6jmhI/jgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICog44Gk44G+44KK6YCa5bi444CB44Kq44OX44K344On44Oz44Gv44GT44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gu5a2Q6KaB57Sg44Go44GX44Gm44Os44Oz44OA44Oq44Oz44Kw44GV44KM44G+44GZ44CCXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc2FibGVQb3J0YWw/OiBib29sZWFuO1xuICAvKipcbiAgICog6KaL44GL44GR5LiK44GuaW5wdXTopoHntKDjgavlr77jgZnjgotyZWbjgpLliKnnlKjjgafjgY3jgb7jgZnjgIJcbiAgICog6YG45oqe44GV44KM44Gf5YCk44KS5Y+W5b6X44GZ44KL5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRIYXNWYWx1ZVJlZuOCkuWIqeeUqOOBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKi9cbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLkv53mjIHjgZfjgabjgYTjgotpbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDopovjgYjjgabjgYTjgotpbnB1dOimgee0oOOBq+ODleOCqeODvOOCq+OCueOBl+OBn+OBhOWgtOWQiOOBquOBqeOBr+OAgWlucHV0UmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dEhhc1ZhbHVlUmVmPzogUmVhY3QuUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkgPSA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPihcbiAgb3B0aW9uczogVFtdLFxuICBxdWVyeTogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldFNlYXJjaChcbiAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICBrZXlzOiBvcHRpb24ua2V5cyB8fCBbb3B0aW9uLmxhYmVsXSxcbiAgICAgICAgY29udGVudDogb3B0aW9uLnZhbHVlLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBxdWVyeSxcbiAgKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdExvYWRPcHRpb25zPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlPiA9XG4gIChhcmdzOiB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBvcHRpb25zPzogVFtdO1xuICAgIHNlbGVjdGVkT3B0aW9ucz86IFRbXTtcbiAgfSkgPT4gUHJvbWlzZTxUW10gfCB1bmRlZmluZWQ+O1xuXG5jb25zdCBkZWZhdWx0TG9hZE9wdGlvbnMgPSBhc3luYyA8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPih7XG4gIHF1ZXJ5LFxuICBvcHRpb25zLFxufToge1xuICBxdWVyeTogc3RyaW5nO1xuICBvcHRpb25zPzogVFtdO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbn0pOiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD4gPT4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAocXVlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IGZpbHRlclNlbGVjdE9wdGlvbnNCeVF1ZXJ5KG9wdGlvbnMsIHF1ZXJ5KTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHQgOiBvcHRpb25zO1xufTtcblxuY29uc3QgRGVmYXVsdE9wdGlvbiA9IDxUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWU+KFxuICBwcm9wczogVCxcbik6IFJlYWN0LkpTWC5FbGVtZW50ID0+IHtcbiAgcmV0dXJuIDxzcGFuPntwcm9wcy5sYWJlbH08L3NwYW4+O1xufTtcblxuZXhwb3J0IGNvbnN0IFNlbGVjdEZpZWxkID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBTZWxlY3RGaWVsZFByb3BzPFQ+LFxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zID0gZGVmYXVsdExvYWRPcHRpb25zLFxuICAgIGRpc2FibGVkSW5wdXQsXG4gICAgb25DaGFuZ2UsXG4gICAgb25Gb2N1cyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICByZXF1aXJlZCxcbiAgICBpZCxcbiAgICB2YWx1ZTogX3ZhbHVlUHJvcCxcbiAgICBkZWZhdWx0VmFsdWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY2hpbGRyZW4sXG4gICAgaGVscGVyVGV4dCxcbiAgICBpbnZhbGlkLFxuICAgIGxvYWRpbmc6IHByb3BzTG9hZGluZyxcbiAgICByZWFkT25seTogcHJvcHNSZWFkT25seSxcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgb3JpZ2luYWxJbnB1dFRlc3RJZCxcbiAgICBwc2V1ZG9JbnB1dFRlc3RJZCxcbiAgICBkaXNhYmxlUG9ydGFsID0gdHJ1ZSxcbiAgICByZW5kZXJPcHRpb24gPSBEZWZhdWx0T3B0aW9uLFxuICAgIGlucHV0UmVmLFxuICAgIGlucHV0SGFzVmFsdWVSZWYsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihcIlwiKTtcbiAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zQ2FjaGUgPSB1c2VSZWY8VFtdIHwgdW5kZWZpbmVkPihwcm9wT3B0aW9ucyk7XG4gIGNvbnN0IFtvcHRpb25zLCBzZXRPcHRpb25zXSA9IHVzZVN0YXRlKHByb3BPcHRpb25zKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgbG9hZE9wdGlvbnMoe1xuICAgICAgcXVlcnksXG4gICAgICBvcHRpb25zOiBwcm9wT3B0aW9ucyxcbiAgICAgIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCxcbiAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgIHNldE9wdGlvbnMocmVzdWx0KTtcbiAgICB9KTtcbiAgfSwgW3Byb3BPcHRpb25zLCBsb2FkT3B0aW9ucywgcXVlcnldKTtcblxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlLCBpc0NvbnRyb2xsZWRdID0gdXNlSW5wdXRWYWx1ZShwcm9wcyk7XG5cbiAgY29uc3QgeyBsb2FkaW5nLCByZWFkT25seSB9ID0gdXNlRmllbGRHcm91cCh7XG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIG9uTG9hZGVkOiAoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkID09PSBmYWxzZSkge1xuICAgICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgICByZXR1cm4gKFxuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudD8uZmluZChcbiAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICApIHx8IG9wdGlvbnM/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSlcbiAgICApPy5sYWJlbDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWhvb2tzL3JlZnMgKi9cbiAgfSwgW29wdGlvbnMsIHZhbHVlXSk7XG5cbiAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZjxIVE1MVUxpc3RFbGVtZW50PihudWxsKTtcbiAgdXNlT25DbGlja091dHNpZGUoW3JlZiwgbGlzdFJlZl0sICgpID0+IHtcbiAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICBzZXRRdWVyeShcIlwiKTtcbiAgfSk7XG5cbiAgY29uc3QgcHNldWRvSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHBzZXVkb0lucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dFJlZiwgcHNldWRvSW5wdXRSZWYpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBvcmlnaW5hbElucHV0UmVmcyA9IHVzZU1lcmdlUmVmcyhpbnB1dEhhc1ZhbHVlUmVmLCBvcmlnaW5hbElucHV0UmVmKTtcblxuICBjb25zdCB1cGRhdGVWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChvcHRpb246IFQpID0+IHtcbiAgICAgIG9uQ2hhbmdlPy4ob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICAgIHNlbGVjdGVkT3B0aW9uc0NhY2hlLmN1cnJlbnQgPSBvcHRpb25zO1xuICAgICAgc2V0UXVlcnkoXCJcIik7XG4gICAgICBpZiAob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGRpc3BhdGNoQ2hhbmdlRXZlbnQob3JpZ2luYWxJbnB1dFJlZi5jdXJyZW50LCBvcHRpb24udmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0sXG4gICk7XG5cbiAgY29uc3QgcmVzZXRWYWx1ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgY29uc3Qgb3B0aW9uID1cbiAgICAgICAgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCkgPz9cbiAgICAgICAgKHsgdmFsdWU6IHVuZGVmaW5lZCwgbGFiZWw6IFwiXCIgfSBhcyBUKTtcbiAgICAgIG9uQ2hhbmdlKHVuZGVmaW5lZCwgb3B0aW9uKTtcbiAgICB9XG4gIH0sIFtvbkNoYW5nZSwgb3B0aW9ucywgc2V0VmFsdWVdKTtcblxuICBjb25zdCBbdG91Y2hlZCwgaW5wdXRQcm9wc10gPSB1c2VEaXRlY3RJbnB1dFRvdWNoZWQob25Gb2N1cyk7XG5cbiAgY29uc3QgcG9wcGVyT3B0aW9uczogUGFydGlhbDxQb3BwZXJqc09wdGlvbnM+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICBkaXNhYmxlUG9ydGFsXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiY29tcHV0ZVN0eWxlc1wiLFxuICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgcm91bmRPZmZzZXRzOiAoeyB5IH06IHsgeTogbnVtYmVyIH0pID0+ICh7XG4gICAgICAgICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgICAgICAgeTogTWF0aC5yb3VuZCh5KSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJzYW1lV2lkdGhcIixcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHBoYXNlOiBcImJlZm9yZVdyaXRlXCIsXG4gICAgICAgICAgcmVxdWlyZXM6IFtcImNvbXB1dGVTdHlsZXNcIl0sXG4gICAgICAgICAgZm46ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLnN0eWxlcy5wb3BwZXIud2lkdGggPSBgJHtzdGF0ZS5yZWN0cy5yZWZlcmVuY2Uud2lkdGh9cHhgO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZWZmZWN0OiAoeyBzdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5lbGVtZW50cy5wb3BwZXIuc3R5bGUud2lkdGggPSBgJHtcbiAgICAgICAgICAgICAgKHN0YXRlLmVsZW1lbnRzLnJlZmVyZW5jZSBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgIH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfSwgW2Rpc2FibGVQb3J0YWxdKTtcblxuICBjb25zdCBpbnRlcm5hbElucHV0SWQgPSB1c2VJZCgpO1xuICBjb25zdCBpbnB1dElkID0gaWQgPz8gaW50ZXJuYWxJbnB1dElkO1xuXG4gIC8vIEF1dG8gZmlsbOOBq+OCiOOBo+OBpuWApOOBjOW+jOOBi+OCieabtOaWsOOBleOCjOOCi+OBk+OBqOOCkumYsuOBkFxuICBjb25zdCBbYXV0b0ZpbGxQcmV2ZW50aW9uS2V5LCB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXldID0gdXNlUmVkdWNlcihcbiAgICAocHJldjogbnVtYmVyKSA9PiBwcmV2ICsgMSxcbiAgICAwLFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEZvcm1Db250cm9sIHN0eWxlPXtzdHlsZX0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAge2xhYmVsID8gKFxuICAgICAgICA8SW5wdXRMYWJlbFxuICAgICAgICAgIGh0bWxGb3I9e2lucHV0SWR9XG4gICAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgID5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvSW5wdXRMYWJlbD5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPFZpc3VhbGx5SGlkZGVuPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e29yaWdpbmFsSW5wdXRSZWZzfVxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD17b3JpZ2luYWxJbnB1dFRlc3RJZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICBrZXk9e2Ake3ZhbHVlfS0ke2F1dG9GaWxsUHJldmVudGlvbktleX1gfVxuICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b0NhcGl0YWxpemU9XCJub25lXCJcbiAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgIG9uSW5wdXQ9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIC8vIOmBuOaKnuiCouOBjOmBuOaKnuOBleOCjOOBpuOBhOOBquOBhOeKtuaFi+OBp+OAgeWApOOBq+mBuOaKnuiCouOBqOS4gOiHtOOBmeOCi+OCguOBruOBjOOBguOCi+WgtOWQiOOAgeOBneOBruWApOOBq+abtOaWsOOBmeOCi1xuICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBvcHRpb25zPy5maW5kKFxuICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8g5LiA6Ie044GZ44KL6YG45oqe6IKi44GM44Gq44GE5aC05ZCI44CBQXV0byBmaWxs44GM6YGp55So44GV44KM44KL44Go5Zuw44KL44Gf44KB54Sh5Yq55YyW44GZ44KLXG4gICAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIOOBk+OBrmlucHV06KaB57Sg44Gu5YCk44Gnb25JbnB1dOOBjOeZuueBq+OBmeOCi+OCseODvOOCueOBr0F1dG8gZmlsbOOBq+OCiOOCi+WgtOWQiOOBruOBv+OAgemBuOaKnuiCouOBrumBuOaKnuOBp+OBr+eZuueBq+OBl+OBquOBhOOAglxuICAgICAgICAgICAgICAvLyDjgZPjgZPjgadrZXnjgpLmm7TmlrDjgZnjgovjgZPjgajjgadhdXRvIGZpbGzjgavjgojjgovlgKTjga7kuIrmm7jjgY3jgpLjgIHjgZXjgonjgavkuIrmm7jjgY3jgafjgY3jgovjgIJcbiAgICAgICAgICAgICAgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhdXRvQ29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIC8+XG4gICAgICA8L1Zpc3VhbGx5SGlkZGVuPlxuXG4gICAgICA8ZGl2IHJlZj17cmVmfT5cbiAgICAgICAgPFNlbGVjdEZpZWxkSW5wdXRXcmFwcGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgIHZhbHVlPXshcXVlcnkgPyBkaXNwbGF5VmFsdWUgOiB1bmRlZmluZWR9XG4gICAgICAgID5cbiAgICAgICAgICA8SW5wdXRCYXNlXG4gICAgICAgICAgICBpZD17aW5wdXRJZH1cbiAgICAgICAgICAgIHJlbmRlcklucHV0V3JhcHBlcj17U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJ9XG4gICAgICAgICAgICByZWY9e3BzZXVkb0lucHV0UmVmc31cbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtwc2V1ZG9JbnB1dFRlc3RJZH1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgIHNwZWxsQ2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XG4gICAgICAgICAgICAgIGlmIChrZXkgPT09IFwiRGVsZXRlXCIgfHwga2V5ID09PSBcIkJhY2tzcGFjZVwiKSB7XG4gICAgICAgICAgICAgICAgc2V0UXVlcnkoKHByZXYpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChwcmV2ID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IGxpc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgICAgICAgbW92ZUZvY3VzKGxpc3QsIG51bGwsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBzdGFydEFkb3JubWVudD17XG4gICAgICAgICAgICAgIHZhbHVlIHx8XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXQgfHxcbiAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5zb21lKFxuICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgKSkgPyB1bmRlZmluZWQgOiAoXG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb24gLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kQWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgPFNlbGVjdElubmVyU3BpbkJ1dHRvblxuICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0T3BlbigocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLWludmFsaWQ9e2ludmFsaWR9XG4gICAgICAgICAgICB2YWx1ZT17cXVlcnl9XG4gICAgICAgICAgICBvbkNoYW5nZT17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21hdHN1cmktdGVjaC9tYXRzdXJpLXVpL2lzc3Vlcy8yNDUxXG4gICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICAgICAgICAgIDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2V0UXVlcnkodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS10b3VjaGVkPXtpbnB1dFByb3BzW1wiZGF0YS10b3VjaGVkXCJdfVxuICAgICAgICAgICAgb25Gb2N1cz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlucHV0UHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICAgICAgICAgIGlmIChyZWFkT25seSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjc3M9e1xuICAgICAgICAgICAgICBkaXNhYmxlZElucHV0XG4gICAgICAgICAgICAgICAgPyBjc3NgXG4gICAgICAgICAgICAgICAgICAgIGNhcmV0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyPlxuXG4gICAgICAgIDxQb3BwZXJcbiAgICAgICAgICBkaXNhYmxlUG9ydGFsPXtkaXNhYmxlUG9ydGFsfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9yZWZzXG4gICAgICAgICAgYW5jaG9yRWw9e3JlZi5jdXJyZW50fVxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvcHRpb25zPXtwb3BwZXJPcHRpb25zfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxQYXBlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdExpc3RcbiAgICAgICAgICAgICAgICByZWY9e2xpc3RSZWZ9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAobGlzdCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Rm9jdXMgPSBvd25lckRvY3VtZW50KGxpc3QpLmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIG5leHRJdGVtKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgY3VycmVudEZvY3VzLCBwcmV2aW91c0l0ZW0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbikubWFwKChjaGlsZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVhZG9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGNoaWxkLSR7aX1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICB7b3B0aW9ucyA9PT0gdW5kZWZpbmVkID8gKFxuICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvbiBhcmlhLWRpc2FibGVkPXt0cnVlfSB0YWJJbmRleD17LTF9PlxuICAgICAgICAgICAgICAgICAgICBMb2FkaW5nLi4uXG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICApIDogb3B0aW9ucy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIE5vIG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHZhbHVlID09PSBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdE9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2V1ZG9JbnB1dFJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1zZWxlY3RlZD17c2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIOS9leOCgumBuOaKnuOBleOCjOOBpuOBhOOBquOBhOOBqOOBjeOBr+OAgeWFiOmgreOBruOCquODl+OCt+ODp+ODs+OBq+mjm+OBueOCi+OCiOOBhuOBq+OBl+OBpuOBiuOBj1xuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gaW5kZXggPT09IDAgOiBzZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlIHx8IGB1bmRlZmluZWRWYWx1ZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uKG9wdGlvbil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2VsZWN0TGlzdD5cbiAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8Rm9ybUhlbHBlclRleHRcbiAgICAgICAgaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgPlxuICAgICAgICB7aGVscGVyVGV4dH1cbiAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgPC9Gb3JtQ29udHJvbD5cbiAgKTtcbn07XG4iXX0= */")
|
|
101
101
|
}, props));
|
|
102
102
|
};
|
|
103
103
|
const filterSelectOptionsByQuery = (options, query) => {
|
|
@@ -133,7 +133,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
|
|
|
133
133
|
styles: "caret-color:transparent;input{cursor:pointer;}"
|
|
134
134
|
} : {
|
|
135
135
|
name: "1avrx2k-SelectField",
|
|
136
|
-
styles: "caret-color:transparent;input{cursor:pointer;};label:SelectField;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOGtCcUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL1NlbGVjdEZpZWxkL1NlbGVjdEZpZWxkLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIGZvcndhcmRSZWYsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUlkLFxuICB1c2VNZW1vLFxuICB1c2VSZWR1Y2VyLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBTZWFyY2hJY29uIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL1NlYXJjaFwiO1xuaW1wb3J0IHsgRmllbGRHcm91cFByb3BzLCB1c2VGaWVsZEdyb3VwIH0gZnJvbSBcIi4uL0ZpZWxkR3JvdXBcIjtcbmltcG9ydCB7IEZpZWxkUHJvcHMgfSBmcm9tIFwiLi4vRmllbGRCYXNlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9Gb3JtQ29udHJvbFwiO1xuaW1wb3J0IHsgRm9ybUhlbHBlclRleHQgfSBmcm9tIFwiLi4vRmllbGRCYXNlL0Zvcm1IZWxwZXJUZXh0XCI7XG5pbXBvcnQgeyBJbnB1dEJhc2UgfSBmcm9tIFwiLi4vSW5wdXRCYXNlXCI7XG5pbXBvcnQgeyBJbnB1dExhYmVsIH0gZnJvbSBcIi4uL0lucHV0TGFiZWxcIjtcbmltcG9ydCB7IFBhcGVyIH0gZnJvbSBcIi4uL1BhcGVyXCI7XG5pbXBvcnQgeyBQb3BwZXIgfSBmcm9tIFwiLi4vUG9wcGVyXCI7XG5pbXBvcnQgeyBUcmlhbmdsZSB9IGZyb20gXCIuLi9JY29uL1RyaWFuZ2xlXCI7XG5pbXBvcnQgeyBWaXN1YWxseUhpZGRlbiB9IGZyb20gXCIuLi9WaXN1YWxseUhpZGRlbi9WaXN1YWxseUhpZGRlblwiO1xuaW1wb3J0IHsgZGlzcGF0Y2hDaGFuZ2VFdmVudCB9IGZyb20gXCIuLi9AdXRpbHMvZGlzcGF0Y2hDaGFuZ2VFdmVudFwiO1xuaW1wb3J0IHsgdXNlRGl0ZWN0SW5wdXRUb3VjaGVkIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS91c2VEaXRlY3RJbnB1dFRvdWNoZWRcIjtcbmltcG9ydCB7IHVzZUlucHV0VmFsdWUgfSBmcm9tIFwiLi4vaG9va3MvdXNlSW5wdXRWYWx1ZVwiO1xuaW1wb3J0IHsgdXNlTWVyZ2VSZWZzIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU1lcmdlUmVmc1wiO1xuaW1wb3J0IHsgdXNlT25DbGlja091dHNpZGUgfSBmcm9tIFwiLi4vaG9va3MvdXNlT25DbGlja091dHNpZGVcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcIi4uL3RoZW1lXCI7XG5pbXBvcnQgeyBnZXRTZWFyY2ggfSBmcm9tIFwiLi91c2VTZWFyY2hcIjtcbmltcG9ydCB7XG4gIFNlbGVjdEZpZWxkSW5wdXRXcmFwcGVyLFxuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlckNvbnRleHQsXG59IGZyb20gXCIuL1NlbGVjdEZpZWxkSW5wdXRXcmFwcGVyXCI7XG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgUG9wcGVyanNPcHRpb25zIH0gZnJvbSBcIkBwb3BwZXJqcy9jb3JlXCI7XG5cbmZ1bmN0aW9uIG93bmVyRG9jdW1lbnQobm9kZTogTm9kZSB8IG51bGwgfCB1bmRlZmluZWQpOiBEb2N1bWVudCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICByZXR1cm4gbm9kZT8ub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudDtcbn1cblxudHlwZSBUcmF2ZXJzYWxGdW5jdGlvbiA9IChcbiAgbGlzdDogSFRNTFVMaXN0RWxlbWVudCxcbiAgaXRlbT86IEVsZW1lbnQgfCBudWxsLFxuKSA9PiBDaGlsZE5vZGUgfCBudWxsO1xuXG5jb25zdCBuZXh0SXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0LmZpcnN0Q2hpbGQ7XG4gIH1cbiAgaWYgKGl0ZW0/Lm5leHRFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLm5leHRFbGVtZW50U2libGluZztcbiAgfVxuICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xufTtcblxuY29uc3QgcHJldmlvdXNJdGVtOiBUcmF2ZXJzYWxGdW5jdGlvbiA9IChsaXN0LCBpdGVtKSA9PiB7XG4gIGlmIChsaXN0ID09PSBpdGVtKSB7XG4gICAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSB7XG4gICAgcmV0dXJuIGl0ZW0ucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgfVxuICByZXR1cm4gbGlzdC5sYXN0Q2hpbGQ7XG59O1xuXG5jb25zdCBtb3ZlRm9jdXMgPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGN1cnJlbnRGb2N1czogRWxlbWVudCB8IG51bGwsXG4gIHRyYXZlcnNhbEZ1bmN0aW9uOiBUcmF2ZXJzYWxGdW5jdGlvbixcbikgPT4ge1xuICBsZXQgbmV4dEZvY3VzID0gdHJhdmVyc2FsRnVuY3Rpb24obGlzdCwgY3VycmVudEZvY3VzKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gIHdoaWxlIChuZXh0Rm9jdXMpIHtcbiAgICBpZiAoXG4gICAgICBjdXJyZW50Rm9jdXMgPT09IG51bGxcbiAgICAgICAgPyBuZXh0Rm9jdXMgPT09IGxpc3QubGFzdENoaWxkXG4gICAgICAgIDogbmV4dEZvY3VzID09PSBjdXJyZW50Rm9jdXNcbiAgICApIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjb25zdCBkaXNhYmxlZEZvY3VzID1cbiAgICAgIChuZXh0Rm9jdXMgYXMgSFRNTElucHV0RWxlbWVudCkuZGlzYWJsZWQgfHxcbiAgICAgIG5leHRGb2N1cy5nZXRBdHRyaWJ1dGUoXCJhcmlhLWRpc2FibGVkXCIpID09PSBcInRydWVcIjtcbiAgICBpZiAoZGlzYWJsZWRGb2N1cykge1xuICAgICAgbmV4dEZvY3VzID0gdHJhdmVyc2FsRnVuY3Rpb24obGlzdCwgbmV4dEZvY3VzKSBhcyBIVE1MRWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dEZvY3VzLmZvY3VzKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IFNlbGVjdElubmVyU3BpbkJ1dHRvbiA9ICh7XG4gIG9wZW4sXG4gIG9uQ2xpY2ssXG59OiB7XG4gIG9wZW46IGJvb2xlYW47XG4gIG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8VHJpYW5nbGVcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICBkYXRhLXRlc3RpZD1cIlNlbGVjdEZpZWxkU3BpbkJ1dHRvblwiXG4gICAgICBjc3M9e1tcbiAgICAgICAgY3NzYFxuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGVtZS50eXBvZ3JhcGh5LmJvZHkuZm9udFNpemV9cHg7XG4gICAgICAgICAgdHJhbnNpdGlvbjogJHt0aGVtZS50cmFuc2l0aW9ucy5kdXJhdGlvbi5zaG9ydGVyfVxuICAgICAgICAgICAgJHt0aGVtZS50cmFuc2l0aW9ucy5lYXNpbmcuZWFzZUluT3V0fTtcbiAgICAgICAgYCxcbiAgICAgICAgb3BlblxuICAgICAgICAgID8gY3NzYFxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKTtcbiAgICAgICAgICAgIGBcbiAgICAgICAgICA6IG51bGwsXG4gICAgICBdfVxuICAgIC8+XG4gICk7XG59O1xuXG5jb25zdCBTZWxlY3RMaXN0ID0gZm9yd2FyZFJlZjxcbiAgSFRNTFVMaXN0RWxlbWVudCxcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPFwidWxcIj5cbj4oKHByb3BzLCByZWYpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8dWxcbiAgICAgIHJlZj17cmVmfVxuICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1pbi1oZWlnaHQ6ICR7NDIgKiAzLjV9cHg7XG4gICAgICAgIG1heC1oZWlnaHQ6ICR7NDIgKiA3LjV9cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgYH1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApO1xufSk7XG5cbmNvbnN0IFNlbGVjdE9wdGlvbiA9IChwcm9wczogUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPFwibGlcIj4pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAvLyBhcmlhLXNlbGVjdGVk44Gv6Kaq6KaB57Sg44GL44KJ6Kit5a6a44GZ44KL44Gf44KB44CB44GT44Gu5YCk44Gv5LiK5pu444GN44GV44KM44KLXG4gICAgICBhcmlhLXNlbGVjdGVkPXtmYWxzZX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAke3RoZW1lLnNwYWNpbmcgKiA2fXB4O1xuICAgICAgICBwYWRkaW5nOiA5cHggMTJweDtcbiAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kLnBhcGVyfTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5ncmF5WzMwMF19O1xuICAgICAgICBvdXRsaW5lOiAwcHg7XG4gICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlc3R9O1xuXG4gICAgICAgICR7Y3NzKHRoZW1lLnR5cG9ncmFwaHkuYm9keSl9XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYWN0aW9uLmhvdmVyfTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYWN0aW9uLnNlbGVjdGVkfTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICBjb2xvcjogJHt0aGVtZS5wYWxldHRlLnRleHQuZGlzYWJsZWR9O1xuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtcmVhZG9ubHk9XCJ0cnVlXCJdLFxuICAgICAgICAmW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kLnBhcGVyfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0T3B0aW9uVmFsdWUge1xuICB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBsYWJlbDogc3RyaW5nO1xuICBrZXlzPzogc3RyaW5nW107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyU2VsZWN0T3B0aW9uPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gPSAocGVvcHM6IFQpID0+IFJlYWN0LkpTWC5FbGVtZW50O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEZpZWxkUHJvcHM8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPiBleHRlbmRzIFBpY2s8RmllbGRQcm9wczxzdHJpbmc+LCBcImhlbHBlclRleHRcIiB8IFwiaW52YWxpZFwiPixcbiAgICBGaWVsZEdyb3VwUHJvcHMge1xuICByZW5kZXJPcHRpb24/OiBSZW5kZXJTZWxlY3RPcHRpb248VD47XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICog6KaL5Ye644GXXG4gICAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICAvKipcbiAgICogdmFsdWXjga7lpInmm7Tjga/jgIFkZWZhdWx0VmFsdWXjgYzmjIflrprjgZXjgozjgabjgYTjgarjgYTjgajjgY3jga7jgb/lj43mmKDjgZXjgozjgb7jgZnjgIJcbiAgICovXG4gIHZhbHVlPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgaWQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHBsYWNlaG9sZGVyXG4gICAqL1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgLyoqXG4gICAqIHNlbGVjdGluZyBkYXRhIGlzIHJlcXVpcmVkXG4gICAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIG9wdGlvbnM/OiBUW107XG4gIGxvYWRPcHRpb25zPzogU2VsZWN0TG9hZE9wdGlvbnM8VD47XG4gIGRpc2FibGVkSW5wdXQ/OiBib29sZWFuO1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZWxlY3RGaWVsZOOBrk9wdGlvbuOBjOOCr+ODquODg+OCr+OBleOCjOOBn+mam+OBq+eZuueBq+OBmeOCi+mWouaVsOOAglxuICAgKi9cbiAgb25DaGFuZ2U/OiAodmFsdWU6IFRbXCJ2YWx1ZVwiXSwgb3B0aW9uczogVCkgPT4gdm9pZDtcbiAgb25Gb2N1cz86IChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xuICBsb2FkaW5nPzogYm9vbGVhbjtcbiAgb3JpZ2luYWxJbnB1dFRlc3RJZD86IHN0cmluZztcbiAgcHNldWRvSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiDjgqrjg5fjgrfjg6fjg7Pjga7ooajnpLrjgatQb3J0YWzjgpLliKnnlKjjgZnjgovjgYvjganjgYbjgYvjgpLmjIflrprjgZfjgb7jgZnjgIJcbiAgICog44GT44GucHJvcOOBjHRydWXjga7loLTlkIjjgIFQb3J0YWzjgYznhKHlirnljJbjgZXjgozjgb7jgZnjgIJcbiAgICog44G+44Gf5Yid5pyf5YCk44GMdHJ1ZeOBp+OBguOCi+OBk+OBqOOBq+azqOaEj+OBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKiDjgaTjgb7jgorpgJrluLjjgIHjgqrjg5fjgrfjg6fjg7Pjga/jgZPjga7jgrPjg7Pjg53jg7zjg43jg7Pjg4jjga7lrZDopoHntKDjgajjgZfjgabjg6zjg7Pjg4Djg6rjg7PjgrDjgZXjgozjgb7jgZnjgIJcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZGlzYWJsZVBvcnRhbD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiDopovjgYvjgZHkuIrjga5pbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLlj5blvpfjgZnjgovloLTlkIjjgarjganjga/jgIFpbnB1dEhhc1ZhbHVlUmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dFJlZj86IFJlYWN0LlJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgLyoqXG4gICAqIOmBuOaKnuOBleOCjOOBn+WApOOCkuS/neaMgeOBl+OBpuOBhOOCi2lucHV06KaB57Sg44Gr5a++44GZ44KLcmVm44KS5Yip55So44Gn44GN44G+44GZ44CCXG4gICAqIOimi+OBiOOBpuOBhOOCi2lucHV06KaB57Sg44Gr44OV44Kp44O844Kr44K544GX44Gf44GE5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRSZWbjgpLliKnnlKjjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICovXG4gIGlucHV0SGFzVmFsdWVSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG59XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJTZWxlY3RPcHRpb25zQnlRdWVyeSA9IDxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+KFxuICBvcHRpb25zOiBUW10sXG4gIHF1ZXJ5OiBzdHJpbmcsXG4pID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gZ2V0U2VhcmNoKFxuICAgIG9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9wdGlvbixcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICAgIGtleXM6IG9wdGlvbi5rZXlzIHx8IFtvcHRpb24ubGFiZWxdLFxuICAgICAgICBjb250ZW50OiBvcHRpb24udmFsdWUsXG4gICAgICB9O1xuICAgIH0pLFxuICAgIHF1ZXJ5LFxuICApO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IHR5cGUgU2VsZWN0TG9hZE9wdGlvbnM8VCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWU+ID1cbiAgKGFyZ3M6IHtcbiAgICBxdWVyeTogc3RyaW5nO1xuICAgIG9wdGlvbnM/OiBUW107XG4gICAgc2VsZWN0ZWRPcHRpb25zPzogVFtdO1xuICB9KSA9PiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD47XG5cbmNvbnN0IGRlZmF1bHRMb2FkT3B0aW9ucyA9IGFzeW5jIDxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+KHtcbiAgcXVlcnksXG4gIG9wdGlvbnMsXG59OiB7XG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBUW107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxufSk6IFByb21pc2U8VFtdIHwgdW5kZWZpbmVkPiA9PiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmIChxdWVyeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0gZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkob3B0aW9ucywgcXVlcnkpO1xuICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA/IHJlc3VsdCA6IG9wdGlvbnM7XG59O1xuXG5jb25zdCBEZWZhdWx0T3B0aW9uID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBULFxuKTogUmVhY3QuSlNYLkVsZW1lbnQgPT4ge1xuICByZXR1cm4gPHNwYW4+e3Byb3BzLmxhYmVsfTwvc3Bhbj47XG59O1xuXG5leHBvcnQgY29uc3QgU2VsZWN0RmllbGQgPSA8VCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlPihcbiAgcHJvcHM6IFNlbGVjdEZpZWxkUHJvcHM8VD4sXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIGxhYmVsLFxuICAgIG5hbWUsXG4gICAgb3B0aW9uczogcHJvcE9wdGlvbnMsXG4gICAgbG9hZE9wdGlvbnMgPSBkZWZhdWx0TG9hZE9wdGlvbnMsXG4gICAgZGlzYWJsZWRJbnB1dCxcbiAgICBvbkNoYW5nZSxcbiAgICBvbkZvY3VzLFxuICAgIHBsYWNlaG9sZGVyLFxuICAgIHJlcXVpcmVkLFxuICAgIGlkLFxuICAgIHZhbHVlOiBfdmFsdWVQcm9wLFxuICAgIGRlZmF1bHRWYWx1ZSxcbiAgICBkaXNhYmxlZCxcbiAgICBjaGlsZHJlbixcbiAgICBoZWxwZXJUZXh0LFxuICAgIGludmFsaWQsXG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIHN0eWxlLFxuICAgIGNsYXNzTmFtZSxcbiAgICBvcmlnaW5hbElucHV0VGVzdElkLFxuICAgIHBzZXVkb0lucHV0VGVzdElkLFxuICAgIGRpc2FibGVQb3J0YWwgPSB0cnVlLFxuICAgIHJlbmRlck9wdGlvbiA9IERlZmF1bHRPcHRpb24sXG4gICAgaW5wdXRSZWYsXG4gICAgaW5wdXRIYXNWYWx1ZVJlZixcbiAgfSA9IHByb3BzO1xuICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgW3F1ZXJ5LCBzZXRRdWVyeV0gPSB1c2VTdGF0ZTxzdHJpbmc+KFwiXCIpO1xuICBjb25zdCBzZWxlY3RlZE9wdGlvbnNDYWNoZSA9IHVzZVJlZjxUW10gfCB1bmRlZmluZWQ+KHByb3BPcHRpb25zKTtcbiAgY29uc3QgW29wdGlvbnMsIHNldE9wdGlvbnNdID0gdXNlU3RhdGUocHJvcE9wdGlvbnMpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdm9pZCBsb2FkT3B0aW9ucyh7XG4gICAgICBxdWVyeSxcbiAgICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgICAgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnNDYWNoZS5jdXJyZW50LFxuICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgc2V0T3B0aW9ucyhyZXN1bHQpO1xuICAgIH0pO1xuICB9LCBbcHJvcE9wdGlvbnMsIGxvYWRPcHRpb25zLCBxdWVyeV0pO1xuXG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWUsIGlzQ29udHJvbGxlZF0gPSB1c2VJbnB1dFZhbHVlKHByb3BzKTtcblxuICBjb25zdCB7IGxvYWRpbmcsIHJlYWRPbmx5IH0gPSB1c2VGaWVsZEdyb3VwKHtcbiAgICBsb2FkaW5nOiBwcm9wc0xvYWRpbmcsXG4gICAgcmVhZE9ubHk6IHByb3BzUmVhZE9ubHksXG4gICAgb25Mb2FkZWQ6ICgpID0+IHtcbiAgICAgIGlmIChpc0NvbnRyb2xsZWQgPT09IGZhbHNlKSB7XG4gICAgICAgIHNldFZhbHVlKGRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgZGlzcGxheVZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHNlbGVjdGVkT3B0aW9uc0NhY2hlLmN1cnJlbnQ/LmZpbmQoXG4gICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgKSB8fCBvcHRpb25zPy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpXG4gICAgKT8ubGFiZWw7XG4gIH0sIFtvcHRpb25zLCB2YWx1ZV0pO1xuXG4gIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWY8SFRNTFVMaXN0RWxlbWVudD4obnVsbCk7XG4gIHVzZU9uQ2xpY2tPdXRzaWRlKFtyZWYsIGxpc3RSZWZdLCAoKSA9PiB7XG4gICAgc2V0T3BlbihmYWxzZSk7XG4gICAgc2V0UXVlcnkoXCJcIik7XG4gIH0pO1xuXG4gIGNvbnN0IHBzZXVkb0lucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBwc2V1ZG9JbnB1dFJlZnMgPSB1c2VNZXJnZVJlZnMoaW5wdXRSZWYsIHBzZXVkb0lucHV0UmVmKTtcbiAgY29uc3Qgb3JpZ2luYWxJbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgb3JpZ2luYWxJbnB1dFJlZnMgPSB1c2VNZXJnZVJlZnMoaW5wdXRIYXNWYWx1ZVJlZiwgb3JpZ2luYWxJbnB1dFJlZik7XG5cbiAgY29uc3QgdXBkYXRlVmFsdWUgPSB1c2VDYWxsYmFjayhcbiAgICAob3B0aW9uOiBUKSA9PiB7XG4gICAgICBvbkNoYW5nZT8uKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgIHNldFZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgICBzZWxlY3RlZE9wdGlvbnNDYWNoZS5jdXJyZW50ID0gb3B0aW9ucztcbiAgICAgIHNldFF1ZXJ5KFwiXCIpO1xuICAgICAgaWYgKG9yaWdpbmFsSW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICBkaXNwYXRjaENoYW5nZUV2ZW50KG9yaWdpbmFsSW5wdXRSZWYuY3VycmVudCwgb3B0aW9uLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgb3B0aW9ucywgc2V0VmFsdWVdLFxuICApO1xuXG4gIGNvbnN0IHJlc2V0VmFsdWUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgIGNvbnN0IG9wdGlvbiA9XG4gICAgICAgIG9wdGlvbnM/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB1bmRlZmluZWQpID8/XG4gICAgICAgICh7IHZhbHVlOiB1bmRlZmluZWQsIGxhYmVsOiBcIlwiIH0gYXMgVCk7XG4gICAgICBvbkNoYW5nZSh1bmRlZmluZWQsIG9wdGlvbik7XG4gICAgfVxuICB9LCBbb25DaGFuZ2UsIG9wdGlvbnMsIHNldFZhbHVlXSk7XG5cbiAgY29uc3QgW3RvdWNoZWQsIGlucHV0UHJvcHNdID0gdXNlRGl0ZWN0SW5wdXRUb3VjaGVkKG9uRm9jdXMpO1xuXG4gIGNvbnN0IHBvcHBlck9wdGlvbnM6IFBhcnRpYWw8UG9wcGVyanNPcHRpb25zPiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBtb2RpZmllcnM6IFtcbiAgICAgICAgZGlzYWJsZVBvcnRhbFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBuYW1lOiBcImNvbXB1dGVTdHlsZXNcIixcbiAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHJvdW5kT2Zmc2V0czogKHsgeSB9OiB7IHk6IG51bWJlciB9KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgICAgICAgIHk6IE1hdGgucm91bmQoeSksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwic2FtZVdpZHRoXCIsXG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBwaGFzZTogXCJiZWZvcmVXcml0ZVwiLFxuICAgICAgICAgIHJlcXVpcmVzOiBbXCJjb21wdXRlU3R5bGVzXCJdLFxuICAgICAgICAgIGZuOiAoeyBzdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5zdHlsZXMucG9wcGVyLndpZHRoID0gYCR7c3RhdGUucmVjdHMucmVmZXJlbmNlLndpZHRofXB4YDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVmZmVjdDogKHsgc3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuZWxlbWVudHMucG9wcGVyLnN0eWxlLndpZHRoID0gYCR7XG4gICAgICAgICAgICAgIChzdGF0ZS5lbGVtZW50cy5yZWZlcmVuY2UgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFdpZHRoXG4gICAgICAgICAgICB9cHhgO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH0sIFtkaXNhYmxlUG9ydGFsXSk7XG5cbiAgY29uc3QgaW50ZXJuYWxJbnB1dElkID0gdXNlSWQoKTtcbiAgY29uc3QgaW5wdXRJZCA9IGlkID8/IGludGVybmFsSW5wdXRJZDtcblxuICAvLyBBdXRvIGZpbGzjgavjgojjgaPjgablgKTjgYzlvozjgYvjgonmm7TmlrDjgZXjgozjgovjgZPjgajjgpLpmLLjgZBcbiAgY29uc3QgW2F1dG9GaWxsUHJldmVudGlvbktleSwgdXBkYXRlQXV0b0ZpbGxQcmV2ZW50aW9uS2V5XSA9IHVzZVJlZHVjZXIoXG4gICAgKHByZXY6IG51bWJlcikgPT4gcHJldiArIDEsXG4gICAgMCxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxGb3JtQ29udHJvbCBzdHlsZT17c3R5bGV9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIHtsYWJlbCA/IChcbiAgICAgICAgPElucHV0TGFiZWxcbiAgICAgICAgICBodG1sRm9yPXtpbnB1dElkfVxuICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxuICAgICAgICA+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L0lucHV0TGFiZWw+XG4gICAgICApIDogbnVsbH1cbiAgICAgIDxWaXN1YWxseUhpZGRlbj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcmVmPXtvcmlnaW5hbElucHV0UmVmc31cbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9e29yaWdpbmFsSW5wdXRUZXN0SWR9XG4gICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAga2V5PXtgJHt2YWx1ZX0tJHthdXRvRmlsbFByZXZlbnRpb25LZXl9YH1cbiAgICAgICAgICBkZWZhdWx0VmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9DYXBpdGFsaXplPVwibm9uZVwiXG4gICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICBvbklucHV0PXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAvLyDpgbjmip7ogqLjgYzpgbjmip7jgZXjgozjgabjgYTjgarjgYTnirbmhYvjgafjgIHlgKTjgavpgbjmip7ogqLjgajkuIDoh7TjgZnjgovjgoLjga7jgYzjgYLjgovloLTlkIjjgIHjgZ3jga7lgKTjgavmm7TmlrDjgZnjgotcbiAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9ucz8uZmluZChcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWUsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVWYWx1ZShvcHRpb24pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIOS4gOiHtOOBmeOCi+mBuOaKnuiCouOBjOOBquOBhOWgtOWQiOOAgUF1dG8gZmlsbOOBjOmBqeeUqOOBleOCjOOCi+OBqOWbsOOCi+OBn+OCgeeEoeWKueWMluOBmeOCi1xuICAgICAgICAgICAgICAgIHVwZGF0ZUF1dG9GaWxsUHJldmVudGlvbktleSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyDjgZPjga5pbnB1dOimgee0oOOBruWApOOBp29uSW5wdXTjgYznmbrngavjgZnjgovjgrHjg7zjgrnjga9BdXRvIGZpbGzjgavjgojjgovloLTlkIjjga7jgb/jgIHpgbjmip7ogqLjga7pgbjmip7jgafjga/nmbrngavjgZfjgarjgYTjgIJcbiAgICAgICAgICAgICAgLy8g44GT44GT44Gna2V544KS5pu05paw44GZ44KL44GT44Go44GnYXV0byBmaWxs44Gr44KI44KL5YCk44Gu5LiK5pu444GN44KS44CB44GV44KJ44Gr5LiK5pu444GN44Gn44GN44KL44CCXG4gICAgICAgICAgICAgIHVwZGF0ZUF1dG9GaWxsUHJldmVudGlvbktleSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgYXV0b0NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgIHNwZWxsQ2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAvPlxuICAgICAgPC9WaXN1YWxseUhpZGRlbj5cblxuICAgICAgPGRpdiByZWY9e3JlZn0+XG4gICAgICAgIDxTZWxlY3RGaWVsZElucHV0V3JhcHBlckNvbnRleHQuUHJvdmlkZXJcbiAgICAgICAgICB2YWx1ZT17IXF1ZXJ5ID8gZGlzcGxheVZhbHVlIDogdW5kZWZpbmVkfVxuICAgICAgICA+XG4gICAgICAgICAgPElucHV0QmFzZVxuICAgICAgICAgICAgaWQ9e2lucHV0SWR9XG4gICAgICAgICAgICByZW5kZXJJbnB1dFdyYXBwZXI9e1NlbGVjdEZpZWxkSW5wdXRXcmFwcGVyfVxuICAgICAgICAgICAgcmVmPXtwc2V1ZG9JbnB1dFJlZnN9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17cHNldWRvSW5wdXRUZXN0SWR9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxuICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgYXV0b0NhcGl0YWxpemU9XCJub25lXCJcbiAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICBhdXRvQ29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgICBzcGVsbENoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgb25LZXlEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBpZiAoa2V5ID09PSBcIkRlbGV0ZVwiIHx8IGtleSA9PT0gXCJCYWNrc3BhY2VcIikge1xuICAgICAgICAgICAgICAgIHNldFF1ZXJ5KChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAocHJldiA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICByZXNldFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBsaXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgaWYgKGxpc3QpIHtcbiAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBudWxsLCBuZXh0SXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICBzZXRPcGVuKHRydWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgc3RhcnRBZG9ybm1lbnQ9e1xuICAgICAgICAgICAgICB2YWx1ZSB8fFxuICAgICAgICAgICAgICBkaXNhYmxlZElucHV0IHx8XG4gICAgICAgICAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgb3B0aW9ucz8uc29tZShcbiAgICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICkpID8gdW5kZWZpbmVkIDogKFxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uIC8+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVuZEFkb3JubWVudD17XG4gICAgICAgICAgICAgIDxTZWxlY3RJbm5lclNwaW5CdXR0b25cbiAgICAgICAgICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldE9wZW4oKHByZXYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcHNldWRvSW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS1pbnZhbGlkPXtpbnZhbGlkfVxuICAgICAgICAgICAgdmFsdWU9e3F1ZXJ5fVxuICAgICAgICAgICAgb25DaGFuZ2U9e1xuICAgICAgICAgICAgICBkaXNhYmxlZElucHV0XG4gICAgICAgICAgICAgICAgPyAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRzdXJpLXRlY2gvbWF0c3VyaS11aS9pc3N1ZXMvMjQ1MVxuICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgICAgICAgICAgICAgICAgKCkgPT4ge31cbiAgICAgICAgICAgICAgICA6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHNldFF1ZXJ5KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEtdG91Y2hlZD17aW5wdXRQcm9wc1tcImRhdGEtdG91Y2hlZFwiXX1cbiAgICAgICAgICAgIG9uRm9jdXM9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBpbnB1dFByb3BzLm9uRm9jdXMoZXZlbnQpO1xuICAgICAgICAgICAgICBpZiAocmVhZE9ubHkgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBzZXRPcGVuKHRydWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY3NzPXtcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dFxuICAgICAgICAgICAgICAgID8gY3NzYFxuICAgICAgICAgICAgICAgICAgICBjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NlbGVjdEZpZWxkSW5wdXRXcmFwcGVyQ29udGV4dC5Qcm92aWRlcj5cblxuICAgICAgICA8UG9wcGVyXG4gICAgICAgICAgZGlzYWJsZVBvcnRhbD17ZGlzYWJsZVBvcnRhbH1cbiAgICAgICAgICBhbmNob3JFbD17cmVmLmN1cnJlbnR9XG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICAgIG9wdGlvbnM9e3BvcHBlck9wdGlvbnN9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPFBhcGVyPlxuICAgICAgICAgICAgICA8U2VsZWN0TGlzdFxuICAgICAgICAgICAgICAgIHJlZj17bGlzdFJlZn1cbiAgICAgICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xuICAgICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IGxpc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICAgIGlmIChsaXN0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGb2N1cyA9IG93bmVyRG9jdW1lbnQobGlzdCkuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgbW92ZUZvY3VzKGxpc3QsIGN1cnJlbnRGb2N1cywgbmV4dEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09IFwiQXJyb3dVcFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIHByZXZpb3VzSXRlbSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5tYXAoKGNoaWxkLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1yZWFkb25seT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgY2hpbGQtJHtpfWB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZH1cbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIHtvcHRpb25zID09PSB1bmRlZmluZWQgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIExvYWRpbmcuLi5cbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiBvcHRpb25zLmxlbmd0aCA9PT0gMCA/IChcbiAgICAgICAgICAgICAgICAgIDxTZWxlY3RPcHRpb24gYXJpYS1kaXNhYmxlZD17dHJ1ZX0gdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgICAgICAgTm8gb3B0aW9uc1xuICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnMubWFwKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdmFsdWUgPT09IG9wdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5jbGljaygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzZXVkb0lucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICog5L2V44KC6YG45oqe44GV44KM44Gm44GE44Gq44GE44Go44GN44Gv44CB5YWI6aCt44Gu44Kq44OX44K344On44Oz44Gr6aOb44G544KL44KI44GG44Gr44GX44Gm44GK44GPXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgPyBpbmRleCA9PT0gMCA6IHNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLTFcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtvcHRpb24udmFsdWUgfHwgYHVuZGVmaW5lZFZhbHVlYH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJPcHRpb24ob3B0aW9uKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TZWxlY3RMaXN0PlxuICAgICAgICAgICAgPC9QYXBlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Qb3BwZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxGb3JtSGVscGVyVGV4dFxuICAgICAgICBpbnZhbGlkPXtpbnZhbGlkfVxuICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxuICAgICAgICB0b3VjaGVkPXt0b3VjaGVkfVxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICA+XG4gICAgICAgIHtoZWxwZXJUZXh0fVxuICAgICAgPC9Gb3JtSGVscGVyVGV4dD5cbiAgICA8L0Zvcm1Db250cm9sPlxuICApO1xufTtcbiJdfQ== */",
|
|
136
|
+
styles: "caret-color:transparent;input{cursor:pointer;};label:SelectField;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWxlY3RGaWVsZC9TZWxlY3RGaWVsZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ2xCcUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL1NlbGVjdEZpZWxkL1NlbGVjdEZpZWxkLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IFJlYWN0LCB7XG4gIGZvcndhcmRSZWYsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUlkLFxuICB1c2VNZW1vLFxuICB1c2VSZWR1Y2VyLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBTZWFyY2hJY29uIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL1NlYXJjaFwiO1xuaW1wb3J0IHsgRmllbGRHcm91cFByb3BzLCB1c2VGaWVsZEdyb3VwIH0gZnJvbSBcIi4uL0ZpZWxkR3JvdXBcIjtcbmltcG9ydCB7IEZpZWxkUHJvcHMgfSBmcm9tIFwiLi4vRmllbGRCYXNlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9Gb3JtQ29udHJvbFwiO1xuaW1wb3J0IHsgRm9ybUhlbHBlclRleHQgfSBmcm9tIFwiLi4vRmllbGRCYXNlL0Zvcm1IZWxwZXJUZXh0XCI7XG5pbXBvcnQgeyBJbnB1dEJhc2UgfSBmcm9tIFwiLi4vSW5wdXRCYXNlXCI7XG5pbXBvcnQgeyBJbnB1dExhYmVsIH0gZnJvbSBcIi4uL0lucHV0TGFiZWxcIjtcbmltcG9ydCB7IFBhcGVyIH0gZnJvbSBcIi4uL1BhcGVyXCI7XG5pbXBvcnQgeyBQb3BwZXIgfSBmcm9tIFwiLi4vUG9wcGVyXCI7XG5pbXBvcnQgeyBUcmlhbmdsZSB9IGZyb20gXCIuLi9JY29uL1RyaWFuZ2xlXCI7XG5pbXBvcnQgeyBWaXN1YWxseUhpZGRlbiB9IGZyb20gXCIuLi9WaXN1YWxseUhpZGRlbi9WaXN1YWxseUhpZGRlblwiO1xuaW1wb3J0IHsgZGlzcGF0Y2hDaGFuZ2VFdmVudCB9IGZyb20gXCIuLi9AdXRpbHMvZGlzcGF0Y2hDaGFuZ2VFdmVudFwiO1xuaW1wb3J0IHsgdXNlRGl0ZWN0SW5wdXRUb3VjaGVkIH0gZnJvbSBcIi4uL0ZpZWxkQmFzZS91c2VEaXRlY3RJbnB1dFRvdWNoZWRcIjtcbmltcG9ydCB7IHVzZUlucHV0VmFsdWUgfSBmcm9tIFwiLi4vaG9va3MvdXNlSW5wdXRWYWx1ZVwiO1xuaW1wb3J0IHsgdXNlTWVyZ2VSZWZzIH0gZnJvbSBcIi4uL2hvb2tzL3VzZU1lcmdlUmVmc1wiO1xuaW1wb3J0IHsgdXNlT25DbGlja091dHNpZGUgfSBmcm9tIFwiLi4vaG9va3MvdXNlT25DbGlja091dHNpZGVcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcIi4uL3RoZW1lXCI7XG5pbXBvcnQgeyBnZXRTZWFyY2ggfSBmcm9tIFwiLi91c2VTZWFyY2hcIjtcbmltcG9ydCB7XG4gIFNlbGVjdEZpZWxkSW5wdXRXcmFwcGVyLFxuICBTZWxlY3RGaWVsZElucHV0V3JhcHBlckNvbnRleHQsXG59IGZyb20gXCIuL1NlbGVjdEZpZWxkSW5wdXRXcmFwcGVyXCI7XG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgUG9wcGVyanNPcHRpb25zIH0gZnJvbSBcIkBwb3BwZXJqcy9jb3JlXCI7XG5cbmZ1bmN0aW9uIG93bmVyRG9jdW1lbnQobm9kZTogTm9kZSB8IG51bGwgfCB1bmRlZmluZWQpOiBEb2N1bWVudCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICByZXR1cm4gbm9kZT8ub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudDtcbn1cblxudHlwZSBUcmF2ZXJzYWxGdW5jdGlvbiA9IChcbiAgbGlzdDogSFRNTFVMaXN0RWxlbWVudCxcbiAgaXRlbT86IEVsZW1lbnQgfCBudWxsLFxuKSA9PiBDaGlsZE5vZGUgfCBudWxsO1xuXG5jb25zdCBuZXh0SXRlbTogVHJhdmVyc2FsRnVuY3Rpb24gPSAobGlzdCwgaXRlbSkgPT4ge1xuICBpZiAobGlzdCA9PT0gaXRlbSkge1xuICAgIHJldHVybiBsaXN0LmZpcnN0Q2hpbGQ7XG4gIH1cbiAgaWYgKGl0ZW0/Lm5leHRFbGVtZW50U2libGluZykge1xuICAgIHJldHVybiBpdGVtLm5leHRFbGVtZW50U2libGluZztcbiAgfVxuICByZXR1cm4gbGlzdC5maXJzdENoaWxkO1xufTtcblxuY29uc3QgcHJldmlvdXNJdGVtOiBUcmF2ZXJzYWxGdW5jdGlvbiA9IChsaXN0LCBpdGVtKSA9PiB7XG4gIGlmIChsaXN0ID09PSBpdGVtKSB7XG4gICAgcmV0dXJuIGxpc3QubGFzdENoaWxkO1xuICB9XG4gIGlmIChpdGVtPy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSB7XG4gICAgcmV0dXJuIGl0ZW0ucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgfVxuICByZXR1cm4gbGlzdC5sYXN0Q2hpbGQ7XG59O1xuXG5jb25zdCBtb3ZlRm9jdXMgPSAoXG4gIGxpc3Q6IEhUTUxVTGlzdEVsZW1lbnQsXG4gIGN1cnJlbnRGb2N1czogRWxlbWVudCB8IG51bGwsXG4gIHRyYXZlcnNhbEZ1bmN0aW9uOiBUcmF2ZXJzYWxGdW5jdGlvbixcbikgPT4ge1xuICBsZXQgbmV4dEZvY3VzID0gdHJhdmVyc2FsRnVuY3Rpb24obGlzdCwgY3VycmVudEZvY3VzKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gIHdoaWxlIChuZXh0Rm9jdXMpIHtcbiAgICBpZiAoXG4gICAgICBjdXJyZW50Rm9jdXMgPT09IG51bGxcbiAgICAgICAgPyBuZXh0Rm9jdXMgPT09IGxpc3QubGFzdENoaWxkXG4gICAgICAgIDogbmV4dEZvY3VzID09PSBjdXJyZW50Rm9jdXNcbiAgICApIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjb25zdCBkaXNhYmxlZEZvY3VzID1cbiAgICAgIChuZXh0Rm9jdXMgYXMgSFRNTElucHV0RWxlbWVudCkuZGlzYWJsZWQgfHxcbiAgICAgIG5leHRGb2N1cy5nZXRBdHRyaWJ1dGUoXCJhcmlhLWRpc2FibGVkXCIpID09PSBcInRydWVcIjtcbiAgICBpZiAoZGlzYWJsZWRGb2N1cykge1xuICAgICAgbmV4dEZvY3VzID0gdHJhdmVyc2FsRnVuY3Rpb24obGlzdCwgbmV4dEZvY3VzKSBhcyBIVE1MRWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dEZvY3VzLmZvY3VzKCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IFNlbGVjdElubmVyU3BpbkJ1dHRvbiA9ICh7XG4gIG9wZW4sXG4gIG9uQ2xpY2ssXG59OiB7XG4gIG9wZW46IGJvb2xlYW47XG4gIG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgcmV0dXJuIChcbiAgICA8VHJpYW5nbGVcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICBkYXRhLXRlc3RpZD1cIlNlbGVjdEZpZWxkU3BpbkJ1dHRvblwiXG4gICAgICBjc3M9e1tcbiAgICAgICAgY3NzYFxuICAgICAgICAgIGZvbnQtc2l6ZTogJHt0aGVtZS50eXBvZ3JhcGh5LmJvZHkuZm9udFNpemV9cHg7XG4gICAgICAgICAgdHJhbnNpdGlvbjogJHt0aGVtZS50cmFuc2l0aW9ucy5kdXJhdGlvbi5zaG9ydGVyfVxuICAgICAgICAgICAgJHt0aGVtZS50cmFuc2l0aW9ucy5lYXNpbmcuZWFzZUluT3V0fTtcbiAgICAgICAgYCxcbiAgICAgICAgb3BlblxuICAgICAgICAgID8gY3NzYFxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKTtcbiAgICAgICAgICAgIGBcbiAgICAgICAgICA6IG51bGwsXG4gICAgICBdfVxuICAgIC8+XG4gICk7XG59O1xuXG5jb25zdCBTZWxlY3RMaXN0ID0gZm9yd2FyZFJlZjxcbiAgSFRNTFVMaXN0RWxlbWVudCxcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPFwidWxcIj5cbj4oKHByb3BzLCByZWYpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8dWxcbiAgICAgIHJlZj17cmVmfVxuICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1pbi1oZWlnaHQ6ICR7NDIgKiAzLjV9cHg7XG4gICAgICAgIG1heC1oZWlnaHQ6ICR7NDIgKiA3LjV9cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgYH1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApO1xufSk7XG5cbmNvbnN0IFNlbGVjdE9wdGlvbiA9IChwcm9wczogUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPFwibGlcIj4pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAvLyBhcmlhLXNlbGVjdGVk44Gv6Kaq6KaB57Sg44GL44KJ6Kit5a6a44GZ44KL44Gf44KB44CB44GT44Gu5YCk44Gv5LiK5pu444GN44GV44KM44KLXG4gICAgICBhcmlhLXNlbGVjdGVkPXtmYWxzZX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtaW4taGVpZ2h0OiAke3RoZW1lLnNwYWNpbmcgKiA2fXB4O1xuICAgICAgICBwYWRkaW5nOiA5cHggMTJweDtcbiAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kLnBhcGVyfTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5ncmF5WzMwMF19O1xuICAgICAgICBvdXRsaW5lOiAwcHg7XG4gICAgICAgIHRyYW5zaXRpb246ICR7dGhlbWUudHJhbnNpdGlvbnMuZHVyYXRpb24uc2hvcnRlc3R9O1xuXG4gICAgICAgICR7Y3NzKHRoZW1lLnR5cG9ncmFwaHkuYm9keSl9XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYWN0aW9uLmhvdmVyfTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYWN0aW9uLnNlbGVjdGVkfTtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICBjb2xvcjogJHt0aGVtZS5wYWxldHRlLnRleHQuZGlzYWJsZWR9O1xuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuICAgICAgICAmW2FyaWEtcmVhZG9ubHk9XCJ0cnVlXCJdLFxuICAgICAgICAmW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7dGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kLnBhcGVyfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0T3B0aW9uVmFsdWUge1xuICB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBsYWJlbDogc3RyaW5nO1xuICBrZXlzPzogc3RyaW5nW107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyU2VsZWN0T3B0aW9uPFxuICBUIGV4dGVuZHMgU2VsZWN0T3B0aW9uVmFsdWUgPSBTZWxlY3RPcHRpb25WYWx1ZSxcbj4gPSAocGVvcHM6IFQpID0+IFJlYWN0LkpTWC5FbGVtZW50O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEZpZWxkUHJvcHM8XG4gIFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZSA9IFNlbGVjdE9wdGlvblZhbHVlLFxuPiBleHRlbmRzIFBpY2s8RmllbGRQcm9wczxzdHJpbmc+LCBcImhlbHBlclRleHRcIiB8IFwiaW52YWxpZFwiPixcbiAgICBGaWVsZEdyb3VwUHJvcHMge1xuICByZW5kZXJPcHRpb24/OiBSZW5kZXJTZWxlY3RPcHRpb248VD47XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICog6KaL5Ye644GXXG4gICAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICAvKipcbiAgICogdmFsdWXjga7lpInmm7Tjga/jgIFkZWZhdWx0VmFsdWXjgYzmjIflrprjgZXjgozjgabjgYTjgarjgYTjgajjgY3jga7jgb/lj43mmKDjgZXjgozjgb7jgZnjgIJcbiAgICovXG4gIHZhbHVlPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgaWQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIHBsYWNlaG9sZGVyXG4gICAqL1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgLyoqXG4gICAqIHNlbGVjdGluZyBkYXRhIGlzIHJlcXVpcmVkXG4gICAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIG9wdGlvbnM/OiBUW107XG4gIGxvYWRPcHRpb25zPzogU2VsZWN0TG9hZE9wdGlvbnM8VD47XG4gIGRpc2FibGVkSW5wdXQ/OiBib29sZWFuO1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZWxlY3RGaWVsZOOBrk9wdGlvbuOBjOOCr+ODquODg+OCr+OBleOCjOOBn+mam+OBq+eZuueBq+OBmeOCi+mWouaVsOOAglxuICAgKi9cbiAgb25DaGFuZ2U/OiAodmFsdWU6IFRbXCJ2YWx1ZVwiXSwgb3B0aW9uczogVCkgPT4gdm9pZDtcbiAgb25Gb2N1cz86IChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xuICBsb2FkaW5nPzogYm9vbGVhbjtcbiAgb3JpZ2luYWxJbnB1dFRlc3RJZD86IHN0cmluZztcbiAgcHNldWRvSW5wdXRUZXN0SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiDjgqrjg5fjgrfjg6fjg7Pjga7ooajnpLrjgatQb3J0YWzjgpLliKnnlKjjgZnjgovjgYvjganjgYbjgYvjgpLmjIflrprjgZfjgb7jgZnjgIJcbiAgICog44GT44GucHJvcOOBjHRydWXjga7loLTlkIjjgIFQb3J0YWzjgYznhKHlirnljJbjgZXjgozjgb7jgZnjgIJcbiAgICog44G+44Gf5Yid5pyf5YCk44GMdHJ1ZeOBp+OBguOCi+OBk+OBqOOBq+azqOaEj+OBl+OBpuOBj+OBoOOBleOBhOOAglxuICAgKiDjgaTjgb7jgorpgJrluLjjgIHjgqrjg5fjgrfjg6fjg7Pjga/jgZPjga7jgrPjg7Pjg53jg7zjg43jg7Pjg4jjga7lrZDopoHntKDjgajjgZfjgabjg6zjg7Pjg4Djg6rjg7PjgrDjgZXjgozjgb7jgZnjgIJcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZGlzYWJsZVBvcnRhbD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiDopovjgYvjgZHkuIrjga5pbnB1dOimgee0oOOBq+WvvuOBmeOCi3JlZuOCkuWIqeeUqOOBp+OBjeOBvuOBmeOAglxuICAgKiDpgbjmip7jgZXjgozjgZ/lgKTjgpLlj5blvpfjgZnjgovloLTlkIjjgarjganjga/jgIFpbnB1dEhhc1ZhbHVlUmVm44KS5Yip55So44GX44Gm44GP44Gg44GV44GE44CCXG4gICAqL1xuICBpbnB1dFJlZj86IFJlYWN0LlJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgLyoqXG4gICAqIOmBuOaKnuOBleOCjOOBn+WApOOCkuS/neaMgeOBl+OBpuOBhOOCi2lucHV06KaB57Sg44Gr5a++44GZ44KLcmVm44KS5Yip55So44Gn44GN44G+44GZ44CCXG4gICAqIOimi+OBiOOBpuOBhOOCi2lucHV06KaB57Sg44Gr44OV44Kp44O844Kr44K544GX44Gf44GE5aC05ZCI44Gq44Gp44Gv44CBaW5wdXRSZWbjgpLliKnnlKjjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiAgICovXG4gIGlucHV0SGFzVmFsdWVSZWY/OiBSZWFjdC5SZWY8SFRNTElucHV0RWxlbWVudD47XG59XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJTZWxlY3RPcHRpb25zQnlRdWVyeSA9IDxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+KFxuICBvcHRpb25zOiBUW10sXG4gIHF1ZXJ5OiBzdHJpbmcsXG4pID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gZ2V0U2VhcmNoKFxuICAgIG9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9wdGlvbixcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItbnVsbGlzaC1jb2FsZXNjaW5nXG4gICAgICAgIGtleXM6IG9wdGlvbi5rZXlzIHx8IFtvcHRpb24ubGFiZWxdLFxuICAgICAgICBjb250ZW50OiBvcHRpb24udmFsdWUsXG4gICAgICB9O1xuICAgIH0pLFxuICAgIHF1ZXJ5LFxuICApO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IHR5cGUgU2VsZWN0TG9hZE9wdGlvbnM8VCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWU+ID1cbiAgKGFyZ3M6IHtcbiAgICBxdWVyeTogc3RyaW5nO1xuICAgIG9wdGlvbnM/OiBUW107XG4gICAgc2VsZWN0ZWRPcHRpb25zPzogVFtdO1xuICB9KSA9PiBQcm9taXNlPFRbXSB8IHVuZGVmaW5lZD47XG5cbmNvbnN0IGRlZmF1bHRMb2FkT3B0aW9ucyA9IGFzeW5jIDxcbiAgVCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlID0gU2VsZWN0T3B0aW9uVmFsdWUsXG4+KHtcbiAgcXVlcnksXG4gIG9wdGlvbnMsXG59OiB7XG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBUW107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxufSk6IFByb21pc2U8VFtdIHwgdW5kZWZpbmVkPiA9PiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmIChxdWVyeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0gZmlsdGVyU2VsZWN0T3B0aW9uc0J5UXVlcnkob3B0aW9ucywgcXVlcnkpO1xuICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA/IHJlc3VsdCA6IG9wdGlvbnM7XG59O1xuXG5jb25zdCBEZWZhdWx0T3B0aW9uID0gPFQgZXh0ZW5kcyBTZWxlY3RPcHRpb25WYWx1ZT4oXG4gIHByb3BzOiBULFxuKTogUmVhY3QuSlNYLkVsZW1lbnQgPT4ge1xuICByZXR1cm4gPHNwYW4+e3Byb3BzLmxhYmVsfTwvc3Bhbj47XG59O1xuXG5leHBvcnQgY29uc3QgU2VsZWN0RmllbGQgPSA8VCBleHRlbmRzIFNlbGVjdE9wdGlvblZhbHVlPihcbiAgcHJvcHM6IFNlbGVjdEZpZWxkUHJvcHM8VD4sXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIGxhYmVsLFxuICAgIG5hbWUsXG4gICAgb3B0aW9uczogcHJvcE9wdGlvbnMsXG4gICAgbG9hZE9wdGlvbnMgPSBkZWZhdWx0TG9hZE9wdGlvbnMsXG4gICAgZGlzYWJsZWRJbnB1dCxcbiAgICBvbkNoYW5nZSxcbiAgICBvbkZvY3VzLFxuICAgIHBsYWNlaG9sZGVyLFxuICAgIHJlcXVpcmVkLFxuICAgIGlkLFxuICAgIHZhbHVlOiBfdmFsdWVQcm9wLFxuICAgIGRlZmF1bHRWYWx1ZSxcbiAgICBkaXNhYmxlZCxcbiAgICBjaGlsZHJlbixcbiAgICBoZWxwZXJUZXh0LFxuICAgIGludmFsaWQsXG4gICAgbG9hZGluZzogcHJvcHNMb2FkaW5nLFxuICAgIHJlYWRPbmx5OiBwcm9wc1JlYWRPbmx5LFxuICAgIHN0eWxlLFxuICAgIGNsYXNzTmFtZSxcbiAgICBvcmlnaW5hbElucHV0VGVzdElkLFxuICAgIHBzZXVkb0lucHV0VGVzdElkLFxuICAgIGRpc2FibGVQb3J0YWwgPSB0cnVlLFxuICAgIHJlbmRlck9wdGlvbiA9IERlZmF1bHRPcHRpb24sXG4gICAgaW5wdXRSZWYsXG4gICAgaW5wdXRIYXNWYWx1ZVJlZixcbiAgfSA9IHByb3BzO1xuICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgW3F1ZXJ5LCBzZXRRdWVyeV0gPSB1c2VTdGF0ZTxzdHJpbmc+KFwiXCIpO1xuICBjb25zdCBzZWxlY3RlZE9wdGlvbnNDYWNoZSA9IHVzZVJlZjxUW10gfCB1bmRlZmluZWQ+KHByb3BPcHRpb25zKTtcbiAgY29uc3QgW29wdGlvbnMsIHNldE9wdGlvbnNdID0gdXNlU3RhdGUocHJvcE9wdGlvbnMpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdm9pZCBsb2FkT3B0aW9ucyh7XG4gICAgICBxdWVyeSxcbiAgICAgIG9wdGlvbnM6IHByb3BPcHRpb25zLFxuICAgICAgc2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnNDYWNoZS5jdXJyZW50LFxuICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgc2V0T3B0aW9ucyhyZXN1bHQpO1xuICAgIH0pO1xuICB9LCBbcHJvcE9wdGlvbnMsIGxvYWRPcHRpb25zLCBxdWVyeV0pO1xuXG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWUsIGlzQ29udHJvbGxlZF0gPSB1c2VJbnB1dFZhbHVlKHByb3BzKTtcblxuICBjb25zdCB7IGxvYWRpbmcsIHJlYWRPbmx5IH0gPSB1c2VGaWVsZEdyb3VwKHtcbiAgICBsb2FkaW5nOiBwcm9wc0xvYWRpbmcsXG4gICAgcmVhZE9ubHk6IHByb3BzUmVhZE9ubHksXG4gICAgb25Mb2FkZWQ6ICgpID0+IHtcbiAgICAgIGlmIChpc0NvbnRyb2xsZWQgPT09IGZhbHNlKSB7XG4gICAgICAgIHNldFZhbHVlKGRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgZGlzcGxheVZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvcmVmcyAqL1xuICAgIHJldHVybiAoXG4gICAgICBzZWxlY3RlZE9wdGlvbnNDYWNoZS5jdXJyZW50Py5maW5kKFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1udWxsaXNoLWNvYWxlc2NpbmdcbiAgICAgICkgfHwgb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKVxuICAgICk/LmxhYmVsO1xuICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaG9va3MvcmVmcyAqL1xuICB9LCBbb3B0aW9ucywgdmFsdWVdKTtcblxuICBjb25zdCBsaXN0UmVmID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQ+KG51bGwpO1xuICB1c2VPbkNsaWNrT3V0c2lkZShbcmVmLCBsaXN0UmVmXSwgKCkgPT4ge1xuICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIHNldFF1ZXJ5KFwiXCIpO1xuICB9KTtcblxuICBjb25zdCBwc2V1ZG9JbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgcHNldWRvSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0UmVmLCBwc2V1ZG9JbnB1dFJlZik7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IG9yaWdpbmFsSW5wdXRSZWZzID0gdXNlTWVyZ2VSZWZzKGlucHV0SGFzVmFsdWVSZWYsIG9yaWdpbmFsSW5wdXRSZWYpO1xuXG4gIGNvbnN0IHVwZGF0ZVZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogVCkgPT4ge1xuICAgICAgb25DaGFuZ2U/LihvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICBzZXRWYWx1ZShvcHRpb24udmFsdWUpO1xuICAgICAgc2VsZWN0ZWRPcHRpb25zQ2FjaGUuY3VycmVudCA9IG9wdGlvbnM7XG4gICAgICBzZXRRdWVyeShcIlwiKTtcbiAgICAgIGlmIChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2hDaGFuZ2VFdmVudChvcmlnaW5hbElucHV0UmVmLmN1cnJlbnQsIG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIG9wdGlvbnMsIHNldFZhbHVlXSxcbiAgKTtcblxuICBjb25zdCByZXNldFZhbHVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICBjb25zdCBvcHRpb24gPVxuICAgICAgICBvcHRpb25zPy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdW5kZWZpbmVkKSA/P1xuICAgICAgICAoeyB2YWx1ZTogdW5kZWZpbmVkLCBsYWJlbDogXCJcIiB9IGFzIFQpO1xuICAgICAgb25DaGFuZ2UodW5kZWZpbmVkLCBvcHRpb24pO1xuICAgIH1cbiAgfSwgW29uQ2hhbmdlLCBvcHRpb25zLCBzZXRWYWx1ZV0pO1xuXG4gIGNvbnN0IFt0b3VjaGVkLCBpbnB1dFByb3BzXSA9IHVzZURpdGVjdElucHV0VG91Y2hlZChvbkZvY3VzKTtcblxuICBjb25zdCBwb3BwZXJPcHRpb25zOiBQYXJ0aWFsPFBvcHBlcmpzT3B0aW9ucz4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgIGRpc2FibGVQb3J0YWxcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgbmFtZTogXCJjb21wdXRlU3R5bGVzXCIsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICByb3VuZE9mZnNldHM6ICh7IHkgfTogeyB5OiBudW1iZXIgfSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICB5OiBNYXRoLnJvdW5kKHkpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInNhbWVXaWR0aFwiLFxuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgcGhhc2U6IFwiYmVmb3JlV3JpdGVcIixcbiAgICAgICAgICByZXF1aXJlczogW1wiY29tcHV0ZVN0eWxlc1wiXSxcbiAgICAgICAgICBmbjogKHsgc3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgc3RhdGUuc3R5bGVzLnBvcHBlci53aWR0aCA9IGAke3N0YXRlLnJlY3RzLnJlZmVyZW5jZS53aWR0aH1weGA7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlZmZlY3Q6ICh7IHN0YXRlIH0pID0+IHtcbiAgICAgICAgICAgIHN0YXRlLmVsZW1lbnRzLnBvcHBlci5zdHlsZS53aWR0aCA9IGAke1xuICAgICAgICAgICAgICAoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlIGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9LCBbZGlzYWJsZVBvcnRhbF0pO1xuXG4gIGNvbnN0IGludGVybmFsSW5wdXRJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IGlucHV0SWQgPSBpZCA/PyBpbnRlcm5hbElucHV0SWQ7XG5cbiAgLy8gQXV0byBmaWxs44Gr44KI44Gj44Gm5YCk44GM5b6M44GL44KJ5pu05paw44GV44KM44KL44GT44Go44KS6Ziy44GQXG4gIGNvbnN0IFthdXRvRmlsbFByZXZlbnRpb25LZXksIHVwZGF0ZUF1dG9GaWxsUHJldmVudGlvbktleV0gPSB1c2VSZWR1Y2VyKFxuICAgIChwcmV2OiBudW1iZXIpID0+IHByZXYgKyAxLFxuICAgIDAsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9ybUNvbnRyb2wgc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7bGFiZWwgPyAoXG4gICAgICAgIDxJbnB1dExhYmVsXG4gICAgICAgICAgaHRtbEZvcj17aW5wdXRJZH1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9JbnB1dExhYmVsPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17b3JpZ2luYWxJbnB1dFJlZnN9XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPXtvcmlnaW5hbElucHV0VGVzdElkfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIGtleT17YCR7dmFsdWV9LSR7YXV0b0ZpbGxQcmV2ZW50aW9uS2V5fWB9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvQ2FwaXRhbGl6ZT1cIm5vbmVcIlxuICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgb25JbnB1dD17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgLy8g6YG45oqe6IKi44GM6YG45oqe44GV44KM44Gm44GE44Gq44GE54q25oWL44Gn44CB5YCk44Gr6YG45oqe6IKi44Go5LiA6Ie044GZ44KL44KC44Gu44GM44GC44KL5aC05ZCI44CB44Gd44Gu5YCk44Gr5pu05paw44GZ44KLXG4gICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyDkuIDoh7TjgZnjgovpgbjmip7ogqLjgYzjgarjgYTloLTlkIjjgIFBdXRvIGZpbGzjgYzpgannlKjjgZXjgozjgovjgajlm7DjgovjgZ/jgoHnhKHlirnljJbjgZnjgotcbiAgICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8g44GT44GuaW5wdXTopoHntKDjga7lgKTjgadvbklucHV044GM55m654Gr44GZ44KL44Kx44O844K544GvQXV0byBmaWxs44Gr44KI44KL5aC05ZCI44Gu44G/44CB6YG45oqe6IKi44Gu6YG45oqe44Gn44Gv55m654Gr44GX44Gq44GE44CCXG4gICAgICAgICAgICAgIC8vIOOBk+OBk+OBp2tleeOCkuabtOaWsOOBmeOCi+OBk+OBqOOBp2F1dG8gZmlsbOOBq+OCiOOCi+WApOOBruS4iuabuOOBjeOCkuOAgeOBleOCieOBq+S4iuabuOOBjeOBp+OBjeOCi+OAglxuICAgICAgICAgICAgICB1cGRhdGVBdXRvRmlsbFByZXZlbnRpb25LZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAgIGF1dG9Db3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICBzcGVsbENoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgLz5cbiAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG5cbiAgICAgIDxkaXYgcmVmPXtyZWZ9PlxuICAgICAgICA8U2VsZWN0RmllbGRJbnB1dFdyYXBwZXJDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgdmFsdWU9eyFxdWVyeSA/IGRpc3BsYXlWYWx1ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxJbnB1dEJhc2VcbiAgICAgICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICAgICAgcmVuZGVySW5wdXRXcmFwcGVyPXtTZWxlY3RGaWVsZElucHV0V3JhcHBlcn1cbiAgICAgICAgICAgIHJlZj17cHNldWRvSW5wdXRSZWZzfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e3BzZXVkb0lucHV0VGVzdElkfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgICAgIGF1dG9DYXBpdGFsaXplPVwibm9uZVwiXG4gICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgYXV0b0NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgICAgIG9uS2V5RG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHsga2V5IH0gPSBldmVudDtcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJEZWxldGVcIiB8fCBrZXkgPT09IFwiQmFja3NwYWNlXCIpIHtcbiAgICAgICAgICAgICAgICBzZXRRdWVyeSgocHJldikgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHByZXYgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gbGlzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICAgICAgICBtb3ZlRm9jdXMobGlzdCwgbnVsbCwgbmV4dEl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50PXtcbiAgICAgICAgICAgICAgdmFsdWUgfHxcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dCB8fFxuICAgICAgICAgICAgICAodmFsdWUgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICApKSA/IHVuZGVmaW5lZCA6IChcbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvbiAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbmRBZG9ybm1lbnQ9e1xuICAgICAgICAgICAgICA8U2VsZWN0SW5uZXJTcGluQnV0dG9uXG4gICAgICAgICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRPcGVuKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBzZXVkb0lucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEtaW52YWxpZD17aW52YWxpZH1cbiAgICAgICAgICAgIHZhbHVlPXtxdWVyeX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtcbiAgICAgICAgICAgICAgZGlzYWJsZWRJbnB1dFxuICAgICAgICAgICAgICAgID8gLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0c3VyaS10ZWNoL21hdHN1cmktdWkvaXNzdWVzLzI0NTFcbiAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICgpID0+IHt9XG4gICAgICAgICAgICAgICAgOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBzZXRRdWVyeSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhLXRvdWNoZWQ9e2lucHV0UHJvcHNbXCJkYXRhLXRvdWNoZWRcIl19XG4gICAgICAgICAgICBvbkZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaW5wdXRQcm9wcy5vbkZvY3VzKGV2ZW50KTtcbiAgICAgICAgICAgICAgaWYgKHJlYWRPbmx5ICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGNzcz17XG4gICAgICAgICAgICAgIGRpc2FibGVkSW5wdXRcbiAgICAgICAgICAgICAgICA/IGNzc2BcbiAgICAgICAgICAgICAgICAgICAgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TZWxlY3RGaWVsZElucHV0V3JhcHBlckNvbnRleHQuUHJvdmlkZXI+XG5cbiAgICAgICAgPFBvcHBlclxuICAgICAgICAgIGRpc2FibGVQb3J0YWw9e2Rpc2FibGVQb3J0YWx9XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3JlZnNcbiAgICAgICAgICBhbmNob3JFbD17cmVmLmN1cnJlbnR9XG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICAgIG9wdGlvbnM9e3BvcHBlck9wdGlvbnN9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPFBhcGVyPlxuICAgICAgICAgICAgICA8U2VsZWN0TGlzdFxuICAgICAgICAgICAgICAgIHJlZj17bGlzdFJlZn1cbiAgICAgICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5O1xuICAgICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IGxpc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICAgIGlmIChsaXN0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRGb2N1cyA9IG93bmVyRG9jdW1lbnQobGlzdCkuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgbW92ZUZvY3VzKGxpc3QsIGN1cnJlbnRGb2N1cywgbmV4dEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09IFwiQXJyb3dVcFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVGb2N1cyhsaXN0LCBjdXJyZW50Rm9jdXMsIHByZXZpb3VzSXRlbSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKS5tYXAoKGNoaWxkLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1yZWFkb25seT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgY2hpbGQtJHtpfWB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZH1cbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIHtvcHRpb25zID09PSB1bmRlZmluZWQgPyAoXG4gICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uIGFyaWEtZGlzYWJsZWQ9e3RydWV9IHRhYkluZGV4PXstMX0+XG4gICAgICAgICAgICAgICAgICAgIExvYWRpbmcuLi5cbiAgICAgICAgICAgICAgICAgIDwvU2VsZWN0T3B0aW9uPlxuICAgICAgICAgICAgICAgICkgOiBvcHRpb25zLmxlbmd0aCA9PT0gMCA/IChcbiAgICAgICAgICAgICAgICAgIDxTZWxlY3RPcHRpb24gYXJpYS1kaXNhYmxlZD17dHJ1ZX0gdGFiSW5kZXg9ey0xfT5cbiAgICAgICAgICAgICAgICAgICAgTm8gb3B0aW9uc1xuICAgICAgICAgICAgICAgICAgPC9TZWxlY3RPcHRpb24+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnMubWFwKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdmFsdWUgPT09IG9wdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0T3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGtleSB9ID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5jbGljaygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzZXVkb0lucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtzZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICog5L2V44KC6YG45oqe44GV44KM44Gm44GE44Gq44GE44Go44GN44Gv44CB5YWI6aCt44Gu44Kq44OX44K344On44Oz44Gr6aOb44G544KL44KI44GG44Gr44GX44Gm44GK44GPXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgPyBpbmRleCA9PT0gMCA6IHNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogLTFcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW51bGxpc2gtY29hbGVzY2luZ1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtvcHRpb24udmFsdWUgfHwgYHVuZGVmaW5lZFZhbHVlYH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlVmFsdWUob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJPcHRpb24ob3B0aW9uKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdE9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9TZWxlY3RMaXN0PlxuICAgICAgICAgICAgPC9QYXBlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Qb3BwZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxGb3JtSGVscGVyVGV4dFxuICAgICAgICBpbnZhbGlkPXtpbnZhbGlkfVxuICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxuICAgICAgICB0b3VjaGVkPXt0b3VjaGVkfVxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICA+XG4gICAgICAgIHtoZWxwZXJUZXh0fVxuICAgICAgPC9Gb3JtSGVscGVyVGV4dD5cbiAgICA8L0Zvcm1Db250cm9sPlxuICApO1xufTtcbiJdfQ== */",
|
|
137
137
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
138
138
|
};
|
|
139
139
|
const SelectField = props => {
|
|
@@ -193,9 +193,11 @@ const SelectField = props => {
|
|
|
193
193
|
}
|
|
194
194
|
});
|
|
195
195
|
const displayValue = (0, _react2.useMemo)(() => {
|
|
196
|
+
/* eslint-disable react-hooks/refs */
|
|
196
197
|
return (selectedOptionsCache.current?.find(option => option.value === value
|
|
197
198
|
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
198
199
|
) || options?.find(option => option.value === value))?.label;
|
|
200
|
+
/* eslint-enable react-hooks/refs */
|
|
199
201
|
}, [options, value]);
|
|
200
202
|
const listRef = (0, _react2.useRef)(null);
|
|
201
203
|
(0, _useOnClickOutside.useOnClickOutside)([ref, listRef], () => {
|
|
@@ -369,7 +371,9 @@ const SelectField = props => {
|
|
|
369
371
|
},
|
|
370
372
|
css: disabledInput ? _ref : null
|
|
371
373
|
})), (0, _react.jsx)(_Popper.Popper, {
|
|
372
|
-
disablePortal: disablePortal
|
|
374
|
+
disablePortal: disablePortal
|
|
375
|
+
// eslint-disable-next-line react-hooks/refs
|
|
376
|
+
,
|
|
373
377
|
anchorEl: ref.current,
|
|
374
378
|
placement: "bottom-start",
|
|
375
379
|
open: open,
|