@k8slens/drop-down-menu-contracts 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -153,4 +153,4 @@ var useCloseDropDownMenu = () => (0, import_public_utilities.expectDefined)((0,
153
153
  getDropDownMenuKindInjectableBunch,
154
154
  useCloseDropDownMenu
155
155
  });
156
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL2Ryb3AtZG93bi1tZW51LWtpbmQudHMiLCAiLi4vc3JjL2Ryb3AtZG93bi1tZW51LWtpbmQtaW5qZWN0aW9uLXRva2VuLnRzIiwgIi4uL3NyYy9kcm9wLWRvd24tbWVudS1pdGVtLnRzIiwgIi4uL3NyYy9kcm9wLWRvd24tbWVudS1zcGVjLnRzIiwgIi4uL3NyYy9kcm9wLWRvd24tbWVudS1jb250YWluZXItY29tcG9uZW50LnRzIiwgIi4uL3NyYy9kcm9wLWRvd24tbWVudS1jb21wb25lbnQudHMiLCAiLi4vc3JjL2Nsb3NlLWRyb3AtZG93bi1tZW51LnRzIiwgIi4uL3NyYy9jbG9zZS1kcm9wLWRvd24tbWVudS1jb250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJleHBvcnQgeyBnZXREcm9wRG93bk1lbnVLaW5kIH0gZnJvbSBcIi4vc3JjL2Ryb3AtZG93bi1tZW51LWtpbmRcIjtcbmV4cG9ydCB7XG4gIHR5cGUgRHJvcERvd25NZW51S2luZERlY2xhcmF0aW9uLFxuICB0eXBlIERyb3BEb3duTWVudUtpbmREZWNsYXJhdGlvbkZhY3RvcnksXG4gIHR5cGUgRHJvcERvd25NZW51S2luZEluamVjdGFibGVQYXJhbXMsXG4gIGRyb3BEb3duTWVudUtpbmRJbmplY3Rpb25Ub2tlbixcbiAgZ2V0RHJvcERvd25NZW51S2luZEluamVjdGFibGVCdW5jaCxcbn0gZnJvbSBcIi4vc3JjL2Ryb3AtZG93bi1tZW51LWtpbmQtaW5qZWN0aW9uLXRva2VuXCI7XG5leHBvcnQgdHlwZSB7IERyb3BEb3duTWVudURhdGEsIERyb3BEb3duTWVudUtpbmQgfSBmcm9tIFwiLi9zcmMvZHJvcC1kb3duLW1lbnUta2luZFwiO1xuZXhwb3J0IHtcbiAgZHJvcERvd25NZW51SXRlbUluamVjdGlvblRva2VuLFxuICBnZXREcm9wRG93bk1lbnVJdGVtSW5qZWN0YWJsZUJ1bmNoLFxuICBnZXREcm9wRG93bk1lbnVJdGVtc0luamVjdGFibGVCdW5jaCxcbn0gZnJvbSBcIi4vc3JjL2Ryb3AtZG93bi1tZW51LWl0ZW1cIjtcbmV4cG9ydCB0eXBlIHtcbiAgQWNxdWlyZURyb3BEb3duTWVudUl0ZW1zLFxuICBEcm9wRG93bk1lbnVJdGVtLFxuICBEcm9wRG93bk1lbnVJdGVtQnVuY2hQYXJhbXMsXG4gIERyb3BEb3duTWVudUl0ZW1GYWN0b3J5LFxuICBEcm9wRG93bk1lbnVJdGVtUHJvcHNGb3IsXG4gIERyb3BEb3duTWVudUl0ZW1zQnVuY2hQYXJhbXMsXG4gIERyb3BEb3duTWVudUl0ZW1Ub2tlbkZvcixcbiAgRHJvcERvd25NZW51SXRlbVZpc2liaWxpdHksXG59IGZyb20gXCIuL3NyYy9kcm9wLWRvd24tbWVudS1pdGVtXCI7XG5leHBvcnQgeyBkcm9wRG93bk1lbnUgfSBmcm9tIFwiLi9zcmMvZHJvcC1kb3duLW1lbnUtc3BlY1wiO1xuZXhwb3J0IHR5cGUge1xuICBEcm9wRG93bk1lbnVHYXAsXG4gIERyb3BEb3duTWVudU9wZW5PbixcbiAgRHJvcERvd25NZW51T3B0aW9ucyxcbiAgRHJvcERvd25NZW51UG9zaXRpb24sXG4gIERyb3BEb3duTWVudVNwZWMsXG59IGZyb20gXCIuL3NyYy9kcm9wLWRvd24tbWVudS1zcGVjXCI7XG5leHBvcnQge1xuICBEZWZhdWx0RHJvcERvd25NZW51Q29udGFpbmVyLFxuICBkcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnRJbmplY3Rpb25Ub2tlbixcbn0gZnJvbSBcIi4vc3JjL2Ryb3AtZG93bi1tZW51LWNvbnRhaW5lci1jb21wb25lbnRcIjtcbmV4cG9ydCB0eXBlIHtcbiAgRHJvcERvd25NZW51Q29udGFpbmVyQ29tcG9uZW50LFxuICBEcm9wRG93bk1lbnVDb250YWluZXJQcm9wcyxcbiAgRHJvcERvd25NZW51Q29udGFpbmVyVG9rZW5Gb3IsXG59IGZyb20gXCIuL3NyYy9kcm9wLWRvd24tbWVudS1jb250YWluZXItY29tcG9uZW50XCI7XG5leHBvcnQgeyBEcm9wRG93bk1lbnUgfSBmcm9tIFwiLi9zcmMvZHJvcC1kb3duLW1lbnUtY29tcG9uZW50XCI7XG5leHBvcnQgdHlwZSB7IERyb3BEb3duTWVudVByb3BzIH0gZnJvbSBcIi4vc3JjL2Ryb3AtZG93bi1tZW51LWNvbXBvbmVudFwiO1xuZXhwb3J0IHtcbiAgY2xvc2VBbGxEcm9wRG93bk1lbnVzSW5qZWN0aW9uVG9rZW4sXG4gIGNsb3NlRHJvcERvd25NZW51SW5qZWN0aW9uVG9rZW4sXG59IGZyb20gXCIuL3NyYy9jbG9zZS1kcm9wLWRvd24tbWVudVwiO1xuZXhwb3J0IHR5cGUgeyBDbG9zZUFsbERyb3BEb3duTWVudXMsIENsb3NlRHJvcERvd25NZW51IH0gZnJvbSBcIi4vc3JjL2Nsb3NlLWRyb3AtZG93bi1tZW51XCI7XG5leHBvcnQgeyBjb250ZXh0Rm9yQ2xvc2luZ0Ryb3BEb3duTWVudSwgdXNlQ2xvc2VEcm9wRG93bk1lbnUgfSBmcm9tIFwiLi9zcmMvY2xvc2UtZHJvcC1kb3duLW1lbnUtY29udGV4dFwiO1xuIiwgImltcG9ydCB7IGdldFR5cGVkU3BlY2lmaWVyLCB0eXBlIFR5cGVkU3BlY2lmaWVyLCB0eXBlIFR5cGVkU3BlY2lmaWVyVHlwZSB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbi8qKlxuICogSWRlbnRpZmllcyBvbmUgZmFtaWx5IG9mIGRyb3AtZG93biBtZW51IGl0ZW1zLiBJdGVtcyBhcmUgY29udHJpYnV0ZWQgYWdhaW5zdFxuICogYSBraW5kIHZpYSBgZHJvcERvd25NZW51SXRlbUluamVjdGlvblRva2VuLmZvcihraW5kKWAsIGFuZCBhIGhvc3QgZWxlbWVudFxuICogb3BlbnMgdGhlIG1lbnUgb2YgYSBraW5kIHdpdGggYCRkcm9wRG93bk1lbnU9e2Ryb3BEb3duTWVudShraW5kKX1gLlxuICpcbiAqIGBURGF0YWAgaXMgdGhlIGRhdGEgdGhlIGhvc3QgZWxlbWVudCBzdXBwbGllcyB3aGVuIG9wZW5pbmcgdGhlIG1lbnU7IGl0ZW1cbiAqIGZhY3RvcmllcyBvZiB0aGUga2luZCByZWNlaXZlIGl0LiBBIGtpbmQgY3JlYXRlZCB3aXRob3V0IGBURGF0YWAgbmVlZHMgbm9cbiAqIGRhdGEuXG4gKlxuICogQXQgcnVudGltZSBhIGtpbmQgaXMgYSBicmFuZGVkIHN0cmluZywgc28gaXQgaXMgdXNhYmxlIGFzIGEgYC5mb3IoKWAga2V5LlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVLaW5kPFREYXRhID0gdm9pZD4gPSBUeXBlZFNwZWNpZmllcjxzdHJpbmcsIHsgZHJvcERvd25NZW51RGF0YTogVERhdGEgfT47XG5cbi8qKlxuICogUmVjb3ZlcnMgdGhlIGRhdGEgdHlwZSBib3VuZCB0byBhIHtAbGluayBEcm9wRG93bk1lbnVLaW5kfS5cbiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51RGF0YTxLIGV4dGVuZHMgRHJvcERvd25NZW51S2luZDxhbnk+PiA9IFR5cGVkU3BlY2lmaWVyVHlwZTxcImRyb3BEb3duTWVudURhdGFcIiwgSz47XG5cbi8qKlxuICogQ3VycmllZCBjcmVhdG9yIGZvciBhIHtAbGluayBEcm9wRG93bk1lbnVLaW5kfS4gVGhlIGZpcnN0IGNhbGwgYmluZHMgdGhlIGRhdGFcbiAqIHR5cGU7IHRoZSBzZWNvbmQgdGhlIGdsb2JhbGx5IHVuaXF1ZSBzcGVjaWZpZXIgc3RyaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gQSBtZW51IHdob3NlIGl0ZW1zIG5lZWQgbm8gZGF0YTpcbiAqIGV4cG9ydCBjb25zdCBhaVRvb2xzTWVudUtpbmQgPSBnZXREcm9wRG93bk1lbnVLaW5kKCkoXCJhaS10b29scy1tZW51XCIpO1xuICpcbiAqIC8vIEEgbWVudSB3aG9zZSBpdGVtcyBkZXJpdmUgZnJvbSB0aGUgaG9zdCBlbGVtZW50J3MgZGF0YTpcbiAqIGV4cG9ydCBjb25zdCBwb2RBY3Rpb25zTWVudUtpbmQgPSBnZXREcm9wRG93bk1lbnVLaW5kPHsgcG9kTmFtZTogc3RyaW5nIH0+KCkoXCJwb2QtYWN0aW9ucy1tZW51XCIpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREcm9wRG93bk1lbnVLaW5kID1cbiAgPFREYXRhID0gdm9pZD4oKSA9PlxuICA8UyBleHRlbmRzIHN0cmluZz4oc3BlY2lmaWVyOiBTKSA9PlxuICAgIGdldFR5cGVkU3BlY2lmaWVyPHsgZHJvcERvd25NZW51RGF0YTogVERhdGEgfT4oKShzcGVjaWZpZXIpO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3RhYmxlQnVuY2gsIGdldEluamVjdGlvblRva2VuMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IERyb3BEb3duTWVudUtpbmQgfSBmcm9tIFwiLi9kcm9wLWRvd24tbWVudS1raW5kXCI7XG5cbi8qKlxuICogT25lIGRyb3AtZG93biBtZW51IHRoYXQgZXhpc3RzLCBhbm5vdW5jZWQgc28gaXQgY2FuIGJlIGRpc2NvdmVyZWQgcmF0aGVyXG4gKiB0aGFuIGZvdW5kIGJ5IHJlYWRpbmcgdGhlIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEcm9wRG93bk1lbnVLaW5kRGVjbGFyYXRpb24ge1xuICAvKiogVGhlIGtpbmQgaXRzZWxmLCBhcyBgZHJvcERvd25NZW51SXRlbUluamVjdGlvblRva2VuLmZvcihraW5kKWAgdGFrZXMgaXQuICovXG4gIHJlYWRvbmx5IGtpbmQ6IERyb3BEb3duTWVudUtpbmQ8YW55PjtcbiAgLyoqIE9uZSBsaW5lIG9uIHdoYXQgdGhlIG1lbnUgaXMsIGZvciBhIHJlYWRlciBkZWNpZGluZyB3aGV0aGVyIHRvIGNvbnRyaWJ1dGUuICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbi8qKiBQcm9kdWNlcyBvbmUgZGVjbGFyYXRpb24sIHBvc3NpYmx5IGxhdGVyLiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51S2luZERlY2xhcmF0aW9uRmFjdG9yeSA9ICgpID0+IERyb3BEb3duTWVudUtpbmREZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBFdmVyeSBkcm9wLWRvd24gbWVudSBraW5kIHRoZSBydW5uaW5nIGJ1aWxkIGtub3dzIGFib3V0LlxuICpcbiAqIEluamVjdGluZyBtYW55IG9mIHRoZXNlIGlzIGhvdyBhIHN1cmZhY2UgZW51bWVyYXRlcyB0aGUgbWVudXMgdGhhdCBleGlzdCBcdTIwMTRcbiAqIHRoZSBleHRlbnNpb24tZGV2ZWxvcG1lbnQgaW5zdHJ1Y3Rpb25zIHJlbmRlciB0aGVpciBsaXN0IGZyb20gaXQsIHNvIGEgbmV3XG4gKiBtZW51IGJlY29tZXMgZG9jdW1lbnRlZCBieSByZWdpc3RlcmluZyBoZXJlIHJhdGhlciB0aGFuIGJ5IHNvbWVvbmVcbiAqIHJlbWVtYmVyaW5nIHRvIGVkaXQgcHJvc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBkcm9wRG93bk1lbnVLaW5kSW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8e1xuICBzaW5nbGVGYWN0b3J5OiBEcm9wRG93bk1lbnVLaW5kRGVjbGFyYXRpb25GYWN0b3J5O1xufT4oe1xuICBpZDogXCJkcm9wLWRvd24tbWVudS1raW5kXCIsXG4gIGNhcmRpbmFsaXR5OiBcInplcm8tb3ItbWFueVwiLFxufSkoKTtcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wRG93bk1lbnVLaW5kSW5qZWN0YWJsZVBhcmFtcyB7XG4gIC8qKiBVbmlxdWUgaWQgZm9yIHRoZSByZWdpc3RlcmVkIGluamVjdGFibGUuICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIC8qKiBUaGUga2luZCBiZWluZyBhbm5vdW5jZWQuICovXG4gIHJlYWRvbmx5IGtpbmQ6IERyb3BEb3duTWVudUtpbmQ8YW55PjtcbiAgLyoqIE9uZSBsaW5lIG9uIHdoYXQgdGhlIG1lbnUgaXMuICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW5ub3VuY2UgYSBkcm9wLWRvd24gbWVudSBraW5kLCBzbyBhbnl0aGluZyBlbnVtZXJhdGluZyB0aGUgbWVudXMgZmluZHMgaXQuXG4gKlxuICogUmVnaXN0ZXIgdGhpcyB3aGVyZXZlciB0aGUgbWVudSdzIG93biBzdXJmYWNlIGlzIHJlZ2lzdGVyZWQgXHUyMDE0IGEgY29udHJhY3RzXG4gKiBwYWNrYWdlIGV4cG9ydHMgdGhlIGtpbmQsIGJ1dCBub3QgdGhlIHJlZ2lzdHJhdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGV4cG9ydCBkZWZhdWx0IGdldERyb3BEb3duTWVudUtpbmRJbmplY3RhYmxlQnVuY2goe1xuICogICBpZDogXCJhaS10b29sLXRvcC1iYXItbWVudS1raW5kXCIsXG4gKiAgIGtpbmQ6IGFpVG9vbFRvcEJhck1lbnVLaW5kLFxuICogICBkZXNjcmlwdGlvbjogXCJUaGUgbWVudSBvZiB0aGUgQUkgdG9vbCBidXR0b24gaW4gdGhlIHRvcCBiYXIuXCIsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgZ2V0RHJvcERvd25NZW51S2luZEluamVjdGFibGVCdW5jaCA9IChwYXJhbXM6IERyb3BEb3duTWVudUtpbmRJbmplY3RhYmxlUGFyYW1zKSA9PlxuICBnZXRJbmplY3RhYmxlQnVuY2goe1xuICAgIGRyb3BEb3duTWVudUtpbmQ6IGdldEluamVjdGFibGUyKHtcbiAgICAgIGlkOiBwYXJhbXMuaWQsXG5cbiAgICAgIGluc3RhbnRpYXRlOiAoKSA9PiAoKTogRHJvcERvd25NZW51S2luZERlY2xhcmF0aW9uID0+ICh7XG4gICAgICAgIGtpbmQ6IHBhcmFtcy5raW5kLFxuICAgICAgICBkZXNjcmlwdGlvbjogcGFyYW1zLmRlc2NyaXB0aW9uLFxuICAgICAgfSksXG5cbiAgICAgIGluamVjdGlvblRva2VuOiBkcm9wRG93bk1lbnVLaW5kSW5qZWN0aW9uVG9rZW4sXG4gICAgfSksXG4gIH0pO1xuIiwgImltcG9ydCB7XG4gIGdldEluamVjdGFibGUyLFxuICBnZXRJbmplY3RhYmxlQnVuY2gsXG4gIGdldEluamVjdGlvblRva2VuMixcbiAgdHlwZSBDb25zdW1wdGlvbixcbiAgdHlwZSBDb25zdW1wdGlvbkRpLFxuICB0eXBlIE1hbnlGYWN0b3J5LFxuICB0eXBlIE5vbkVtcHR5TWFueUZhY3RvcnksXG4gIHR5cGUgU3BlY2lmaWNJbmplY3Rpb25Ub2tlbjIsXG59IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIElkZW50aWZpYWJsZSxcbiAgTWF5YmVDb21wdXRlZCxcbiAgTWF5YmVDb21wdXRlZFNob3dhYmxlLFxuICBPcmRlcmFibGUsXG59IGZyb20gXCJAazhzbGVucy9jb21wb3NhYmxlLXJlc3BvbnNpYmlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHsgTWF5YmVQcm9taXNlLCBTaW5nbGVPck1hbnkgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IERyb3BEb3duTWVudURhdGEsIERyb3BEb3duTWVudUtpbmQgfSBmcm9tIFwiLi9kcm9wLWRvd24tbWVudS1raW5kXCI7XG5cbi8qKlxuICogV2hhdCBhbiBpdGVtJ3MgY29tcG9uZW50IG5lZWRzIGJleW9uZCB0aGUgbWVudSdzIGRhdGEuIFByb3ZpZGluZyBpdCBpcyBtYW5kYXRvcnkgd2hlbiB0aGVcbiAqIGNvbXBvbmVudCByZXF1aXJlcyBwcm9wcywgYW5kIG9wdGlvbmFsIHdoZW4gYWxsIG9mIHRoZW0gYXJlIG9wdGlvbmFsLlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVJdGVtUHJvcHNGb3I8VFByb3BzIGV4dGVuZHMgb2JqZWN0PiA9IHt9IGV4dGVuZHMgVFByb3BzXG4gID8geyByZWFkb25seSBjb21wb25lbnRQcm9wcz86IFRQcm9wcyB9XG4gIDogeyByZWFkb25seSBjb21wb25lbnRQcm9wczogVFByb3BzIH07XG5cbi8qKlxuICogT25lIGl0ZW0gb2YgYSBkcm9wLWRvd24gbWVudTogYSBjb21wb25lbnQsIHdoZXJlIGl0IHNpdHMgYW1vbmcgdGhlIG90aGVycywgYW5kIHdoZXRoZXIgaXQgaXNcbiAqIHNob3duIGF0IGFsbC4gV2hhdCB0aGUgaXRlbSBsb29rcyBsaWtlIGFuZCB3aGF0IGl0IGRvZXMgYXJlIGl0cyBvd24gYnVzaW5lc3MgXHUyMDE0IGEgbWVudSBuZWl0aGVyXG4gKiBkcmF3cyBpdCBub3IgZGVjaWRlcyBhbnl0aGluZyBhYm91dCBpdC5cbiAqXG4gKiBUaGUgY29tcG9uZW50IGlzIGdpdmVuIHRoZSBkYXRhIHRoZSBob3N0IGVsZW1lbnQgb3BlbmVkIHRoZSBtZW51IHdpdGgsIGFuZCBtdXN0IGJlIGRlZmluZWQgYXRcbiAqIG1vZHVsZSBzY29wZTsgY2FwdHVyaW5nIGRhdGEgaW4gYSBjbG9zdXJlIHdvdWxkIGNyZWF0ZSBhIG5ldyBjb21wb25lbnQgcmVmZXJlbmNlIG9uIGV2ZXJ5XG4gKiBpbnZvY2F0aW9uIGFuZCBicmVhayBSZWFjdCByZWNvbmNpbGlhdGlvbi4gV2hhdGV2ZXIgdGhlIGNvbXBvbmVudCBuZWVkcyBvbiB0b3Agb2YgdGhlIG1lbnUnc1xuICogZGF0YSB0cmF2ZWxzIGFzIGBjb21wb25lbnRQcm9wc2AgaW5zdGVhZCBcdTIwMTQgd2hpY2ggaXMgd2hhdCBsZXRzIG9uZSBjb250cmlidXRpb24gYW5zd2VyIHdpdGggYVxuICogcm93IHBlciBjb250YWluZXIsIHBlciBjb2x1bW4gb3IgcGVyIGFjdGlvbiB3aGlsZSBldmVyeSByb3cgc2hhcmVzIHRoZSBvbmUgY29tcG9uZW50LlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVJdGVtPFREYXRhID0gdm9pZCwgVFByb3BzIGV4dGVuZHMgb2JqZWN0ID0ge30+ID0gSWRlbnRpZmlhYmxlICZcbiAgT3JkZXJhYmxlICZcbiAgTWF5YmVDb21wdXRlZFNob3dhYmxlICYge1xuICAgIHJlYWRvbmx5IENvbXBvbmVudDogUmVhY3QuQ29tcG9uZW50VHlwZTx7IHJlYWRvbmx5IGRhdGE6IFREYXRhIH0gJiBUUHJvcHM+O1xuICB9ICYgRHJvcERvd25NZW51SXRlbVByb3BzRm9yPFRQcm9wcz47XG5cbi8qKlxuICogQWNxdWlyZXMgdGhlIGl0ZW1zIG9uZSBjb250cmlidXRvciBoYXMgZm9yIGEgZ2l2ZW4gbWVudSBpbnB1dCBcdTIwMTQgdGhlIGRhdGEgdGhlIGhvc3QgZWxlbWVudCBvcGVuZWRcbiAqIHRoZSBtZW51IG9mIHRoaXMga2luZCB3aXRoLCB0eXBlZCBieSB0aGUga2luZC5cbiAqXG4gKiBBIGNvbnRyaWJ1dG9yIGlzIGZyZWUgdG8gYW5zd2VyIHdpdGggb25lIGl0ZW0sIHNldmVyYWwsIG9yIG5vbmUsIHRvIGFuc3dlciBsYXRlciwgYW5kIHRvIGFuc3dlclxuICogd2l0aCBhIGNvbXB1dGVkIHRoZSBtZW51IHJlLXJlYWRzIHdoaWxlIGl0IGlzIG9wZW4uIFRoYXQgaXMgd2hhdCBtYWtlcyBhIGNvbnRyaWJ1dGlvbiBhYmxlIHRvXG4gKiAqYWNxdWlyZSogaXRzIGl0ZW1zIGZyb20gdGhlIGlucHV0IHJhdGhlciB0aGFuIG1lcmVseSBiZSBvbmU6IHRoZSBjb250YWluZXJzIG9mIGEgcG9kLCB0aGVcbiAqIGNvbHVtbnMgb2YgYSB0YWJsZSwgdGhlIGFjdGlvbnMgb2Ygd2hhdGV2ZXIgb2JqZWN0IHRoZSBtZW51IHdhcyBvcGVuZWQgb3Zlci5cbiAqL1xuZXhwb3J0IHR5cGUgQWNxdWlyZURyb3BEb3duTWVudUl0ZW1zPFREYXRhID0gYW55PiA9IChcbiAgaW5wdXQ6IFREYXRhLFxuKSA9PiBNYXliZVByb21pc2U8TWF5YmVDb21wdXRlZDxTaW5nbGVPck1hbnk8RHJvcERvd25NZW51SXRlbTxURGF0YSwgYW55Pj4+PjtcblxuLyoqXG4gKiBXaGF0IGEgY29udHJpYnV0aW9uIHJlZ2lzdGVyczogYnVpbHQgb25jZSwgYW5kIHRoZW4gYXNrZWQgZm9yIHRoZSBpdGVtcyBvZiBldmVyeSBtZW51IG9mIGl0cyBraW5kXG4gKiB0aGF0IG9wZW5zLlxuICpcbiAqIFRoZSBpbnB1dCBiZWxvbmdzIHRvIHRoZSBtZW51IHJhdGhlciB0aGFuIHRvIHRoZSBjb250cmlidXRpb24sIHdoaWNoIGlzIHdoeSBpdCBhcnJpdmVzIGF0XG4gKiB7QGxpbmsgQWNxdWlyZURyb3BEb3duTWVudUl0ZW1zfSBpbnN0ZWFkIG9mIGhlcmUuIEEgY29udHJpYnV0aW9uIHRha2luZyBpdCBkaXJlY3RseSB3b3VsZCBiZVxuICogcmVidWlsdCBmb3IgZXZlcnkgbWVudSB0aGF0IG9wZW5zLCBzaW5jZSB0aGUgY29udGFpbmVyIGtleXMgYSBjb250cmlidXRpb24ncyBpbnN0YW5jZSBieSB0aGVcbiAqIGFyZ3VtZW50cyBpdCBpcyByZXNvbHZlZCB3aXRoIFx1MjAxNCBhbmQgYSBob3N0IHRoYXQgYnVpbGRzIGl0cyBgZGF0YWAgaW5saW5lIGhhbmRzIG92ZXIgYSBuZXcgb2JqZWN0XG4gKiBldmVyeSB0aW1lLlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVJdGVtRmFjdG9yeTxURGF0YSA9IGFueT4gPSAoKSA9PiBBY3F1aXJlRHJvcERvd25NZW51SXRlbXM8VERhdGE+O1xuXG4vKipcbiAqIFdoZXRoZXIgYW4gaXRlbSBpcyBzaG93biBhdCBhbGwuIEdpdmVuIGFzIGEgdmFsdWUgb3IgYSBjb21wdXRlZCB0aGUgbWVudSByZWFjdHMgdG8sIG9yIGFzIGFcbiAqIGZ1bmN0aW9uIG9mIHRoZSBtZW51J3MgaW5wdXQgXHUyMDE0IHdoaWNoIGlzIGhvdyBhbiBpdGVtIHNob3duIG9ubHkgZm9yIHNvbWUgb2YgdGhlIHRoaW5ncyBpdHMga2luZFxuICogb2YgbWVudSBvcGVucyBvdmVyIHNheXMgc28uXG4gKi9cbmV4cG9ydCB0eXBlIERyb3BEb3duTWVudUl0ZW1WaXNpYmlsaXR5PFREYXRhPiA9IE1heWJlQ29tcHV0ZWQ8Ym9vbGVhbj4gfCAoKGlucHV0OiBURGF0YSkgPT4gTWF5YmVDb21wdXRlZDxib29sZWFuPik7XG5cbi8qKlxuICogVGhlIHNwZWNpZmljIHRva2VuIGAuZm9yKGtpbmQpYCB5aWVsZHM6IHRoZSBpdGVtcyBjb250cmlidXRlZCB0byBvbmUgbWVudSBraW5kLiBBdCBsZWFzdCBvbmUgb2ZcbiAqIHRoZW0sIHNvIHRoYXQgYSBraW5kIG5vYm9keSBjb250cmlidXRlcyB0byBpcyBhIGNvbXBvc2l0aW9uIGVycm9yIHJhdGhlciB0aGFuIGEgbWVudSB0aGF0IG5ldmVyXG4gKiBvcGVucy5cbiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51SXRlbVRva2VuRm9yPFREYXRhPiA9IFNwZWNpZmljSW5qZWN0aW9uVG9rZW4yPHtcbiAgc2luZ2xlRmFjdG9yeTogRHJvcERvd25NZW51SXRlbUZhY3Rvcnk8VERhdGE+O1xuICBtYW55RmFjdG9yeTogTm9uRW1wdHlNYW55RmFjdG9yeTxEcm9wRG93bk1lbnVJdGVtRmFjdG9yeTxURGF0YT4+O1xuICBzcGVjaWZpY1Rva2VuRmFjdG9yeTogdW5kZWZpbmVkO1xuICBjYXJkaW5hbGl0eTogXCJvbmUtb3ItbWFueVwiO1xufT47XG5cbi8qKlxuICogVGhlIGAuZm9yKClgIGZhY3RvcnksIGFubm90YXRlZCBzbyBhIGtpbmQncyBvd24gZGF0YSB0eXBlIHN1cnZpdmVzIGludG8gdGhlIHNwZWNpZmljIHRva2VuLiBUaGVcbiAqIGFubm90YXRpb24gY2FycmllcyB3aGF0IHRoZSByZXRpcmVkIHRoaXJkIHR5cGUgcGFyYW1ldGVyIHVzZWQgdG86IGluZmVyZW5jZSBmcm9tIHRoZSB2YWx1ZSBhbG9uZVxuICogY2Fubm90IHJlY29uc3RydWN0IGEgcmV0dXJuIHR5cGUgdGhhdCBtZW50aW9ucyB0aGUgc3BlY2lmaWVyJ3Mgb3duIHR5cGUgcGFyYW1ldGVyLlxuICovXG5jb25zdCBkcm9wRG93bk1lbnVJdGVtVG9rZW5Gb3IgPSA8SyBleHRlbmRzIERyb3BEb3duTWVudUtpbmQ8YW55Pj4oXG4gIGtpbmQ6IEssXG4pOiBEcm9wRG93bk1lbnVJdGVtVG9rZW5Gb3I8RHJvcERvd25NZW51RGF0YTxLPj4gPT5cbiAgZ2V0SW5qZWN0aW9uVG9rZW4yPHtcbiAgICBzaW5nbGVGYWN0b3J5OiBEcm9wRG93bk1lbnVJdGVtRmFjdG9yeTxEcm9wRG93bk1lbnVEYXRhPEs+PjtcbiAgICBtYW55RmFjdG9yeTogTm9uRW1wdHlNYW55RmFjdG9yeTxEcm9wRG93bk1lbnVJdGVtRmFjdG9yeTxEcm9wRG93bk1lbnVEYXRhPEs+Pj47XG4gIH0+KHtcbiAgICBpZDogYGRyb3AtZG93bi1tZW51LWl0ZW0tJHtraW5kfWAsXG4gICAgc3BlY2lhbGl0eToga2luZCxcbiAgICBjYXJkaW5hbGl0eTogXCJvbmUtb3ItbWFueVwiLFxuICB9KSgpO1xuXG4vKipcbiAqIFRoZSBjb250cmlidXRpb24gc3VyZmFjZSBvZiBkcm9wLWRvd24gbWVudXM6IGVhY2ggY29udHJpYnV0aW9uIGFuc3dlcnMgd2l0aCB0aGUgaXRlbXMgaXQgaGFzIGZvclxuICogdGhlIG1lbnUncyBpbnB1dCwgcmVnaXN0ZXJlZCBhZ2FpbnN0IGEge0BsaW5rIERyb3BEb3duTWVudUtpbmR9IHZpYSBgLmZvcihraW5kKWAuIFByZWZlclxuICoge0BsaW5rIGdldERyb3BEb3duTWVudUl0ZW1JbmplY3RhYmxlQnVuY2h9IGZvciBhIHNpbmdsZSBpdGVtLCBhbmRcbiAqIHtAbGluayBnZXREcm9wRG93bk1lbnVJdGVtc0luamVjdGFibGVCdW5jaH0gZm9yIGl0ZW1zIGFjcXVpcmVkIGZyb20gdGhlIGlucHV0LCBvdmVyIHJlZ2lzdGVyaW5nXG4gKiBieSBoYW5kLlxuICovXG5leHBvcnQgY29uc3QgZHJvcERvd25NZW51SXRlbUluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHtcbiAgc2luZ2xlRmFjdG9yeTogRHJvcERvd25NZW51SXRlbUZhY3Rvcnk8YW55PjtcbiAgbWFueUZhY3Rvcnk6IE1hbnlGYWN0b3J5PERyb3BEb3duTWVudUl0ZW1GYWN0b3J5PGFueT4+O1xufT4oe1xuICBpZDogXCJkcm9wLWRvd24tbWVudS1pdGVtXCIsXG4gIGNhcmRpbmFsaXR5OiBcInplcm8tb3ItbWFueVwiLFxufSkoZHJvcERvd25NZW51SXRlbVRva2VuRm9yKTtcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wRG93bk1lbnVJdGVtQnVuY2hQYXJhbXM8SyBleHRlbmRzIERyb3BEb3duTWVudUtpbmQ8YW55Pj4ge1xuICAvKiogVW5pcXVlIGlkIGZvciB0aGUgcmVnaXN0ZXJlZCBpbmplY3RhYmxlOyBkb3VibGVzIGFzIHRoZSBpdGVtJ3MgaWQuICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIC8qKiBUaGUgbWVudSBraW5kIHRoZSBpdGVtIGJlbG9uZ3MgdG8uICovXG4gIHJlYWRvbmx5IGtpbmQ6IEs7XG4gIC8qKiBMb3dlciBjb21lcyBmaXJzdCBhbW9uZyB0aGUga2luZCdzIGl0ZW1zLiAqL1xuICByZWFkb25seSBvcmRlck51bWJlcjogbnVtYmVyO1xuICAvKiogV2hldGhlciB0aGUgaXRlbSBpcyBzaG93biBhdCBhbGw7IHRoZSBtZW51IHJlYWN0cyB0byB0aGlzIHdoaWxlIG9wZW4uICovXG4gIHJlYWRvbmx5IGlzVmlzaWJsZT86IERyb3BEb3duTWVudUl0ZW1WaXNpYmlsaXR5PERyb3BEb3duTWVudURhdGE8Sz4+O1xuICAvKiogUmVuZGVycyB0aGUgaXRlbS4gUmVjZWl2ZXMgdGhlIGRhdGEgdGhlIG1lbnUgd2FzIG9wZW5lZCB3aXRoLiAqL1xuICByZWFkb25seSBDb21wb25lbnQ6IFJlYWN0LkNvbXBvbmVudFR5cGU8eyByZWFkb25seSBkYXRhOiBEcm9wRG93bk1lbnVEYXRhPEs+IH0+O1xufVxuXG4vKipcbiAqIENvbnRyaWJ1dGUgb25lIGl0ZW0gdG8gYSBkcm9wLWRvd24gbWVudSBraW5kLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IFJlc3RhcnRQb2QgPSAoeyBkYXRhIH06IHsgZGF0YTogeyBwb2ROYW1lOiBzdHJpbmcgfSB9KSA9PiAoXG4gKiAgIDxDbGlja2FibGVMaSAkb25DbGljaz17KCkgPT4gcmVzdGFydChkYXRhLnBvZE5hbWUpfT5SZXN0YXJ0IHtkYXRhLnBvZE5hbWV9PC9DbGlja2FibGVMaT5cbiAqICk7XG4gKlxuICogZXhwb3J0IGNvbnN0IHJlc3RhcnRQb2RCdW5jaCA9IGdldERyb3BEb3duTWVudUl0ZW1JbmplY3RhYmxlQnVuY2goe1xuICogICBpZDogXCJyZXN0YXJ0LXBvZFwiLFxuICogICBraW5kOiBwb2RBY3Rpb25zTWVudUtpbmQsXG4gKiAgIG9yZGVyTnVtYmVyOiAxMCxcbiAqICAgaXNWaXNpYmxlOiBjb21wdXRlZCgoKSA9PiBjYW5SZXN0YXJ0LmdldCgpKSxcbiAqICAgQ29tcG9uZW50OiBSZXN0YXJ0UG9kLFxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBBbiBpdGVtIHNob3duIG9ubHkgZm9yIHNvbWUgb2YgdGhlIHRoaW5ncyB0aGUgbWVudSBvcGVucyBvdmVyOlxuICogYGBgdHN4XG4gKiBleHBvcnQgY29uc3QgY29ubmVjdENsdXN0ZXJCdW5jaCA9IGdldERyb3BEb3duTWVudUl0ZW1JbmplY3RhYmxlQnVuY2goe1xuICogICBpZDogXCJjb25uZWN0LWNsdXN0ZXJcIixcbiAqICAga2luZDogbmF2aWdhdG9ySXRlbURyb3BEb3duTWVudUtpbmQsXG4gKiAgIG9yZGVyTnVtYmVyOiAxMCxcbiAqICAgaXNWaXNpYmxlOiAoaXRlbSkgPT4gaXRlbS5raW5kID09PSBrdWJlcm5ldGVzQ2x1c3RlckNvbnRleHRLaW5kLFxuICogICBDb21wb25lbnQ6IENvbm5lY3RDbHVzdGVyLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGdldERyb3BEb3duTWVudUl0ZW1JbmplY3RhYmxlQnVuY2ggPSA8SyBleHRlbmRzIERyb3BEb3duTWVudUtpbmQ8YW55Pj4oXG4gIHBhcmFtczogRHJvcERvd25NZW51SXRlbUJ1bmNoUGFyYW1zPEs+LFxuKSA9PlxuICBnZXRJbmplY3RhYmxlQnVuY2goe1xuICAgIGRyb3BEb3duTWVudUl0ZW06IGdldEluamVjdGFibGUyKHtcbiAgICAgIGlkOiBwYXJhbXMuaWQsXG5cbiAgICAgIGluc3RhbnRpYXRlOlxuICAgICAgICAoKSA9PlxuICAgICAgICAoKSA9PlxuICAgICAgICAoaW5wdXQ6IERyb3BEb3duTWVudURhdGE8Sz4pOiBEcm9wRG93bk1lbnVJdGVtPERyb3BEb3duTWVudURhdGE8Sz4+ID0+ICh7XG4gICAgICAgICAgaWQ6IHBhcmFtcy5pZCxcbiAgICAgICAgICBvcmRlck51bWJlcjogcGFyYW1zLm9yZGVyTnVtYmVyLFxuICAgICAgICAgIGlzVmlzaWJsZTogdHlwZW9mIHBhcmFtcy5pc1Zpc2libGUgPT09IFwiZnVuY3Rpb25cIiA/IHBhcmFtcy5pc1Zpc2libGUoaW5wdXQpIDogcGFyYW1zLmlzVmlzaWJsZSxcbiAgICAgICAgICBDb21wb25lbnQ6IHBhcmFtcy5Db21wb25lbnQsXG4gICAgICAgIH0pLFxuXG4gICAgICBpbmplY3Rpb25Ub2tlbjogZHJvcERvd25NZW51SXRlbUluamVjdGlvblRva2VuLmZvcihwYXJhbXMua2luZCksXG4gICAgfSksXG4gIH0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BEb3duTWVudUl0ZW1zQnVuY2hQYXJhbXM8SyBleHRlbmRzIERyb3BEb3duTWVudUtpbmQ8YW55PiwgQ29ucyBleHRlbmRzIENvbnN1bXB0aW9uPiB7XG4gIC8qKiBVbmlxdWUgaWQgZm9yIHRoZSByZWdpc3RlcmVkIGluamVjdGFibGUuICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIC8qKiBUaGUgbWVudSBraW5kIHRoZSBpdGVtcyBiZWxvbmcgdG8uICovXG4gIHJlYWRvbmx5IGtpbmQ6IEs7XG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIGZ1bmN0aW9uIHRoYXQgYWNxdWlyZXMgdGhlIGl0ZW1zIHRoaXMgY29udHJpYnV0aW9uIGhhcyBmb3IgdGhlIG1lbnUncyBpbnB1dC4gQ2FsbGVkXG4gICAqIG9uY2U7IHdoYXRldmVyIGl0IGluamVjdHMgYW5kIHByZXBhcmVzIGlzIHRoZXJlZm9yZSBzaGFyZWQgYnkgZXZlcnkgbWVudSBvZiB0aGUga2luZCB0aGF0XG4gICAqIG9wZW5zLiBFYWNoIGl0ZW0gYnJpbmdzIGl0cyBvd24gaWQsIG9yZGVyIG51bWJlciBhbmQgdmlzaWJpbGl0eSwgc28gdGhlIGl0ZW1zIGxhbmQgYW1vbmcgdGhlXG4gICAqIGtpbmQncyBvdGhlciBjb250cmlidXRpb25zIHJhdGhlciB0aGFuIGFzIGEgYmxvY2sgb2YgdGhlaXIgb3duLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFudGlhdGU6IChkaTogQ29uc3VtcHRpb25EaTxDb25zPikgPT4gQWNxdWlyZURyb3BEb3duTWVudUl0ZW1zPERyb3BEb3duTWVudURhdGE8Sz4+O1xuICAvKiogVGhlIGluamVjdGlvbiB0b2tlbnMgYGluc3RhbnRpYXRlYCBtYXkgaW5qZWN0LiAqL1xuICByZWFkb25seSBjb25zdW1wdGlvbnM/OiBSZWFkb25seUFycmF5PENvbnM+O1xufVxuXG4vKipcbiAqIENvbnRyaWJ1dGUgdGhlIGl0ZW1zIGEgbWVudSBoYXMgZm9yIGl0cyBpbnB1dCwgd2hlbiBob3cgbWFueSB0aGVyZSBhcmUgaXMgdXAgdG8gdGhlIGlucHV0IHJhdGhlclxuICogdGhhbiBrbm93biBpbiBhZHZhbmNlIFx1MjAxNCBvbmUgcm93IHBlciBjb250YWluZXIgb2YgYSBwb2QsIHBlciBjb2x1bW4gb2YgYSB0YWJsZSwgcGVyIGFjdGlvbiBzb21lXG4gKiBvdGhlciByZWdpc3RyeSBob2xkcy5cbiAqXG4gKiBUaGUgaXRlbXMgbWF5IGFycml2ZSBsYXRlciBhbmQgbWF5IGJlIGEgY29tcHV0ZWQgdGhlIG1lbnUgcmUtcmVhZHMgd2hpbGUgaXQgaXMgb3Blbi4gVGhleSBhcmVcbiAqIG9yZGluYXJ5IGl0ZW1zIG9mIHRoZSBraW5kLCBzbyBhbnl0aGluZyBjb250cmlidXRlZCB3aXRoXG4gKiB7QGxpbmsgZ2V0RHJvcERvd25NZW51SXRlbUluamVjdGFibGVCdW5jaH0gYXBwZWFycyBhbW9uZyB0aGVtIGJ5IG9yZGVyIG51bWJlci5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBTaGVsbFRvQ29udGFpbmVyID0gKHsgZGF0YSwgY29udGFpbmVyIH06IHsgZGF0YTogUG9kOyBjb250YWluZXI6IHN0cmluZyB9KSA9PiAoXG4gKiAgIDxEcm9wRG93bk1lbnVBY3Rpb24gJG9uQ2xpY2s9eygpID0+IG9wZW5TaGVsbChkYXRhLCBjb250YWluZXIpfT57Y29udGFpbmVyfTwvRHJvcERvd25NZW51QWN0aW9uPlxuICogKTtcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBnZXREcm9wRG93bk1lbnVJdGVtc0luamVjdGFibGVCdW5jaCh7XG4gKiAgIGlkOiBcInBvZC1jb250YWluZXItc2hlbGxzXCIsXG4gKiAgIGtpbmQ6IHBvZEFjdGlvbnNNZW51S2luZCxcbiAqICAgY29uc3VtcHRpb25zOiBbb3BlblNoZWxsSW5qZWN0aW9uVG9rZW5dLFxuICogICBpbnN0YW50aWF0ZTogKCkgPT4gKHBvZCkgPT5cbiAqICAgICBjb21wdXRlZCgoKSA9PlxuICogICAgICAgY29udGFpbmVyc09mKHBvZCkubWFwKChjb250YWluZXIsIGluZGV4KSA9PiAoe1xuICogICAgICAgICBpZDogYHNoZWxsLXRvLSR7Y29udGFpbmVyfWAsXG4gKiAgICAgICAgIG9yZGVyTnVtYmVyOiBwb2RBY3Rpb25zTWVudU9yZGVyTnVtYmVycy5zaGVsbHMgKyBpbmRleCxcbiAqICAgICAgICAgQ29tcG9uZW50OiBTaGVsbFRvQ29udGFpbmVyLFxuICogICAgICAgICBjb21wb25lbnRQcm9wczogeyBjb250YWluZXIgfSxcbiAqICAgICAgIH0pKSxcbiAqICAgICApLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGdldERyb3BEb3duTWVudUl0ZW1zSW5qZWN0YWJsZUJ1bmNoID0gPFxuICBLIGV4dGVuZHMgRHJvcERvd25NZW51S2luZDxhbnk+LFxuICBjb25zdCBDb25zIGV4dGVuZHMgQ29uc3VtcHRpb24gPSBuZXZlcixcbj4oXG4gIHBhcmFtczogRHJvcERvd25NZW51SXRlbXNCdW5jaFBhcmFtczxLLCBDb25zPixcbikgPT5cbiAgZ2V0SW5qZWN0YWJsZUJ1bmNoKHtcbiAgICBkcm9wRG93bk1lbnVJdGVtczogZ2V0SW5qZWN0YWJsZTIoe1xuICAgICAgaWQ6IHBhcmFtcy5pZCxcbiAgICAgIGNvbnN1bXB0aW9uczogcGFyYW1zLmNvbnN1bXB0aW9ucyxcblxuICAgICAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgICAgICBjb25zdCBhY3F1aXJlSXRlbXMgPSBwYXJhbXMuaW5zdGFudGlhdGUoZGkpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiBhY3F1aXJlSXRlbXM7XG4gICAgICB9LFxuXG4gICAgICBpbmplY3Rpb25Ub2tlbjogZHJvcERvd25NZW51SXRlbUluamVjdGlvblRva2VuLmZvcihwYXJhbXMua2luZCksXG4gICAgfSksXG4gIH0pO1xuIiwgImltcG9ydCB0eXBlIHsgRHJvcERvd25NZW51RGF0YSwgRHJvcERvd25NZW51S2luZCB9IGZyb20gXCIuL2Ryb3AtZG93bi1tZW51LWtpbmRcIjtcblxuLyoqXG4gKiBIb3cgdGhlIG1lbnUgb3BlbnMgZnJvbSBpdHMgaG9zdCBlbGVtZW50LlxuICpcbiAqIC0gYFwiY2xpY2tcImAgKHRoZSBkZWZhdWx0KTogY2xpY2tpbmcgdGhlIGVsZW1lbnQgdG9nZ2xlcyB0aGUgbWVudS5cbiAqIC0gYFwiaG92ZXJcImA6IHRoZSBtZW51IG9wZW5zIHdoaWxlIHRoZSBwb2ludGVyIGlzIG92ZXIgdGhlIGVsZW1lbnQgb3IgdGhlIG1lbnUuXG4gKiAtIGBcInJpZ2h0LWNsaWNrXCJgOiByaWdodC1jbGlja2luZyB0aGUgZWxlbWVudCB0b2dnbGVzIHRoZSBtZW51LCBhdCB0aGUgY3Vyc29yIHJhdGhlciB0aGFuIGF0IHRoZVxuICogICBlbGVtZW50IFx1MjAxNCBhIGNvbnRleHQgbWVudSBpcyBhIGRyb3AtZG93biBtZW51IG9wZW5lZCB0aGlzIHdheS5cbiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51T3Blbk9uID0gXCJjbGlja1wiIHwgXCJob3ZlclwiIHwgXCJyaWdodC1jbGlja1wiO1xuXG4vKipcbiAqIFdoZXJlIHRoZSBtZW51IHNpdHMgcmVsYXRpdmUgdG8gaXRzIGhvc3QgZWxlbWVudDogYSBzaWRlIG9mIHRoZSBob3N0LCBvcHRpb25hbGx5IHJlZmluZWQgd2l0aCBob3dcbiAqIHRoZSBtZW51IGV4dGVuZHMgYWxvbmcgdGhhdCBzaWRlLiBBIGJhcmUgc2lkZSBjZW50ZXJzIHRoZSBtZW51IG9uIGl0OyBgc3Bhbi08ZGlyZWN0aW9uPmAgYWxpZ25zXG4gKiB0aGVpciBlZGdlcyBhbmQgbGV0cyB0aGUgbWVudSBleHRlbmQgdG93YXJkIHRoYXQgZGlyZWN0aW9uLlxuICpcbiAqIERlZmF1bHRzIHRvIGBcImJvdHRvbSBzcGFuLXJpZ2h0XCJgLiBXaGVuIHRoZSBtZW51IHdvdWxkIG5vdCBmaXQgdGhlIHZpZXdwb3J0LCBpdCBmYWxscyBiYWNrIHRvIHRoZVxuICogbWlycm9yZWQgcG9zaXRpb25zLlxuICpcbiAqIE5vdGU6IGtlcHQgaWRlbnRpY2FsIHRvIGBBbmNob3JQb3NpdGlvbmAgb2YgYEBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50c2AsIHdoaWNoIGNhbm5vdCBiZVxuICogaW1wb3J0ZWQgaGVyZSBcdTIwMTQgaXQgZGVwZW5kcyBvbiB0aGlzIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCB0eXBlIERyb3BEb3duTWVudVBvc2l0aW9uID1cbiAgfCBcInRvcFwiXG4gIHwgXCJib3R0b21cIlxuICB8IFwibGVmdFwiXG4gIHwgXCJyaWdodFwiXG4gIHwgXCJ0b3Agc3Bhbi1sZWZ0XCJcbiAgfCBcInRvcCBzcGFuLXJpZ2h0XCJcbiAgfCBcImJvdHRvbSBzcGFuLWxlZnRcIlxuICB8IFwiYm90dG9tIHNwYW4tcmlnaHRcIlxuICB8IFwibGVmdCBzcGFuLXRvcFwiXG4gIHwgXCJsZWZ0IHNwYW4tYm90dG9tXCJcbiAgfCBcInJpZ2h0IHNwYW4tdG9wXCJcbiAgfCBcInJpZ2h0IHNwYW4tYm90dG9tXCI7XG5cbi8qKlxuICogSG93IGZhciBmcm9tIGl0cyBob3N0IHRoZSBtZW51IHNpdHMsIG9uIHRoZSBzaGFyZWQgdC1zaGlydCBzY2FsZS4gRGVmYXVsdHMgdG8gYFwieHNcImAuXG4gKlxuICogTm90ZToga2VwdCBpZGVudGljYWwgdG8gYFRTaGlydFNpemVgIG9mIGBAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHNgLCB3aGljaCBjYW5ub3QgYmUgaW1wb3J0ZWRcbiAqIGhlcmUgXHUyMDE0IGl0IGRlcGVuZHMgb24gdGhpcyBwYWNrYWdlLlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVHYXAgPVxuICB8IFwiemVyb1wiXG4gIHwgXCI0eHNcIlxuICB8IFwiM3hzXCJcbiAgfCBcInh4c1wiXG4gIHwgXCJ4c1wiXG4gIHwgXCJzXCJcbiAgfCBcIm1cIlxuICB8IFwibFwiXG4gIHwgXCJ4bFwiXG4gIHwgXCJ4eGxcIlxuICB8IFwiM3hsXCJcbiAgfCBcIjR4bFwiXG4gIHwgXCI1eGxcIlxuICB8IFwiNnhsXCJcbiAgfCBcIjd4bFwiXG4gIHwgXCI4eGxcIlxuICB8IFwiOXhsXCJcbiAgfCBcIjEweGxcIlxuICB8IFwiMTF4bFwiO1xuXG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgYCRkcm9wRG93bk1lbnVgIGVsZW1lbnQgcHJvcDogd2hpY2ggbWVudSBraW5kIHRvIG9wZW4sIHRoZSBkYXRhIGl0cyBpdGVtXG4gKiBmYWN0b3JpZXMgcmVjZWl2ZSwgaG93IHRoZSBtZW51IG9wZW5zIGFuZCB3aGVyZSBpdCBzaXRzLiBDcmVhdGUgd2l0aCB7QGxpbmsgZHJvcERvd25NZW51fSBzbyB0aGVcbiAqIGRhdGEgaXMgdHlwZWQgYnkgdGhlIGtpbmQuXG4gKi9cbmV4cG9ydCB0eXBlIERyb3BEb3duTWVudVNwZWMgPSB7XG4gIHJlYWRvbmx5IGtpbmQ6IERyb3BEb3duTWVudUtpbmQ8YW55PjtcbiAgcmVhZG9ubHkgZGF0YT86IHVua25vd247XG4gIHJlYWRvbmx5IG9wZW5Pbj86IERyb3BEb3duTWVudU9wZW5PbjtcbiAgcmVhZG9ubHkgcG9zaXRpb24/OiBEcm9wRG93bk1lbnVQb3NpdGlvbjtcbiAgcmVhZG9ubHkgZ2FwPzogRHJvcERvd25NZW51R2FwO1xufTtcblxuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51T3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgb3Blbk9uPzogRHJvcERvd25NZW51T3Blbk9uO1xuICByZWFkb25seSBwb3NpdGlvbj86IERyb3BEb3duTWVudVBvc2l0aW9uO1xuICByZWFkb25seSBnYXA/OiBEcm9wRG93bk1lbnVHYXA7XG59O1xuXG4vKipcbiAqIFR5cGVkIGNvbnN0cnVjdG9yIGZvciBhIHtAbGluayBEcm9wRG93bk1lbnVTcGVjfTogYSBraW5kIGNyZWF0ZWQgZm9yIGEgZGF0YSB0eXBlIG1ha2VzIGBkYXRhYFxuICogcmVxdWlyZWQgYW5kIHR5cGVkOyBhIGtpbmQgd2l0aG91dCBkYXRhIGZvcmJpZHMgaXQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogPEJ1dHRvbiAkZHJvcERvd25NZW51PXtkcm9wRG93bk1lbnUoYWlUb29sc01lbnVLaW5kKX0+T3BlbjwvQnV0dG9uPlxuICogPEJ1dHRvbiAkZHJvcERvd25NZW51PXtkcm9wRG93bk1lbnUocG9kQWN0aW9uc01lbnVLaW5kLCB7IGRhdGE6IHsgcG9kTmFtZSB9IH0pfT5Qb2Q8L0J1dHRvbj5cbiAqIDxCdXR0b24gJGRyb3BEb3duTWVudT17ZHJvcERvd25NZW51KHJvd0FjdGlvbnNNZW51S2luZCwgeyBwb3NpdGlvbjogXCJib3R0b20gc3Bhbi1sZWZ0XCIgfSl9Plx1MjJFRTwvQnV0dG9uPlxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkcm9wRG93bk1lbnU8SyBleHRlbmRzIERyb3BEb3duTWVudUtpbmQ8dm9pZD4+KFxuICBraW5kOiBLLFxuICBvcHRpb25zPzogRHJvcERvd25NZW51T3B0aW9ucyxcbik6IERyb3BEb3duTWVudVNwZWM7XG5leHBvcnQgZnVuY3Rpb24gZHJvcERvd25NZW51PEsgZXh0ZW5kcyBEcm9wRG93bk1lbnVLaW5kPGFueT4+KFxuICBraW5kOiBLLFxuICBvcHRpb25zOiBEcm9wRG93bk1lbnVPcHRpb25zICYgeyByZWFkb25seSBkYXRhOiBEcm9wRG93bk1lbnVEYXRhPEs+IH0sXG4pOiBEcm9wRG93bk1lbnVTcGVjO1xuZXhwb3J0IGZ1bmN0aW9uIGRyb3BEb3duTWVudShcbiAga2luZDogRHJvcERvd25NZW51S2luZDxhbnk+LFxuICBvcHRpb25zPzogRHJvcERvd25NZW51T3B0aW9ucyAmIHsgcmVhZG9ubHkgZGF0YT86IHVua25vd24gfSxcbik6IERyb3BEb3duTWVudVNwZWMge1xuICByZXR1cm4geyBraW5kLCAuLi5vcHRpb25zIH07XG59XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0aW9uVG9rZW4yLCB0eXBlIE1heWJlUmVzdWx0RmFjdG9yeSwgdHlwZSBTcGVjaWZpY0luamVjdGlvblRva2VuMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBnZXRJbmplY3Rpb25Ub2tlbkNvbXBvbmVudDIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZS1yZWFjdFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IERyb3BEb3duTWVudURhdGEsIERyb3BEb3duTWVudUtpbmQgfSBmcm9tIFwiLi9kcm9wLWRvd24tbWVudS1raW5kXCI7XG5pbXBvcnQgdHlwZSB7IERyb3BEb3duTWVudUl0ZW0gfSBmcm9tIFwiLi9kcm9wLWRvd24tbWVudS1pdGVtXCI7XG5cbi8qKlxuICogVGhlIHByb3BzIHRoZSBtZW51IGhhbmRzIGl0cyBjb250YWluZXIuIFRoZXkgcG9zaXRpb24gdGhlIGNvbnRhaW5lciwgcHV0IGl0IGFib3ZlIGV2ZXJ5dGhpbmdcbiAqIGVsc2UsIGFuZCBsZXQgYSBtZW51IG9wZW5lZCBieSBob3ZlcmluZyBrbm93IHRoZSBwb2ludGVyIGlzIG9uIGl0IFx1MjAxNCBzbyB0aGUgY29udGFpbmVyIG11c3Qgc3ByZWFkXG4gKiB0aGVtIG9udG8gd2hpY2hldmVyIGVsZW1lbnQgaXQgcmVuZGVycy5cbiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51Q29udGFpbmVyUHJvcHM8VERhdGEgPSB2b2lkPiA9IHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcblxuICAvKipcbiAgICogVGhlIGl0ZW1zIG9mIHRoZSBtZW51LCBhcyBpdHMga2luZCBkZWNsYXJlcyB0aGVtLCBmb3IgYSBjb250YWluZXIgdGhhdCBsYXlzIHRoZW0gb3V0IGl0c2VsZlxuICAgKiByYXRoZXIgdGhhbiByZW5kZXJpbmcgd2hhdCB0aGUgbWVudSBnYXZlIGl0IGFzIGNoaWxkcmVuLlxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXM/OiByZWFkb25seSBEcm9wRG93bk1lbnVJdGVtPFREYXRhLCBhbnk+W107XG59ICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCB0eXBlIERyb3BEb3duTWVudUNvbnRhaW5lckNvbXBvbmVudDxURGF0YSA9IHZvaWQ+ID0gKCkgPT4gUmVhY3QuQ29tcG9uZW50VHlwZTxEcm9wRG93bk1lbnVDb250YWluZXJQcm9wczxURGF0YT4+O1xuXG4vKipcbiAqIFRoZSBjb250YWluZXIgYSBtZW51IHJlbmRlcnMgYXMgd2hlbiBpdHMga2luZCBjb250cmlidXRlcyBub25lIG9mIGl0cyBvd24uIEltcGxlbWVudGVkIGJ5XG4gKiBgQGxlbnNhcHAvZHJvcC1kb3duLW1lbnVgOyBvdmVycmlkZSBpdCB0byBjaGFuZ2Ugd2hhdCBldmVyeSBtZW51IGlzIG1hZGUgb2YuXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0RHJvcERvd25NZW51Q29udGFpbmVyID0gZ2V0SW5qZWN0aW9uVG9rZW5Db21wb25lbnQyPFxuICBSZWFjdC5Db21wb25lbnRUeXBlPERyb3BEb3duTWVudUNvbnRhaW5lclByb3BzPlxuPih7XG4gIGlkOiBcImRlZmF1bHQtZHJvcC1kb3duLW1lbnUtY29udGFpbmVyXCIsXG59KSgpO1xuXG4vKiogVGhlIHNwZWNpZmljIHRva2VuIGAuZm9yKGtpbmQpYCB5aWVsZHM6IGF0IG1vc3Qgb25lIGNvbnRhaW5lciBmb3IgYSBtZW51IGtpbmQsIHR5cGVkIGJ5IGl0LiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51Q29udGFpbmVyVG9rZW5Gb3I8VERhdGE+ID0gU3BlY2lmaWNJbmplY3Rpb25Ub2tlbjI8e1xuICBzaW5nbGVGYWN0b3J5OiBEcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnQ8VERhdGE+O1xuICBtYXliZUZhY3Rvcnk6IE1heWJlUmVzdWx0RmFjdG9yeTxEcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnQ8VERhdGE+PjtcbiAgc3BlY2lmaWNUb2tlbkZhY3Rvcnk6IHVuZGVmaW5lZDtcbiAgY2FyZGluYWxpdHk6IFwiemVyby1vci1vbmVcIjtcbn0+O1xuXG4vKipcbiAqIFRoZSBgLmZvcigpYCBmYWN0b3J5LCBhbm5vdGF0ZWQgc28gYSBraW5kJ3Mgb3duIGRhdGEgdHlwZSBzdXJ2aXZlcyBpbnRvIHRoZSBzcGVjaWZpYyB0b2tlbi4gVGhlXG4gKiBhbm5vdGF0aW9uIGNhcnJpZXMgd2hhdCB0aGUgcmV0aXJlZCB0aGlyZCB0eXBlIHBhcmFtZXRlciB1c2VkIHRvOiBpbmZlcmVuY2UgZnJvbSB0aGUgdmFsdWUgYWxvbmVcbiAqIGNhbm5vdCByZWNvbnN0cnVjdCBhIHJldHVybiB0eXBlIHRoYXQgbWVudGlvbnMgdGhlIHNwZWNpZmllcidzIG93biB0eXBlIHBhcmFtZXRlci5cbiAqL1xuY29uc3QgZHJvcERvd25NZW51Q29udGFpbmVyQ29tcG9uZW50VG9rZW5Gb3IgPSA8SyBleHRlbmRzIERyb3BEb3duTWVudUtpbmQ8YW55Pj4oXG4gIGtpbmQ6IEssXG4pOiBEcm9wRG93bk1lbnVDb250YWluZXJUb2tlbkZvcjxEcm9wRG93bk1lbnVEYXRhPEs+PiA9PlxuICBnZXRJbmplY3Rpb25Ub2tlbjI8e1xuICAgIHNpbmdsZUZhY3Rvcnk6IERyb3BEb3duTWVudUNvbnRhaW5lckNvbXBvbmVudDxEcm9wRG93bk1lbnVEYXRhPEs+PjtcbiAgICBtYXliZUZhY3Rvcnk6IE1heWJlUmVzdWx0RmFjdG9yeTxEcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnQ8RHJvcERvd25NZW51RGF0YTxLPj4+O1xuICB9Pih7XG4gICAgaWQ6IGBkcm9wLWRvd24tbWVudS1jb250YWluZXItY29tcG9uZW50LSR7a2luZH1gLFxuICAgIHNwZWNpYWxpdHk6IGtpbmQsXG4gICAgY2FyZGluYWxpdHk6IFwiemVyby1vci1vbmVcIixcbiAgfSkoKTtcblxuLyoqXG4gKiBUaGUgZWxlbWVudCBhIG1lbnUgb2Ygc29tZSBraW5kIHJlbmRlcnMgYXMuIFdpdGhvdXQgb25lLCBhIG1lbnUgaXMgYSBsaXN0IFx1MjAxNCB3aGljaCBpcyB3aGF0IGEgbWVudVxuICogb2Ygb3JkaW5hcnkgaXRlbXMgc2hvdWxkIGJlLiBDb250cmlidXRlIG9uZSB3aGVuIHRoZSBpdGVtcyBhcmUgbm90IGEgbGlzdDogYSBncmlkIG9mIGljb25zLCBzYXksXG4gKiBvciBhIHBhbmVsIHRoYXQgaGFwcGVucyB0byBvcGVuIGxpa2UgYSBtZW51LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIC8vIEl0ZW1zIHR5cGVkIGJ5IHRoZSBraW5kLCBmb3IgYSBjb250YWluZXIgdGhhdCBsYXlzIHRoZW0gb3V0IGl0c2VsZi5cbiAqIGNvbnN0IEljb25HcmlkID0gKHsgaXRlbXMgPSBbXSwgLi4ubWVudVByb3BzIH06IERyb3BEb3duTWVudUNvbnRhaW5lclByb3BzKSA9PiAoXG4gKiAgIDxEaXYgey4uLm1lbnVQcm9wc30gJGdyaWQ9e3sgY29sdW1uczogMyB9fT5cbiAqICAgICB7aXRlbXMubWFwKChpdGVtKSA9PiAoXG4gKiAgICAgICA8aXRlbS5Db21wb25lbnQga2V5PXtpdGVtLmlkfSBkYXRhPXt1bmRlZmluZWR9IHsuLi5pdGVtLmNvbXBvbmVudFByb3BzfSAvPlxuICogICAgICkpfVxuICogICA8L0Rpdj5cbiAqICk7XG4gKlxuICogZXhwb3J0IGNvbnN0IGljb25HcmlkQ29udGFpbmVySW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAqICAgaWQ6IFwiaWNvbi1ncmlkLWNvbnRhaW5lclwiLFxuICogICBpbnN0YW50aWF0ZTogKCkgPT4gKCkgPT4gSWNvbkdyaWQsXG4gKiAgIGluamVjdGlvblRva2VuOiBkcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnRJbmplY3Rpb25Ub2tlbi5mb3IoaWNvbnNNZW51S2luZCksXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgZHJvcERvd25NZW51Q29udGFpbmVyQ29tcG9uZW50SW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8e1xuICBzaW5nbGVGYWN0b3J5OiBEcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnQ8YW55PjtcbiAgbWF5YmVGYWN0b3J5OiBNYXliZVJlc3VsdEZhY3Rvcnk8RHJvcERvd25NZW51Q29udGFpbmVyQ29tcG9uZW50PGFueT4+O1xufT4oe1xuICBpZDogXCJkcm9wLWRvd24tbWVudS1jb250YWluZXItY29tcG9uZW50XCIsXG4gIGNhcmRpbmFsaXR5OiBcInplcm8tb3Itb25lXCIsXG59KShkcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnRUb2tlbkZvcik7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0aW9uVG9rZW5Db21wb25lbnQyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGUtcmVhY3RcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBEcm9wRG93bk1lbnVTcGVjIH0gZnJvbSBcIi4vZHJvcC1kb3duLW1lbnUtc3BlY1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BEb3duTWVudVByb3BzIHtcbiAgLyoqIFdoaWNoIG1lbnUgdG8gc2hvdzogdGhlIGtpbmQsIGl0cyBkYXRhLCBob3cgaXQgb3BlbnMgYW5kIHdoZXJlIGl0IHNpdHMuICovXG4gIHJlYWRvbmx5IHNwZWM6IERyb3BEb3duTWVudVNwZWM7XG5cbiAgLyoqXG4gICAqIFZpZXdwb3J0IHBvaW50IHRvIHNpdCBhdCwgaW5zdGVhZCBvZiB0aGUgaG9zdCBlbGVtZW50IFx1MjAxNCBob3cgYSBtZW51IG9wZW5lZCBieSByaWdodC1jbGlja2luZ1xuICAgKiBlbmRzIHVwIGF0IHRoZSBjdXJzb3IuXG4gICAqL1xuICByZWFkb25seSBhbmNob3JQb2ludD86IHsgcmVhZG9ubHkgeDogbnVtYmVyOyByZWFkb25seSB5OiBudW1iZXIgfTtcblxuICAvKiogQ2FsbGVkIHdoZW4gdGhlIG1lbnUgY2xvc2VzIGl0c2VsZiAoaXRlbSBhY3RpdmF0aW9uLCBvdXRzaWRlIGNsaWNrLCBFc2NhcGUsIG5vIGl0ZW1zKS4gKi9cbiAgcmVhZG9ubHkgb25DbG9zZTogVm9pZEZ1bmN0aW9uO1xuXG4gIC8qKiBSZXBvcnRzIHBvaW50ZXIgcHJlc2VuY2Ugb3ZlciB0aGUgbWVudSBzdXJmYWNlOyBob3Zlci1vcGVuZWQgaG9zdHMgc3RheSBvcGVuIHdoaWxlIHRydWUuICovXG4gIHJlYWRvbmx5IG9uTWVudUhvdmVyQ2hhbmdlPzogKGlzSG92ZXJlZDogYm9vbGVhbikgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgbWVudSBjb21wb25lbnQgdGhlIGAkZHJvcERvd25NZW51YCBlbGVtZW50IHByb3AgcmVuZGVycyB3aGlsZSBvcGVuLiBJdCByZW5kZXJzIGluc2lkZSB0aGVcbiAqIGhvc3QgZWxlbWVudCBhbmQgYW5jaG9ycyBpdHNlbGYgdG8gaXQsIHNvIHRoZSBob3N0IG5lZWRzIG5vIHJlZiBhbmQgdGhlIG1lbnUgbmVlZHMgbm8gcG9ydGFsLlxuICpcbiAqIEltcGxlbWVudGVkIGJ5IGBAbGVuc2FwcC9kcm9wLWRvd24tbWVudWAsIHdob3NlIGZlYXR1cmUgbXVzdCBiZSByZWdpc3RlcmVkIGZvciB0aGUgcHJvcCB0byB3b3JrO1xuICogcmVzb2x2ZWQgdGhyb3VnaCB0aGlzIHRva2VuIHNvIGVsZW1lbnQtY29tcG9uZW50cyBuZWVkcyBubyBkZXBlbmRlbmN5IG9uIHRoZSBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IERyb3BEb3duTWVudSA9IGdldEluamVjdGlvblRva2VuQ29tcG9uZW50MjxSZWFjdC5Db21wb25lbnRUeXBlPERyb3BEb3duTWVudVByb3BzPj4oe1xuICBpZDogXCJkcm9wLWRvd24tbWVudVwiLFxufSkoKTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBEcm9wRG93bk1lbnVLaW5kIH0gZnJvbSBcIi4vZHJvcC1kb3duLW1lbnUta2luZFwiO1xuXG4vKiogQ2xvc2VzIHRoZSBvcGVuIGRyb3AtZG93biBtZW51IG9mIHRoZSBnaXZlbiBraW5kLiAqL1xuZXhwb3J0IHR5cGUgQ2xvc2VEcm9wRG93bk1lbnUgPSAoa2luZDogRHJvcERvd25NZW51S2luZDxhbnk+KSA9PiB2b2lkO1xuXG4vKipcbiAqIFByb2dyYW1tYXRpY2FsbHkgY2xvc2UgdGhlIG9wZW4gZHJvcC1kb3duIG1lbnUgb2Ygb25lIGtpbmQuIE1lbnVzIG9mIG90aGVyIGtpbmRzIHN0YXkgb3Blbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IGNsb3NlRHJvcERvd25NZW51ID0gZGkuaW5qZWN0KGNsb3NlRHJvcERvd25NZW51SW5qZWN0aW9uVG9rZW4pKCk7XG4gKlxuICogY2xvc2VEcm9wRG93bk1lbnUocG9kQWN0aW9uc01lbnVLaW5kKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY2xvc2VEcm9wRG93bk1lbnVJbmplY3Rpb25Ub2tlbiA9IGdldEluamVjdGlvblRva2VuMjx7IHNpbmdsZUZhY3Rvcnk6ICgpID0+IENsb3NlRHJvcERvd25NZW51IH0+KHtcbiAgaWQ6IFwiY2xvc2UtZHJvcC1kb3duLW1lbnVcIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG4vKiogQ2xvc2VzIGV2ZXJ5IG9wZW4gZHJvcC1kb3duIG1lbnUuICovXG5leHBvcnQgdHlwZSBDbG9zZUFsbERyb3BEb3duTWVudXMgPSBWb2lkRnVuY3Rpb247XG5cbi8qKlxuICogUHJvZ3JhbW1hdGljYWxseSBjbG9zZSBhbGwgb3BlbiBkcm9wLWRvd24gbWVudXMsIHJlZ2FyZGxlc3Mgb2Yga2luZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IGNsb3NlQWxsRHJvcERvd25NZW51cyA9IGRpLmluamVjdChjbG9zZUFsbERyb3BEb3duTWVudXNJbmplY3Rpb25Ub2tlbikoKTtcbiAqXG4gKiBjbG9zZUFsbERyb3BEb3duTWVudXMoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY2xvc2VBbGxEcm9wRG93bk1lbnVzSW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8eyBzaW5nbGVGYWN0b3J5OiAoKSA9PiBDbG9zZUFsbERyb3BEb3duTWVudXMgfT4oe1xuICBpZDogXCJjbG9zZS1hbGwtZHJvcC1kb3duLW1lbnVzXCIsXG4gIGNhcmRpbmFsaXR5OiBcIm9uZVwiLFxufSkoKTtcbiIsICJpbXBvcnQgeyBleHBlY3REZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcblxuLyoqXG4gKiBDYXJyaWVzIHRoZSBjbG9zZSBmdW5jdGlvbiBvZiB0aGUgZHJvcC1kb3duIG1lbnUgYSBjb21wb25lbnQgaXMgcmVuZGVyZWQgaW4uIFByb3ZpZGVkIGJ5IHRoZVxuICogbWVudSBpbXBsZW1lbnRhdGlvbiBhcm91bmQgaXRzIGl0ZW1zOyBjb25zdW1lIHRocm91Z2gge0BsaW5rIHVzZUNsb3NlRHJvcERvd25NZW51fS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnRleHRGb3JDbG9zaW5nRHJvcERvd25NZW51ID0gY3JlYXRlQ29udGV4dDxWb2lkRnVuY3Rpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogSW5zaWRlIG1lbnUgY29udGVudDogcmV0dXJucyBhIGZ1bmN0aW9uIGNsb3NpbmcgdGhlIG1lbnUgdGhpcyBjb21wb25lbnQgaXMgcmVuZGVyZWQgaW4gXHUyMDE0IG9ubHlcbiAqIHRoYXQgbWVudSwgbm90IGl0cyBhbmNlc3RvcnMuIFRocm93cyB3aGVuIHVzZWQgb3V0c2lkZSBhIGRyb3AtZG93biBtZW51LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IEN1c3RvbVJvdyA9ICgpID0+IHtcbiAqICAgY29uc3QgY2xvc2VEcm9wRG93bk1lbnUgPSB1c2VDbG9zZURyb3BEb3duTWVudSgpO1xuICpcbiAqICAgcmV0dXJuIDxDbGlja2FibGVEaXYgJG9uQ2xpY2s9e2Nsb3NlRHJvcERvd25NZW51fT5Eb25lPC9DbGlja2FibGVEaXY+O1xuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgdXNlQ2xvc2VEcm9wRG93bk1lbnUgPSAoKSA9PlxuICBleHBlY3REZWZpbmVkKHVzZUNvbnRleHQoY29udGV4dEZvckNsb3NpbmdEcm9wRG93bk1lbnUpLCBcIlRyaWVkIHRvIGNsb3NlIGEgZHJvcC1kb3duIG1lbnUgd2hpbGUgbm90IGluc2lkZSBvbmUuXCIpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQ0FBLHdCQUFnRjtBQWlDekUsSUFBTSxzQkFDWCxNQUNBLENBQW1CLGtCQUNqQixxQ0FBK0MsRUFBRSxTQUFTOzs7QUNwQzlELElBQUFBLHFCQUF1RTtBQXlCaEUsSUFBTSxxQ0FBaUMsdUNBRTNDO0FBQUEsRUFDRCxJQUFJO0FBQUEsRUFDSixhQUFhO0FBQ2YsQ0FBQyxFQUFFO0FBMEJJLElBQU0scUNBQXFDLENBQUMsZUFDakQsdUNBQW1CO0FBQUEsRUFDakIsc0JBQWtCLG1DQUFlO0FBQUEsSUFDL0IsSUFBSSxPQUFPO0FBQUEsSUFFWCxhQUFhLE1BQU0sT0FBb0M7QUFBQSxNQUNyRCxNQUFNLE9BQU87QUFBQSxNQUNiLGFBQWEsT0FBTztBQUFBLElBQ3RCO0FBQUEsSUFFQSxnQkFBZ0I7QUFBQSxFQUNsQixDQUFDO0FBQ0gsQ0FBQzs7O0FDcEVILElBQUFDLHFCQVNPO0FBcUZQLElBQU0sMkJBQTJCLENBQy9CLGFBRUEsdUNBR0c7QUFBQSxFQUNELElBQUksdUJBQXVCLElBQUk7QUFBQSxFQUMvQixZQUFZO0FBQUEsRUFDWixhQUFhO0FBQ2YsQ0FBQyxFQUFFO0FBU0UsSUFBTSxxQ0FBaUMsdUNBRzNDO0FBQUEsRUFDRCxJQUFJO0FBQUEsRUFDSixhQUFhO0FBQ2YsQ0FBQyxFQUFFLHdCQUF3QjtBQTRDcEIsSUFBTSxxQ0FBcUMsQ0FDaEQsZUFFQSx1Q0FBbUI7QUFBQSxFQUNqQixzQkFBa0IsbUNBQWU7QUFBQSxJQUMvQixJQUFJLE9BQU87QUFBQSxJQUVYLGFBQ0UsTUFDQSxNQUNBLENBQUMsV0FBdUU7QUFBQSxNQUN0RSxJQUFJLE9BQU87QUFBQSxNQUNYLGFBQWEsT0FBTztBQUFBLE1BQ3BCLFdBQVcsT0FBTyxPQUFPLGNBQWMsYUFBYSxPQUFPLFVBQVUsS0FBSyxJQUFJLE9BQU87QUFBQSxNQUNyRixXQUFXLE9BQU87QUFBQSxJQUNwQjtBQUFBLElBRUYsZ0JBQWdCLCtCQUErQixJQUFJLE9BQU8sSUFBSTtBQUFBLEVBQ2hFLENBQUM7QUFDSCxDQUFDO0FBaURJLElBQU0sc0NBQXNDLENBSWpELGVBRUEsdUNBQW1CO0FBQUEsRUFDakIsdUJBQW1CLG1DQUFlO0FBQUEsSUFDaEMsSUFBSSxPQUFPO0FBQUEsSUFDWCxjQUFjLE9BQU87QUFBQSxJQUVyQixhQUFhLENBQUMsT0FBTztBQUNuQixZQUFNLGVBQWUsT0FBTyxZQUFZLEVBQUU7QUFFMUMsYUFBTyxNQUFNO0FBQUEsSUFDZjtBQUFBLElBRUEsZ0JBQWdCLCtCQUErQixJQUFJLE9BQU8sSUFBSTtBQUFBLEVBQ2hFLENBQUM7QUFDSCxDQUFDOzs7QUNwSkksU0FBUyxhQUNkLE1BQ0EsU0FDa0I7QUFDbEIsU0FBTyxFQUFFLE1BQU0sR0FBRyxRQUFRO0FBQzVCOzs7QUMzR0EsSUFBQUMscUJBQTBGO0FBQzFGLDhCQUE0QztBQTBCckMsSUFBTSxtQ0FBK0IscURBRTFDO0FBQUEsRUFDQSxJQUFJO0FBQ04sQ0FBQyxFQUFFO0FBZUgsSUFBTSx5Q0FBeUMsQ0FDN0MsYUFFQSx1Q0FHRztBQUFBLEVBQ0QsSUFBSSxzQ0FBc0MsSUFBSTtBQUFBLEVBQzlDLFlBQVk7QUFBQSxFQUNaLGFBQWE7QUFDZixDQUFDLEVBQUU7QUF5QkUsSUFBTSxtREFBK0MsdUNBR3pEO0FBQUEsRUFDRCxJQUFJO0FBQUEsRUFDSixhQUFhO0FBQ2YsQ0FBQyxFQUFFLHNDQUFzQzs7O0FDdkZ6QyxJQUFBQywyQkFBNEM7QUE0QnJDLElBQU0sbUJBQWUsc0RBQW9FO0FBQUEsRUFDOUYsSUFBSTtBQUNOLENBQUMsRUFBRTs7O0FDOUJILElBQUFDLHFCQUFtQztBQWdCNUIsSUFBTSxzQ0FBa0MsdUNBQStEO0FBQUEsRUFDNUcsSUFBSTtBQUFBLEVBQ0osYUFBYTtBQUNmLENBQUMsRUFBRTtBQWVJLElBQU0sMENBQXNDLHVDQUFtRTtBQUFBLEVBQ3BILElBQUk7QUFBQSxFQUNKLGFBQWE7QUFDZixDQUFDLEVBQUU7OztBQ3JDSCw4QkFBOEI7QUFDOUIsbUJBQTBDO0FBTW5DLElBQU0sb0NBQWdDLDRCQUF3QyxNQUFTO0FBZXZGLElBQU0sdUJBQXVCLFVBQ2xDLDJDQUFjLHlCQUFXLDZCQUE2QixHQUFHLHVEQUF1RDsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGVfcmVhY3QiLCAiaW1wb3J0X2luamVjdGFibGUiXQp9Cg==
156
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL2Ryb3AtZG93bi1tZW51LWtpbmQudHMiLCAiLi4vc3JjL2Ryb3AtZG93bi1tZW51LWtpbmQtaW5qZWN0aW9uLXRva2VuLnRzIiwgIi4uL3NyYy9kcm9wLWRvd24tbWVudS1pdGVtLnRzIiwgIi4uL3NyYy9kcm9wLWRvd24tbWVudS1zcGVjLnRzIiwgIi4uL3NyYy9kcm9wLWRvd24tbWVudS1jb250YWluZXItY29tcG9uZW50LnRzIiwgIi4uL3NyYy9kcm9wLWRvd24tbWVudS1jb21wb25lbnQudHMiLCAiLi4vc3JjL2Nsb3NlLWRyb3AtZG93bi1tZW51LnRzIiwgIi4uL3NyYy9jbG9zZS1kcm9wLWRvd24tbWVudS1jb250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJleHBvcnQgeyBnZXREcm9wRG93bk1lbnVLaW5kIH0gZnJvbSBcIi4vc3JjL2Ryb3AtZG93bi1tZW51LWtpbmRcIjtcbmV4cG9ydCB7XG4gIHR5cGUgRHJvcERvd25NZW51S2luZERlY2xhcmF0aW9uLFxuICB0eXBlIERyb3BEb3duTWVudUtpbmREZWNsYXJhdGlvbkZhY3RvcnksXG4gIHR5cGUgRHJvcERvd25NZW51S2luZEluamVjdGFibGVQYXJhbXMsXG4gIGRyb3BEb3duTWVudUtpbmRJbmplY3Rpb25Ub2tlbixcbiAgZ2V0RHJvcERvd25NZW51S2luZEluamVjdGFibGVCdW5jaCxcbn0gZnJvbSBcIi4vc3JjL2Ryb3AtZG93bi1tZW51LWtpbmQtaW5qZWN0aW9uLXRva2VuXCI7XG5leHBvcnQgdHlwZSB7IERyb3BEb3duTWVudURhdGEsIERyb3BEb3duTWVudUtpbmQgfSBmcm9tIFwiLi9zcmMvZHJvcC1kb3duLW1lbnUta2luZFwiO1xuZXhwb3J0IHtcbiAgZHJvcERvd25NZW51SXRlbUluamVjdGlvblRva2VuLFxuICBnZXREcm9wRG93bk1lbnVJdGVtSW5qZWN0YWJsZUJ1bmNoLFxuICBnZXREcm9wRG93bk1lbnVJdGVtc0luamVjdGFibGVCdW5jaCxcbn0gZnJvbSBcIi4vc3JjL2Ryb3AtZG93bi1tZW51LWl0ZW1cIjtcbmV4cG9ydCB0eXBlIHtcbiAgQWNxdWlyZURyb3BEb3duTWVudUl0ZW1zLFxuICBEcm9wRG93bk1lbnVJdGVtLFxuICBEcm9wRG93bk1lbnVJdGVtQnVuY2hQYXJhbXMsXG4gIERyb3BEb3duTWVudUl0ZW1GYWN0b3J5LFxuICBEcm9wRG93bk1lbnVJdGVtUHJvcHNGb3IsXG4gIERyb3BEb3duTWVudUl0ZW1zQnVuY2hQYXJhbXMsXG4gIERyb3BEb3duTWVudUl0ZW1Ub2tlbkZvcixcbiAgRHJvcERvd25NZW51SXRlbVZpc2liaWxpdHksXG59IGZyb20gXCIuL3NyYy9kcm9wLWRvd24tbWVudS1pdGVtXCI7XG5leHBvcnQgeyBkcm9wRG93bk1lbnUgfSBmcm9tIFwiLi9zcmMvZHJvcC1kb3duLW1lbnUtc3BlY1wiO1xuZXhwb3J0IHR5cGUge1xuICBEcm9wRG93bk1lbnVHYXAsXG4gIERyb3BEb3duTWVudU9wZW5PbixcbiAgRHJvcERvd25NZW51T3B0aW9ucyxcbiAgRHJvcERvd25NZW51UG9zaXRpb24sXG4gIERyb3BEb3duTWVudVNwZWMsXG59IGZyb20gXCIuL3NyYy9kcm9wLWRvd24tbWVudS1zcGVjXCI7XG5leHBvcnQge1xuICBEZWZhdWx0RHJvcERvd25NZW51Q29udGFpbmVyLFxuICBkcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnRJbmplY3Rpb25Ub2tlbixcbn0gZnJvbSBcIi4vc3JjL2Ryb3AtZG93bi1tZW51LWNvbnRhaW5lci1jb21wb25lbnRcIjtcbmV4cG9ydCB0eXBlIHtcbiAgRHJvcERvd25NZW51Q29udGFpbmVyQ29tcG9uZW50LFxuICBEcm9wRG93bk1lbnVDb250YWluZXJQcm9wcyxcbiAgRHJvcERvd25NZW51Q29udGFpbmVyVG9rZW5Gb3IsXG59IGZyb20gXCIuL3NyYy9kcm9wLWRvd24tbWVudS1jb250YWluZXItY29tcG9uZW50XCI7XG5leHBvcnQgeyBEcm9wRG93bk1lbnUgfSBmcm9tIFwiLi9zcmMvZHJvcC1kb3duLW1lbnUtY29tcG9uZW50XCI7XG5leHBvcnQgdHlwZSB7IERyb3BEb3duTWVudVByb3BzIH0gZnJvbSBcIi4vc3JjL2Ryb3AtZG93bi1tZW51LWNvbXBvbmVudFwiO1xuZXhwb3J0IHtcbiAgY2xvc2VBbGxEcm9wRG93bk1lbnVzSW5qZWN0aW9uVG9rZW4sXG4gIGNsb3NlRHJvcERvd25NZW51SW5qZWN0aW9uVG9rZW4sXG59IGZyb20gXCIuL3NyYy9jbG9zZS1kcm9wLWRvd24tbWVudVwiO1xuZXhwb3J0IHR5cGUgeyBDbG9zZUFsbERyb3BEb3duTWVudXMsIENsb3NlRHJvcERvd25NZW51IH0gZnJvbSBcIi4vc3JjL2Nsb3NlLWRyb3AtZG93bi1tZW51XCI7XG5leHBvcnQgeyBjb250ZXh0Rm9yQ2xvc2luZ0Ryb3BEb3duTWVudSwgdXNlQ2xvc2VEcm9wRG93bk1lbnUgfSBmcm9tIFwiLi9zcmMvY2xvc2UtZHJvcC1kb3duLW1lbnUtY29udGV4dFwiO1xuIiwgImltcG9ydCB7IGdldFR5cGVkU3BlY2lmaWVyLCB0eXBlIFR5cGVkU3BlY2lmaWVyLCB0eXBlIFR5cGVkU3BlY2lmaWVyVHlwZSB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbi8qKlxuICogSWRlbnRpZmllcyBvbmUgZmFtaWx5IG9mIGRyb3AtZG93biBtZW51IGl0ZW1zLiBJdGVtcyBhcmUgY29udHJpYnV0ZWQgYWdhaW5zdFxuICogYSBraW5kIHZpYSBgZHJvcERvd25NZW51SXRlbUluamVjdGlvblRva2VuLmZvcihraW5kKWAsIGFuZCBhIGhvc3QgZWxlbWVudFxuICogb3BlbnMgdGhlIG1lbnUgb2YgYSBraW5kIHdpdGggYCRkcm9wRG93bk1lbnU9e2Ryb3BEb3duTWVudShraW5kKX1gLlxuICpcbiAqIGBURGF0YWAgaXMgdGhlIGRhdGEgdGhlIGhvc3QgZWxlbWVudCBzdXBwbGllcyB3aGVuIG9wZW5pbmcgdGhlIG1lbnU7IGl0ZW1cbiAqIGZhY3RvcmllcyBvZiB0aGUga2luZCByZWNlaXZlIGl0LiBBIGtpbmQgY3JlYXRlZCB3aXRob3V0IGBURGF0YWAgbmVlZHMgbm9cbiAqIGRhdGEuXG4gKlxuICogQXQgcnVudGltZSBhIGtpbmQgaXMgYSBicmFuZGVkIHN0cmluZywgc28gaXQgaXMgdXNhYmxlIGFzIGEgYC5mb3IoKWAga2V5LlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVLaW5kPFREYXRhID0gdm9pZD4gPSBUeXBlZFNwZWNpZmllcjxzdHJpbmcsIHsgZHJvcERvd25NZW51RGF0YTogVERhdGEgfT47XG5cbi8qKlxuICogUmVjb3ZlcnMgdGhlIGRhdGEgdHlwZSBib3VuZCB0byBhIHtAbGluayBEcm9wRG93bk1lbnVLaW5kfS5cbiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51RGF0YTxLIGV4dGVuZHMgRHJvcERvd25NZW51S2luZDxhbnk+PiA9IFR5cGVkU3BlY2lmaWVyVHlwZTxcImRyb3BEb3duTWVudURhdGFcIiwgSz47XG5cbi8qKlxuICogQ3VycmllZCBjcmVhdG9yIGZvciBhIHtAbGluayBEcm9wRG93bk1lbnVLaW5kfS4gVGhlIGZpcnN0IGNhbGwgYmluZHMgdGhlIGRhdGFcbiAqIHR5cGU7IHRoZSBzZWNvbmQgdGhlIGdsb2JhbGx5IHVuaXF1ZSBzcGVjaWZpZXIgc3RyaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gQSBtZW51IHdob3NlIGl0ZW1zIG5lZWQgbm8gZGF0YTpcbiAqIGV4cG9ydCBjb25zdCBhaVRvb2xzTWVudUtpbmQgPSBnZXREcm9wRG93bk1lbnVLaW5kKCkoXCJhaS10b29scy1tZW51XCIpO1xuICpcbiAqIC8vIEEgbWVudSB3aG9zZSBpdGVtcyBkZXJpdmUgZnJvbSB0aGUgaG9zdCBlbGVtZW50J3MgZGF0YTpcbiAqIGV4cG9ydCBjb25zdCBwb2RBY3Rpb25zTWVudUtpbmQgPSBnZXREcm9wRG93bk1lbnVLaW5kPHsgcG9kTmFtZTogc3RyaW5nIH0+KCkoXCJwb2QtYWN0aW9ucy1tZW51XCIpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREcm9wRG93bk1lbnVLaW5kID1cbiAgPFREYXRhID0gdm9pZD4oKSA9PlxuICA8UyBleHRlbmRzIHN0cmluZz4oc3BlY2lmaWVyOiBTKSA9PlxuICAgIGdldFR5cGVkU3BlY2lmaWVyPHsgZHJvcERvd25NZW51RGF0YTogVERhdGEgfT4oKShzcGVjaWZpZXIpO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3RhYmxlQnVuY2gsIGdldEluamVjdGlvblRva2VuMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IERyb3BEb3duTWVudUtpbmQgfSBmcm9tIFwiLi9kcm9wLWRvd24tbWVudS1raW5kXCI7XG5cbi8qKlxuICogT25lIGRyb3AtZG93biBtZW51IHRoYXQgZXhpc3RzLCBhbm5vdW5jZWQgc28gaXQgY2FuIGJlIGRpc2NvdmVyZWQgcmF0aGVyXG4gKiB0aGFuIGZvdW5kIGJ5IHJlYWRpbmcgdGhlIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEcm9wRG93bk1lbnVLaW5kRGVjbGFyYXRpb24ge1xuICAvKiogVGhlIGtpbmQgaXRzZWxmLCBhcyBgZHJvcERvd25NZW51SXRlbUluamVjdGlvblRva2VuLmZvcihraW5kKWAgdGFrZXMgaXQuICovXG4gIHJlYWRvbmx5IGtpbmQ6IERyb3BEb3duTWVudUtpbmQ8YW55PjtcbiAgLyoqIE9uZSBsaW5lIG9uIHdoYXQgdGhlIG1lbnUgaXMsIGZvciBhIHJlYWRlciBkZWNpZGluZyB3aGV0aGVyIHRvIGNvbnRyaWJ1dGUuICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbi8qKiBQcm9kdWNlcyBvbmUgZGVjbGFyYXRpb24sIHBvc3NpYmx5IGxhdGVyLiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51S2luZERlY2xhcmF0aW9uRmFjdG9yeSA9ICgpID0+IERyb3BEb3duTWVudUtpbmREZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBFdmVyeSBkcm9wLWRvd24gbWVudSBraW5kIHRoZSBydW5uaW5nIGJ1aWxkIGtub3dzIGFib3V0LlxuICpcbiAqIEluamVjdGluZyBtYW55IG9mIHRoZXNlIGlzIGhvdyBhIHN1cmZhY2UgZW51bWVyYXRlcyB0aGUgbWVudXMgdGhhdCBleGlzdCBcdTIwMTRcbiAqIHRoZSBleHRlbnNpb24tZGV2ZWxvcG1lbnQgaW5zdHJ1Y3Rpb25zIHJlbmRlciB0aGVpciBsaXN0IGZyb20gaXQsIHNvIGEgbmV3XG4gKiBtZW51IGJlY29tZXMgZG9jdW1lbnRlZCBieSByZWdpc3RlcmluZyBoZXJlIHJhdGhlciB0aGFuIGJ5IHNvbWVvbmVcbiAqIHJlbWVtYmVyaW5nIHRvIGVkaXQgcHJvc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBkcm9wRG93bk1lbnVLaW5kSW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8e1xuICBzaW5nbGVGYWN0b3J5OiBEcm9wRG93bk1lbnVLaW5kRGVjbGFyYXRpb25GYWN0b3J5O1xufT4oe1xuICBpZDogXCJkcm9wLWRvd24tbWVudS1raW5kXCIsXG4gIGNhcmRpbmFsaXR5OiBcInplcm8tb3ItbWFueVwiLFxufSkoKTtcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wRG93bk1lbnVLaW5kSW5qZWN0YWJsZVBhcmFtcyB7XG4gIC8qKiBVbmlxdWUgaWQgZm9yIHRoZSByZWdpc3RlcmVkIGluamVjdGFibGUuICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIC8qKiBUaGUga2luZCBiZWluZyBhbm5vdW5jZWQuICovXG4gIHJlYWRvbmx5IGtpbmQ6IERyb3BEb3duTWVudUtpbmQ8YW55PjtcbiAgLyoqIE9uZSBsaW5lIG9uIHdoYXQgdGhlIG1lbnUgaXMuICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW5ub3VuY2UgYSBkcm9wLWRvd24gbWVudSBraW5kLCBzbyBhbnl0aGluZyBlbnVtZXJhdGluZyB0aGUgbWVudXMgZmluZHMgaXQuXG4gKlxuICogUmVnaXN0ZXIgdGhpcyB3aGVyZXZlciB0aGUgbWVudSdzIG93biBzdXJmYWNlIGlzIHJlZ2lzdGVyZWQgXHUyMDE0IGEgY29udHJhY3RzXG4gKiBwYWNrYWdlIGV4cG9ydHMgdGhlIGtpbmQsIGJ1dCBub3QgdGhlIHJlZ2lzdHJhdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGV4cG9ydCBkZWZhdWx0IGdldERyb3BEb3duTWVudUtpbmRJbmplY3RhYmxlQnVuY2goe1xuICogICBpZDogXCJhaS10b29sLXRvcC1iYXItbWVudS1raW5kXCIsXG4gKiAgIGtpbmQ6IGFpVG9vbFRvcEJhck1lbnVLaW5kLFxuICogICBkZXNjcmlwdGlvbjogXCJUaGUgbWVudSBvZiB0aGUgQUkgdG9vbCBidXR0b24gaW4gdGhlIHRvcCBiYXIuXCIsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgZ2V0RHJvcERvd25NZW51S2luZEluamVjdGFibGVCdW5jaCA9IChwYXJhbXM6IERyb3BEb3duTWVudUtpbmRJbmplY3RhYmxlUGFyYW1zKSA9PlxuICBnZXRJbmplY3RhYmxlQnVuY2goe1xuICAgIGRyb3BEb3duTWVudUtpbmQ6IGdldEluamVjdGFibGUyKHtcbiAgICAgIGlkOiBwYXJhbXMuaWQsXG5cbiAgICAgIGluc3RhbnRpYXRlOiAoKSA9PiAoKTogRHJvcERvd25NZW51S2luZERlY2xhcmF0aW9uID0+ICh7XG4gICAgICAgIGtpbmQ6IHBhcmFtcy5raW5kLFxuICAgICAgICBkZXNjcmlwdGlvbjogcGFyYW1zLmRlc2NyaXB0aW9uLFxuICAgICAgfSksXG5cbiAgICAgIGluamVjdGlvblRva2VuOiBkcm9wRG93bk1lbnVLaW5kSW5qZWN0aW9uVG9rZW4sXG4gICAgfSksXG4gIH0pO1xuIiwgImltcG9ydCB7XG4gIGdldEluamVjdGFibGUyLFxuICBnZXRJbmplY3RhYmxlQnVuY2gsXG4gIGdldEluamVjdGlvblRva2VuMixcbiAgdHlwZSBDb25zdW1wdGlvbixcbiAgdHlwZSBDb25zdW1wdGlvbkRpLFxuICB0eXBlIE1hbnlGYWN0b3J5LFxuICB0eXBlIE5vbkVtcHR5TWFueUZhY3RvcnksXG4gIHR5cGUgU3BlY2lmaWNJbmplY3Rpb25Ub2tlbjIsXG59IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIElkZW50aWZpYWJsZSxcbiAgTWF5YmVDb21wdXRlZCxcbiAgTWF5YmVDb21wdXRlZFNob3dhYmxlLFxuICBPcmRlcmFibGUsXG59IGZyb20gXCJAazhzbGVucy9jb21wb3NhYmxlLXJlc3BvbnNpYmlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHsgTWF5YmVQcm9taXNlLCBTaW5nbGVPck1hbnkgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IERyb3BEb3duTWVudURhdGEsIERyb3BEb3duTWVudUtpbmQgfSBmcm9tIFwiLi9kcm9wLWRvd24tbWVudS1raW5kXCI7XG5cbi8qKlxuICogV2hhdCBhbiBpdGVtJ3MgY29tcG9uZW50IG5lZWRzIGJleW9uZCB0aGUgbWVudSdzIGRhdGEuIFByb3ZpZGluZyBpdCBpcyBtYW5kYXRvcnkgd2hlbiB0aGVcbiAqIGNvbXBvbmVudCByZXF1aXJlcyBwcm9wcywgYW5kIG9wdGlvbmFsIHdoZW4gYWxsIG9mIHRoZW0gYXJlIG9wdGlvbmFsLlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVJdGVtUHJvcHNGb3I8VFByb3BzIGV4dGVuZHMgb2JqZWN0PiA9IHt9IGV4dGVuZHMgVFByb3BzXG4gID8geyByZWFkb25seSBjb21wb25lbnRQcm9wcz86IFRQcm9wcyB9XG4gIDogeyByZWFkb25seSBjb21wb25lbnRQcm9wczogVFByb3BzIH07XG5cbi8qKlxuICogT25lIGl0ZW0gb2YgYSBkcm9wLWRvd24gbWVudTogYSBjb21wb25lbnQsIHdoZXJlIGl0IHNpdHMgYW1vbmcgdGhlIG90aGVycywgYW5kIHdoZXRoZXIgaXQgaXNcbiAqIHNob3duIGF0IGFsbC4gV2hhdCB0aGUgaXRlbSBsb29rcyBsaWtlIGFuZCB3aGF0IGl0IGRvZXMgYXJlIGl0cyBvd24gYnVzaW5lc3MgXHUyMDE0IGEgbWVudSBuZWl0aGVyXG4gKiBkcmF3cyBpdCBub3IgZGVjaWRlcyBhbnl0aGluZyBhYm91dCBpdC5cbiAqXG4gKiBUaGUgY29tcG9uZW50IGlzIGdpdmVuIHRoZSBkYXRhIHRoZSBob3N0IGVsZW1lbnQgb3BlbmVkIHRoZSBtZW51IHdpdGgsIGFuZCBtdXN0IGJlIGRlZmluZWQgYXRcbiAqIG1vZHVsZSBzY29wZTsgY2FwdHVyaW5nIGRhdGEgaW4gYSBjbG9zdXJlIHdvdWxkIGNyZWF0ZSBhIG5ldyBjb21wb25lbnQgcmVmZXJlbmNlIG9uIGV2ZXJ5XG4gKiBpbnZvY2F0aW9uIGFuZCBicmVhayBSZWFjdCByZWNvbmNpbGlhdGlvbi4gV2hhdGV2ZXIgdGhlIGNvbXBvbmVudCBuZWVkcyBvbiB0b3Agb2YgdGhlIG1lbnUnc1xuICogZGF0YSB0cmF2ZWxzIGFzIGBjb21wb25lbnRQcm9wc2AgaW5zdGVhZCBcdTIwMTQgd2hpY2ggaXMgd2hhdCBsZXRzIG9uZSBjb250cmlidXRpb24gYW5zd2VyIHdpdGggYVxuICogcm93IHBlciBjb250YWluZXIsIHBlciBjb2x1bW4gb3IgcGVyIGFjdGlvbiB3aGlsZSBldmVyeSByb3cgc2hhcmVzIHRoZSBvbmUgY29tcG9uZW50LlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVJdGVtPFREYXRhID0gdm9pZCwgVFByb3BzIGV4dGVuZHMgb2JqZWN0ID0ge30+ID0gSWRlbnRpZmlhYmxlICZcbiAgT3JkZXJhYmxlICZcbiAgTWF5YmVDb21wdXRlZFNob3dhYmxlICYge1xuICAgIHJlYWRvbmx5IENvbXBvbmVudDogUmVhY3QuQ29tcG9uZW50VHlwZTx7IHJlYWRvbmx5IGRhdGE6IFREYXRhIH0gJiBUUHJvcHM+O1xuICB9ICYgRHJvcERvd25NZW51SXRlbVByb3BzRm9yPFRQcm9wcz47XG5cbi8qKlxuICogQWNxdWlyZXMgdGhlIGl0ZW1zIG9uZSBjb250cmlidXRvciBoYXMgZm9yIGEgZ2l2ZW4gbWVudSBpbnB1dCBcdTIwMTQgdGhlIGRhdGEgdGhlIGhvc3QgZWxlbWVudCBvcGVuZWRcbiAqIHRoZSBtZW51IG9mIHRoaXMga2luZCB3aXRoLCB0eXBlZCBieSB0aGUga2luZC5cbiAqXG4gKiBBIGNvbnRyaWJ1dG9yIGlzIGZyZWUgdG8gYW5zd2VyIHdpdGggb25lIGl0ZW0sIHNldmVyYWwsIG9yIG5vbmUsIHRvIGFuc3dlciBsYXRlciwgYW5kIHRvIGFuc3dlclxuICogd2l0aCBhIGNvbXB1dGVkIHRoZSBtZW51IHJlLXJlYWRzIHdoaWxlIGl0IGlzIG9wZW4uIFRoYXQgaXMgd2hhdCBtYWtlcyBhIGNvbnRyaWJ1dGlvbiBhYmxlIHRvXG4gKiAqYWNxdWlyZSogaXRzIGl0ZW1zIGZyb20gdGhlIGlucHV0IHJhdGhlciB0aGFuIG1lcmVseSBiZSBvbmU6IHRoZSBjb250YWluZXJzIG9mIGEgcG9kLCB0aGVcbiAqIGNvbHVtbnMgb2YgYSB0YWJsZSwgdGhlIGFjdGlvbnMgb2Ygd2hhdGV2ZXIgb2JqZWN0IHRoZSBtZW51IHdhcyBvcGVuZWQgb3Zlci5cbiAqL1xuZXhwb3J0IHR5cGUgQWNxdWlyZURyb3BEb3duTWVudUl0ZW1zPFREYXRhID0gYW55PiA9IChcbiAgaW5wdXQ6IFREYXRhLFxuKSA9PiBNYXliZVByb21pc2U8TWF5YmVDb21wdXRlZDxTaW5nbGVPck1hbnk8RHJvcERvd25NZW51SXRlbTxURGF0YSwgYW55Pj4+PjtcblxuLyoqXG4gKiBXaGF0IGEgY29udHJpYnV0aW9uIHJlZ2lzdGVyczogYnVpbHQgb25jZSwgYW5kIHRoZW4gYXNrZWQgZm9yIHRoZSBpdGVtcyBvZiBldmVyeSBtZW51IG9mIGl0cyBraW5kXG4gKiB0aGF0IG9wZW5zLlxuICpcbiAqIFRoZSBpbnB1dCBiZWxvbmdzIHRvIHRoZSBtZW51IHJhdGhlciB0aGFuIHRvIHRoZSBjb250cmlidXRpb24sIHdoaWNoIGlzIHdoeSBpdCBhcnJpdmVzIGF0XG4gKiB7QGxpbmsgQWNxdWlyZURyb3BEb3duTWVudUl0ZW1zfSBpbnN0ZWFkIG9mIGhlcmUuIEEgY29udHJpYnV0aW9uIHRha2luZyBpdCBkaXJlY3RseSB3b3VsZCBiZVxuICogcmVidWlsdCBmb3IgZXZlcnkgbWVudSB0aGF0IG9wZW5zLCBzaW5jZSB0aGUgY29udGFpbmVyIGtleXMgYSBjb250cmlidXRpb24ncyBpbnN0YW5jZSBieSB0aGVcbiAqIGFyZ3VtZW50cyBpdCBpcyByZXNvbHZlZCB3aXRoIFx1MjAxNCBhbmQgYSBob3N0IHRoYXQgYnVpbGRzIGl0cyBgZGF0YWAgaW5saW5lIGhhbmRzIG92ZXIgYSBuZXcgb2JqZWN0XG4gKiBldmVyeSB0aW1lLlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVJdGVtRmFjdG9yeTxURGF0YSA9IGFueT4gPSAoKSA9PiBBY3F1aXJlRHJvcERvd25NZW51SXRlbXM8VERhdGE+O1xuXG4vKipcbiAqIFdoZXRoZXIgYW4gaXRlbSBpcyBzaG93biBhdCBhbGwuIEdpdmVuIGFzIGEgdmFsdWUgb3IgYSBjb21wdXRlZCB0aGUgbWVudSByZWFjdHMgdG8sIG9yIGFzIGFcbiAqIGZ1bmN0aW9uIG9mIHRoZSBtZW51J3MgaW5wdXQgXHUyMDE0IHdoaWNoIGlzIGhvdyBhbiBpdGVtIHNob3duIG9ubHkgZm9yIHNvbWUgb2YgdGhlIHRoaW5ncyBpdHMga2luZFxuICogb2YgbWVudSBvcGVucyBvdmVyIHNheXMgc28uXG4gKi9cbmV4cG9ydCB0eXBlIERyb3BEb3duTWVudUl0ZW1WaXNpYmlsaXR5PFREYXRhPiA9IE1heWJlQ29tcHV0ZWQ8Ym9vbGVhbj4gfCAoKGlucHV0OiBURGF0YSkgPT4gTWF5YmVDb21wdXRlZDxib29sZWFuPik7XG5cbi8qKlxuICogVGhlIHNwZWNpZmljIHRva2VuIGAuZm9yKGtpbmQpYCB5aWVsZHM6IHRoZSBpdGVtcyBjb250cmlidXRlZCB0byBvbmUgbWVudSBraW5kLiBBdCBsZWFzdCBvbmUgb2ZcbiAqIHRoZW0sIHNvIHRoYXQgYSBraW5kIG5vYm9keSBjb250cmlidXRlcyB0byBpcyBhIGNvbXBvc2l0aW9uIGVycm9yIHJhdGhlciB0aGFuIGEgbWVudSB0aGF0IG5ldmVyXG4gKiBvcGVucy5cbiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51SXRlbVRva2VuRm9yPFREYXRhPiA9IFNwZWNpZmljSW5qZWN0aW9uVG9rZW4yPHtcbiAgc2luZ2xlRmFjdG9yeTogRHJvcERvd25NZW51SXRlbUZhY3Rvcnk8VERhdGE+O1xuICBtYW55RmFjdG9yeTogTm9uRW1wdHlNYW55RmFjdG9yeTxEcm9wRG93bk1lbnVJdGVtRmFjdG9yeTxURGF0YT4+O1xuICBzcGVjaWZpY1Rva2VuRmFjdG9yeTogdW5kZWZpbmVkO1xuICBjYXJkaW5hbGl0eTogXCJvbmUtb3ItbWFueVwiO1xufT47XG5cbi8qKlxuICogVGhlIGAuZm9yKClgIGZhY3RvcnksIGFubm90YXRlZCBzbyBhIGtpbmQncyBvd24gZGF0YSB0eXBlIHN1cnZpdmVzIGludG8gdGhlIHNwZWNpZmljIHRva2VuLiBUaGVcbiAqIGFubm90YXRpb24gY2FycmllcyB3aGF0IHRoZSByZXRpcmVkIHRoaXJkIHR5cGUgcGFyYW1ldGVyIHVzZWQgdG86IGluZmVyZW5jZSBmcm9tIHRoZSB2YWx1ZSBhbG9uZVxuICogY2Fubm90IHJlY29uc3RydWN0IGEgcmV0dXJuIHR5cGUgdGhhdCBtZW50aW9ucyB0aGUgc3BlY2lmaWVyJ3Mgb3duIHR5cGUgcGFyYW1ldGVyLlxuICovXG5jb25zdCBkcm9wRG93bk1lbnVJdGVtVG9rZW5Gb3IgPSA8SyBleHRlbmRzIERyb3BEb3duTWVudUtpbmQ8YW55Pj4oXG4gIGtpbmQ6IEssXG4pOiBEcm9wRG93bk1lbnVJdGVtVG9rZW5Gb3I8RHJvcERvd25NZW51RGF0YTxLPj4gPT5cbiAgZ2V0SW5qZWN0aW9uVG9rZW4yPHtcbiAgICBzaW5nbGVGYWN0b3J5OiBEcm9wRG93bk1lbnVJdGVtRmFjdG9yeTxEcm9wRG93bk1lbnVEYXRhPEs+PjtcbiAgICBtYW55RmFjdG9yeTogTm9uRW1wdHlNYW55RmFjdG9yeTxEcm9wRG93bk1lbnVJdGVtRmFjdG9yeTxEcm9wRG93bk1lbnVEYXRhPEs+Pj47XG4gIH0+KHtcbiAgICBpZDogYGRyb3AtZG93bi1tZW51LWl0ZW0tJHtraW5kfWAsXG4gICAgc3BlY2lhbGl0eToga2luZCxcbiAgICBjYXJkaW5hbGl0eTogXCJvbmUtb3ItbWFueVwiLFxuICB9KSgpO1xuXG4vKipcbiAqIFRoZSBjb250cmlidXRpb24gc3VyZmFjZSBvZiBkcm9wLWRvd24gbWVudXM6IGVhY2ggY29udHJpYnV0aW9uIGFuc3dlcnMgd2l0aCB0aGUgaXRlbXMgaXQgaGFzIGZvclxuICogdGhlIG1lbnUncyBpbnB1dCwgcmVnaXN0ZXJlZCBhZ2FpbnN0IGEge0BsaW5rIERyb3BEb3duTWVudUtpbmR9IHZpYSBgLmZvcihraW5kKWAuIFByZWZlclxuICoge0BsaW5rIGdldERyb3BEb3duTWVudUl0ZW1JbmplY3RhYmxlQnVuY2h9IGZvciBhIHNpbmdsZSBpdGVtLCBhbmRcbiAqIHtAbGluayBnZXREcm9wRG93bk1lbnVJdGVtc0luamVjdGFibGVCdW5jaH0gZm9yIGl0ZW1zIGFjcXVpcmVkIGZyb20gdGhlIGlucHV0LCBvdmVyIHJlZ2lzdGVyaW5nXG4gKiBieSBoYW5kLlxuICovXG5leHBvcnQgY29uc3QgZHJvcERvd25NZW51SXRlbUluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHtcbiAgc2luZ2xlRmFjdG9yeTogRHJvcERvd25NZW51SXRlbUZhY3Rvcnk8YW55PjtcbiAgbWFueUZhY3Rvcnk6IE1hbnlGYWN0b3J5PERyb3BEb3duTWVudUl0ZW1GYWN0b3J5PGFueT4+O1xufT4oe1xuICBpZDogXCJkcm9wLWRvd24tbWVudS1pdGVtXCIsXG4gIGNhcmRpbmFsaXR5OiBcInplcm8tb3ItbWFueVwiLFxufSkoZHJvcERvd25NZW51SXRlbVRva2VuRm9yKTtcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wRG93bk1lbnVJdGVtQnVuY2hQYXJhbXM8SyBleHRlbmRzIERyb3BEb3duTWVudUtpbmQ8YW55Pj4ge1xuICAvKiogVW5pcXVlIGlkIGZvciB0aGUgcmVnaXN0ZXJlZCBpbmplY3RhYmxlOyBkb3VibGVzIGFzIHRoZSBpdGVtJ3MgaWQuICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIC8qKiBUaGUgbWVudSBraW5kIHRoZSBpdGVtIGJlbG9uZ3MgdG8uICovXG4gIHJlYWRvbmx5IGtpbmQ6IEs7XG4gIC8qKiBMb3dlciBjb21lcyBmaXJzdCBhbW9uZyB0aGUga2luZCdzIGl0ZW1zLCBhbmQgaXMgd2hlcmUgdGhlIGtleWJvYXJkIHJlYWNoZXMgaXQuICovXG4gIHJlYWRvbmx5IG9yZGVyTnVtYmVyOiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRoZSBpdGVtIGlzIHNob3duIGF0IGFsbDsgdGhlIG1lbnUgcmVhY3RzIHRvIHRoaXMgd2hpbGUgb3Blbi4gKi9cbiAgcmVhZG9ubHkgaXNWaXNpYmxlPzogRHJvcERvd25NZW51SXRlbVZpc2liaWxpdHk8RHJvcERvd25NZW51RGF0YTxLPj47XG4gIC8qKiBSZW5kZXJzIHRoZSBpdGVtLiBSZWNlaXZlcyB0aGUgZGF0YSB0aGUgbWVudSB3YXMgb3BlbmVkIHdpdGguICovXG4gIHJlYWRvbmx5IENvbXBvbmVudDogUmVhY3QuQ29tcG9uZW50VHlwZTx7IHJlYWRvbmx5IGRhdGE6IERyb3BEb3duTWVudURhdGE8Sz4gfT47XG59XG5cbi8qKlxuICogQ29udHJpYnV0ZSBvbmUgaXRlbSB0byBhIGRyb3AtZG93biBtZW51IGtpbmQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgUmVzdGFydFBvZCA9ICh7IGRhdGEgfTogeyBkYXRhOiB7IHBvZE5hbWU6IHN0cmluZyB9IH0pID0+IChcbiAqICAgPENsaWNrYWJsZUxpICRvbkNsaWNrPXsoKSA9PiByZXN0YXJ0KGRhdGEucG9kTmFtZSl9PlJlc3RhcnQge2RhdGEucG9kTmFtZX08L0NsaWNrYWJsZUxpPlxuICogKTtcbiAqXG4gKiBleHBvcnQgY29uc3QgcmVzdGFydFBvZEJ1bmNoID0gZ2V0RHJvcERvd25NZW51SXRlbUluamVjdGFibGVCdW5jaCh7XG4gKiAgIGlkOiBcInJlc3RhcnQtcG9kXCIsXG4gKiAgIGtpbmQ6IHBvZEFjdGlvbnNNZW51S2luZCxcbiAqICAgb3JkZXJOdW1iZXI6IDEwLFxuICogICBpc1Zpc2libGU6IGNvbXB1dGVkKCgpID0+IGNhblJlc3RhcnQuZ2V0KCkpLFxuICogICBDb21wb25lbnQ6IFJlc3RhcnRQb2QsXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIEFuIGl0ZW0gc2hvd24gb25seSBmb3Igc29tZSBvZiB0aGUgdGhpbmdzIHRoZSBtZW51IG9wZW5zIG92ZXI6XG4gKiBgYGB0c3hcbiAqIGV4cG9ydCBjb25zdCBjb25uZWN0Q2x1c3RlckJ1bmNoID0gZ2V0RHJvcERvd25NZW51SXRlbUluamVjdGFibGVCdW5jaCh7XG4gKiAgIGlkOiBcImNvbm5lY3QtY2x1c3RlclwiLFxuICogICBraW5kOiBuYXZpZ2F0b3JJdGVtRHJvcERvd25NZW51S2luZCxcbiAqICAgb3JkZXJOdW1iZXI6IDEwLFxuICogICBpc1Zpc2libGU6IChpdGVtKSA9PiBpdGVtLmtpbmQgPT09IGt1YmVybmV0ZXNDbHVzdGVyQ29udGV4dEtpbmQsXG4gKiAgIENvbXBvbmVudDogQ29ubmVjdENsdXN0ZXIsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgZ2V0RHJvcERvd25NZW51SXRlbUluamVjdGFibGVCdW5jaCA9IDxLIGV4dGVuZHMgRHJvcERvd25NZW51S2luZDxhbnk+PihcbiAgcGFyYW1zOiBEcm9wRG93bk1lbnVJdGVtQnVuY2hQYXJhbXM8Sz4sXG4pID0+XG4gIGdldEluamVjdGFibGVCdW5jaCh7XG4gICAgZHJvcERvd25NZW51SXRlbTogZ2V0SW5qZWN0YWJsZTIoe1xuICAgICAgaWQ6IHBhcmFtcy5pZCxcblxuICAgICAgaW5zdGFudGlhdGU6XG4gICAgICAgICgpID0+XG4gICAgICAgICgpID0+XG4gICAgICAgIChpbnB1dDogRHJvcERvd25NZW51RGF0YTxLPik6IERyb3BEb3duTWVudUl0ZW08RHJvcERvd25NZW51RGF0YTxLPj4gPT4gKHtcbiAgICAgICAgICBpZDogcGFyYW1zLmlkLFxuICAgICAgICAgIG9yZGVyTnVtYmVyOiBwYXJhbXMub3JkZXJOdW1iZXIsXG4gICAgICAgICAgaXNWaXNpYmxlOiB0eXBlb2YgcGFyYW1zLmlzVmlzaWJsZSA9PT0gXCJmdW5jdGlvblwiID8gcGFyYW1zLmlzVmlzaWJsZShpbnB1dCkgOiBwYXJhbXMuaXNWaXNpYmxlLFxuICAgICAgICAgIENvbXBvbmVudDogcGFyYW1zLkNvbXBvbmVudCxcbiAgICAgICAgfSksXG5cbiAgICAgIGluamVjdGlvblRva2VuOiBkcm9wRG93bk1lbnVJdGVtSW5qZWN0aW9uVG9rZW4uZm9yKHBhcmFtcy5raW5kKSxcbiAgICB9KSxcbiAgfSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcERvd25NZW51SXRlbXNCdW5jaFBhcmFtczxLIGV4dGVuZHMgRHJvcERvd25NZW51S2luZDxhbnk+LCBDb25zIGV4dGVuZHMgQ29uc3VtcHRpb24+IHtcbiAgLyoqIFVuaXF1ZSBpZCBmb3IgdGhlIHJlZ2lzdGVyZWQgaW5qZWN0YWJsZS4gKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgLyoqIFRoZSBtZW51IGtpbmQgdGhlIGl0ZW1zIGJlbG9uZyB0by4gKi9cbiAgcmVhZG9ubHkga2luZDogSztcbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgZnVuY3Rpb24gdGhhdCBhY3F1aXJlcyB0aGUgaXRlbXMgdGhpcyBjb250cmlidXRpb24gaGFzIGZvciB0aGUgbWVudSdzIGlucHV0LiBDYWxsZWRcbiAgICogb25jZTsgd2hhdGV2ZXIgaXQgaW5qZWN0cyBhbmQgcHJlcGFyZXMgaXMgdGhlcmVmb3JlIHNoYXJlZCBieSBldmVyeSBtZW51IG9mIHRoZSBraW5kIHRoYXRcbiAgICogb3BlbnMuIEVhY2ggaXRlbSBicmluZ3MgaXRzIG93biBpZCwgb3JkZXIgbnVtYmVyIGFuZCB2aXNpYmlsaXR5LCBzbyB0aGUgaXRlbXMgbGFuZCBhbW9uZyB0aGVcbiAgICoga2luZCdzIG90aGVyIGNvbnRyaWJ1dGlvbnMgcmF0aGVyIHRoYW4gYXMgYSBibG9jayBvZiB0aGVpciBvd24uXG4gICAqL1xuICByZWFkb25seSBpbnN0YW50aWF0ZTogKGRpOiBDb25zdW1wdGlvbkRpPENvbnM+KSA9PiBBY3F1aXJlRHJvcERvd25NZW51SXRlbXM8RHJvcERvd25NZW51RGF0YTxLPj47XG4gIC8qKiBUaGUgaW5qZWN0aW9uIHRva2VucyBgaW5zdGFudGlhdGVgIG1heSBpbmplY3QuICovXG4gIHJlYWRvbmx5IGNvbnN1bXB0aW9ucz86IFJlYWRvbmx5QXJyYXk8Q29ucz47XG59XG5cbi8qKlxuICogQ29udHJpYnV0ZSB0aGUgaXRlbXMgYSBtZW51IGhhcyBmb3IgaXRzIGlucHV0LCB3aGVuIGhvdyBtYW55IHRoZXJlIGFyZSBpcyB1cCB0byB0aGUgaW5wdXQgcmF0aGVyXG4gKiB0aGFuIGtub3duIGluIGFkdmFuY2UgXHUyMDE0IG9uZSByb3cgcGVyIGNvbnRhaW5lciBvZiBhIHBvZCwgcGVyIGNvbHVtbiBvZiBhIHRhYmxlLCBwZXIgYWN0aW9uIHNvbWVcbiAqIG90aGVyIHJlZ2lzdHJ5IGhvbGRzLlxuICpcbiAqIFRoZSBpdGVtcyBtYXkgYXJyaXZlIGxhdGVyIGFuZCBtYXkgYmUgYSBjb21wdXRlZCB0aGUgbWVudSByZS1yZWFkcyB3aGlsZSBpdCBpcyBvcGVuLiBUaGV5IGFyZVxuICogb3JkaW5hcnkgaXRlbXMgb2YgdGhlIGtpbmQsIHNvIGFueXRoaW5nIGNvbnRyaWJ1dGVkIHdpdGhcbiAqIHtAbGluayBnZXREcm9wRG93bk1lbnVJdGVtSW5qZWN0YWJsZUJ1bmNofSBhcHBlYXJzIGFtb25nIHRoZW0gYnkgb3JkZXIgbnVtYmVyLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IFNoZWxsVG9Db250YWluZXIgPSAoeyBkYXRhLCBjb250YWluZXIgfTogeyBkYXRhOiBQb2Q7IGNvbnRhaW5lcjogc3RyaW5nIH0pID0+IChcbiAqICAgPERyb3BEb3duTWVudUFjdGlvbiAkb25DbGljaz17KCkgPT4gb3BlblNoZWxsKGRhdGEsIGNvbnRhaW5lcil9Pntjb250YWluZXJ9PC9Ecm9wRG93bk1lbnVBY3Rpb24+XG4gKiApO1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGdldERyb3BEb3duTWVudUl0ZW1zSW5qZWN0YWJsZUJ1bmNoKHtcbiAqICAgaWQ6IFwicG9kLWNvbnRhaW5lci1zaGVsbHNcIixcbiAqICAga2luZDogcG9kQWN0aW9uc01lbnVLaW5kLFxuICogICBjb25zdW1wdGlvbnM6IFtvcGVuU2hlbGxJbmplY3Rpb25Ub2tlbl0sXG4gKiAgIGluc3RhbnRpYXRlOiAoKSA9PiAocG9kKSA9PlxuICogICAgIGNvbXB1dGVkKCgpID0+XG4gKiAgICAgICBjb250YWluZXJzT2YocG9kKS5tYXAoKGNvbnRhaW5lciwgaW5kZXgpID0+ICh7XG4gKiAgICAgICAgIGlkOiBgc2hlbGwtdG8tJHtjb250YWluZXJ9YCxcbiAqICAgICAgICAgb3JkZXJOdW1iZXI6IHBvZEFjdGlvbnNNZW51T3JkZXJOdW1iZXJzLnNoZWxscyArIGluZGV4LFxuICogICAgICAgICBDb21wb25lbnQ6IFNoZWxsVG9Db250YWluZXIsXG4gKiAgICAgICAgIGNvbXBvbmVudFByb3BzOiB7IGNvbnRhaW5lciB9LFxuICogICAgICAgfSkpLFxuICogICAgICksXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgZ2V0RHJvcERvd25NZW51SXRlbXNJbmplY3RhYmxlQnVuY2ggPSA8XG4gIEsgZXh0ZW5kcyBEcm9wRG93bk1lbnVLaW5kPGFueT4sXG4gIGNvbnN0IENvbnMgZXh0ZW5kcyBDb25zdW1wdGlvbiA9IG5ldmVyLFxuPihcbiAgcGFyYW1zOiBEcm9wRG93bk1lbnVJdGVtc0J1bmNoUGFyYW1zPEssIENvbnM+LFxuKSA9PlxuICBnZXRJbmplY3RhYmxlQnVuY2goe1xuICAgIGRyb3BEb3duTWVudUl0ZW1zOiBnZXRJbmplY3RhYmxlMih7XG4gICAgICBpZDogcGFyYW1zLmlkLFxuICAgICAgY29uc3VtcHRpb25zOiBwYXJhbXMuY29uc3VtcHRpb25zLFxuXG4gICAgICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjcXVpcmVJdGVtcyA9IHBhcmFtcy5pbnN0YW50aWF0ZShkaSk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IGFjcXVpcmVJdGVtcztcbiAgICAgIH0sXG5cbiAgICAgIGluamVjdGlvblRva2VuOiBkcm9wRG93bk1lbnVJdGVtSW5qZWN0aW9uVG9rZW4uZm9yKHBhcmFtcy5raW5kKSxcbiAgICB9KSxcbiAgfSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBEcm9wRG93bk1lbnVEYXRhLCBEcm9wRG93bk1lbnVLaW5kIH0gZnJvbSBcIi4vZHJvcC1kb3duLW1lbnUta2luZFwiO1xuXG4vKipcbiAqIEhvdyB0aGUgbWVudSBvcGVucyBmcm9tIGl0cyBob3N0IGVsZW1lbnQuXG4gKlxuICogLSBgXCJjbGlja1wiYCAodGhlIGRlZmF1bHQpOiBjbGlja2luZyB0aGUgZWxlbWVudCB0b2dnbGVzIHRoZSBtZW51LlxuICogLSBgXCJob3ZlclwiYDogdGhlIG1lbnUgb3BlbnMgd2hpbGUgdGhlIHBvaW50ZXIgaXMgb3ZlciB0aGUgZWxlbWVudCBvciB0aGUgbWVudS5cbiAqIC0gYFwicmlnaHQtY2xpY2tcImA6IHJpZ2h0LWNsaWNraW5nIHRoZSBlbGVtZW50IHRvZ2dsZXMgdGhlIG1lbnUsIGF0IHRoZSBjdXJzb3IgcmF0aGVyIHRoYW4gYXQgdGhlXG4gKiAgIGVsZW1lbnQgXHUyMDE0IGEgY29udGV4dCBtZW51IGlzIGEgZHJvcC1kb3duIG1lbnUgb3BlbmVkIHRoaXMgd2F5LlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVPcGVuT24gPSBcImNsaWNrXCIgfCBcImhvdmVyXCIgfCBcInJpZ2h0LWNsaWNrXCI7XG5cbi8qKlxuICogV2hlcmUgdGhlIG1lbnUgc2l0cyByZWxhdGl2ZSB0byBpdHMgaG9zdCBlbGVtZW50OiBhIHNpZGUgb2YgdGhlIGhvc3QsIG9wdGlvbmFsbHkgcmVmaW5lZCB3aXRoIGhvd1xuICogdGhlIG1lbnUgZXh0ZW5kcyBhbG9uZyB0aGF0IHNpZGUuIEEgYmFyZSBzaWRlIGNlbnRlcnMgdGhlIG1lbnUgb24gaXQ7IGBzcGFuLTxkaXJlY3Rpb24+YCBhbGlnbnNcbiAqIHRoZWlyIGVkZ2VzIGFuZCBsZXRzIHRoZSBtZW51IGV4dGVuZCB0b3dhcmQgdGhhdCBkaXJlY3Rpb24uXG4gKlxuICogRGVmYXVsdHMgdG8gYFwiYm90dG9tIHNwYW4tcmlnaHRcImAuIFdoZW4gdGhlIG1lbnUgd291bGQgbm90IGZpdCB0aGUgdmlld3BvcnQsIGl0IGZhbGxzIGJhY2sgdG8gdGhlXG4gKiBtaXJyb3JlZCBwb3NpdGlvbnMuXG4gKlxuICogTm90ZToga2VwdCBpZGVudGljYWwgdG8gYEFuY2hvclBvc2l0aW9uYCBvZiBgQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzYCwgd2hpY2ggY2Fubm90IGJlXG4gKiBpbXBvcnRlZCBoZXJlIFx1MjAxNCBpdCBkZXBlbmRzIG9uIHRoaXMgcGFja2FnZS5cbiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51UG9zaXRpb24gPVxuICB8IFwidG9wXCJcbiAgfCBcImJvdHRvbVwiXG4gIHwgXCJsZWZ0XCJcbiAgfCBcInJpZ2h0XCJcbiAgfCBcInRvcCBzcGFuLWxlZnRcIlxuICB8IFwidG9wIHNwYW4tcmlnaHRcIlxuICB8IFwiYm90dG9tIHNwYW4tbGVmdFwiXG4gIHwgXCJib3R0b20gc3Bhbi1yaWdodFwiXG4gIHwgXCJsZWZ0IHNwYW4tdG9wXCJcbiAgfCBcImxlZnQgc3Bhbi1ib3R0b21cIlxuICB8IFwicmlnaHQgc3Bhbi10b3BcIlxuICB8IFwicmlnaHQgc3Bhbi1ib3R0b21cIjtcblxuLyoqXG4gKiBIb3cgZmFyIGZyb20gaXRzIGhvc3QgdGhlIG1lbnUgc2l0cywgb24gdGhlIHNoYXJlZCB0LXNoaXJ0IHNjYWxlLiBEZWZhdWx0cyB0byBgXCJ4eHNcImAuXG4gKlxuICogTm90ZToga2VwdCBpZGVudGljYWwgdG8gYFRTaGlydFNpemVgIG9mIGBAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHNgLCB3aGljaCBjYW5ub3QgYmUgaW1wb3J0ZWRcbiAqIGhlcmUgXHUyMDE0IGl0IGRlcGVuZHMgb24gdGhpcyBwYWNrYWdlLlxuICovXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVHYXAgPVxuICB8IFwiemVyb1wiXG4gIHwgXCI0eHNcIlxuICB8IFwiM3hzXCJcbiAgfCBcInh4c1wiXG4gIHwgXCJ4c1wiXG4gIHwgXCJzXCJcbiAgfCBcIm1cIlxuICB8IFwibFwiXG4gIHwgXCJ4bFwiXG4gIHwgXCJ4eGxcIlxuICB8IFwiM3hsXCJcbiAgfCBcIjR4bFwiXG4gIHwgXCI1eGxcIlxuICB8IFwiNnhsXCJcbiAgfCBcIjd4bFwiXG4gIHwgXCI4eGxcIlxuICB8IFwiOXhsXCJcbiAgfCBcIjEweGxcIlxuICB8IFwiMTF4bFwiO1xuXG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgYCRkcm9wRG93bk1lbnVgIGVsZW1lbnQgcHJvcDogd2hpY2ggbWVudSBraW5kIHRvIG9wZW4sIHRoZSBkYXRhIGl0cyBpdGVtXG4gKiBmYWN0b3JpZXMgcmVjZWl2ZSwgaG93IHRoZSBtZW51IG9wZW5zIGFuZCB3aGVyZSBpdCBzaXRzLiBDcmVhdGUgd2l0aCB7QGxpbmsgZHJvcERvd25NZW51fSBzbyB0aGVcbiAqIGRhdGEgaXMgdHlwZWQgYnkgdGhlIGtpbmQuXG4gKi9cbmV4cG9ydCB0eXBlIERyb3BEb3duTWVudVNwZWMgPSB7XG4gIHJlYWRvbmx5IGtpbmQ6IERyb3BEb3duTWVudUtpbmQ8YW55PjtcbiAgcmVhZG9ubHkgZGF0YT86IHVua25vd247XG4gIHJlYWRvbmx5IG9wZW5Pbj86IERyb3BEb3duTWVudU9wZW5PbjtcbiAgcmVhZG9ubHkgcG9zaXRpb24/OiBEcm9wRG93bk1lbnVQb3NpdGlvbjtcbiAgcmVhZG9ubHkgZ2FwPzogRHJvcERvd25NZW51R2FwO1xufTtcblxuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51T3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgb3Blbk9uPzogRHJvcERvd25NZW51T3Blbk9uO1xuICByZWFkb25seSBwb3NpdGlvbj86IERyb3BEb3duTWVudVBvc2l0aW9uO1xuICByZWFkb25seSBnYXA/OiBEcm9wRG93bk1lbnVHYXA7XG59O1xuXG4vKipcbiAqIFR5cGVkIGNvbnN0cnVjdG9yIGZvciBhIHtAbGluayBEcm9wRG93bk1lbnVTcGVjfTogYSBraW5kIGNyZWF0ZWQgZm9yIGEgZGF0YSB0eXBlIG1ha2VzIGBkYXRhYFxuICogcmVxdWlyZWQgYW5kIHR5cGVkOyBhIGtpbmQgd2l0aG91dCBkYXRhIGZvcmJpZHMgaXQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogPEJ1dHRvbiAkZHJvcERvd25NZW51PXtkcm9wRG93bk1lbnUoYWlUb29sc01lbnVLaW5kKX0+T3BlbjwvQnV0dG9uPlxuICogPEJ1dHRvbiAkZHJvcERvd25NZW51PXtkcm9wRG93bk1lbnUocG9kQWN0aW9uc01lbnVLaW5kLCB7IGRhdGE6IHsgcG9kTmFtZSB9IH0pfT5Qb2Q8L0J1dHRvbj5cbiAqIDxCdXR0b24gJGRyb3BEb3duTWVudT17ZHJvcERvd25NZW51KHJvd0FjdGlvbnNNZW51S2luZCwgeyBwb3NpdGlvbjogXCJib3R0b20gc3Bhbi1sZWZ0XCIgfSl9Plx1MjJFRTwvQnV0dG9uPlxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkcm9wRG93bk1lbnU8SyBleHRlbmRzIERyb3BEb3duTWVudUtpbmQ8dm9pZD4+KFxuICBraW5kOiBLLFxuICBvcHRpb25zPzogRHJvcERvd25NZW51T3B0aW9ucyxcbik6IERyb3BEb3duTWVudVNwZWM7XG5leHBvcnQgZnVuY3Rpb24gZHJvcERvd25NZW51PEsgZXh0ZW5kcyBEcm9wRG93bk1lbnVLaW5kPGFueT4+KFxuICBraW5kOiBLLFxuICBvcHRpb25zOiBEcm9wRG93bk1lbnVPcHRpb25zICYgeyByZWFkb25seSBkYXRhOiBEcm9wRG93bk1lbnVEYXRhPEs+IH0sXG4pOiBEcm9wRG93bk1lbnVTcGVjO1xuZXhwb3J0IGZ1bmN0aW9uIGRyb3BEb3duTWVudShcbiAga2luZDogRHJvcERvd25NZW51S2luZDxhbnk+LFxuICBvcHRpb25zPzogRHJvcERvd25NZW51T3B0aW9ucyAmIHsgcmVhZG9ubHkgZGF0YT86IHVua25vd24gfSxcbik6IERyb3BEb3duTWVudVNwZWMge1xuICByZXR1cm4geyBraW5kLCAuLi5vcHRpb25zIH07XG59XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0aW9uVG9rZW4yLCB0eXBlIE1heWJlUmVzdWx0RmFjdG9yeSwgdHlwZSBTcGVjaWZpY0luamVjdGlvblRva2VuMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBnZXRJbmplY3Rpb25Ub2tlbkNvbXBvbmVudDIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZS1yZWFjdFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IERyb3BEb3duTWVudURhdGEsIERyb3BEb3duTWVudUtpbmQgfSBmcm9tIFwiLi9kcm9wLWRvd24tbWVudS1raW5kXCI7XG5pbXBvcnQgdHlwZSB7IERyb3BEb3duTWVudUl0ZW0gfSBmcm9tIFwiLi9kcm9wLWRvd24tbWVudS1pdGVtXCI7XG5cbi8qKlxuICogVGhlIHByb3BzIHRoZSBtZW51IGhhbmRzIGl0cyBjb250YWluZXIuIFRoZXkgcG9zaXRpb24gdGhlIGNvbnRhaW5lciwgcHV0IGl0IGFib3ZlIGV2ZXJ5dGhpbmdcbiAqIGVsc2UsIGFuZCBsZXQgYSBtZW51IG9wZW5lZCBieSBob3ZlcmluZyBrbm93IHRoZSBwb2ludGVyIGlzIG9uIGl0IFx1MjAxNCBzbyB0aGUgY29udGFpbmVyIG11c3Qgc3ByZWFkXG4gKiB0aGVtIG9udG8gd2hpY2hldmVyIGVsZW1lbnQgaXQgcmVuZGVycy5cbiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51Q29udGFpbmVyUHJvcHM8VERhdGEgPSB2b2lkPiA9IHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcblxuICAvKipcbiAgICogVGhlIGl0ZW1zIG9mIHRoZSBtZW51LCBhcyBpdHMga2luZCBkZWNsYXJlcyB0aGVtLCBmb3IgYSBjb250YWluZXIgdGhhdCBsYXlzIHRoZW0gb3V0IGl0c2VsZlxuICAgKiByYXRoZXIgdGhhbiByZW5kZXJpbmcgd2hhdCB0aGUgbWVudSBnYXZlIGl0IGFzIGNoaWxkcmVuLlxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXM/OiByZWFkb25seSBEcm9wRG93bk1lbnVJdGVtPFREYXRhLCBhbnk+W107XG59ICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCB0eXBlIERyb3BEb3duTWVudUNvbnRhaW5lckNvbXBvbmVudDxURGF0YSA9IHZvaWQ+ID0gKCkgPT4gUmVhY3QuQ29tcG9uZW50VHlwZTxEcm9wRG93bk1lbnVDb250YWluZXJQcm9wczxURGF0YT4+O1xuXG4vKipcbiAqIFRoZSBjb250YWluZXIgYSBtZW51IHJlbmRlcnMgYXMgd2hlbiBpdHMga2luZCBjb250cmlidXRlcyBub25lIG9mIGl0cyBvd24uIEltcGxlbWVudGVkIGJ5XG4gKiBgQGxlbnNhcHAvZHJvcC1kb3duLW1lbnVgOyBvdmVycmlkZSBpdCB0byBjaGFuZ2Ugd2hhdCBldmVyeSBtZW51IGlzIG1hZGUgb2YuXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0RHJvcERvd25NZW51Q29udGFpbmVyID0gZ2V0SW5qZWN0aW9uVG9rZW5Db21wb25lbnQyPFxuICBSZWFjdC5Db21wb25lbnRUeXBlPERyb3BEb3duTWVudUNvbnRhaW5lclByb3BzPlxuPih7XG4gIGlkOiBcImRlZmF1bHQtZHJvcC1kb3duLW1lbnUtY29udGFpbmVyXCIsXG59KSgpO1xuXG4vKiogVGhlIHNwZWNpZmljIHRva2VuIGAuZm9yKGtpbmQpYCB5aWVsZHM6IGF0IG1vc3Qgb25lIGNvbnRhaW5lciBmb3IgYSBtZW51IGtpbmQsIHR5cGVkIGJ5IGl0LiAqL1xuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51Q29udGFpbmVyVG9rZW5Gb3I8VERhdGE+ID0gU3BlY2lmaWNJbmplY3Rpb25Ub2tlbjI8e1xuICBzaW5nbGVGYWN0b3J5OiBEcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnQ8VERhdGE+O1xuICBtYXliZUZhY3Rvcnk6IE1heWJlUmVzdWx0RmFjdG9yeTxEcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnQ8VERhdGE+PjtcbiAgc3BlY2lmaWNUb2tlbkZhY3Rvcnk6IHVuZGVmaW5lZDtcbiAgY2FyZGluYWxpdHk6IFwiemVyby1vci1vbmVcIjtcbn0+O1xuXG4vKipcbiAqIFRoZSBgLmZvcigpYCBmYWN0b3J5LCBhbm5vdGF0ZWQgc28gYSBraW5kJ3Mgb3duIGRhdGEgdHlwZSBzdXJ2aXZlcyBpbnRvIHRoZSBzcGVjaWZpYyB0b2tlbi4gVGhlXG4gKiBhbm5vdGF0aW9uIGNhcnJpZXMgd2hhdCB0aGUgcmV0aXJlZCB0aGlyZCB0eXBlIHBhcmFtZXRlciB1c2VkIHRvOiBpbmZlcmVuY2UgZnJvbSB0aGUgdmFsdWUgYWxvbmVcbiAqIGNhbm5vdCByZWNvbnN0cnVjdCBhIHJldHVybiB0eXBlIHRoYXQgbWVudGlvbnMgdGhlIHNwZWNpZmllcidzIG93biB0eXBlIHBhcmFtZXRlci5cbiAqL1xuY29uc3QgZHJvcERvd25NZW51Q29udGFpbmVyQ29tcG9uZW50VG9rZW5Gb3IgPSA8SyBleHRlbmRzIERyb3BEb3duTWVudUtpbmQ8YW55Pj4oXG4gIGtpbmQ6IEssXG4pOiBEcm9wRG93bk1lbnVDb250YWluZXJUb2tlbkZvcjxEcm9wRG93bk1lbnVEYXRhPEs+PiA9PlxuICBnZXRJbmplY3Rpb25Ub2tlbjI8e1xuICAgIHNpbmdsZUZhY3Rvcnk6IERyb3BEb3duTWVudUNvbnRhaW5lckNvbXBvbmVudDxEcm9wRG93bk1lbnVEYXRhPEs+PjtcbiAgICBtYXliZUZhY3Rvcnk6IE1heWJlUmVzdWx0RmFjdG9yeTxEcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnQ8RHJvcERvd25NZW51RGF0YTxLPj4+O1xuICB9Pih7XG4gICAgaWQ6IGBkcm9wLWRvd24tbWVudS1jb250YWluZXItY29tcG9uZW50LSR7a2luZH1gLFxuICAgIHNwZWNpYWxpdHk6IGtpbmQsXG4gICAgY2FyZGluYWxpdHk6IFwiemVyby1vci1vbmVcIixcbiAgfSkoKTtcblxuLyoqXG4gKiBUaGUgZWxlbWVudCBhIG1lbnUgb2Ygc29tZSBraW5kIHJlbmRlcnMgYXMuIFdpdGhvdXQgb25lLCBhIG1lbnUgaXMgYSBsaXN0IFx1MjAxNCB3aGljaCBpcyB3aGF0IGEgbWVudVxuICogb2Ygb3JkaW5hcnkgaXRlbXMgc2hvdWxkIGJlLiBDb250cmlidXRlIG9uZSB3aGVuIHRoZSBpdGVtcyBhcmUgbm90IGEgbGlzdDogYSBncmlkIG9mIGljb25zLCBzYXksXG4gKiBvciBhIHBhbmVsIHRoYXQgaGFwcGVucyB0byBvcGVuIGxpa2UgYSBtZW51LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIC8vIEl0ZW1zIHR5cGVkIGJ5IHRoZSBraW5kLCBmb3IgYSBjb250YWluZXIgdGhhdCBsYXlzIHRoZW0gb3V0IGl0c2VsZi5cbiAqIGNvbnN0IEljb25HcmlkID0gKHsgaXRlbXMgPSBbXSwgLi4ubWVudVByb3BzIH06IERyb3BEb3duTWVudUNvbnRhaW5lclByb3BzKSA9PiAoXG4gKiAgIDxEaXYgey4uLm1lbnVQcm9wc30gJGdyaWQ9e3sgY29sdW1uczogMyB9fT5cbiAqICAgICB7aXRlbXMubWFwKChpdGVtKSA9PiAoXG4gKiAgICAgICA8aXRlbS5Db21wb25lbnQga2V5PXtpdGVtLmlkfSBkYXRhPXt1bmRlZmluZWR9IHsuLi5pdGVtLmNvbXBvbmVudFByb3BzfSAvPlxuICogICAgICkpfVxuICogICA8L0Rpdj5cbiAqICk7XG4gKlxuICogZXhwb3J0IGNvbnN0IGljb25HcmlkQ29udGFpbmVySW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAqICAgaWQ6IFwiaWNvbi1ncmlkLWNvbnRhaW5lclwiLFxuICogICBpbnN0YW50aWF0ZTogKCkgPT4gKCkgPT4gSWNvbkdyaWQsXG4gKiAgIGluamVjdGlvblRva2VuOiBkcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnRJbmplY3Rpb25Ub2tlbi5mb3IoaWNvbnNNZW51S2luZCksXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgZHJvcERvd25NZW51Q29udGFpbmVyQ29tcG9uZW50SW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8e1xuICBzaW5nbGVGYWN0b3J5OiBEcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnQ8YW55PjtcbiAgbWF5YmVGYWN0b3J5OiBNYXliZVJlc3VsdEZhY3Rvcnk8RHJvcERvd25NZW51Q29udGFpbmVyQ29tcG9uZW50PGFueT4+O1xufT4oe1xuICBpZDogXCJkcm9wLWRvd24tbWVudS1jb250YWluZXItY29tcG9uZW50XCIsXG4gIGNhcmRpbmFsaXR5OiBcInplcm8tb3Itb25lXCIsXG59KShkcm9wRG93bk1lbnVDb250YWluZXJDb21wb25lbnRUb2tlbkZvcik7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0aW9uVG9rZW5Db21wb25lbnQyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGUtcmVhY3RcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBEcm9wRG93bk1lbnVTcGVjIH0gZnJvbSBcIi4vZHJvcC1kb3duLW1lbnUtc3BlY1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BEb3duTWVudVByb3BzIHtcbiAgLyoqIFdoaWNoIG1lbnUgdG8gc2hvdzogdGhlIGtpbmQsIGl0cyBkYXRhLCBob3cgaXQgb3BlbnMgYW5kIHdoZXJlIGl0IHNpdHMuICovXG4gIHJlYWRvbmx5IHNwZWM6IERyb3BEb3duTWVudVNwZWM7XG5cbiAgLyoqXG4gICAqIFZpZXdwb3J0IHBvaW50IHRvIHNpdCBhdCwgaW5zdGVhZCBvZiB0aGUgaG9zdCBlbGVtZW50IFx1MjAxNCBob3cgYSBtZW51IG9wZW5lZCBieSByaWdodC1jbGlja2luZ1xuICAgKiBlbmRzIHVwIGF0IHRoZSBjdXJzb3IuXG4gICAqL1xuICByZWFkb25seSBhbmNob3JQb2ludD86IHsgcmVhZG9ubHkgeDogbnVtYmVyOyByZWFkb25seSB5OiBudW1iZXIgfTtcblxuICAvKiogQ2FsbGVkIHdoZW4gdGhlIG1lbnUgY2xvc2VzIGl0c2VsZiAoaXRlbSBhY3RpdmF0aW9uLCBvdXRzaWRlIGNsaWNrLCBFc2NhcGUsIG5vIGl0ZW1zKS4gKi9cbiAgcmVhZG9ubHkgb25DbG9zZTogVm9pZEZ1bmN0aW9uO1xuXG4gIC8qKiBSZXBvcnRzIHBvaW50ZXIgcHJlc2VuY2Ugb3ZlciB0aGUgbWVudSBzdXJmYWNlOyBob3Zlci1vcGVuZWQgaG9zdHMgc3RheSBvcGVuIHdoaWxlIHRydWUuICovXG4gIHJlYWRvbmx5IG9uTWVudUhvdmVyQ2hhbmdlPzogKGlzSG92ZXJlZDogYm9vbGVhbikgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgbWVudSBjb21wb25lbnQgdGhlIGAkZHJvcERvd25NZW51YCBlbGVtZW50IHByb3AgcmVuZGVycyB3aGlsZSBvcGVuLiBJdCByZW5kZXJzIGluc2lkZSB0aGVcbiAqIGhvc3QgZWxlbWVudCBhbmQgYW5jaG9ycyBpdHNlbGYgdG8gaXQsIHNvIHRoZSBob3N0IG5lZWRzIG5vIHJlZiBhbmQgdGhlIG1lbnUgbmVlZHMgbm8gcG9ydGFsLlxuICpcbiAqIEltcGxlbWVudGVkIGJ5IGBAbGVuc2FwcC9kcm9wLWRvd24tbWVudWAsIHdob3NlIGZlYXR1cmUgbXVzdCBiZSByZWdpc3RlcmVkIGZvciB0aGUgcHJvcCB0byB3b3JrO1xuICogcmVzb2x2ZWQgdGhyb3VnaCB0aGlzIHRva2VuIHNvIGVsZW1lbnQtY29tcG9uZW50cyBuZWVkcyBubyBkZXBlbmRlbmN5IG9uIHRoZSBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IERyb3BEb3duTWVudSA9IGdldEluamVjdGlvblRva2VuQ29tcG9uZW50MjxSZWFjdC5Db21wb25lbnRUeXBlPERyb3BEb3duTWVudVByb3BzPj4oe1xuICBpZDogXCJkcm9wLWRvd24tbWVudVwiLFxufSkoKTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBEcm9wRG93bk1lbnVLaW5kIH0gZnJvbSBcIi4vZHJvcC1kb3duLW1lbnUta2luZFwiO1xuXG4vKiogQ2xvc2VzIHRoZSBvcGVuIGRyb3AtZG93biBtZW51IG9mIHRoZSBnaXZlbiBraW5kLiAqL1xuZXhwb3J0IHR5cGUgQ2xvc2VEcm9wRG93bk1lbnUgPSAoa2luZDogRHJvcERvd25NZW51S2luZDxhbnk+KSA9PiB2b2lkO1xuXG4vKipcbiAqIFByb2dyYW1tYXRpY2FsbHkgY2xvc2UgdGhlIG9wZW4gZHJvcC1kb3duIG1lbnUgb2Ygb25lIGtpbmQuIE1lbnVzIG9mIG90aGVyIGtpbmRzIHN0YXkgb3Blbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IGNsb3NlRHJvcERvd25NZW51ID0gZGkuaW5qZWN0KGNsb3NlRHJvcERvd25NZW51SW5qZWN0aW9uVG9rZW4pKCk7XG4gKlxuICogY2xvc2VEcm9wRG93bk1lbnUocG9kQWN0aW9uc01lbnVLaW5kKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY2xvc2VEcm9wRG93bk1lbnVJbmplY3Rpb25Ub2tlbiA9IGdldEluamVjdGlvblRva2VuMjx7IHNpbmdsZUZhY3Rvcnk6ICgpID0+IENsb3NlRHJvcERvd25NZW51IH0+KHtcbiAgaWQ6IFwiY2xvc2UtZHJvcC1kb3duLW1lbnVcIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG4vKiogQ2xvc2VzIGV2ZXJ5IG9wZW4gZHJvcC1kb3duIG1lbnUuICovXG5leHBvcnQgdHlwZSBDbG9zZUFsbERyb3BEb3duTWVudXMgPSBWb2lkRnVuY3Rpb247XG5cbi8qKlxuICogUHJvZ3JhbW1hdGljYWxseSBjbG9zZSBhbGwgb3BlbiBkcm9wLWRvd24gbWVudXMsIHJlZ2FyZGxlc3Mgb2Yga2luZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IGNsb3NlQWxsRHJvcERvd25NZW51cyA9IGRpLmluamVjdChjbG9zZUFsbERyb3BEb3duTWVudXNJbmplY3Rpb25Ub2tlbikoKTtcbiAqXG4gKiBjbG9zZUFsbERyb3BEb3duTWVudXMoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgY2xvc2VBbGxEcm9wRG93bk1lbnVzSW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8eyBzaW5nbGVGYWN0b3J5OiAoKSA9PiBDbG9zZUFsbERyb3BEb3duTWVudXMgfT4oe1xuICBpZDogXCJjbG9zZS1hbGwtZHJvcC1kb3duLW1lbnVzXCIsXG4gIGNhcmRpbmFsaXR5OiBcIm9uZVwiLFxufSkoKTtcbiIsICJpbXBvcnQgeyBleHBlY3REZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcblxuLyoqXG4gKiBDYXJyaWVzIHRoZSBjbG9zZSBmdW5jdGlvbiBvZiB0aGUgZHJvcC1kb3duIG1lbnUgYSBjb21wb25lbnQgaXMgcmVuZGVyZWQgaW4uIFByb3ZpZGVkIGJ5IHRoZVxuICogbWVudSBpbXBsZW1lbnRhdGlvbiBhcm91bmQgaXRzIGl0ZW1zOyBjb25zdW1lIHRocm91Z2gge0BsaW5rIHVzZUNsb3NlRHJvcERvd25NZW51fS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnRleHRGb3JDbG9zaW5nRHJvcERvd25NZW51ID0gY3JlYXRlQ29udGV4dDxWb2lkRnVuY3Rpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbi8qKlxuICogSW5zaWRlIG1lbnUgY29udGVudDogcmV0dXJucyBhIGZ1bmN0aW9uIGNsb3NpbmcgdGhlIG1lbnUgdGhpcyBjb21wb25lbnQgaXMgcmVuZGVyZWQgaW4gXHUyMDE0IG9ubHlcbiAqIHRoYXQgbWVudSwgbm90IGl0cyBhbmNlc3RvcnMuIFRocm93cyB3aGVuIHVzZWQgb3V0c2lkZSBhIGRyb3AtZG93biBtZW51LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IEN1c3RvbVJvdyA9ICgpID0+IHtcbiAqICAgY29uc3QgY2xvc2VEcm9wRG93bk1lbnUgPSB1c2VDbG9zZURyb3BEb3duTWVudSgpO1xuICpcbiAqICAgcmV0dXJuIDxDbGlja2FibGVEaXYgJG9uQ2xpY2s9e2Nsb3NlRHJvcERvd25NZW51fT5Eb25lPC9DbGlja2FibGVEaXY+O1xuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgdXNlQ2xvc2VEcm9wRG93bk1lbnUgPSAoKSA9PlxuICBleHBlY3REZWZpbmVkKHVzZUNvbnRleHQoY29udGV4dEZvckNsb3NpbmdEcm9wRG93bk1lbnUpLCBcIlRyaWVkIHRvIGNsb3NlIGEgZHJvcC1kb3duIG1lbnUgd2hpbGUgbm90IGluc2lkZSBvbmUuXCIpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQ0FBLHdCQUFnRjtBQWlDekUsSUFBTSxzQkFDWCxNQUNBLENBQW1CLGtCQUNqQixxQ0FBK0MsRUFBRSxTQUFTOzs7QUNwQzlELElBQUFBLHFCQUF1RTtBQXlCaEUsSUFBTSxxQ0FBaUMsdUNBRTNDO0FBQUEsRUFDRCxJQUFJO0FBQUEsRUFDSixhQUFhO0FBQ2YsQ0FBQyxFQUFFO0FBMEJJLElBQU0scUNBQXFDLENBQUMsZUFDakQsdUNBQW1CO0FBQUEsRUFDakIsc0JBQWtCLG1DQUFlO0FBQUEsSUFDL0IsSUFBSSxPQUFPO0FBQUEsSUFFWCxhQUFhLE1BQU0sT0FBb0M7QUFBQSxNQUNyRCxNQUFNLE9BQU87QUFBQSxNQUNiLGFBQWEsT0FBTztBQUFBLElBQ3RCO0FBQUEsSUFFQSxnQkFBZ0I7QUFBQSxFQUNsQixDQUFDO0FBQ0gsQ0FBQzs7O0FDcEVILElBQUFDLHFCQVNPO0FBcUZQLElBQU0sMkJBQTJCLENBQy9CLGFBRUEsdUNBR0c7QUFBQSxFQUNELElBQUksdUJBQXVCLElBQUk7QUFBQSxFQUMvQixZQUFZO0FBQUEsRUFDWixhQUFhO0FBQ2YsQ0FBQyxFQUFFO0FBU0UsSUFBTSxxQ0FBaUMsdUNBRzNDO0FBQUEsRUFDRCxJQUFJO0FBQUEsRUFDSixhQUFhO0FBQ2YsQ0FBQyxFQUFFLHdCQUF3QjtBQTRDcEIsSUFBTSxxQ0FBcUMsQ0FDaEQsZUFFQSx1Q0FBbUI7QUFBQSxFQUNqQixzQkFBa0IsbUNBQWU7QUFBQSxJQUMvQixJQUFJLE9BQU87QUFBQSxJQUVYLGFBQ0UsTUFDQSxNQUNBLENBQUMsV0FBdUU7QUFBQSxNQUN0RSxJQUFJLE9BQU87QUFBQSxNQUNYLGFBQWEsT0FBTztBQUFBLE1BQ3BCLFdBQVcsT0FBTyxPQUFPLGNBQWMsYUFBYSxPQUFPLFVBQVUsS0FBSyxJQUFJLE9BQU87QUFBQSxNQUNyRixXQUFXLE9BQU87QUFBQSxJQUNwQjtBQUFBLElBRUYsZ0JBQWdCLCtCQUErQixJQUFJLE9BQU8sSUFBSTtBQUFBLEVBQ2hFLENBQUM7QUFDSCxDQUFDO0FBaURJLElBQU0sc0NBQXNDLENBSWpELGVBRUEsdUNBQW1CO0FBQUEsRUFDakIsdUJBQW1CLG1DQUFlO0FBQUEsSUFDaEMsSUFBSSxPQUFPO0FBQUEsSUFDWCxjQUFjLE9BQU87QUFBQSxJQUVyQixhQUFhLENBQUMsT0FBTztBQUNuQixZQUFNLGVBQWUsT0FBTyxZQUFZLEVBQUU7QUFFMUMsYUFBTyxNQUFNO0FBQUEsSUFDZjtBQUFBLElBRUEsZ0JBQWdCLCtCQUErQixJQUFJLE9BQU8sSUFBSTtBQUFBLEVBQ2hFLENBQUM7QUFDSCxDQUFDOzs7QUNwSkksU0FBUyxhQUNkLE1BQ0EsU0FDa0I7QUFDbEIsU0FBTyxFQUFFLE1BQU0sR0FBRyxRQUFRO0FBQzVCOzs7QUMzR0EsSUFBQUMscUJBQTBGO0FBQzFGLDhCQUE0QztBQTBCckMsSUFBTSxtQ0FBK0IscURBRTFDO0FBQUEsRUFDQSxJQUFJO0FBQ04sQ0FBQyxFQUFFO0FBZUgsSUFBTSx5Q0FBeUMsQ0FDN0MsYUFFQSx1Q0FHRztBQUFBLEVBQ0QsSUFBSSxzQ0FBc0MsSUFBSTtBQUFBLEVBQzlDLFlBQVk7QUFBQSxFQUNaLGFBQWE7QUFDZixDQUFDLEVBQUU7QUF5QkUsSUFBTSxtREFBK0MsdUNBR3pEO0FBQUEsRUFDRCxJQUFJO0FBQUEsRUFDSixhQUFhO0FBQ2YsQ0FBQyxFQUFFLHNDQUFzQzs7O0FDdkZ6QyxJQUFBQywyQkFBNEM7QUE0QnJDLElBQU0sbUJBQWUsc0RBQW9FO0FBQUEsRUFDOUYsSUFBSTtBQUNOLENBQUMsRUFBRTs7O0FDOUJILElBQUFDLHFCQUFtQztBQWdCNUIsSUFBTSxzQ0FBa0MsdUNBQStEO0FBQUEsRUFDNUcsSUFBSTtBQUFBLEVBQ0osYUFBYTtBQUNmLENBQUMsRUFBRTtBQWVJLElBQU0sMENBQXNDLHVDQUFtRTtBQUFBLEVBQ3BILElBQUk7QUFBQSxFQUNKLGFBQWE7QUFDZixDQUFDLEVBQUU7OztBQ3JDSCw4QkFBOEI7QUFDOUIsbUJBQTBDO0FBTW5DLElBQU0sb0NBQWdDLDRCQUF3QyxNQUFTO0FBZXZGLElBQU0sdUJBQXVCLFVBQ2xDLDJDQUFjLHlCQUFXLDZCQUE2QixHQUFHLHVEQUF1RDsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGVfcmVhY3QiLCAiaW1wb3J0X2luamVjdGFibGUiXQp9Cg==
@@ -88,7 +88,7 @@ export interface DropDownMenuItemBunchParams<K extends DropDownMenuKind<any>> {
88
88
  readonly id: string;
89
89
  /** The menu kind the item belongs to. */
90
90
  readonly kind: K;
91
- /** Lower comes first among the kind's items. */
91
+ /** Lower comes first among the kind's items, and is where the keyboard reaches it. */
92
92
  readonly orderNumber: number;
93
93
  /** Whether the item is shown at all; the menu reacts to this while open. */
94
94
  readonly isVisible?: DropDownMenuItemVisibility<DropDownMenuData<K>>;
@@ -1 +1 @@
1
- {"version":3,"file":"drop-down-menu-item.d.ts","sourceRoot":"","sources":["../../src/drop-down-menu-item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drop-down-menu-item.d.ts","sourceRoot":"","sources":["../../src/drop-down-menu-item.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export type DropDownMenuOpenOn = "click" | "hover" | "right-click";
21
21
  */
22
22
  export type DropDownMenuPosition = "top" | "bottom" | "left" | "right" | "top span-left" | "top span-right" | "bottom span-left" | "bottom span-right" | "left span-top" | "left span-bottom" | "right span-top" | "right span-bottom";
23
23
  /**
24
- * How far from its host the menu sits, on the shared t-shirt scale. Defaults to `"xs"`.
24
+ * How far from its host the menu sits, on the shared t-shirt scale. Defaults to `"xxs"`.
25
25
  *
26
26
  * Note: kept identical to `TShirtSize` of `@k8slens/element-components`, which cannot be imported
27
27
  * here — it depends on this package.