decap-cms-widget-file 3.5.0 → 3.5.1

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.
@@ -1,6 +1,6 @@
1
1
  import _styled from "@emotion/styled/base";
2
2
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
3
- import React, { useEffect, useState } from 'react';
3
+ import { Component, useEffect, useState } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import ImmutablePropTypes from 'react-immutable-proptypes';
6
6
  import { css } from '@emotion/react';
@@ -19,7 +19,7 @@ const MAX_DISPLAY_LENGTH = 50;
19
19
  const ImageWrapper = /*#__PURE__*/_styled("div", {
20
20
  target: "e1hax4ql7",
21
21
  label: "ImageWrapper"
22
- })("flex-basis:155px;width:155px;height:100px;margin-right:20px;margin-bottom:20px;border:", borders.textField, ";border-radius:", lengths.borderRadius, ";overflow:hidden;", effects.checkerboard, ";", shadows.inset, ";cursor:", props => props.sortable ? 'pointer' : 'auto', ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUMrQiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */"));
22
+ })("flex-basis:155px;width:155px;height:100px;margin-right:20px;margin-bottom:20px;border:", borders.textField, ";border-radius:", lengths.borderRadius, ";overflow:hidden;", effects.checkerboard, ";", shadows.inset, ";cursor:", props => props.sortable ? 'pointer' : 'auto', ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUMrQiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IG9uY2UgZnJvbSAnbG9kYXNoL29uY2UnO1xuaW1wb3J0IHsgb25lTGluZSB9IGZyb20gJ2NvbW1vbi10YWdzJztcbmltcG9ydCB7XG4gIGxlbmd0aHMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIGJvcmRlcnMsXG4gIGVmZmVjdHMsXG4gIHNoYWRvd3MsXG4gIEljb25CdXR0b24sXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnZGVjYXAtY21zLWxpYi11dGlsJztcbmltcG9ydCB7IGFycmF5TW92ZUltbXV0YWJsZSBhcyBhcnJheU1vdmUgfSBmcm9tICdhcnJheS1tb3ZlJztcbmltcG9ydCB7XG4gIERuZENvbnRleHQsXG4gIE1vdXNlU2Vuc29yLFxuICBUb3VjaFNlbnNvcixcbiAgY2xvc2VzdENlbnRlcixcbiAgdXNlU2Vuc29yLFxuICB1c2VTZW5zb3JzLFxufSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7IFNvcnRhYmxlQ29udGV4dCwgdXNlU29ydGFibGUgfSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQgeyBDU1MgfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgcmVzdHJpY3RUb1BhcmVudEVsZW1lbnQgfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBNQVhfRElTUExBWV9MRU5HVEggPSA1MDtcblxuY29uc3QgSW1hZ2VXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZmxleC1iYXNpczogMTU1cHg7XG4gIHdpZHRoOiAxNTVweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6ICR7Ym9yZGVycy50ZXh0RmllbGR9O1xuICBib3JkZXItcmFkaXVzOiAke2xlbmd0aHMuYm9yZGVyUmFkaXVzfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJHtlZmZlY3RzLmNoZWNrZXJib2FyZH07XG4gICR7c2hhZG93cy5pbnNldH07XG4gIGN1cnNvcjogJHtwcm9wcyA9PiAocHJvcHMuc29ydGFibGUgPyAncG9pbnRlcicgOiAnYXV0bycpfTtcbmA7XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuYDtcblxuY29uc3QgU3R5bGVkSW1hZ2UgPSBzdHlsZWQuaW1nYFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuYDtcblxuZnVuY3Rpb24gSW1hZ2UoeyB2YWx1ZSwgZmllbGQsIGdldEFzc2V0IH0pIHtcbiAgY29uc3QgW2Fzc2V0LCBzZXRBc3NldF0gPSB1c2VTdGF0ZShudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgbmV3QXNzZXQgPSBnZXRBc3NldCh2YWx1ZSwgZmllbGQpO1xuICAgICAgc2V0QXNzZXQobmV3QXNzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBc3NldChudWxsKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgZmllbGQsIGdldEFzc2V0XSk7XG5cbiAgcmV0dXJuIGFzc2V0ID8gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiBzcmM9e2Fzc2V0fSAvPiA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlSW1hZ2VCdXR0b25zKHsgb25SZW1vdmUsIG9uUmVwbGFjZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJtZWRpYVwiIG9uQ2xpY2s9e29uUmVwbGFjZX0+PC9JY29uQnV0dG9uPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cImNsb3NlXCIgb25DbGljaz17b25SZW1vdmV9PjwvSWNvbkJ1dHRvbj5cbiAgICA8L1NvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZShwcm9wcykge1xuICBjb25zdCB7IGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgaWQ6IHByb3BzLmlkLFxuICB9KTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06IENTUy5UcmFuc2Zvcm0udG9TdHJpbmcodHJhbnNmb3JtKSxcbiAgICB0cmFuc2l0aW9uLFxuICB9O1xuXG4gIGNvbnN0IHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3NldE5vZGVSZWZ9IHN0eWxlPXtzdHlsZX0gey4uLmF0dHJpYnV0ZXN9IHsuLi5saXN0ZW5lcnN9PlxuICAgICAgPEltYWdlV3JhcHBlciBzb3J0YWJsZT5cbiAgICAgICAgPEltYWdlIHZhbHVlPXtpdGVtVmFsdWV9IGZpZWxkPXtmaWVsZH0gZ2V0QXNzZXQ9e2dldEFzc2V0fSAvPlxuICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNcbiAgICAgICAgaXRlbT17aXRlbVZhbHVlfVxuICAgICAgICBvblJlbW92ZT17b25SZW1vdmV9XG4gICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlfVxuICAgICAgPjwvU29ydGFibGVJbWFnZUJ1dHRvbnM+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIoe1xuICBpdGVtcyxcbiAgZ2V0QXNzZXQsXG4gIGZpZWxkLFxuICBvblNvcnRFbmQsXG4gIG9uUmVtb3ZlT25lLFxuICBvblJlcGxhY2VPbmUsXG59KSB7XG4gIGNvbnN0IGFjdGl2YXRpb25Db25zdHJhaW50ID0geyBkaXN0YW5jZTogNCB9O1xuICBjb25zdCBzZW5zb3JzID0gdXNlU2Vuc29ycyhcbiAgICB1c2VTZW5zb3IoTW91c2VTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICAgdXNlU2Vuc29yKFRvdWNoU2Vuc29yLCB7IGFjdGl2YXRpb25Db25zdHJhaW50IH0pLFxuICApO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZVNvcnRFbmQoeyBhY3RpdmUsIG92ZXIgfSkge1xuICAgIG9uU29ydEVuZCh7XG4gICAgICBvbGRJbmRleDogaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWN0aXZlLmlkKSxcbiAgICAgIG5ld0luZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBvdmVyLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLXVua25vd24tcHJvcGVydHlcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9QYXJlbnRFbGVtZW50XX1cbiAgICAgICAgY29sbGlzaW9uRGV0ZWN0aW9uPXtjbG9zZXN0Q2VudGVyfVxuICAgICAgICBzZW5zb3JzPXtzZW5zb3JzfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZVNvcnRFbmR9XG4gICAgICA+XG4gICAgICAgIDxTb3J0YWJsZUNvbnRleHQgaXRlbXM9e2l0ZW1zfT5cbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPFNvcnRhYmxlSW1hZ2VcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpZD17aXRlbS5pZH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBpdGVtVmFsdWU9e2l0ZW0udmFsdWV9XG4gICAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZU9uZShpbmRleCl9XG4gICAgICAgICAgICA+PC9Tb3J0YWJsZUltYWdlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuY29uc3QgRmlsZUxpbmsgPSBzdHlsZWQuYWBcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5gO1xuXG5jb25zdCBGaWxlTGlua3MgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZUxpbmtMaXN0ID0gc3R5bGVkLnVsYFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZX07XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZURhbmdlcn07XG5gO1xuXG5mdW5jdGlvbiBpc011bHRpcGxlKHZhbHVlKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBMaXN0LmlzTGlzdCh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHNpemVPZlZhbHVlKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gIH1cblxuICBpZiAoTGlzdC5pc0xpc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNpemU7XG4gIH1cblxuICByZXR1cm4gdmFsdWUgPyAxIDogMDtcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkge1xuICByZXR1cm4gTGlzdC5pc0xpc3QodmFsdWUpID8gdmFsdWUudG9BcnJheSgpIDogdmFsdWUgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSkge1xuICBpZiAoIWlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLm1hcCh2YWx1ZSA9PiAoe1xuICAgIGlkOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgIHZhbHVlLFxuICB9KSk7XG5cbiAgcmV0dXJuIHZhbHVlQXJyYXk7XG59XG5cbmNvbnN0IHdhcm5EZXByZWNhdGVkT3B0aW9ucyA9IG9uY2UoZmllbGQgPT5cbiAgY29uc29sZS53YXJuKG9uZUxpbmVgXG4gIERlY2FwIENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAvLyBNYW51YWxseSB2YWxpZGF0ZSBQcm9wVHlwZXMgLSBSZWFjdCAxOSBicmVha2luZyBjaGFuZ2VcbiAgICAgIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyhGaWxlQ29udHJvbC5wcm9wVHlwZXMsIHRoaXMucHJvcHMsICdwcm9wJywgJ0ZpbGVDb250cm9sJyk7XG4gICAgfVxuXG4gICAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgICAgLyoqXG4gICAgICAgKiBBbHdheXMgdXBkYXRlIGlmIHRoZSB2YWx1ZSBvciBnZXRBc3NldCBjaGFuZ2VzLlxuICAgICAgICovXG4gICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gbmV4dFByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMuZ2V0QXNzZXQgIT09IG5leHRQcm9wcy5nZXRBc3NldCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB0aGVyZSBpcyBhIG1lZGlhIHBhdGggZm9yIHRoaXMgY29udHJvbCBpbiB0aGUgc3RhdGUgb2JqZWN0LCBhbmQgdGhhdFxuICAgICAgICogcGF0aCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgdmFsdWUgaW4gYG5leHRQcm9wc2AsIHVwZGF0ZS5cbiAgICAgICAqL1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbmV4dFByb3BzLm1lZGlhUGF0aHMuZ2V0KHRoaXMuY29udHJvbElEKTtcbiAgICAgIGlmIChtZWRpYVBhdGggJiYgbmV4dFByb3BzLnZhbHVlICE9PSBtZWRpYVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCB7IG1lZGlhUGF0aHMsIHZhbHVlLCBvblJlbW92ZUluc2VydGVkTWVkaWEsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggIT09IHZhbHVlKSB7XG4gICAgICAgIG9uQ2hhbmdlKG1lZGlhUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggPT09IHZhbHVlKSB7XG4gICAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UgPSBlID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIGFsbG93TXVsdGlwbGU6ICEhbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnYWxsb3dfbXVsdGlwbGUnLCB0cnVlKSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaGFuZGxlVXJsID0gc3ViamVjdCA9PiBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgdXJsID0gd2luZG93LnByb21wdCh0aGlzLnByb3BzLnQoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucHJvbXB0VXJsYCkpO1xuXG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlTGlzdFRvQXJyYXkodGhpcy5wcm9wcy52YWx1ZSk7XG4gICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2Uoc2l6ZU9mVmFsdWUodmFsdWUpID4gMCA/IFsuLi52YWx1ZV0gOiBudWxsKTtcbiAgICB9O1xuXG4gICAgb25SZXBsYWNlT25lID0gaW5kZXggPT4gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgcmVwbGFjZUluZGV4OiBpbmRleCxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZzogbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJyksXG4gICAgICAgIGZpZWxkLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChmaWVsZC5oYXNJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddKSkge1xuICAgICAgICB3YXJuRGVwcmVjYXRlZE9wdGlvbnMoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQuZ2V0SW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSwgTWFwKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQuZ2V0KCdtZWRpYV9saWJyYXJ5JywgTWFwKCkpO1xuICAgIH07XG5cbiAgICBhbGxvd3NNdWx0aXBsZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnLCBmYWxzZSkgJiZcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJykuZ2V0KCdtdWx0aXBsZScsIGZhbHNlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgb25Tb3J0RW5kID0gKHsgb2xkSW5kZXgsIG5ld0luZGV4IH0pID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGFycmF5TW92ZSh2YWx1ZSwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICB9O1xuXG4gICAgZ2V0VmFsaWRhdGVWYWx1ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzTXVsdGlwbGUodmFsdWUpID8gdmFsdWUubWFwKHYgPT4gYmFzZW5hbWUodikpIDogYmFzZW5hbWUodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rID0gdmFsdWUgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IE1BWF9ESVNQTEFZX0xFTkdUSDtcbiAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoIDw9IHNpemUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdGV4dCA9IGAke3ZhbHVlLnNsaWNlKDAsIHNpemUgLyAyKX1cXHUyMDI2JHt2YWx1ZS5zbGljZSgtKHNpemUgLyAyKSArIDEpfWA7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RmlsZUxpbmsgaHJlZj17dmFsdWV9IHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmlsZUxpbms+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGlua3MgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RmlsZUxpbmtzPlxuICAgICAgICAgICAgPEZpbGVMaW5rTGlzdD5cbiAgICAgICAgICAgICAge3ZhbHVlLm1hcCh2YWwgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e3ZhbH0+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsKX08L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRmlsZUxpbmtMaXN0PlxuICAgICAgICAgIDwvRmlsZUxpbmtzPlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDxGaWxlTGlua3M+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsdWUpfTwvRmlsZUxpbmtzPjtcbiAgICB9O1xuXG4gICAgcmVuZGVySW1hZ2VzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBc3NldCwgdmFsdWUsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgaXRlbXMgPSB2YWx1ZUxpc3RUb1NvcnRhYmxlQXJyYXkodmFsdWUpO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U29ydGFibGVNdWx0aUltYWdlV3JhcHBlclxuICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgICAgb25Tb3J0RW5kPXt0aGlzLm9uU29ydEVuZH1cbiAgICAgICAgICAgIG9uUmVtb3ZlT25lPXt0aGlzLm9uUmVtb3ZlT25lfVxuICAgICAgICAgICAgb25SZXBsYWNlT25lPXt0aGlzLm9uUmVwbGFjZU9uZX1cbiAgICAgICAgICAgIGRpc3RhbmNlPXs0fVxuICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgYXhpcz1cInh5XCJcbiAgICAgICAgICAgIGxvY2tUb0NvbnRhaW5lckVkZ2VzPXt0cnVlfVxuICAgICAgICAgID48L1NvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxJbWFnZVdyYXBwZXI+XG4gICAgICAgICAgPEltYWdlIHZhbHVlPXt2YWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgYWxsb3dzTXVsdGlwbGUgPSB0aGlzLmFsbG93c011bHRpcGxlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtmb3JJbWFnZSA/IHRoaXMucmVuZGVySW1hZ2VzKCkgOiBudWxsfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7Zm9ySW1hZ2UgPyBudWxsIDogdGhpcy5yZW5kZXJGaWxlTGlua3MoKX1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uJHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdhZGRNb3JlJyA6ICdjaG9vc2VEaWZmZXJlbnQnXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgJiYgIXRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/IChcbiAgICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlcGxhY2VVcmxgKX1cbiAgICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvblJlbW92ZSBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlbW92ZX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlbW92ZSR7YWxsb3dzTXVsdGlwbGUgPyAnQWxsJyA6ICcnfWApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlck5vU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2Uke3RoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdNdWx0aXBsZScgOiAnJ31gKX1cbiAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpID8gKFxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2VVcmxgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc3ViamVjdCA9IGZvckltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZVdyYXBwZXJ9PlxuICAgICAgICAgIDxzcGFuPnt2YWx1ZSA/IHRoaXMucmVuZGVyU2VsZWN0aW9uKHN1YmplY3QpIDogdGhpcy5yZW5kZXJOb1NlbGVjdGlvbihzdWJqZWN0KX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0= */"));
23
23
  const SortableImageButtonsWrapper = /*#__PURE__*/_styled("div", {
24
24
  target: "e1hax4ql6",
25
25
  label: "SortableImageButtonsWrapper"
@@ -28,7 +28,7 @@ const SortableImageButtonsWrapper = /*#__PURE__*/_styled("div", {
28
28
  styles: "display:flex;justify-content:center;column-gap:10px;margin-right:20px;margin-top:-10px;margin-bottom:10px"
29
29
  } : {
30
30
  name: "1ekgmip",
31
- styles: "display:flex;justify-content:center;column-gap:10px;margin-right:20px;margin-top:-10px;margin-bottom:10px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0M4QyIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */",
31
+ styles: "display:flex;justify-content:center;column-gap:10px;margin-right:20px;margin-top:-10px;margin-bottom:10px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0M4QyIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IG9uY2UgZnJvbSAnbG9kYXNoL29uY2UnO1xuaW1wb3J0IHsgb25lTGluZSB9IGZyb20gJ2NvbW1vbi10YWdzJztcbmltcG9ydCB7XG4gIGxlbmd0aHMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIGJvcmRlcnMsXG4gIGVmZmVjdHMsXG4gIHNoYWRvd3MsXG4gIEljb25CdXR0b24sXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnZGVjYXAtY21zLWxpYi11dGlsJztcbmltcG9ydCB7IGFycmF5TW92ZUltbXV0YWJsZSBhcyBhcnJheU1vdmUgfSBmcm9tICdhcnJheS1tb3ZlJztcbmltcG9ydCB7XG4gIERuZENvbnRleHQsXG4gIE1vdXNlU2Vuc29yLFxuICBUb3VjaFNlbnNvcixcbiAgY2xvc2VzdENlbnRlcixcbiAgdXNlU2Vuc29yLFxuICB1c2VTZW5zb3JzLFxufSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7IFNvcnRhYmxlQ29udGV4dCwgdXNlU29ydGFibGUgfSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQgeyBDU1MgfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgcmVzdHJpY3RUb1BhcmVudEVsZW1lbnQgfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBNQVhfRElTUExBWV9MRU5HVEggPSA1MDtcblxuY29uc3QgSW1hZ2VXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZmxleC1iYXNpczogMTU1cHg7XG4gIHdpZHRoOiAxNTVweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6ICR7Ym9yZGVycy50ZXh0RmllbGR9O1xuICBib3JkZXItcmFkaXVzOiAke2xlbmd0aHMuYm9yZGVyUmFkaXVzfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJHtlZmZlY3RzLmNoZWNrZXJib2FyZH07XG4gICR7c2hhZG93cy5pbnNldH07XG4gIGN1cnNvcjogJHtwcm9wcyA9PiAocHJvcHMuc29ydGFibGUgPyAncG9pbnRlcicgOiAnYXV0bycpfTtcbmA7XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuYDtcblxuY29uc3QgU3R5bGVkSW1hZ2UgPSBzdHlsZWQuaW1nYFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuYDtcblxuZnVuY3Rpb24gSW1hZ2UoeyB2YWx1ZSwgZmllbGQsIGdldEFzc2V0IH0pIHtcbiAgY29uc3QgW2Fzc2V0LCBzZXRBc3NldF0gPSB1c2VTdGF0ZShudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgbmV3QXNzZXQgPSBnZXRBc3NldCh2YWx1ZSwgZmllbGQpO1xuICAgICAgc2V0QXNzZXQobmV3QXNzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBc3NldChudWxsKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgZmllbGQsIGdldEFzc2V0XSk7XG5cbiAgcmV0dXJuIGFzc2V0ID8gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiBzcmM9e2Fzc2V0fSAvPiA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlSW1hZ2VCdXR0b25zKHsgb25SZW1vdmUsIG9uUmVwbGFjZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJtZWRpYVwiIG9uQ2xpY2s9e29uUmVwbGFjZX0+PC9JY29uQnV0dG9uPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cImNsb3NlXCIgb25DbGljaz17b25SZW1vdmV9PjwvSWNvbkJ1dHRvbj5cbiAgICA8L1NvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZShwcm9wcykge1xuICBjb25zdCB7IGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgaWQ6IHByb3BzLmlkLFxuICB9KTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06IENTUy5UcmFuc2Zvcm0udG9TdHJpbmcodHJhbnNmb3JtKSxcbiAgICB0cmFuc2l0aW9uLFxuICB9O1xuXG4gIGNvbnN0IHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3NldE5vZGVSZWZ9IHN0eWxlPXtzdHlsZX0gey4uLmF0dHJpYnV0ZXN9IHsuLi5saXN0ZW5lcnN9PlxuICAgICAgPEltYWdlV3JhcHBlciBzb3J0YWJsZT5cbiAgICAgICAgPEltYWdlIHZhbHVlPXtpdGVtVmFsdWV9IGZpZWxkPXtmaWVsZH0gZ2V0QXNzZXQ9e2dldEFzc2V0fSAvPlxuICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNcbiAgICAgICAgaXRlbT17aXRlbVZhbHVlfVxuICAgICAgICBvblJlbW92ZT17b25SZW1vdmV9XG4gICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlfVxuICAgICAgPjwvU29ydGFibGVJbWFnZUJ1dHRvbnM+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIoe1xuICBpdGVtcyxcbiAgZ2V0QXNzZXQsXG4gIGZpZWxkLFxuICBvblNvcnRFbmQsXG4gIG9uUmVtb3ZlT25lLFxuICBvblJlcGxhY2VPbmUsXG59KSB7XG4gIGNvbnN0IGFjdGl2YXRpb25Db25zdHJhaW50ID0geyBkaXN0YW5jZTogNCB9O1xuICBjb25zdCBzZW5zb3JzID0gdXNlU2Vuc29ycyhcbiAgICB1c2VTZW5zb3IoTW91c2VTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICAgdXNlU2Vuc29yKFRvdWNoU2Vuc29yLCB7IGFjdGl2YXRpb25Db25zdHJhaW50IH0pLFxuICApO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZVNvcnRFbmQoeyBhY3RpdmUsIG92ZXIgfSkge1xuICAgIG9uU29ydEVuZCh7XG4gICAgICBvbGRJbmRleDogaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWN0aXZlLmlkKSxcbiAgICAgIG5ld0luZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBvdmVyLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLXVua25vd24tcHJvcGVydHlcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9QYXJlbnRFbGVtZW50XX1cbiAgICAgICAgY29sbGlzaW9uRGV0ZWN0aW9uPXtjbG9zZXN0Q2VudGVyfVxuICAgICAgICBzZW5zb3JzPXtzZW5zb3JzfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZVNvcnRFbmR9XG4gICAgICA+XG4gICAgICAgIDxTb3J0YWJsZUNvbnRleHQgaXRlbXM9e2l0ZW1zfT5cbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPFNvcnRhYmxlSW1hZ2VcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpZD17aXRlbS5pZH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBpdGVtVmFsdWU9e2l0ZW0udmFsdWV9XG4gICAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZU9uZShpbmRleCl9XG4gICAgICAgICAgICA+PC9Tb3J0YWJsZUltYWdlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuY29uc3QgRmlsZUxpbmsgPSBzdHlsZWQuYWBcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5gO1xuXG5jb25zdCBGaWxlTGlua3MgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZUxpbmtMaXN0ID0gc3R5bGVkLnVsYFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZX07XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZURhbmdlcn07XG5gO1xuXG5mdW5jdGlvbiBpc011bHRpcGxlKHZhbHVlKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBMaXN0LmlzTGlzdCh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHNpemVPZlZhbHVlKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gIH1cblxuICBpZiAoTGlzdC5pc0xpc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNpemU7XG4gIH1cblxuICByZXR1cm4gdmFsdWUgPyAxIDogMDtcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkge1xuICByZXR1cm4gTGlzdC5pc0xpc3QodmFsdWUpID8gdmFsdWUudG9BcnJheSgpIDogdmFsdWUgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSkge1xuICBpZiAoIWlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLm1hcCh2YWx1ZSA9PiAoe1xuICAgIGlkOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgIHZhbHVlLFxuICB9KSk7XG5cbiAgcmV0dXJuIHZhbHVlQXJyYXk7XG59XG5cbmNvbnN0IHdhcm5EZXByZWNhdGVkT3B0aW9ucyA9IG9uY2UoZmllbGQgPT5cbiAgY29uc29sZS53YXJuKG9uZUxpbmVgXG4gIERlY2FwIENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAvLyBNYW51YWxseSB2YWxpZGF0ZSBQcm9wVHlwZXMgLSBSZWFjdCAxOSBicmVha2luZyBjaGFuZ2VcbiAgICAgIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyhGaWxlQ29udHJvbC5wcm9wVHlwZXMsIHRoaXMucHJvcHMsICdwcm9wJywgJ0ZpbGVDb250cm9sJyk7XG4gICAgfVxuXG4gICAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgICAgLyoqXG4gICAgICAgKiBBbHdheXMgdXBkYXRlIGlmIHRoZSB2YWx1ZSBvciBnZXRBc3NldCBjaGFuZ2VzLlxuICAgICAgICovXG4gICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gbmV4dFByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMuZ2V0QXNzZXQgIT09IG5leHRQcm9wcy5nZXRBc3NldCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB0aGVyZSBpcyBhIG1lZGlhIHBhdGggZm9yIHRoaXMgY29udHJvbCBpbiB0aGUgc3RhdGUgb2JqZWN0LCBhbmQgdGhhdFxuICAgICAgICogcGF0aCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgdmFsdWUgaW4gYG5leHRQcm9wc2AsIHVwZGF0ZS5cbiAgICAgICAqL1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbmV4dFByb3BzLm1lZGlhUGF0aHMuZ2V0KHRoaXMuY29udHJvbElEKTtcbiAgICAgIGlmIChtZWRpYVBhdGggJiYgbmV4dFByb3BzLnZhbHVlICE9PSBtZWRpYVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCB7IG1lZGlhUGF0aHMsIHZhbHVlLCBvblJlbW92ZUluc2VydGVkTWVkaWEsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggIT09IHZhbHVlKSB7XG4gICAgICAgIG9uQ2hhbmdlKG1lZGlhUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggPT09IHZhbHVlKSB7XG4gICAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UgPSBlID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIGFsbG93TXVsdGlwbGU6ICEhbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnYWxsb3dfbXVsdGlwbGUnLCB0cnVlKSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaGFuZGxlVXJsID0gc3ViamVjdCA9PiBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgdXJsID0gd2luZG93LnByb21wdCh0aGlzLnByb3BzLnQoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucHJvbXB0VXJsYCkpO1xuXG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlTGlzdFRvQXJyYXkodGhpcy5wcm9wcy52YWx1ZSk7XG4gICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2Uoc2l6ZU9mVmFsdWUodmFsdWUpID4gMCA/IFsuLi52YWx1ZV0gOiBudWxsKTtcbiAgICB9O1xuXG4gICAgb25SZXBsYWNlT25lID0gaW5kZXggPT4gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgcmVwbGFjZUluZGV4OiBpbmRleCxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZzogbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJyksXG4gICAgICAgIGZpZWxkLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChmaWVsZC5oYXNJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddKSkge1xuICAgICAgICB3YXJuRGVwcmVjYXRlZE9wdGlvbnMoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQuZ2V0SW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSwgTWFwKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQuZ2V0KCdtZWRpYV9saWJyYXJ5JywgTWFwKCkpO1xuICAgIH07XG5cbiAgICBhbGxvd3NNdWx0aXBsZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnLCBmYWxzZSkgJiZcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJykuZ2V0KCdtdWx0aXBsZScsIGZhbHNlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgb25Tb3J0RW5kID0gKHsgb2xkSW5kZXgsIG5ld0luZGV4IH0pID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGFycmF5TW92ZSh2YWx1ZSwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICB9O1xuXG4gICAgZ2V0VmFsaWRhdGVWYWx1ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzTXVsdGlwbGUodmFsdWUpID8gdmFsdWUubWFwKHYgPT4gYmFzZW5hbWUodikpIDogYmFzZW5hbWUodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rID0gdmFsdWUgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IE1BWF9ESVNQTEFZX0xFTkdUSDtcbiAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoIDw9IHNpemUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdGV4dCA9IGAke3ZhbHVlLnNsaWNlKDAsIHNpemUgLyAyKX1cXHUyMDI2JHt2YWx1ZS5zbGljZSgtKHNpemUgLyAyKSArIDEpfWA7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RmlsZUxpbmsgaHJlZj17dmFsdWV9IHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmlsZUxpbms+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGlua3MgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RmlsZUxpbmtzPlxuICAgICAgICAgICAgPEZpbGVMaW5rTGlzdD5cbiAgICAgICAgICAgICAge3ZhbHVlLm1hcCh2YWwgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e3ZhbH0+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsKX08L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRmlsZUxpbmtMaXN0PlxuICAgICAgICAgIDwvRmlsZUxpbmtzPlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDxGaWxlTGlua3M+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsdWUpfTwvRmlsZUxpbmtzPjtcbiAgICB9O1xuXG4gICAgcmVuZGVySW1hZ2VzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBc3NldCwgdmFsdWUsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgaXRlbXMgPSB2YWx1ZUxpc3RUb1NvcnRhYmxlQXJyYXkodmFsdWUpO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U29ydGFibGVNdWx0aUltYWdlV3JhcHBlclxuICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgICAgb25Tb3J0RW5kPXt0aGlzLm9uU29ydEVuZH1cbiAgICAgICAgICAgIG9uUmVtb3ZlT25lPXt0aGlzLm9uUmVtb3ZlT25lfVxuICAgICAgICAgICAgb25SZXBsYWNlT25lPXt0aGlzLm9uUmVwbGFjZU9uZX1cbiAgICAgICAgICAgIGRpc3RhbmNlPXs0fVxuICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgYXhpcz1cInh5XCJcbiAgICAgICAgICAgIGxvY2tUb0NvbnRhaW5lckVkZ2VzPXt0cnVlfVxuICAgICAgICAgID48L1NvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxJbWFnZVdyYXBwZXI+XG4gICAgICAgICAgPEltYWdlIHZhbHVlPXt2YWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgYWxsb3dzTXVsdGlwbGUgPSB0aGlzLmFsbG93c011bHRpcGxlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtmb3JJbWFnZSA/IHRoaXMucmVuZGVySW1hZ2VzKCkgOiBudWxsfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7Zm9ySW1hZ2UgPyBudWxsIDogdGhpcy5yZW5kZXJGaWxlTGlua3MoKX1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uJHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdhZGRNb3JlJyA6ICdjaG9vc2VEaWZmZXJlbnQnXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgJiYgIXRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/IChcbiAgICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlcGxhY2VVcmxgKX1cbiAgICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvblJlbW92ZSBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlbW92ZX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlbW92ZSR7YWxsb3dzTXVsdGlwbGUgPyAnQWxsJyA6ICcnfWApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlck5vU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2Uke3RoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdNdWx0aXBsZScgOiAnJ31gKX1cbiAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpID8gKFxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2VVcmxgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc3ViamVjdCA9IGZvckltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZVdyYXBwZXJ9PlxuICAgICAgICAgIDxzcGFuPnt2YWx1ZSA/IHRoaXMucmVuZGVyU2VsZWN0aW9uKHN1YmplY3QpIDogdGhpcy5yZW5kZXJOb1NlbGVjdGlvbihzdWJqZWN0KX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0= */",
32
32
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
33
33
  });
34
34
  const StyledImage = /*#__PURE__*/_styled("img", {
@@ -39,7 +39,7 @@ const StyledImage = /*#__PURE__*/_styled("img", {
39
39
  styles: "width:100%;height:100%;object-fit:contain"
40
40
  } : {
41
41
  name: "ukfjzf",
42
- styles: "width:100%;height:100%;object-fit:contain/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0Q4QiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */",
42
+ styles: "width:100%;height:100%;object-fit:contain/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0Q4QiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IG9uY2UgZnJvbSAnbG9kYXNoL29uY2UnO1xuaW1wb3J0IHsgb25lTGluZSB9IGZyb20gJ2NvbW1vbi10YWdzJztcbmltcG9ydCB7XG4gIGxlbmd0aHMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIGJvcmRlcnMsXG4gIGVmZmVjdHMsXG4gIHNoYWRvd3MsXG4gIEljb25CdXR0b24sXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnZGVjYXAtY21zLWxpYi11dGlsJztcbmltcG9ydCB7IGFycmF5TW92ZUltbXV0YWJsZSBhcyBhcnJheU1vdmUgfSBmcm9tICdhcnJheS1tb3ZlJztcbmltcG9ydCB7XG4gIERuZENvbnRleHQsXG4gIE1vdXNlU2Vuc29yLFxuICBUb3VjaFNlbnNvcixcbiAgY2xvc2VzdENlbnRlcixcbiAgdXNlU2Vuc29yLFxuICB1c2VTZW5zb3JzLFxufSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7IFNvcnRhYmxlQ29udGV4dCwgdXNlU29ydGFibGUgfSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQgeyBDU1MgfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgcmVzdHJpY3RUb1BhcmVudEVsZW1lbnQgfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBNQVhfRElTUExBWV9MRU5HVEggPSA1MDtcblxuY29uc3QgSW1hZ2VXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZmxleC1iYXNpczogMTU1cHg7XG4gIHdpZHRoOiAxNTVweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6ICR7Ym9yZGVycy50ZXh0RmllbGR9O1xuICBib3JkZXItcmFkaXVzOiAke2xlbmd0aHMuYm9yZGVyUmFkaXVzfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJHtlZmZlY3RzLmNoZWNrZXJib2FyZH07XG4gICR7c2hhZG93cy5pbnNldH07XG4gIGN1cnNvcjogJHtwcm9wcyA9PiAocHJvcHMuc29ydGFibGUgPyAncG9pbnRlcicgOiAnYXV0bycpfTtcbmA7XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuYDtcblxuY29uc3QgU3R5bGVkSW1hZ2UgPSBzdHlsZWQuaW1nYFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuYDtcblxuZnVuY3Rpb24gSW1hZ2UoeyB2YWx1ZSwgZmllbGQsIGdldEFzc2V0IH0pIHtcbiAgY29uc3QgW2Fzc2V0LCBzZXRBc3NldF0gPSB1c2VTdGF0ZShudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgbmV3QXNzZXQgPSBnZXRBc3NldCh2YWx1ZSwgZmllbGQpO1xuICAgICAgc2V0QXNzZXQobmV3QXNzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBc3NldChudWxsKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgZmllbGQsIGdldEFzc2V0XSk7XG5cbiAgcmV0dXJuIGFzc2V0ID8gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiBzcmM9e2Fzc2V0fSAvPiA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlSW1hZ2VCdXR0b25zKHsgb25SZW1vdmUsIG9uUmVwbGFjZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJtZWRpYVwiIG9uQ2xpY2s9e29uUmVwbGFjZX0+PC9JY29uQnV0dG9uPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cImNsb3NlXCIgb25DbGljaz17b25SZW1vdmV9PjwvSWNvbkJ1dHRvbj5cbiAgICA8L1NvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZShwcm9wcykge1xuICBjb25zdCB7IGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgaWQ6IHByb3BzLmlkLFxuICB9KTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06IENTUy5UcmFuc2Zvcm0udG9TdHJpbmcodHJhbnNmb3JtKSxcbiAgICB0cmFuc2l0aW9uLFxuICB9O1xuXG4gIGNvbnN0IHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3NldE5vZGVSZWZ9IHN0eWxlPXtzdHlsZX0gey4uLmF0dHJpYnV0ZXN9IHsuLi5saXN0ZW5lcnN9PlxuICAgICAgPEltYWdlV3JhcHBlciBzb3J0YWJsZT5cbiAgICAgICAgPEltYWdlIHZhbHVlPXtpdGVtVmFsdWV9IGZpZWxkPXtmaWVsZH0gZ2V0QXNzZXQ9e2dldEFzc2V0fSAvPlxuICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNcbiAgICAgICAgaXRlbT17aXRlbVZhbHVlfVxuICAgICAgICBvblJlbW92ZT17b25SZW1vdmV9XG4gICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlfVxuICAgICAgPjwvU29ydGFibGVJbWFnZUJ1dHRvbnM+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIoe1xuICBpdGVtcyxcbiAgZ2V0QXNzZXQsXG4gIGZpZWxkLFxuICBvblNvcnRFbmQsXG4gIG9uUmVtb3ZlT25lLFxuICBvblJlcGxhY2VPbmUsXG59KSB7XG4gIGNvbnN0IGFjdGl2YXRpb25Db25zdHJhaW50ID0geyBkaXN0YW5jZTogNCB9O1xuICBjb25zdCBzZW5zb3JzID0gdXNlU2Vuc29ycyhcbiAgICB1c2VTZW5zb3IoTW91c2VTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICAgdXNlU2Vuc29yKFRvdWNoU2Vuc29yLCB7IGFjdGl2YXRpb25Db25zdHJhaW50IH0pLFxuICApO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZVNvcnRFbmQoeyBhY3RpdmUsIG92ZXIgfSkge1xuICAgIG9uU29ydEVuZCh7XG4gICAgICBvbGRJbmRleDogaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWN0aXZlLmlkKSxcbiAgICAgIG5ld0luZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBvdmVyLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLXVua25vd24tcHJvcGVydHlcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9QYXJlbnRFbGVtZW50XX1cbiAgICAgICAgY29sbGlzaW9uRGV0ZWN0aW9uPXtjbG9zZXN0Q2VudGVyfVxuICAgICAgICBzZW5zb3JzPXtzZW5zb3JzfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZVNvcnRFbmR9XG4gICAgICA+XG4gICAgICAgIDxTb3J0YWJsZUNvbnRleHQgaXRlbXM9e2l0ZW1zfT5cbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPFNvcnRhYmxlSW1hZ2VcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpZD17aXRlbS5pZH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBpdGVtVmFsdWU9e2l0ZW0udmFsdWV9XG4gICAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZU9uZShpbmRleCl9XG4gICAgICAgICAgICA+PC9Tb3J0YWJsZUltYWdlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuY29uc3QgRmlsZUxpbmsgPSBzdHlsZWQuYWBcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5gO1xuXG5jb25zdCBGaWxlTGlua3MgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZUxpbmtMaXN0ID0gc3R5bGVkLnVsYFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZX07XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZURhbmdlcn07XG5gO1xuXG5mdW5jdGlvbiBpc011bHRpcGxlKHZhbHVlKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBMaXN0LmlzTGlzdCh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHNpemVPZlZhbHVlKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gIH1cblxuICBpZiAoTGlzdC5pc0xpc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNpemU7XG4gIH1cblxuICByZXR1cm4gdmFsdWUgPyAxIDogMDtcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkge1xuICByZXR1cm4gTGlzdC5pc0xpc3QodmFsdWUpID8gdmFsdWUudG9BcnJheSgpIDogdmFsdWUgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSkge1xuICBpZiAoIWlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLm1hcCh2YWx1ZSA9PiAoe1xuICAgIGlkOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgIHZhbHVlLFxuICB9KSk7XG5cbiAgcmV0dXJuIHZhbHVlQXJyYXk7XG59XG5cbmNvbnN0IHdhcm5EZXByZWNhdGVkT3B0aW9ucyA9IG9uY2UoZmllbGQgPT5cbiAgY29uc29sZS53YXJuKG9uZUxpbmVgXG4gIERlY2FwIENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAvLyBNYW51YWxseSB2YWxpZGF0ZSBQcm9wVHlwZXMgLSBSZWFjdCAxOSBicmVha2luZyBjaGFuZ2VcbiAgICAgIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyhGaWxlQ29udHJvbC5wcm9wVHlwZXMsIHRoaXMucHJvcHMsICdwcm9wJywgJ0ZpbGVDb250cm9sJyk7XG4gICAgfVxuXG4gICAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgICAgLyoqXG4gICAgICAgKiBBbHdheXMgdXBkYXRlIGlmIHRoZSB2YWx1ZSBvciBnZXRBc3NldCBjaGFuZ2VzLlxuICAgICAgICovXG4gICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gbmV4dFByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMuZ2V0QXNzZXQgIT09IG5leHRQcm9wcy5nZXRBc3NldCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB0aGVyZSBpcyBhIG1lZGlhIHBhdGggZm9yIHRoaXMgY29udHJvbCBpbiB0aGUgc3RhdGUgb2JqZWN0LCBhbmQgdGhhdFxuICAgICAgICogcGF0aCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgdmFsdWUgaW4gYG5leHRQcm9wc2AsIHVwZGF0ZS5cbiAgICAgICAqL1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbmV4dFByb3BzLm1lZGlhUGF0aHMuZ2V0KHRoaXMuY29udHJvbElEKTtcbiAgICAgIGlmIChtZWRpYVBhdGggJiYgbmV4dFByb3BzLnZhbHVlICE9PSBtZWRpYVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCB7IG1lZGlhUGF0aHMsIHZhbHVlLCBvblJlbW92ZUluc2VydGVkTWVkaWEsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggIT09IHZhbHVlKSB7XG4gICAgICAgIG9uQ2hhbmdlKG1lZGlhUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggPT09IHZhbHVlKSB7XG4gICAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UgPSBlID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIGFsbG93TXVsdGlwbGU6ICEhbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnYWxsb3dfbXVsdGlwbGUnLCB0cnVlKSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaGFuZGxlVXJsID0gc3ViamVjdCA9PiBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgdXJsID0gd2luZG93LnByb21wdCh0aGlzLnByb3BzLnQoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucHJvbXB0VXJsYCkpO1xuXG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlTGlzdFRvQXJyYXkodGhpcy5wcm9wcy52YWx1ZSk7XG4gICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2Uoc2l6ZU9mVmFsdWUodmFsdWUpID4gMCA/IFsuLi52YWx1ZV0gOiBudWxsKTtcbiAgICB9O1xuXG4gICAgb25SZXBsYWNlT25lID0gaW5kZXggPT4gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgcmVwbGFjZUluZGV4OiBpbmRleCxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZzogbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJyksXG4gICAgICAgIGZpZWxkLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChmaWVsZC5oYXNJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddKSkge1xuICAgICAgICB3YXJuRGVwcmVjYXRlZE9wdGlvbnMoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQuZ2V0SW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSwgTWFwKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQuZ2V0KCdtZWRpYV9saWJyYXJ5JywgTWFwKCkpO1xuICAgIH07XG5cbiAgICBhbGxvd3NNdWx0aXBsZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnLCBmYWxzZSkgJiZcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJykuZ2V0KCdtdWx0aXBsZScsIGZhbHNlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgb25Tb3J0RW5kID0gKHsgb2xkSW5kZXgsIG5ld0luZGV4IH0pID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGFycmF5TW92ZSh2YWx1ZSwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICB9O1xuXG4gICAgZ2V0VmFsaWRhdGVWYWx1ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzTXVsdGlwbGUodmFsdWUpID8gdmFsdWUubWFwKHYgPT4gYmFzZW5hbWUodikpIDogYmFzZW5hbWUodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rID0gdmFsdWUgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IE1BWF9ESVNQTEFZX0xFTkdUSDtcbiAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoIDw9IHNpemUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdGV4dCA9IGAke3ZhbHVlLnNsaWNlKDAsIHNpemUgLyAyKX1cXHUyMDI2JHt2YWx1ZS5zbGljZSgtKHNpemUgLyAyKSArIDEpfWA7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RmlsZUxpbmsgaHJlZj17dmFsdWV9IHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmlsZUxpbms+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGlua3MgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RmlsZUxpbmtzPlxuICAgICAgICAgICAgPEZpbGVMaW5rTGlzdD5cbiAgICAgICAgICAgICAge3ZhbHVlLm1hcCh2YWwgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e3ZhbH0+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsKX08L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRmlsZUxpbmtMaXN0PlxuICAgICAgICAgIDwvRmlsZUxpbmtzPlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDxGaWxlTGlua3M+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsdWUpfTwvRmlsZUxpbmtzPjtcbiAgICB9O1xuXG4gICAgcmVuZGVySW1hZ2VzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBc3NldCwgdmFsdWUsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgaXRlbXMgPSB2YWx1ZUxpc3RUb1NvcnRhYmxlQXJyYXkodmFsdWUpO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U29ydGFibGVNdWx0aUltYWdlV3JhcHBlclxuICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgICAgb25Tb3J0RW5kPXt0aGlzLm9uU29ydEVuZH1cbiAgICAgICAgICAgIG9uUmVtb3ZlT25lPXt0aGlzLm9uUmVtb3ZlT25lfVxuICAgICAgICAgICAgb25SZXBsYWNlT25lPXt0aGlzLm9uUmVwbGFjZU9uZX1cbiAgICAgICAgICAgIGRpc3RhbmNlPXs0fVxuICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgYXhpcz1cInh5XCJcbiAgICAgICAgICAgIGxvY2tUb0NvbnRhaW5lckVkZ2VzPXt0cnVlfVxuICAgICAgICAgID48L1NvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxJbWFnZVdyYXBwZXI+XG4gICAgICAgICAgPEltYWdlIHZhbHVlPXt2YWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgYWxsb3dzTXVsdGlwbGUgPSB0aGlzLmFsbG93c011bHRpcGxlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtmb3JJbWFnZSA/IHRoaXMucmVuZGVySW1hZ2VzKCkgOiBudWxsfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7Zm9ySW1hZ2UgPyBudWxsIDogdGhpcy5yZW5kZXJGaWxlTGlua3MoKX1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uJHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdhZGRNb3JlJyA6ICdjaG9vc2VEaWZmZXJlbnQnXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgJiYgIXRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/IChcbiAgICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlcGxhY2VVcmxgKX1cbiAgICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvblJlbW92ZSBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlbW92ZX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlbW92ZSR7YWxsb3dzTXVsdGlwbGUgPyAnQWxsJyA6ICcnfWApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlck5vU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2Uke3RoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdNdWx0aXBsZScgOiAnJ31gKX1cbiAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpID8gKFxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2VVcmxgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc3ViamVjdCA9IGZvckltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZVdyYXBwZXJ9PlxuICAgICAgICAgIDxzcGFuPnt2YWx1ZSA/IHRoaXMucmVuZGVyU2VsZWN0aW9uKHN1YmplY3QpIDogdGhpcy5yZW5kZXJOb1NlbGVjdGlvbihzdWJqZWN0KX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0= */",
43
43
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
44
44
  });
45
45
  function Image({
@@ -122,7 +122,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
122
122
  styles: "display:flex;flex-wrap:wrap;label:SortableMultiImageWrapper;"
123
123
  } : {
124
124
  name: "a42x49-SortableMultiImageWrapper",
125
- styles: "display:flex;flex-wrap:wrap;label:SortableMultiImageWrapper;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0ljIiwiZmlsZSI6Ii4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgTWFwLCBMaXN0IH0gZnJvbSAnaW1tdXRhYmxlJztcbmltcG9ydCBvbmNlIGZyb20gJ2xvZGFzaC9vbmNlJztcbmltcG9ydCB7IG9uZUxpbmUgfSBmcm9tICdjb21tb24tdGFncyc7XG5pbXBvcnQge1xuICBsZW5ndGhzLFxuICBjb21wb25lbnRzLFxuICBidXR0b25zLFxuICBib3JkZXJzLFxuICBlZmZlY3RzLFxuICBzaGFkb3dzLFxuICBJY29uQnV0dG9uLFxufSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5pbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gJ2RlY2FwLWNtcy1saWItdXRpbCc7XG5pbXBvcnQgeyBhcnJheU1vdmVJbW11dGFibGUgYXMgYXJyYXlNb3ZlIH0gZnJvbSAnYXJyYXktbW92ZSc7XG5pbXBvcnQge1xuICBEbmRDb250ZXh0LFxuICBNb3VzZVNlbnNvcixcbiAgVG91Y2hTZW5zb3IsXG4gIGNsb3Nlc3RDZW50ZXIsXG4gIHVzZVNlbnNvcixcbiAgdXNlU2Vuc29ycyxcbn0gZnJvbSAnQGRuZC1raXQvY29yZSc7XG5pbXBvcnQgeyBTb3J0YWJsZUNvbnRleHQsIHVzZVNvcnRhYmxlIH0gZnJvbSAnQGRuZC1raXQvc29ydGFibGUnO1xuaW1wb3J0IHsgQ1NTIH0gZnJvbSAnQGRuZC1raXQvdXRpbGl0aWVzJztcbmltcG9ydCB7IHJlc3RyaWN0VG9QYXJlbnRFbGVtZW50IH0gZnJvbSAnQGRuZC1raXQvbW9kaWZpZXJzJztcblxuY29uc3QgTUFYX0RJU1BMQVlfTEVOR1RIID0gNTA7XG5cbmNvbnN0IEltYWdlV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGZsZXgtYmFzaXM6IDE1NXB4O1xuICB3aWR0aDogMTU1cHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAke2JvcmRlcnMudGV4dEZpZWxkfTtcbiAgYm9yZGVyLXJhZGl1czogJHtsZW5ndGhzLmJvcmRlclJhZGl1c307XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gICR7ZWZmZWN0cy5jaGVja2VyYm9hcmR9O1xuICAke3NoYWRvd3MuaW5zZXR9O1xuICBjdXJzb3I6ICR7cHJvcHMgPT4gKHByb3BzLnNvcnRhYmxlID8gJ3BvaW50ZXInIDogJ2F1dG8nKX07XG5gO1xuXG5jb25zdCBTb3J0YWJsZUltYWdlQnV0dG9uc1dyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sdW1uLWdhcDogMTBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbmA7XG5cbmNvbnN0IFN0eWxlZEltYWdlID0gc3R5bGVkLmltZ2BcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbmA7XG5cbmZ1bmN0aW9uIEltYWdlKHsgdmFsdWUsIGZpZWxkLCBnZXRBc3NldCB9KSB7XG4gIGNvbnN0IFthc3NldCwgc2V0QXNzZXRdID0gdXNlU3RhdGUobnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IG5ld0Fzc2V0ID0gZ2V0QXNzZXQodmFsdWUsIGZpZWxkKTtcbiAgICAgIHNldEFzc2V0KG5ld0Fzc2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0QXNzZXQobnVsbCk7XG4gICAgfVxuICB9LCBbdmFsdWUsIGZpZWxkLCBnZXRBc3NldF0pO1xuXG4gIHJldHVybiBhc3NldCA/IDxTdHlsZWRJbWFnZSByb2xlPVwicHJlc2VudGF0aW9uXCIgc3JjPXthc3NldH0gLz4gOiBudWxsO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlQnV0dG9ucyh7IG9uUmVtb3ZlLCBvblJlcGxhY2UgfSkge1xuICByZXR1cm4gKFxuICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1dyYXBwZXI+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwibWVkaWFcIiBvbkNsaWNrPXtvblJlcGxhY2V9PjwvSWNvbkJ1dHRvbj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJjbG9zZVwiIG9uQ2xpY2s9e29uUmVtb3ZlfT48L0ljb25CdXR0b24+XG4gICAgPC9Tb3J0YWJsZUltYWdlQnV0dG9uc1dyYXBwZXI+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlSW1hZ2UocHJvcHMpIHtcbiAgY29uc3QgeyBhdHRyaWJ1dGVzLCBsaXN0ZW5lcnMsIHNldE5vZGVSZWYsIHRyYW5zZm9ybSwgdHJhbnNpdGlvbiB9ID0gdXNlU29ydGFibGUoe1xuICAgIGlkOiBwcm9wcy5pZCxcbiAgfSk7XG5cbiAgY29uc3Qgc3R5bGUgPSB7XG4gICAgdHJhbnNmb3JtOiBDU1MuVHJhbnNmb3JtLnRvU3RyaW5nKHRyYW5zZm9ybSksXG4gICAgdHJhbnNpdGlvbixcbiAgfTtcblxuICBjb25zdCB7IGl0ZW1WYWx1ZSwgZ2V0QXNzZXQsIGZpZWxkLCBvblJlbW92ZSwgb25SZXBsYWNlIH0gPSBwcm9wcztcblxuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtzZXROb2RlUmVmfSBzdHlsZT17c3R5bGV9IHsuLi5hdHRyaWJ1dGVzfSB7Li4ubGlzdGVuZXJzfT5cbiAgICAgIDxJbWFnZVdyYXBwZXIgc29ydGFibGU+XG4gICAgICAgIDxJbWFnZSB2YWx1ZT17aXRlbVZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zXG4gICAgICAgIGl0ZW09e2l0ZW1WYWx1ZX1cbiAgICAgICAgb25SZW1vdmU9e29uUmVtb3ZlfVxuICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZX1cbiAgICAgID48L1NvcnRhYmxlSW1hZ2VCdXR0b25zPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyKHtcbiAgaXRlbXMsXG4gIGdldEFzc2V0LFxuICBmaWVsZCxcbiAgb25Tb3J0RW5kLFxuICBvblJlbW92ZU9uZSxcbiAgb25SZXBsYWNlT25lLFxufSkge1xuICBjb25zdCBhY3RpdmF0aW9uQ29uc3RyYWludCA9IHsgZGlzdGFuY2U6IDQgfTtcbiAgY29uc3Qgc2Vuc29ycyA9IHVzZVNlbnNvcnMoXG4gICAgdXNlU2Vuc29yKE1vdXNlU2Vuc29yLCB7IGFjdGl2YXRpb25Db25zdHJhaW50IH0pLFxuICAgIHVzZVNlbnNvcihUb3VjaFNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgKTtcblxuICBmdW5jdGlvbiBoYW5kbGVTb3J0RW5kKHsgYWN0aXZlLCBvdmVyIH0pIHtcbiAgICBvblNvcnRFbmQoe1xuICAgICAgb2xkSW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IGFjdGl2ZS5pZCksXG4gICAgICBuZXdJbmRleDogaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gb3Zlci5pZCksXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby11bmtub3duLXByb3BlcnR5XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8RG5kQ29udGV4dFxuICAgICAgICBtb2RpZmllcnM9e1tyZXN0cmljdFRvUGFyZW50RWxlbWVudF19XG4gICAgICAgIGNvbGxpc2lvbkRldGVjdGlvbj17Y2xvc2VzdENlbnRlcn1cbiAgICAgICAgc2Vuc29ycz17c2Vuc29yc31cbiAgICAgICAgb25EcmFnRW5kPXtoYW5kbGVTb3J0RW5kfVxuICAgICAgPlxuICAgICAgICA8U29ydGFibGVDb250ZXh0IGl0ZW1zPXtpdGVtc30+XG4gICAgICAgICAge2l0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxTb3J0YWJsZUltYWdlXG4gICAgICAgICAgICAgIGtleT17aXRlbS5pZH1cbiAgICAgICAgICAgICAgaWQ9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgaXRlbVZhbHVlPXtpdGVtLnZhbHVlfVxuICAgICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICAgIGZpZWxkPXtmaWVsZH1cbiAgICAgICAgICAgICAgb25SZW1vdmU9e29uUmVtb3ZlT25lKGluZGV4KX1cbiAgICAgICAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2VPbmUoaW5kZXgpfVxuICAgICAgICAgICAgPjwvU29ydGFibGVJbWFnZT5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9Tb3J0YWJsZUNvbnRleHQ+XG4gICAgICA8L0RuZENvbnRleHQ+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmNvbnN0IEZpbGVMaW5rID0gc3R5bGVkLmFgXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuYDtcblxuY29uc3QgRmlsZUxpbmtzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVMaW5rTGlzdCA9IHN0eWxlZC51bGBcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuYDtcblxuY29uc3QgRmlsZVdpZGdldEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2NvbXBvbmVudHMuYmFkZ2V9O1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZVdpZGdldEJ1dHRvblJlbW92ZSA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2NvbXBvbmVudHMuYmFkZ2VEYW5nZXJ9O1xuYDtcblxuZnVuY3Rpb24gaXNNdWx0aXBsZSh2YWx1ZSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgTGlzdC5pc0xpc3QodmFsdWUpO1xufVxuXG5mdW5jdGlvbiBzaXplT2ZWYWx1ZSh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoO1xuICB9XG5cbiAgaWYgKExpc3QuaXNMaXN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5zaXplO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlID8gMSA6IDA7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIExpc3QuaXNMaXN0KHZhbHVlKSA/IHZhbHVlLnRvQXJyYXkoKSA6IHZhbHVlID8/ICcnO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb1NvcnRhYmxlQXJyYXkodmFsdWUpIHtcbiAgaWYgKCFpc011bHRpcGxlKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlQXJyYXkgPSB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKS5tYXAodmFsdWUgPT4gKHtcbiAgICBpZDogY3J5cHRvLnJhbmRvbVVVSUQoKSxcbiAgICB2YWx1ZSxcbiAgfSkpO1xuXG4gIHJldHVybiB2YWx1ZUFycmF5O1xufVxuXG5jb25zdCB3YXJuRGVwcmVjYXRlZE9wdGlvbnMgPSBvbmNlKGZpZWxkID0+XG4gIGNvbnNvbGUud2FybihvbmVMaW5lYFxuICBEZWNhcCBDTVMgY29uZmlnOiAke2ZpZWxkLmdldCgnbmFtZScpfSBmaWVsZDogcHJvcGVydHkgXCJvcHRpb25zXCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgdGhlXG4gICR7ZmllbGQuZ2V0KCd3aWRnZXQnKX0gd2lkZ2V0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4gUmF0aGVyIHRoYW5cbiAgXFxgZmllbGQub3B0aW9ucy5tZWRpYV9saWJyYXJ5XFxgLCBhcHBseSBtZWRpYSBsaWJyYXJ5IG9wdGlvbnMgZm9yIHRoaXMgd2lkZ2V0IHVuZGVyXG4gIFxcYGZpZWxkLm1lZGlhX2xpYnJhcnlcXGAuXG5gKSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHdpdGhGaWxlQ29udHJvbCh7IGZvckltYWdlIH0gPSB7fSkge1xuICByZXR1cm4gY2xhc3MgRmlsZUNvbnRyb2wgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICBmaWVsZDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgZ2V0QXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBtZWRpYVBhdGhzOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gICAgICBvbkFkZEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZUluc2VydGVkTWVkaWE6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbk9wZW5NZWRpYUxpYnJhcnk6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNsZWFyTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBjbGFzc05hbWVXcmFwcGVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgICAgIFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgICAgICBJbW11dGFibGVQcm9wVHlwZXMubGlzdE9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgICAgXSksXG4gICAgICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIH07XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgdmFsdWU6ICcnLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgdGhpcy5jb250cm9sSUQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgLy8gTWFudWFsbHkgdmFsaWRhdGUgUHJvcFR5cGVzIC0gUmVhY3QgMTkgYnJlYWtpbmcgY2hhbmdlXG4gICAgICBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoRmlsZUNvbnRyb2wucHJvcFR5cGVzLCB0aGlzLnByb3BzLCAncHJvcCcsICdGaWxlQ29udHJvbCcpO1xuICAgIH1cblxuICAgIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMpIHtcbiAgICAgIC8qKlxuICAgICAgICogQWx3YXlzIHVwZGF0ZSBpZiB0aGUgdmFsdWUgb3IgZ2V0QXNzZXQgY2hhbmdlcy5cbiAgICAgICAqL1xuICAgICAgaWYgKHRoaXMucHJvcHMudmFsdWUgIT09IG5leHRQcm9wcy52YWx1ZSB8fCB0aGlzLnByb3BzLmdldEFzc2V0ICE9PSBuZXh0UHJvcHMuZ2V0QXNzZXQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogSWYgdGhlcmUgaXMgYSBtZWRpYSBwYXRoIGZvciB0aGlzIGNvbnRyb2wgaW4gdGhlIHN0YXRlIG9iamVjdCwgYW5kIHRoYXRcbiAgICAgICAqIHBhdGggaXMgZGlmZmVyZW50IHRoYW4gdGhlIHZhbHVlIGluIGBuZXh0UHJvcHNgLCB1cGRhdGUuXG4gICAgICAgKi9cbiAgICAgIGNvbnN0IG1lZGlhUGF0aCA9IG5leHRQcm9wcy5tZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG5leHRQcm9wcy52YWx1ZSAhPT0gbWVkaWFQYXRoKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgY29uc3QgeyBtZWRpYVBhdGhzLCB2YWx1ZSwgb25SZW1vdmVJbnNlcnRlZE1lZGlhLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG1lZGlhUGF0aCA9IG1lZGlhUGF0aHMuZ2V0KHRoaXMuY29udHJvbElEKTtcbiAgICAgIGlmIChtZWRpYVBhdGggJiYgbWVkaWFQYXRoICE9PSB2YWx1ZSkge1xuICAgICAgICBvbkNoYW5nZShtZWRpYVBhdGgpO1xuICAgICAgfSBlbHNlIGlmIChtZWRpYVBhdGggJiYgbWVkaWFQYXRoID09PSB2YWx1ZSkge1xuICAgICAgICBvblJlbW92ZUluc2VydGVkTWVkaWEodGhpcy5jb250cm9sSUQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZU1lZGlhQ29udHJvbCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ2hhbmdlID0gZSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICBhbGxvd011bHRpcGxlOiAhIW1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2FsbG93X211bHRpcGxlJywgdHJ1ZSksXG4gICAgICAgIGNvbmZpZzogbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJyksXG4gICAgICAgIGZpZWxkLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGhhbmRsZVVybCA9IHN1YmplY3QgPT4gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5wcm9tcHQodGhpcy5wcm9wcy50KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnByb21wdFVybGApKTtcblxuICAgICAgaWYgKHVybCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZSh1cmwpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBoYW5kbGVSZW1vdmUgPSBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMucHJvcHMub25DbGVhck1lZGlhQ29udHJvbCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZSgnJyk7XG4gICAgfTtcblxuICAgIG9uUmVtb3ZlT25lID0gaW5kZXggPT4gKCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZUxpc3RUb0FycmF5KHRoaXMucHJvcHMudmFsdWUpO1xuICAgICAgdmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHNpemVPZlZhbHVlKHZhbHVlKSA+IDAgPyBbLi4udmFsdWVdIDogbnVsbCk7XG4gICAgfTtcblxuICAgIG9uUmVwbGFjZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIHJlcGxhY2VJbmRleDogaW5kZXgsXG4gICAgICAgIGFsbG93TXVsdGlwbGU6IGZhbHNlLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBnZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoZmllbGQuaGFzSW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSkpIHtcbiAgICAgICAgd2FybkRlcHJlY2F0ZWRPcHRpb25zKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkLmdldEluKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10sIE1hcCgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkLmdldCgnbWVkaWFfbGlicmFyeScsIE1hcCgpKTtcbiAgICB9O1xuXG4gICAgYWxsb3dzTXVsdGlwbGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJywgZmFsc2UpICYmXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLmdldCgnbXVsdGlwbGUnLCBmYWxzZSlcbiAgICAgICk7XG4gICAgfTtcblxuICAgIG9uU29ydEVuZCA9ICh7IG9sZEluZGV4LCBuZXdJbmRleCB9KSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBhcnJheU1vdmUodmFsdWUsIG9sZEluZGV4LCBuZXdJbmRleCk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIGdldFZhbGlkYXRlVmFsdWUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpc011bHRpcGxlKHZhbHVlKSA/IHZhbHVlLm1hcCh2ID0+IGJhc2VuYW1lKHYpKSA6IGJhc2VuYW1lKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGluayA9IHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSBNQVhfRElTUExBWV9MRU5HVEg7XG4gICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA8PSBzaXplKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRleHQgPSBgJHt2YWx1ZS5zbGljZSgwLCBzaXplIC8gMil9XFx1MjAyNiR7dmFsdWUuc2xpY2UoLShzaXplIC8gMikgKyAxKX1gO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEZpbGVMaW5rIGhyZWY9e3ZhbHVlfSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgIHt0ZXh0fVxuICAgICAgICA8L0ZpbGVMaW5rPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmtzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPEZpbGVMaW5rcz5cbiAgICAgICAgICAgIDxGaWxlTGlua0xpc3Q+XG4gICAgICAgICAgICAgIHt2YWx1ZS5tYXAodmFsID0+IChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXt2YWx9Pnt0aGlzLnJlbmRlckZpbGVMaW5rKHZhbCl9PC9saT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L0ZpbGVMaW5rTGlzdD5cbiAgICAgICAgICA8L0ZpbGVMaW5rcz5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiA8RmlsZUxpbmtzPnt0aGlzLnJlbmRlckZpbGVMaW5rKHZhbHVlKX08L0ZpbGVMaW5rcz47XG4gICAgfTtcblxuICAgIHJlbmRlckltYWdlcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZ2V0QXNzZXQsIHZhbHVlLCBmaWVsZCB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IGl0ZW1zID0gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKTtcblxuICAgICAgaWYgKGlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXJcbiAgICAgICAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgICAgICAgIG9uU29ydEVuZD17dGhpcy5vblNvcnRFbmR9XG4gICAgICAgICAgICBvblJlbW92ZU9uZT17dGhpcy5vblJlbW92ZU9uZX1cbiAgICAgICAgICAgIG9uUmVwbGFjZU9uZT17dGhpcy5vblJlcGxhY2VPbmV9XG4gICAgICAgICAgICBkaXN0YW5jZT17NH1cbiAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgIGZpZWxkPXtmaWVsZH1cbiAgICAgICAgICAgIGF4aXM9XCJ4eVwiXG4gICAgICAgICAgICBsb2NrVG9Db250YWluZXJFZGdlcz17dHJ1ZX1cbiAgICAgICAgICA+PC9Tb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyPlxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8SW1hZ2VXcmFwcGVyPlxuICAgICAgICAgIDxJbWFnZSB2YWx1ZT17dmFsdWV9IGZpZWxkPXtmaWVsZH0gZ2V0QXNzZXQ9e2dldEFzc2V0fSAvPlxuICAgICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlclNlbGVjdGlvbiA9IHN1YmplY3QgPT4ge1xuICAgICAgY29uc3QgeyB0LCBmaWVsZCB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IGFsbG93c011bHRpcGxlID0gdGhpcy5hbGxvd3NNdWx0aXBsZSgpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7Zm9ySW1hZ2UgPyB0aGlzLnJlbmRlckltYWdlcygpIDogbnVsbH1cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAge2ZvckltYWdlID8gbnVsbCA6IHRoaXMucmVuZGVyRmlsZUxpbmtzKCl9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICAgIHt0KFxuICAgICAgICAgICAgICAgIGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LiR7XG4gICAgICAgICAgICAgICAgICB0aGlzLmFsbG93c011bHRpcGxlKCkgPyAnYWRkTW9yZScgOiAnY2hvb3NlRGlmZmVyZW50J1xuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpICYmICF0aGlzLmFsbG93c011bHRpcGxlKCkgPyAoXG4gICAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlVXJsKHN1YmplY3QpfT5cbiAgICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5yZXBsYWNlVXJsYCl9XG4gICAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgb25DbGljaz17dGhpcy5oYW5kbGVSZW1vdmV9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5yZW1vdmUke2FsbG93c011bHRpcGxlID8gJ0FsbCcgOiAnJ31gKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvblJlbW92ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJOb1NlbGVjdGlvbiA9IHN1YmplY3QgPT4ge1xuICAgICAgY29uc3QgeyB0LCBmaWVsZCB9ID0gdGhpcy5wcm9wcztcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uY2hvb3NlJHt0aGlzLmFsbG93c011bHRpcGxlKCkgPyAnTXVsdGlwbGUnIDogJyd9YCl9XG4gICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSA/IChcbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlVXJsKHN1YmplY3QpfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uY2hvb3NlVXJsYCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgeyB2YWx1ZSwgY2xhc3NOYW1lV3JhcHBlciB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHN1YmplY3QgPSBmb3JJbWFnZSA/ICdpbWFnZScgOiAnZmlsZSc7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVXcmFwcGVyfT5cbiAgICAgICAgICA8c3Bhbj57dmFsdWUgPyB0aGlzLnJlbmRlclNlbGVjdGlvbihzdWJqZWN0KSA6IHRoaXMucmVuZGVyTm9TZWxlY3Rpb24oc3ViamVjdCl9PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICB9O1xufVxuIl19 */",
125
+ styles: "display:flex;flex-wrap:wrap;label:SortableMultiImageWrapper;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0ljIiwiZmlsZSI6Ii4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */",
126
126
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
127
127
  };
128
128
  function SortableMultiImageWrapper({
@@ -181,7 +181,7 @@ const FileLink = /*#__PURE__*/_styled("a", {
181
181
  styles: "margin-bottom:20px;font-weight:normal;color:inherit;&:hover,&:active,&:focus{text-decoration:underline;}"
182
182
  } : {
183
183
  name: "7mbjrw",
184
- styles: "margin-bottom:20px;font-weight:normal;color:inherit;&:hover,&:active,&:focus{text-decoration:underline;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0t5QiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */",
184
+ styles: "margin-bottom:20px;font-weight:normal;color:inherit;&:hover,&:active,&:focus{text-decoration:underline;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0t5QiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IG9uY2UgZnJvbSAnbG9kYXNoL29uY2UnO1xuaW1wb3J0IHsgb25lTGluZSB9IGZyb20gJ2NvbW1vbi10YWdzJztcbmltcG9ydCB7XG4gIGxlbmd0aHMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIGJvcmRlcnMsXG4gIGVmZmVjdHMsXG4gIHNoYWRvd3MsXG4gIEljb25CdXR0b24sXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnZGVjYXAtY21zLWxpYi11dGlsJztcbmltcG9ydCB7IGFycmF5TW92ZUltbXV0YWJsZSBhcyBhcnJheU1vdmUgfSBmcm9tICdhcnJheS1tb3ZlJztcbmltcG9ydCB7XG4gIERuZENvbnRleHQsXG4gIE1vdXNlU2Vuc29yLFxuICBUb3VjaFNlbnNvcixcbiAgY2xvc2VzdENlbnRlcixcbiAgdXNlU2Vuc29yLFxuICB1c2VTZW5zb3JzLFxufSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7IFNvcnRhYmxlQ29udGV4dCwgdXNlU29ydGFibGUgfSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQgeyBDU1MgfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgcmVzdHJpY3RUb1BhcmVudEVsZW1lbnQgfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBNQVhfRElTUExBWV9MRU5HVEggPSA1MDtcblxuY29uc3QgSW1hZ2VXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZmxleC1iYXNpczogMTU1cHg7XG4gIHdpZHRoOiAxNTVweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6ICR7Ym9yZGVycy50ZXh0RmllbGR9O1xuICBib3JkZXItcmFkaXVzOiAke2xlbmd0aHMuYm9yZGVyUmFkaXVzfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJHtlZmZlY3RzLmNoZWNrZXJib2FyZH07XG4gICR7c2hhZG93cy5pbnNldH07XG4gIGN1cnNvcjogJHtwcm9wcyA9PiAocHJvcHMuc29ydGFibGUgPyAncG9pbnRlcicgOiAnYXV0bycpfTtcbmA7XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuYDtcblxuY29uc3QgU3R5bGVkSW1hZ2UgPSBzdHlsZWQuaW1nYFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuYDtcblxuZnVuY3Rpb24gSW1hZ2UoeyB2YWx1ZSwgZmllbGQsIGdldEFzc2V0IH0pIHtcbiAgY29uc3QgW2Fzc2V0LCBzZXRBc3NldF0gPSB1c2VTdGF0ZShudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgbmV3QXNzZXQgPSBnZXRBc3NldCh2YWx1ZSwgZmllbGQpO1xuICAgICAgc2V0QXNzZXQobmV3QXNzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBc3NldChudWxsKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgZmllbGQsIGdldEFzc2V0XSk7XG5cbiAgcmV0dXJuIGFzc2V0ID8gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiBzcmM9e2Fzc2V0fSAvPiA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlSW1hZ2VCdXR0b25zKHsgb25SZW1vdmUsIG9uUmVwbGFjZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJtZWRpYVwiIG9uQ2xpY2s9e29uUmVwbGFjZX0+PC9JY29uQnV0dG9uPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cImNsb3NlXCIgb25DbGljaz17b25SZW1vdmV9PjwvSWNvbkJ1dHRvbj5cbiAgICA8L1NvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZShwcm9wcykge1xuICBjb25zdCB7IGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgaWQ6IHByb3BzLmlkLFxuICB9KTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06IENTUy5UcmFuc2Zvcm0udG9TdHJpbmcodHJhbnNmb3JtKSxcbiAgICB0cmFuc2l0aW9uLFxuICB9O1xuXG4gIGNvbnN0IHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3NldE5vZGVSZWZ9IHN0eWxlPXtzdHlsZX0gey4uLmF0dHJpYnV0ZXN9IHsuLi5saXN0ZW5lcnN9PlxuICAgICAgPEltYWdlV3JhcHBlciBzb3J0YWJsZT5cbiAgICAgICAgPEltYWdlIHZhbHVlPXtpdGVtVmFsdWV9IGZpZWxkPXtmaWVsZH0gZ2V0QXNzZXQ9e2dldEFzc2V0fSAvPlxuICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNcbiAgICAgICAgaXRlbT17aXRlbVZhbHVlfVxuICAgICAgICBvblJlbW92ZT17b25SZW1vdmV9XG4gICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlfVxuICAgICAgPjwvU29ydGFibGVJbWFnZUJ1dHRvbnM+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIoe1xuICBpdGVtcyxcbiAgZ2V0QXNzZXQsXG4gIGZpZWxkLFxuICBvblNvcnRFbmQsXG4gIG9uUmVtb3ZlT25lLFxuICBvblJlcGxhY2VPbmUsXG59KSB7XG4gIGNvbnN0IGFjdGl2YXRpb25Db25zdHJhaW50ID0geyBkaXN0YW5jZTogNCB9O1xuICBjb25zdCBzZW5zb3JzID0gdXNlU2Vuc29ycyhcbiAgICB1c2VTZW5zb3IoTW91c2VTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICAgdXNlU2Vuc29yKFRvdWNoU2Vuc29yLCB7IGFjdGl2YXRpb25Db25zdHJhaW50IH0pLFxuICApO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZVNvcnRFbmQoeyBhY3RpdmUsIG92ZXIgfSkge1xuICAgIG9uU29ydEVuZCh7XG4gICAgICBvbGRJbmRleDogaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWN0aXZlLmlkKSxcbiAgICAgIG5ld0luZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBvdmVyLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLXVua25vd24tcHJvcGVydHlcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9QYXJlbnRFbGVtZW50XX1cbiAgICAgICAgY29sbGlzaW9uRGV0ZWN0aW9uPXtjbG9zZXN0Q2VudGVyfVxuICAgICAgICBzZW5zb3JzPXtzZW5zb3JzfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZVNvcnRFbmR9XG4gICAgICA+XG4gICAgICAgIDxTb3J0YWJsZUNvbnRleHQgaXRlbXM9e2l0ZW1zfT5cbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPFNvcnRhYmxlSW1hZ2VcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpZD17aXRlbS5pZH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBpdGVtVmFsdWU9e2l0ZW0udmFsdWV9XG4gICAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZU9uZShpbmRleCl9XG4gICAgICAgICAgICA+PC9Tb3J0YWJsZUltYWdlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuY29uc3QgRmlsZUxpbmsgPSBzdHlsZWQuYWBcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5gO1xuXG5jb25zdCBGaWxlTGlua3MgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZUxpbmtMaXN0ID0gc3R5bGVkLnVsYFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZX07XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZURhbmdlcn07XG5gO1xuXG5mdW5jdGlvbiBpc011bHRpcGxlKHZhbHVlKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBMaXN0LmlzTGlzdCh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHNpemVPZlZhbHVlKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gIH1cblxuICBpZiAoTGlzdC5pc0xpc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNpemU7XG4gIH1cblxuICByZXR1cm4gdmFsdWUgPyAxIDogMDtcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkge1xuICByZXR1cm4gTGlzdC5pc0xpc3QodmFsdWUpID8gdmFsdWUudG9BcnJheSgpIDogdmFsdWUgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSkge1xuICBpZiAoIWlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLm1hcCh2YWx1ZSA9PiAoe1xuICAgIGlkOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgIHZhbHVlLFxuICB9KSk7XG5cbiAgcmV0dXJuIHZhbHVlQXJyYXk7XG59XG5cbmNvbnN0IHdhcm5EZXByZWNhdGVkT3B0aW9ucyA9IG9uY2UoZmllbGQgPT5cbiAgY29uc29sZS53YXJuKG9uZUxpbmVgXG4gIERlY2FwIENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAvLyBNYW51YWxseSB2YWxpZGF0ZSBQcm9wVHlwZXMgLSBSZWFjdCAxOSBicmVha2luZyBjaGFuZ2VcbiAgICAgIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyhGaWxlQ29udHJvbC5wcm9wVHlwZXMsIHRoaXMucHJvcHMsICdwcm9wJywgJ0ZpbGVDb250cm9sJyk7XG4gICAgfVxuXG4gICAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgICAgLyoqXG4gICAgICAgKiBBbHdheXMgdXBkYXRlIGlmIHRoZSB2YWx1ZSBvciBnZXRBc3NldCBjaGFuZ2VzLlxuICAgICAgICovXG4gICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gbmV4dFByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMuZ2V0QXNzZXQgIT09IG5leHRQcm9wcy5nZXRBc3NldCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB0aGVyZSBpcyBhIG1lZGlhIHBhdGggZm9yIHRoaXMgY29udHJvbCBpbiB0aGUgc3RhdGUgb2JqZWN0LCBhbmQgdGhhdFxuICAgICAgICogcGF0aCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgdmFsdWUgaW4gYG5leHRQcm9wc2AsIHVwZGF0ZS5cbiAgICAgICAqL1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbmV4dFByb3BzLm1lZGlhUGF0aHMuZ2V0KHRoaXMuY29udHJvbElEKTtcbiAgICAgIGlmIChtZWRpYVBhdGggJiYgbmV4dFByb3BzLnZhbHVlICE9PSBtZWRpYVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCB7IG1lZGlhUGF0aHMsIHZhbHVlLCBvblJlbW92ZUluc2VydGVkTWVkaWEsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggIT09IHZhbHVlKSB7XG4gICAgICAgIG9uQ2hhbmdlKG1lZGlhUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggPT09IHZhbHVlKSB7XG4gICAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UgPSBlID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIGFsbG93TXVsdGlwbGU6ICEhbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnYWxsb3dfbXVsdGlwbGUnLCB0cnVlKSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaGFuZGxlVXJsID0gc3ViamVjdCA9PiBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgdXJsID0gd2luZG93LnByb21wdCh0aGlzLnByb3BzLnQoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucHJvbXB0VXJsYCkpO1xuXG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlTGlzdFRvQXJyYXkodGhpcy5wcm9wcy52YWx1ZSk7XG4gICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2Uoc2l6ZU9mVmFsdWUodmFsdWUpID4gMCA/IFsuLi52YWx1ZV0gOiBudWxsKTtcbiAgICB9O1xuXG4gICAgb25SZXBsYWNlT25lID0gaW5kZXggPT4gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgcmVwbGFjZUluZGV4OiBpbmRleCxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZzogbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJyksXG4gICAgICAgIGZpZWxkLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChmaWVsZC5oYXNJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddKSkge1xuICAgICAgICB3YXJuRGVwcmVjYXRlZE9wdGlvbnMoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQuZ2V0SW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSwgTWFwKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQuZ2V0KCdtZWRpYV9saWJyYXJ5JywgTWFwKCkpO1xuICAgIH07XG5cbiAgICBhbGxvd3NNdWx0aXBsZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnLCBmYWxzZSkgJiZcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJykuZ2V0KCdtdWx0aXBsZScsIGZhbHNlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgb25Tb3J0RW5kID0gKHsgb2xkSW5kZXgsIG5ld0luZGV4IH0pID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGFycmF5TW92ZSh2YWx1ZSwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICB9O1xuXG4gICAgZ2V0VmFsaWRhdGVWYWx1ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzTXVsdGlwbGUodmFsdWUpID8gdmFsdWUubWFwKHYgPT4gYmFzZW5hbWUodikpIDogYmFzZW5hbWUodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rID0gdmFsdWUgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IE1BWF9ESVNQTEFZX0xFTkdUSDtcbiAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoIDw9IHNpemUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdGV4dCA9IGAke3ZhbHVlLnNsaWNlKDAsIHNpemUgLyAyKX1cXHUyMDI2JHt2YWx1ZS5zbGljZSgtKHNpemUgLyAyKSArIDEpfWA7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RmlsZUxpbmsgaHJlZj17dmFsdWV9IHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmlsZUxpbms+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGlua3MgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RmlsZUxpbmtzPlxuICAgICAgICAgICAgPEZpbGVMaW5rTGlzdD5cbiAgICAgICAgICAgICAge3ZhbHVlLm1hcCh2YWwgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e3ZhbH0+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsKX08L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRmlsZUxpbmtMaXN0PlxuICAgICAgICAgIDwvRmlsZUxpbmtzPlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDxGaWxlTGlua3M+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsdWUpfTwvRmlsZUxpbmtzPjtcbiAgICB9O1xuXG4gICAgcmVuZGVySW1hZ2VzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBc3NldCwgdmFsdWUsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgaXRlbXMgPSB2YWx1ZUxpc3RUb1NvcnRhYmxlQXJyYXkodmFsdWUpO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U29ydGFibGVNdWx0aUltYWdlV3JhcHBlclxuICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgICAgb25Tb3J0RW5kPXt0aGlzLm9uU29ydEVuZH1cbiAgICAgICAgICAgIG9uUmVtb3ZlT25lPXt0aGlzLm9uUmVtb3ZlT25lfVxuICAgICAgICAgICAgb25SZXBsYWNlT25lPXt0aGlzLm9uUmVwbGFjZU9uZX1cbiAgICAgICAgICAgIGRpc3RhbmNlPXs0fVxuICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgYXhpcz1cInh5XCJcbiAgICAgICAgICAgIGxvY2tUb0NvbnRhaW5lckVkZ2VzPXt0cnVlfVxuICAgICAgICAgID48L1NvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxJbWFnZVdyYXBwZXI+XG4gICAgICAgICAgPEltYWdlIHZhbHVlPXt2YWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgYWxsb3dzTXVsdGlwbGUgPSB0aGlzLmFsbG93c011bHRpcGxlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtmb3JJbWFnZSA/IHRoaXMucmVuZGVySW1hZ2VzKCkgOiBudWxsfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7Zm9ySW1hZ2UgPyBudWxsIDogdGhpcy5yZW5kZXJGaWxlTGlua3MoKX1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uJHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdhZGRNb3JlJyA6ICdjaG9vc2VEaWZmZXJlbnQnXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgJiYgIXRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/IChcbiAgICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlcGxhY2VVcmxgKX1cbiAgICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvblJlbW92ZSBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlbW92ZX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlbW92ZSR7YWxsb3dzTXVsdGlwbGUgPyAnQWxsJyA6ICcnfWApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlck5vU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2Uke3RoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdNdWx0aXBsZScgOiAnJ31gKX1cbiAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpID8gKFxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2VVcmxgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc3ViamVjdCA9IGZvckltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZVdyYXBwZXJ9PlxuICAgICAgICAgIDxzcGFuPnt2YWx1ZSA/IHRoaXMucmVuZGVyU2VsZWN0aW9uKHN1YmplY3QpIDogdGhpcy5yZW5kZXJOb1NlbGVjdGlvbihzdWJqZWN0KX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0= */",
185
185
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
186
186
  });
187
187
  const FileLinks = /*#__PURE__*/_styled("div", {
@@ -192,7 +192,7 @@ const FileLinks = /*#__PURE__*/_styled("div", {
192
192
  styles: "margin-bottom:12px"
193
193
  } : {
194
194
  name: "cn3xcj",
195
- styles: "margin-bottom:12px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0w0QiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */",
195
+ styles: "margin-bottom:12px/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0w0QiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IG9uY2UgZnJvbSAnbG9kYXNoL29uY2UnO1xuaW1wb3J0IHsgb25lTGluZSB9IGZyb20gJ2NvbW1vbi10YWdzJztcbmltcG9ydCB7XG4gIGxlbmd0aHMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIGJvcmRlcnMsXG4gIGVmZmVjdHMsXG4gIHNoYWRvd3MsXG4gIEljb25CdXR0b24sXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnZGVjYXAtY21zLWxpYi11dGlsJztcbmltcG9ydCB7IGFycmF5TW92ZUltbXV0YWJsZSBhcyBhcnJheU1vdmUgfSBmcm9tICdhcnJheS1tb3ZlJztcbmltcG9ydCB7XG4gIERuZENvbnRleHQsXG4gIE1vdXNlU2Vuc29yLFxuICBUb3VjaFNlbnNvcixcbiAgY2xvc2VzdENlbnRlcixcbiAgdXNlU2Vuc29yLFxuICB1c2VTZW5zb3JzLFxufSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7IFNvcnRhYmxlQ29udGV4dCwgdXNlU29ydGFibGUgfSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQgeyBDU1MgfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgcmVzdHJpY3RUb1BhcmVudEVsZW1lbnQgfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBNQVhfRElTUExBWV9MRU5HVEggPSA1MDtcblxuY29uc3QgSW1hZ2VXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZmxleC1iYXNpczogMTU1cHg7XG4gIHdpZHRoOiAxNTVweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6ICR7Ym9yZGVycy50ZXh0RmllbGR9O1xuICBib3JkZXItcmFkaXVzOiAke2xlbmd0aHMuYm9yZGVyUmFkaXVzfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJHtlZmZlY3RzLmNoZWNrZXJib2FyZH07XG4gICR7c2hhZG93cy5pbnNldH07XG4gIGN1cnNvcjogJHtwcm9wcyA9PiAocHJvcHMuc29ydGFibGUgPyAncG9pbnRlcicgOiAnYXV0bycpfTtcbmA7XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuYDtcblxuY29uc3QgU3R5bGVkSW1hZ2UgPSBzdHlsZWQuaW1nYFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuYDtcblxuZnVuY3Rpb24gSW1hZ2UoeyB2YWx1ZSwgZmllbGQsIGdldEFzc2V0IH0pIHtcbiAgY29uc3QgW2Fzc2V0LCBzZXRBc3NldF0gPSB1c2VTdGF0ZShudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgbmV3QXNzZXQgPSBnZXRBc3NldCh2YWx1ZSwgZmllbGQpO1xuICAgICAgc2V0QXNzZXQobmV3QXNzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBc3NldChudWxsKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgZmllbGQsIGdldEFzc2V0XSk7XG5cbiAgcmV0dXJuIGFzc2V0ID8gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiBzcmM9e2Fzc2V0fSAvPiA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlSW1hZ2VCdXR0b25zKHsgb25SZW1vdmUsIG9uUmVwbGFjZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJtZWRpYVwiIG9uQ2xpY2s9e29uUmVwbGFjZX0+PC9JY29uQnV0dG9uPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cImNsb3NlXCIgb25DbGljaz17b25SZW1vdmV9PjwvSWNvbkJ1dHRvbj5cbiAgICA8L1NvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZShwcm9wcykge1xuICBjb25zdCB7IGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgaWQ6IHByb3BzLmlkLFxuICB9KTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06IENTUy5UcmFuc2Zvcm0udG9TdHJpbmcodHJhbnNmb3JtKSxcbiAgICB0cmFuc2l0aW9uLFxuICB9O1xuXG4gIGNvbnN0IHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3NldE5vZGVSZWZ9IHN0eWxlPXtzdHlsZX0gey4uLmF0dHJpYnV0ZXN9IHsuLi5saXN0ZW5lcnN9PlxuICAgICAgPEltYWdlV3JhcHBlciBzb3J0YWJsZT5cbiAgICAgICAgPEltYWdlIHZhbHVlPXtpdGVtVmFsdWV9IGZpZWxkPXtmaWVsZH0gZ2V0QXNzZXQ9e2dldEFzc2V0fSAvPlxuICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNcbiAgICAgICAgaXRlbT17aXRlbVZhbHVlfVxuICAgICAgICBvblJlbW92ZT17b25SZW1vdmV9XG4gICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlfVxuICAgICAgPjwvU29ydGFibGVJbWFnZUJ1dHRvbnM+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIoe1xuICBpdGVtcyxcbiAgZ2V0QXNzZXQsXG4gIGZpZWxkLFxuICBvblNvcnRFbmQsXG4gIG9uUmVtb3ZlT25lLFxuICBvblJlcGxhY2VPbmUsXG59KSB7XG4gIGNvbnN0IGFjdGl2YXRpb25Db25zdHJhaW50ID0geyBkaXN0YW5jZTogNCB9O1xuICBjb25zdCBzZW5zb3JzID0gdXNlU2Vuc29ycyhcbiAgICB1c2VTZW5zb3IoTW91c2VTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICAgdXNlU2Vuc29yKFRvdWNoU2Vuc29yLCB7IGFjdGl2YXRpb25Db25zdHJhaW50IH0pLFxuICApO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZVNvcnRFbmQoeyBhY3RpdmUsIG92ZXIgfSkge1xuICAgIG9uU29ydEVuZCh7XG4gICAgICBvbGRJbmRleDogaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWN0aXZlLmlkKSxcbiAgICAgIG5ld0luZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBvdmVyLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLXVua25vd24tcHJvcGVydHlcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9QYXJlbnRFbGVtZW50XX1cbiAgICAgICAgY29sbGlzaW9uRGV0ZWN0aW9uPXtjbG9zZXN0Q2VudGVyfVxuICAgICAgICBzZW5zb3JzPXtzZW5zb3JzfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZVNvcnRFbmR9XG4gICAgICA+XG4gICAgICAgIDxTb3J0YWJsZUNvbnRleHQgaXRlbXM9e2l0ZW1zfT5cbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPFNvcnRhYmxlSW1hZ2VcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpZD17aXRlbS5pZH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBpdGVtVmFsdWU9e2l0ZW0udmFsdWV9XG4gICAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZU9uZShpbmRleCl9XG4gICAgICAgICAgICA+PC9Tb3J0YWJsZUltYWdlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuY29uc3QgRmlsZUxpbmsgPSBzdHlsZWQuYWBcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5gO1xuXG5jb25zdCBGaWxlTGlua3MgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZUxpbmtMaXN0ID0gc3R5bGVkLnVsYFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZX07XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZURhbmdlcn07XG5gO1xuXG5mdW5jdGlvbiBpc011bHRpcGxlKHZhbHVlKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBMaXN0LmlzTGlzdCh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHNpemVPZlZhbHVlKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gIH1cblxuICBpZiAoTGlzdC5pc0xpc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNpemU7XG4gIH1cblxuICByZXR1cm4gdmFsdWUgPyAxIDogMDtcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkge1xuICByZXR1cm4gTGlzdC5pc0xpc3QodmFsdWUpID8gdmFsdWUudG9BcnJheSgpIDogdmFsdWUgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSkge1xuICBpZiAoIWlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLm1hcCh2YWx1ZSA9PiAoe1xuICAgIGlkOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgIHZhbHVlLFxuICB9KSk7XG5cbiAgcmV0dXJuIHZhbHVlQXJyYXk7XG59XG5cbmNvbnN0IHdhcm5EZXByZWNhdGVkT3B0aW9ucyA9IG9uY2UoZmllbGQgPT5cbiAgY29uc29sZS53YXJuKG9uZUxpbmVgXG4gIERlY2FwIENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAvLyBNYW51YWxseSB2YWxpZGF0ZSBQcm9wVHlwZXMgLSBSZWFjdCAxOSBicmVha2luZyBjaGFuZ2VcbiAgICAgIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyhGaWxlQ29udHJvbC5wcm9wVHlwZXMsIHRoaXMucHJvcHMsICdwcm9wJywgJ0ZpbGVDb250cm9sJyk7XG4gICAgfVxuXG4gICAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgICAgLyoqXG4gICAgICAgKiBBbHdheXMgdXBkYXRlIGlmIHRoZSB2YWx1ZSBvciBnZXRBc3NldCBjaGFuZ2VzLlxuICAgICAgICovXG4gICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gbmV4dFByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMuZ2V0QXNzZXQgIT09IG5leHRQcm9wcy5nZXRBc3NldCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB0aGVyZSBpcyBhIG1lZGlhIHBhdGggZm9yIHRoaXMgY29udHJvbCBpbiB0aGUgc3RhdGUgb2JqZWN0LCBhbmQgdGhhdFxuICAgICAgICogcGF0aCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgdmFsdWUgaW4gYG5leHRQcm9wc2AsIHVwZGF0ZS5cbiAgICAgICAqL1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbmV4dFByb3BzLm1lZGlhUGF0aHMuZ2V0KHRoaXMuY29udHJvbElEKTtcbiAgICAgIGlmIChtZWRpYVBhdGggJiYgbmV4dFByb3BzLnZhbHVlICE9PSBtZWRpYVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCB7IG1lZGlhUGF0aHMsIHZhbHVlLCBvblJlbW92ZUluc2VydGVkTWVkaWEsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggIT09IHZhbHVlKSB7XG4gICAgICAgIG9uQ2hhbmdlKG1lZGlhUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggPT09IHZhbHVlKSB7XG4gICAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UgPSBlID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIGFsbG93TXVsdGlwbGU6ICEhbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnYWxsb3dfbXVsdGlwbGUnLCB0cnVlKSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaGFuZGxlVXJsID0gc3ViamVjdCA9PiBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgdXJsID0gd2luZG93LnByb21wdCh0aGlzLnByb3BzLnQoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucHJvbXB0VXJsYCkpO1xuXG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlTGlzdFRvQXJyYXkodGhpcy5wcm9wcy52YWx1ZSk7XG4gICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2Uoc2l6ZU9mVmFsdWUodmFsdWUpID4gMCA/IFsuLi52YWx1ZV0gOiBudWxsKTtcbiAgICB9O1xuXG4gICAgb25SZXBsYWNlT25lID0gaW5kZXggPT4gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgcmVwbGFjZUluZGV4OiBpbmRleCxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZzogbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJyksXG4gICAgICAgIGZpZWxkLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChmaWVsZC5oYXNJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddKSkge1xuICAgICAgICB3YXJuRGVwcmVjYXRlZE9wdGlvbnMoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQuZ2V0SW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSwgTWFwKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQuZ2V0KCdtZWRpYV9saWJyYXJ5JywgTWFwKCkpO1xuICAgIH07XG5cbiAgICBhbGxvd3NNdWx0aXBsZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnLCBmYWxzZSkgJiZcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJykuZ2V0KCdtdWx0aXBsZScsIGZhbHNlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgb25Tb3J0RW5kID0gKHsgb2xkSW5kZXgsIG5ld0luZGV4IH0pID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGFycmF5TW92ZSh2YWx1ZSwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICB9O1xuXG4gICAgZ2V0VmFsaWRhdGVWYWx1ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzTXVsdGlwbGUodmFsdWUpID8gdmFsdWUubWFwKHYgPT4gYmFzZW5hbWUodikpIDogYmFzZW5hbWUodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rID0gdmFsdWUgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IE1BWF9ESVNQTEFZX0xFTkdUSDtcbiAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoIDw9IHNpemUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdGV4dCA9IGAke3ZhbHVlLnNsaWNlKDAsIHNpemUgLyAyKX1cXHUyMDI2JHt2YWx1ZS5zbGljZSgtKHNpemUgLyAyKSArIDEpfWA7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RmlsZUxpbmsgaHJlZj17dmFsdWV9IHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmlsZUxpbms+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGlua3MgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RmlsZUxpbmtzPlxuICAgICAgICAgICAgPEZpbGVMaW5rTGlzdD5cbiAgICAgICAgICAgICAge3ZhbHVlLm1hcCh2YWwgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e3ZhbH0+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsKX08L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRmlsZUxpbmtMaXN0PlxuICAgICAgICAgIDwvRmlsZUxpbmtzPlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDxGaWxlTGlua3M+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsdWUpfTwvRmlsZUxpbmtzPjtcbiAgICB9O1xuXG4gICAgcmVuZGVySW1hZ2VzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBc3NldCwgdmFsdWUsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgaXRlbXMgPSB2YWx1ZUxpc3RUb1NvcnRhYmxlQXJyYXkodmFsdWUpO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U29ydGFibGVNdWx0aUltYWdlV3JhcHBlclxuICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgICAgb25Tb3J0RW5kPXt0aGlzLm9uU29ydEVuZH1cbiAgICAgICAgICAgIG9uUmVtb3ZlT25lPXt0aGlzLm9uUmVtb3ZlT25lfVxuICAgICAgICAgICAgb25SZXBsYWNlT25lPXt0aGlzLm9uUmVwbGFjZU9uZX1cbiAgICAgICAgICAgIGRpc3RhbmNlPXs0fVxuICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgYXhpcz1cInh5XCJcbiAgICAgICAgICAgIGxvY2tUb0NvbnRhaW5lckVkZ2VzPXt0cnVlfVxuICAgICAgICAgID48L1NvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxJbWFnZVdyYXBwZXI+XG4gICAgICAgICAgPEltYWdlIHZhbHVlPXt2YWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgYWxsb3dzTXVsdGlwbGUgPSB0aGlzLmFsbG93c011bHRpcGxlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtmb3JJbWFnZSA/IHRoaXMucmVuZGVySW1hZ2VzKCkgOiBudWxsfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7Zm9ySW1hZ2UgPyBudWxsIDogdGhpcy5yZW5kZXJGaWxlTGlua3MoKX1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uJHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdhZGRNb3JlJyA6ICdjaG9vc2VEaWZmZXJlbnQnXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgJiYgIXRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/IChcbiAgICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlcGxhY2VVcmxgKX1cbiAgICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvblJlbW92ZSBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlbW92ZX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlbW92ZSR7YWxsb3dzTXVsdGlwbGUgPyAnQWxsJyA6ICcnfWApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlck5vU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2Uke3RoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdNdWx0aXBsZScgOiAnJ31gKX1cbiAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpID8gKFxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2VVcmxgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc3ViamVjdCA9IGZvckltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZVdyYXBwZXJ9PlxuICAgICAgICAgIDxzcGFuPnt2YWx1ZSA/IHRoaXMucmVuZGVyU2VsZWN0aW9uKHN1YmplY3QpIDogdGhpcy5yZW5kZXJOb1NlbGVjdGlvbihzdWJqZWN0KX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0= */",
196
196
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
197
197
  });
198
198
  const FileLinkList = /*#__PURE__*/_styled("ul", {
@@ -203,17 +203,17 @@ const FileLinkList = /*#__PURE__*/_styled("ul", {
203
203
  styles: "list-style-type:none"
204
204
  } : {
205
205
  name: "ffhm6p",
206
- styles: "list-style-type:none/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0w4QiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */",
206
+ styles: "list-style-type:none/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0w4QiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IG9uY2UgZnJvbSAnbG9kYXNoL29uY2UnO1xuaW1wb3J0IHsgb25lTGluZSB9IGZyb20gJ2NvbW1vbi10YWdzJztcbmltcG9ydCB7XG4gIGxlbmd0aHMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIGJvcmRlcnMsXG4gIGVmZmVjdHMsXG4gIHNoYWRvd3MsXG4gIEljb25CdXR0b24sXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnZGVjYXAtY21zLWxpYi11dGlsJztcbmltcG9ydCB7IGFycmF5TW92ZUltbXV0YWJsZSBhcyBhcnJheU1vdmUgfSBmcm9tICdhcnJheS1tb3ZlJztcbmltcG9ydCB7XG4gIERuZENvbnRleHQsXG4gIE1vdXNlU2Vuc29yLFxuICBUb3VjaFNlbnNvcixcbiAgY2xvc2VzdENlbnRlcixcbiAgdXNlU2Vuc29yLFxuICB1c2VTZW5zb3JzLFxufSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7IFNvcnRhYmxlQ29udGV4dCwgdXNlU29ydGFibGUgfSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQgeyBDU1MgfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgcmVzdHJpY3RUb1BhcmVudEVsZW1lbnQgfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBNQVhfRElTUExBWV9MRU5HVEggPSA1MDtcblxuY29uc3QgSW1hZ2VXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZmxleC1iYXNpczogMTU1cHg7XG4gIHdpZHRoOiAxNTVweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6ICR7Ym9yZGVycy50ZXh0RmllbGR9O1xuICBib3JkZXItcmFkaXVzOiAke2xlbmd0aHMuYm9yZGVyUmFkaXVzfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJHtlZmZlY3RzLmNoZWNrZXJib2FyZH07XG4gICR7c2hhZG93cy5pbnNldH07XG4gIGN1cnNvcjogJHtwcm9wcyA9PiAocHJvcHMuc29ydGFibGUgPyAncG9pbnRlcicgOiAnYXV0bycpfTtcbmA7XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuYDtcblxuY29uc3QgU3R5bGVkSW1hZ2UgPSBzdHlsZWQuaW1nYFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuYDtcblxuZnVuY3Rpb24gSW1hZ2UoeyB2YWx1ZSwgZmllbGQsIGdldEFzc2V0IH0pIHtcbiAgY29uc3QgW2Fzc2V0LCBzZXRBc3NldF0gPSB1c2VTdGF0ZShudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgbmV3QXNzZXQgPSBnZXRBc3NldCh2YWx1ZSwgZmllbGQpO1xuICAgICAgc2V0QXNzZXQobmV3QXNzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBc3NldChudWxsKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgZmllbGQsIGdldEFzc2V0XSk7XG5cbiAgcmV0dXJuIGFzc2V0ID8gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiBzcmM9e2Fzc2V0fSAvPiA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlSW1hZ2VCdXR0b25zKHsgb25SZW1vdmUsIG9uUmVwbGFjZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJtZWRpYVwiIG9uQ2xpY2s9e29uUmVwbGFjZX0+PC9JY29uQnV0dG9uPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cImNsb3NlXCIgb25DbGljaz17b25SZW1vdmV9PjwvSWNvbkJ1dHRvbj5cbiAgICA8L1NvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZShwcm9wcykge1xuICBjb25zdCB7IGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgaWQ6IHByb3BzLmlkLFxuICB9KTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06IENTUy5UcmFuc2Zvcm0udG9TdHJpbmcodHJhbnNmb3JtKSxcbiAgICB0cmFuc2l0aW9uLFxuICB9O1xuXG4gIGNvbnN0IHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3NldE5vZGVSZWZ9IHN0eWxlPXtzdHlsZX0gey4uLmF0dHJpYnV0ZXN9IHsuLi5saXN0ZW5lcnN9PlxuICAgICAgPEltYWdlV3JhcHBlciBzb3J0YWJsZT5cbiAgICAgICAgPEltYWdlIHZhbHVlPXtpdGVtVmFsdWV9IGZpZWxkPXtmaWVsZH0gZ2V0QXNzZXQ9e2dldEFzc2V0fSAvPlxuICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNcbiAgICAgICAgaXRlbT17aXRlbVZhbHVlfVxuICAgICAgICBvblJlbW92ZT17b25SZW1vdmV9XG4gICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlfVxuICAgICAgPjwvU29ydGFibGVJbWFnZUJ1dHRvbnM+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIoe1xuICBpdGVtcyxcbiAgZ2V0QXNzZXQsXG4gIGZpZWxkLFxuICBvblNvcnRFbmQsXG4gIG9uUmVtb3ZlT25lLFxuICBvblJlcGxhY2VPbmUsXG59KSB7XG4gIGNvbnN0IGFjdGl2YXRpb25Db25zdHJhaW50ID0geyBkaXN0YW5jZTogNCB9O1xuICBjb25zdCBzZW5zb3JzID0gdXNlU2Vuc29ycyhcbiAgICB1c2VTZW5zb3IoTW91c2VTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICAgdXNlU2Vuc29yKFRvdWNoU2Vuc29yLCB7IGFjdGl2YXRpb25Db25zdHJhaW50IH0pLFxuICApO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZVNvcnRFbmQoeyBhY3RpdmUsIG92ZXIgfSkge1xuICAgIG9uU29ydEVuZCh7XG4gICAgICBvbGRJbmRleDogaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWN0aXZlLmlkKSxcbiAgICAgIG5ld0luZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBvdmVyLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLXVua25vd24tcHJvcGVydHlcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9QYXJlbnRFbGVtZW50XX1cbiAgICAgICAgY29sbGlzaW9uRGV0ZWN0aW9uPXtjbG9zZXN0Q2VudGVyfVxuICAgICAgICBzZW5zb3JzPXtzZW5zb3JzfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZVNvcnRFbmR9XG4gICAgICA+XG4gICAgICAgIDxTb3J0YWJsZUNvbnRleHQgaXRlbXM9e2l0ZW1zfT5cbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPFNvcnRhYmxlSW1hZ2VcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpZD17aXRlbS5pZH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBpdGVtVmFsdWU9e2l0ZW0udmFsdWV9XG4gICAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZU9uZShpbmRleCl9XG4gICAgICAgICAgICA+PC9Tb3J0YWJsZUltYWdlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuY29uc3QgRmlsZUxpbmsgPSBzdHlsZWQuYWBcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5gO1xuXG5jb25zdCBGaWxlTGlua3MgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZUxpbmtMaXN0ID0gc3R5bGVkLnVsYFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZX07XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZURhbmdlcn07XG5gO1xuXG5mdW5jdGlvbiBpc011bHRpcGxlKHZhbHVlKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBMaXN0LmlzTGlzdCh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHNpemVPZlZhbHVlKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gIH1cblxuICBpZiAoTGlzdC5pc0xpc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNpemU7XG4gIH1cblxuICByZXR1cm4gdmFsdWUgPyAxIDogMDtcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkge1xuICByZXR1cm4gTGlzdC5pc0xpc3QodmFsdWUpID8gdmFsdWUudG9BcnJheSgpIDogdmFsdWUgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSkge1xuICBpZiAoIWlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLm1hcCh2YWx1ZSA9PiAoe1xuICAgIGlkOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgIHZhbHVlLFxuICB9KSk7XG5cbiAgcmV0dXJuIHZhbHVlQXJyYXk7XG59XG5cbmNvbnN0IHdhcm5EZXByZWNhdGVkT3B0aW9ucyA9IG9uY2UoZmllbGQgPT5cbiAgY29uc29sZS53YXJuKG9uZUxpbmVgXG4gIERlY2FwIENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAvLyBNYW51YWxseSB2YWxpZGF0ZSBQcm9wVHlwZXMgLSBSZWFjdCAxOSBicmVha2luZyBjaGFuZ2VcbiAgICAgIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyhGaWxlQ29udHJvbC5wcm9wVHlwZXMsIHRoaXMucHJvcHMsICdwcm9wJywgJ0ZpbGVDb250cm9sJyk7XG4gICAgfVxuXG4gICAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgICAgLyoqXG4gICAgICAgKiBBbHdheXMgdXBkYXRlIGlmIHRoZSB2YWx1ZSBvciBnZXRBc3NldCBjaGFuZ2VzLlxuICAgICAgICovXG4gICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gbmV4dFByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMuZ2V0QXNzZXQgIT09IG5leHRQcm9wcy5nZXRBc3NldCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB0aGVyZSBpcyBhIG1lZGlhIHBhdGggZm9yIHRoaXMgY29udHJvbCBpbiB0aGUgc3RhdGUgb2JqZWN0LCBhbmQgdGhhdFxuICAgICAgICogcGF0aCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgdmFsdWUgaW4gYG5leHRQcm9wc2AsIHVwZGF0ZS5cbiAgICAgICAqL1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbmV4dFByb3BzLm1lZGlhUGF0aHMuZ2V0KHRoaXMuY29udHJvbElEKTtcbiAgICAgIGlmIChtZWRpYVBhdGggJiYgbmV4dFByb3BzLnZhbHVlICE9PSBtZWRpYVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCB7IG1lZGlhUGF0aHMsIHZhbHVlLCBvblJlbW92ZUluc2VydGVkTWVkaWEsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggIT09IHZhbHVlKSB7XG4gICAgICAgIG9uQ2hhbmdlKG1lZGlhUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggPT09IHZhbHVlKSB7XG4gICAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UgPSBlID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIGFsbG93TXVsdGlwbGU6ICEhbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnYWxsb3dfbXVsdGlwbGUnLCB0cnVlKSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaGFuZGxlVXJsID0gc3ViamVjdCA9PiBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgdXJsID0gd2luZG93LnByb21wdCh0aGlzLnByb3BzLnQoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucHJvbXB0VXJsYCkpO1xuXG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlTGlzdFRvQXJyYXkodGhpcy5wcm9wcy52YWx1ZSk7XG4gICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2Uoc2l6ZU9mVmFsdWUodmFsdWUpID4gMCA/IFsuLi52YWx1ZV0gOiBudWxsKTtcbiAgICB9O1xuXG4gICAgb25SZXBsYWNlT25lID0gaW5kZXggPT4gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgcmVwbGFjZUluZGV4OiBpbmRleCxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZzogbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJyksXG4gICAgICAgIGZpZWxkLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChmaWVsZC5oYXNJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddKSkge1xuICAgICAgICB3YXJuRGVwcmVjYXRlZE9wdGlvbnMoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQuZ2V0SW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSwgTWFwKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQuZ2V0KCdtZWRpYV9saWJyYXJ5JywgTWFwKCkpO1xuICAgIH07XG5cbiAgICBhbGxvd3NNdWx0aXBsZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnLCBmYWxzZSkgJiZcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJykuZ2V0KCdtdWx0aXBsZScsIGZhbHNlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgb25Tb3J0RW5kID0gKHsgb2xkSW5kZXgsIG5ld0luZGV4IH0pID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGFycmF5TW92ZSh2YWx1ZSwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICB9O1xuXG4gICAgZ2V0VmFsaWRhdGVWYWx1ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzTXVsdGlwbGUodmFsdWUpID8gdmFsdWUubWFwKHYgPT4gYmFzZW5hbWUodikpIDogYmFzZW5hbWUodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rID0gdmFsdWUgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IE1BWF9ESVNQTEFZX0xFTkdUSDtcbiAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoIDw9IHNpemUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdGV4dCA9IGAke3ZhbHVlLnNsaWNlKDAsIHNpemUgLyAyKX1cXHUyMDI2JHt2YWx1ZS5zbGljZSgtKHNpemUgLyAyKSArIDEpfWA7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RmlsZUxpbmsgaHJlZj17dmFsdWV9IHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmlsZUxpbms+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGlua3MgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RmlsZUxpbmtzPlxuICAgICAgICAgICAgPEZpbGVMaW5rTGlzdD5cbiAgICAgICAgICAgICAge3ZhbHVlLm1hcCh2YWwgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e3ZhbH0+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsKX08L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRmlsZUxpbmtMaXN0PlxuICAgICAgICAgIDwvRmlsZUxpbmtzPlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDxGaWxlTGlua3M+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsdWUpfTwvRmlsZUxpbmtzPjtcbiAgICB9O1xuXG4gICAgcmVuZGVySW1hZ2VzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBc3NldCwgdmFsdWUsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgaXRlbXMgPSB2YWx1ZUxpc3RUb1NvcnRhYmxlQXJyYXkodmFsdWUpO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U29ydGFibGVNdWx0aUltYWdlV3JhcHBlclxuICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgICAgb25Tb3J0RW5kPXt0aGlzLm9uU29ydEVuZH1cbiAgICAgICAgICAgIG9uUmVtb3ZlT25lPXt0aGlzLm9uUmVtb3ZlT25lfVxuICAgICAgICAgICAgb25SZXBsYWNlT25lPXt0aGlzLm9uUmVwbGFjZU9uZX1cbiAgICAgICAgICAgIGRpc3RhbmNlPXs0fVxuICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgYXhpcz1cInh5XCJcbiAgICAgICAgICAgIGxvY2tUb0NvbnRhaW5lckVkZ2VzPXt0cnVlfVxuICAgICAgICAgID48L1NvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxJbWFnZVdyYXBwZXI+XG4gICAgICAgICAgPEltYWdlIHZhbHVlPXt2YWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgYWxsb3dzTXVsdGlwbGUgPSB0aGlzLmFsbG93c011bHRpcGxlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtmb3JJbWFnZSA/IHRoaXMucmVuZGVySW1hZ2VzKCkgOiBudWxsfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7Zm9ySW1hZ2UgPyBudWxsIDogdGhpcy5yZW5kZXJGaWxlTGlua3MoKX1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uJHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdhZGRNb3JlJyA6ICdjaG9vc2VEaWZmZXJlbnQnXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgJiYgIXRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/IChcbiAgICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlcGxhY2VVcmxgKX1cbiAgICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvblJlbW92ZSBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlbW92ZX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlbW92ZSR7YWxsb3dzTXVsdGlwbGUgPyAnQWxsJyA6ICcnfWApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlck5vU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2Uke3RoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdNdWx0aXBsZScgOiAnJ31gKX1cbiAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpID8gKFxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2VVcmxgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc3ViamVjdCA9IGZvckltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZVdyYXBwZXJ9PlxuICAgICAgICAgIDxzcGFuPnt2YWx1ZSA/IHRoaXMucmVuZGVyU2VsZWN0aW9uKHN1YmplY3QpIDogdGhpcy5yZW5kZXJOb1NlbGVjdGlvbihzdWJqZWN0KX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0= */",
207
207
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
208
208
  });
209
209
  const FileWidgetButton = /*#__PURE__*/_styled("button", {
210
210
  target: "e1hax4ql1",
211
211
  label: "FileWidgetButton"
212
- })(buttons.button, ";", components.badge, ";margin-bottom:12px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMExzQyIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */"));
212
+ })(buttons.button, ";", components.badge, ";margin-bottom:12px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMExzQyIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IG9uY2UgZnJvbSAnbG9kYXNoL29uY2UnO1xuaW1wb3J0IHsgb25lTGluZSB9IGZyb20gJ2NvbW1vbi10YWdzJztcbmltcG9ydCB7XG4gIGxlbmd0aHMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIGJvcmRlcnMsXG4gIGVmZmVjdHMsXG4gIHNoYWRvd3MsXG4gIEljb25CdXR0b24sXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnZGVjYXAtY21zLWxpYi11dGlsJztcbmltcG9ydCB7IGFycmF5TW92ZUltbXV0YWJsZSBhcyBhcnJheU1vdmUgfSBmcm9tICdhcnJheS1tb3ZlJztcbmltcG9ydCB7XG4gIERuZENvbnRleHQsXG4gIE1vdXNlU2Vuc29yLFxuICBUb3VjaFNlbnNvcixcbiAgY2xvc2VzdENlbnRlcixcbiAgdXNlU2Vuc29yLFxuICB1c2VTZW5zb3JzLFxufSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7IFNvcnRhYmxlQ29udGV4dCwgdXNlU29ydGFibGUgfSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQgeyBDU1MgfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgcmVzdHJpY3RUb1BhcmVudEVsZW1lbnQgfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBNQVhfRElTUExBWV9MRU5HVEggPSA1MDtcblxuY29uc3QgSW1hZ2VXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZmxleC1iYXNpczogMTU1cHg7XG4gIHdpZHRoOiAxNTVweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6ICR7Ym9yZGVycy50ZXh0RmllbGR9O1xuICBib3JkZXItcmFkaXVzOiAke2xlbmd0aHMuYm9yZGVyUmFkaXVzfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJHtlZmZlY3RzLmNoZWNrZXJib2FyZH07XG4gICR7c2hhZG93cy5pbnNldH07XG4gIGN1cnNvcjogJHtwcm9wcyA9PiAocHJvcHMuc29ydGFibGUgPyAncG9pbnRlcicgOiAnYXV0bycpfTtcbmA7XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuYDtcblxuY29uc3QgU3R5bGVkSW1hZ2UgPSBzdHlsZWQuaW1nYFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuYDtcblxuZnVuY3Rpb24gSW1hZ2UoeyB2YWx1ZSwgZmllbGQsIGdldEFzc2V0IH0pIHtcbiAgY29uc3QgW2Fzc2V0LCBzZXRBc3NldF0gPSB1c2VTdGF0ZShudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgbmV3QXNzZXQgPSBnZXRBc3NldCh2YWx1ZSwgZmllbGQpO1xuICAgICAgc2V0QXNzZXQobmV3QXNzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBc3NldChudWxsKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgZmllbGQsIGdldEFzc2V0XSk7XG5cbiAgcmV0dXJuIGFzc2V0ID8gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiBzcmM9e2Fzc2V0fSAvPiA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlSW1hZ2VCdXR0b25zKHsgb25SZW1vdmUsIG9uUmVwbGFjZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJtZWRpYVwiIG9uQ2xpY2s9e29uUmVwbGFjZX0+PC9JY29uQnV0dG9uPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cImNsb3NlXCIgb25DbGljaz17b25SZW1vdmV9PjwvSWNvbkJ1dHRvbj5cbiAgICA8L1NvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZShwcm9wcykge1xuICBjb25zdCB7IGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgaWQ6IHByb3BzLmlkLFxuICB9KTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06IENTUy5UcmFuc2Zvcm0udG9TdHJpbmcodHJhbnNmb3JtKSxcbiAgICB0cmFuc2l0aW9uLFxuICB9O1xuXG4gIGNvbnN0IHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3NldE5vZGVSZWZ9IHN0eWxlPXtzdHlsZX0gey4uLmF0dHJpYnV0ZXN9IHsuLi5saXN0ZW5lcnN9PlxuICAgICAgPEltYWdlV3JhcHBlciBzb3J0YWJsZT5cbiAgICAgICAgPEltYWdlIHZhbHVlPXtpdGVtVmFsdWV9IGZpZWxkPXtmaWVsZH0gZ2V0QXNzZXQ9e2dldEFzc2V0fSAvPlxuICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNcbiAgICAgICAgaXRlbT17aXRlbVZhbHVlfVxuICAgICAgICBvblJlbW92ZT17b25SZW1vdmV9XG4gICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlfVxuICAgICAgPjwvU29ydGFibGVJbWFnZUJ1dHRvbnM+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIoe1xuICBpdGVtcyxcbiAgZ2V0QXNzZXQsXG4gIGZpZWxkLFxuICBvblNvcnRFbmQsXG4gIG9uUmVtb3ZlT25lLFxuICBvblJlcGxhY2VPbmUsXG59KSB7XG4gIGNvbnN0IGFjdGl2YXRpb25Db25zdHJhaW50ID0geyBkaXN0YW5jZTogNCB9O1xuICBjb25zdCBzZW5zb3JzID0gdXNlU2Vuc29ycyhcbiAgICB1c2VTZW5zb3IoTW91c2VTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICAgdXNlU2Vuc29yKFRvdWNoU2Vuc29yLCB7IGFjdGl2YXRpb25Db25zdHJhaW50IH0pLFxuICApO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZVNvcnRFbmQoeyBhY3RpdmUsIG92ZXIgfSkge1xuICAgIG9uU29ydEVuZCh7XG4gICAgICBvbGRJbmRleDogaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWN0aXZlLmlkKSxcbiAgICAgIG5ld0luZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBvdmVyLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLXVua25vd24tcHJvcGVydHlcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9QYXJlbnRFbGVtZW50XX1cbiAgICAgICAgY29sbGlzaW9uRGV0ZWN0aW9uPXtjbG9zZXN0Q2VudGVyfVxuICAgICAgICBzZW5zb3JzPXtzZW5zb3JzfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZVNvcnRFbmR9XG4gICAgICA+XG4gICAgICAgIDxTb3J0YWJsZUNvbnRleHQgaXRlbXM9e2l0ZW1zfT5cbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPFNvcnRhYmxlSW1hZ2VcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpZD17aXRlbS5pZH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBpdGVtVmFsdWU9e2l0ZW0udmFsdWV9XG4gICAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZU9uZShpbmRleCl9XG4gICAgICAgICAgICA+PC9Tb3J0YWJsZUltYWdlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuY29uc3QgRmlsZUxpbmsgPSBzdHlsZWQuYWBcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5gO1xuXG5jb25zdCBGaWxlTGlua3MgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZUxpbmtMaXN0ID0gc3R5bGVkLnVsYFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZX07XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZURhbmdlcn07XG5gO1xuXG5mdW5jdGlvbiBpc011bHRpcGxlKHZhbHVlKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBMaXN0LmlzTGlzdCh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHNpemVPZlZhbHVlKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gIH1cblxuICBpZiAoTGlzdC5pc0xpc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNpemU7XG4gIH1cblxuICByZXR1cm4gdmFsdWUgPyAxIDogMDtcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkge1xuICByZXR1cm4gTGlzdC5pc0xpc3QodmFsdWUpID8gdmFsdWUudG9BcnJheSgpIDogdmFsdWUgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSkge1xuICBpZiAoIWlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLm1hcCh2YWx1ZSA9PiAoe1xuICAgIGlkOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgIHZhbHVlLFxuICB9KSk7XG5cbiAgcmV0dXJuIHZhbHVlQXJyYXk7XG59XG5cbmNvbnN0IHdhcm5EZXByZWNhdGVkT3B0aW9ucyA9IG9uY2UoZmllbGQgPT5cbiAgY29uc29sZS53YXJuKG9uZUxpbmVgXG4gIERlY2FwIENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAvLyBNYW51YWxseSB2YWxpZGF0ZSBQcm9wVHlwZXMgLSBSZWFjdCAxOSBicmVha2luZyBjaGFuZ2VcbiAgICAgIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyhGaWxlQ29udHJvbC5wcm9wVHlwZXMsIHRoaXMucHJvcHMsICdwcm9wJywgJ0ZpbGVDb250cm9sJyk7XG4gICAgfVxuXG4gICAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgICAgLyoqXG4gICAgICAgKiBBbHdheXMgdXBkYXRlIGlmIHRoZSB2YWx1ZSBvciBnZXRBc3NldCBjaGFuZ2VzLlxuICAgICAgICovXG4gICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gbmV4dFByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMuZ2V0QXNzZXQgIT09IG5leHRQcm9wcy5nZXRBc3NldCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB0aGVyZSBpcyBhIG1lZGlhIHBhdGggZm9yIHRoaXMgY29udHJvbCBpbiB0aGUgc3RhdGUgb2JqZWN0LCBhbmQgdGhhdFxuICAgICAgICogcGF0aCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgdmFsdWUgaW4gYG5leHRQcm9wc2AsIHVwZGF0ZS5cbiAgICAgICAqL1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbmV4dFByb3BzLm1lZGlhUGF0aHMuZ2V0KHRoaXMuY29udHJvbElEKTtcbiAgICAgIGlmIChtZWRpYVBhdGggJiYgbmV4dFByb3BzLnZhbHVlICE9PSBtZWRpYVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCB7IG1lZGlhUGF0aHMsIHZhbHVlLCBvblJlbW92ZUluc2VydGVkTWVkaWEsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggIT09IHZhbHVlKSB7XG4gICAgICAgIG9uQ2hhbmdlKG1lZGlhUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggPT09IHZhbHVlKSB7XG4gICAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UgPSBlID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIGFsbG93TXVsdGlwbGU6ICEhbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnYWxsb3dfbXVsdGlwbGUnLCB0cnVlKSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaGFuZGxlVXJsID0gc3ViamVjdCA9PiBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgdXJsID0gd2luZG93LnByb21wdCh0aGlzLnByb3BzLnQoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucHJvbXB0VXJsYCkpO1xuXG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlTGlzdFRvQXJyYXkodGhpcy5wcm9wcy52YWx1ZSk7XG4gICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2Uoc2l6ZU9mVmFsdWUodmFsdWUpID4gMCA/IFsuLi52YWx1ZV0gOiBudWxsKTtcbiAgICB9O1xuXG4gICAgb25SZXBsYWNlT25lID0gaW5kZXggPT4gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgcmVwbGFjZUluZGV4OiBpbmRleCxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZzogbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJyksXG4gICAgICAgIGZpZWxkLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChmaWVsZC5oYXNJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddKSkge1xuICAgICAgICB3YXJuRGVwcmVjYXRlZE9wdGlvbnMoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQuZ2V0SW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSwgTWFwKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQuZ2V0KCdtZWRpYV9saWJyYXJ5JywgTWFwKCkpO1xuICAgIH07XG5cbiAgICBhbGxvd3NNdWx0aXBsZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnLCBmYWxzZSkgJiZcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJykuZ2V0KCdtdWx0aXBsZScsIGZhbHNlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgb25Tb3J0RW5kID0gKHsgb2xkSW5kZXgsIG5ld0luZGV4IH0pID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGFycmF5TW92ZSh2YWx1ZSwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICB9O1xuXG4gICAgZ2V0VmFsaWRhdGVWYWx1ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzTXVsdGlwbGUodmFsdWUpID8gdmFsdWUubWFwKHYgPT4gYmFzZW5hbWUodikpIDogYmFzZW5hbWUodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rID0gdmFsdWUgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IE1BWF9ESVNQTEFZX0xFTkdUSDtcbiAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoIDw9IHNpemUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdGV4dCA9IGAke3ZhbHVlLnNsaWNlKDAsIHNpemUgLyAyKX1cXHUyMDI2JHt2YWx1ZS5zbGljZSgtKHNpemUgLyAyKSArIDEpfWA7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RmlsZUxpbmsgaHJlZj17dmFsdWV9IHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmlsZUxpbms+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGlua3MgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RmlsZUxpbmtzPlxuICAgICAgICAgICAgPEZpbGVMaW5rTGlzdD5cbiAgICAgICAgICAgICAge3ZhbHVlLm1hcCh2YWwgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e3ZhbH0+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsKX08L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRmlsZUxpbmtMaXN0PlxuICAgICAgICAgIDwvRmlsZUxpbmtzPlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDxGaWxlTGlua3M+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsdWUpfTwvRmlsZUxpbmtzPjtcbiAgICB9O1xuXG4gICAgcmVuZGVySW1hZ2VzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBc3NldCwgdmFsdWUsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgaXRlbXMgPSB2YWx1ZUxpc3RUb1NvcnRhYmxlQXJyYXkodmFsdWUpO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U29ydGFibGVNdWx0aUltYWdlV3JhcHBlclxuICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgICAgb25Tb3J0RW5kPXt0aGlzLm9uU29ydEVuZH1cbiAgICAgICAgICAgIG9uUmVtb3ZlT25lPXt0aGlzLm9uUmVtb3ZlT25lfVxuICAgICAgICAgICAgb25SZXBsYWNlT25lPXt0aGlzLm9uUmVwbGFjZU9uZX1cbiAgICAgICAgICAgIGRpc3RhbmNlPXs0fVxuICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgYXhpcz1cInh5XCJcbiAgICAgICAgICAgIGxvY2tUb0NvbnRhaW5lckVkZ2VzPXt0cnVlfVxuICAgICAgICAgID48L1NvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxJbWFnZVdyYXBwZXI+XG4gICAgICAgICAgPEltYWdlIHZhbHVlPXt2YWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgYWxsb3dzTXVsdGlwbGUgPSB0aGlzLmFsbG93c011bHRpcGxlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtmb3JJbWFnZSA/IHRoaXMucmVuZGVySW1hZ2VzKCkgOiBudWxsfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7Zm9ySW1hZ2UgPyBudWxsIDogdGhpcy5yZW5kZXJGaWxlTGlua3MoKX1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uJHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdhZGRNb3JlJyA6ICdjaG9vc2VEaWZmZXJlbnQnXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgJiYgIXRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/IChcbiAgICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlcGxhY2VVcmxgKX1cbiAgICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvblJlbW92ZSBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlbW92ZX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlbW92ZSR7YWxsb3dzTXVsdGlwbGUgPyAnQWxsJyA6ICcnfWApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlck5vU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2Uke3RoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdNdWx0aXBsZScgOiAnJ31gKX1cbiAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpID8gKFxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2VVcmxgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc3ViamVjdCA9IGZvckltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZVdyYXBwZXJ9PlxuICAgICAgICAgIDxzcGFuPnt2YWx1ZSA/IHRoaXMucmVuZGVyU2VsZWN0aW9uKHN1YmplY3QpIDogdGhpcy5yZW5kZXJOb1NlbGVjdGlvbihzdWJqZWN0KX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0= */"));
213
213
  const FileWidgetButtonRemove = /*#__PURE__*/_styled("button", {
214
214
  target: "e1hax4ql0",
215
215
  label: "FileWidgetButtonRemove"
216
- })(buttons.button, ";", components.badgeDanger, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ000QyIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCB7IE1hcCwgTGlzdCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgb25jZSBmcm9tICdsb2Rhc2gvb25jZSc7XG5pbXBvcnQgeyBvbmVMaW5lIH0gZnJvbSAnY29tbW9uLXRhZ3MnO1xuaW1wb3J0IHtcbiAgbGVuZ3RocyxcbiAgY29tcG9uZW50cyxcbiAgYnV0dG9ucyxcbiAgYm9yZGVycyxcbiAgZWZmZWN0cyxcbiAgc2hhZG93cyxcbiAgSWNvbkJ1dHRvbixcbn0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdkZWNhcC1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgYXJyYXlNb3ZlSW1tdXRhYmxlIGFzIGFycmF5TW92ZSB9IGZyb20gJ2FycmF5LW1vdmUnO1xuaW1wb3J0IHtcbiAgRG5kQ29udGV4dCxcbiAgTW91c2VTZW5zb3IsXG4gIFRvdWNoU2Vuc29yLFxuICBjbG9zZXN0Q2VudGVyLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG59IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHsgU29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSB9IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7IENTUyB9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgeyByZXN0cmljdFRvUGFyZW50RWxlbWVudCB9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZSh7IHZhbHVlLCBmaWVsZCwgZ2V0QXNzZXQgfSkge1xuICBjb25zdCBbYXNzZXQsIHNldEFzc2V0XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBuZXdBc3NldCA9IGdldEFzc2V0KHZhbHVlLCBmaWVsZCk7XG4gICAgICBzZXRBc3NldChuZXdBc3NldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFzc2V0KG51bGwpO1xuICAgIH1cbiAgfSwgW3ZhbHVlLCBmaWVsZCwgZ2V0QXNzZXRdKTtcblxuICByZXR1cm4gYXNzZXQgPyA8U3R5bGVkSW1hZ2Ugcm9sZT1cInByZXNlbnRhdGlvblwiIHNyYz17YXNzZXR9IC8+IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZUJ1dHRvbnMoeyBvblJlbW92ZSwgb25SZXBsYWNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cIm1lZGlhXCIgb25DbGljaz17b25SZXBsYWNlfT48L0ljb25CdXR0b24+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwiY2xvc2VcIiBvbkNsaWNrPXtvblJlbW92ZX0+PC9JY29uQnV0dG9uPlxuICAgIDwvU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyPlxuICApO1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlKHByb3BzKSB7XG4gIGNvbnN0IHsgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICBpZDogcHJvcHMuaWQsXG4gIH0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gIH07XG5cbiAgY29uc3QgeyBpdGVtVmFsdWUsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmUsIG9uUmVwbGFjZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gc3R5bGU9e3N0eWxlfSB7Li4uYXR0cmlidXRlc30gey4uLmxpc3RlbmVyc30+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2UgdmFsdWU9e2l0ZW1WYWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICA8L0ltYWdlV3JhcHBlcj5cbiAgICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1xuICAgICAgICBpdGVtPXtpdGVtVmFsdWV9XG4gICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2V9XG4gICAgICA+PC9Tb3J0YWJsZUltYWdlQnV0dG9ucz5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcih7XG4gIGl0ZW1zLFxuICBnZXRBc3NldCxcbiAgZmllbGQsXG4gIG9uU29ydEVuZCxcbiAgb25SZW1vdmVPbmUsXG4gIG9uUmVwbGFjZU9uZSxcbn0pIHtcbiAgY29uc3QgYWN0aXZhdGlvbkNvbnN0cmFpbnQgPSB7IGRpc3RhbmNlOiA0IH07XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKFxuICAgIHVzZVNlbnNvcihNb3VzZVNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludCB9KSxcbiAgICB1c2VTZW5zb3IoVG91Y2hTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU29ydEVuZCh7IGFjdGl2ZSwgb3ZlciB9KSB7XG4gICAgb25Tb3J0RW5kKHtcbiAgICAgIG9sZEluZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBhY3RpdmUuaWQpLFxuICAgICAgbmV3SW5kZXg6IGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IG92ZXIuaWQpLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW5rbm93bi1wcm9wZXJ0eVxuICAgICAgY3NzPXtjc3NgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1BhcmVudEVsZW1lbnRdfVxuICAgICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlU29ydEVuZH1cbiAgICAgID5cbiAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17aXRlbXN9PlxuICAgICAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgICAgIGlkPXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIGl0ZW1WYWx1ZT17aXRlbS52YWx1ZX1cbiAgICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICAgIG9uUmVtb3ZlPXtvblJlbW92ZU9uZShpbmRleCl9XG4gICAgICAgICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlT25lKGluZGV4KX1cbiAgICAgICAgICAgID48L1NvcnRhYmxlSW1hZ2U+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZC5hYFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEZpbGVMaW5rcyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlTGlua0xpc3QgPSBzdHlsZWQudWxgXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlfTtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVXaWRnZXRCdXR0b25SZW1vdmUgPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtjb21wb25lbnRzLmJhZGdlRGFuZ2VyfTtcbmA7XG5cbmZ1bmN0aW9uIGlzTXVsdGlwbGUodmFsdWUpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IExpc3QuaXNMaXN0KHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gc2l6ZU9mVmFsdWUodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xufVxuXG5mdW5jdGlvbiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBMaXN0LmlzTGlzdCh2YWx1ZSkgPyB2YWx1ZS50b0FycmF5KCkgOiB2YWx1ZSA/PyAnJztcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9Tb3J0YWJsZUFycmF5KHZhbHVlKSB7XG4gIGlmICghaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBjb25zdCB2YWx1ZUFycmF5ID0gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkubWFwKHZhbHVlID0+ICh7XG4gICAgaWQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgdmFsdWUsXG4gIH0pKTtcblxuICByZXR1cm4gdmFsdWVBcnJheTtcbn1cblxuY29uc3Qgd2FybkRlcHJlY2F0ZWRPcHRpb25zID0gb25jZShmaWVsZCA9PlxuICBjb25zb2xlLndhcm4ob25lTGluZWBcbiAgRGVjYXAgQ01TIGNvbmZpZzogJHtmaWVsZC5nZXQoJ25hbWUnKX0gZmllbGQ6IHByb3BlcnR5IFwib3B0aW9uc1wiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZVxuICAke2ZpZWxkLmdldCgnd2lkZ2V0Jyl9IHdpZGdldCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuIFJhdGhlciB0aGFuXG4gIFxcYGZpZWxkLm9wdGlvbnMubWVkaWFfbGlicmFyeVxcYCwgYXBwbHkgbWVkaWEgbGlicmFyeSBvcHRpb25zIGZvciB0aGlzIHdpZGdldCB1bmRlclxuICBcXGBmaWVsZC5tZWRpYV9saWJyYXJ5XFxgLlxuYCksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoRmlsZUNvbnRyb2woeyBmb3JJbWFnZSB9ID0ge30pIHtcbiAgcmV0dXJuIGNsYXNzIEZpbGVDb250cm9sIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbWVkaWFQYXRoczogSW1tdXRhYmxlUHJvcFR5cGVzLm1hcC5pc1JlcXVpcmVkLFxuICAgICAgb25BZGRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25PcGVuTWVkaWFMaWJyYXJ5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25DbGVhck1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlTWVkaWFDb250cm9sOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgICAgSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3RPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICAgIF0pLFxuICAgICAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIHZhbHVlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuY29udHJvbElEID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIFByb3BUeXBlcyAtIFJlYWN0IDE5IGJyZWFraW5nIGNoYW5nZVxuICAgICAgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKEZpbGVDb250cm9sLnByb3BUeXBlcywgdGhpcy5wcm9wcywgJ3Byb3AnLCAnRmlsZUNvbnRyb2wnKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UodXJsKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaGFuZGxlUmVtb3ZlID0gZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2xlYXJNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UoJycpO1xuICAgIH07XG5cbiAgICBvblJlbW92ZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVMaXN0VG9BcnJheSh0aGlzLnByb3BzLnZhbHVlKTtcbiAgICAgIHZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShzaXplT2ZWYWx1ZSh2YWx1ZSkgPiAwID8gWy4uLnZhbHVlXSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBvblJlcGxhY2VPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkLCBvbk9wZW5NZWRpYUxpYnJhcnksIHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIG9uT3Blbk1lZGlhTGlicmFyeSh7XG4gICAgICAgIGNvbnRyb2xJRDogdGhpcy5jb250cm9sSUQsXG4gICAgICAgIGZvckltYWdlLFxuICAgICAgICBwcml2YXRlVXBsb2FkOiBmaWVsZC5nZXQoJ3ByaXZhdGUnKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLFxuICAgICAgICByZXBsYWNlSW5kZXg6IGluZGV4LFxuICAgICAgICBhbGxvd011bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGZpZWxkLmhhc0luKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10pKSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkT3B0aW9ucyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZC5nZXRJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddLCBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZC5nZXQoJ21lZGlhX2xpYnJhcnknLCBNYXAoKSk7XG4gICAgfTtcblxuICAgIGFsbG93c011bHRpcGxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zID0gdGhpcy5nZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycsIGZhbHNlKSAmJlxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKS5nZXQoJ211bHRpcGxlJywgZmFsc2UpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBvblNvcnRFbmQgPSAoeyBvbGRJbmRleCwgbmV3SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gYXJyYXlNb3ZlKHZhbHVlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgIH07XG5cbiAgICBnZXRWYWxpZGF0ZVZhbHVlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSh2YWx1ZSkgPyB2YWx1ZS5tYXAodiA9PiBiYXNlbmFtZSh2KSkgOiBiYXNlbmFtZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmsgPSB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gTUFYX0RJU1BMQVlfTEVOR1RIO1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPD0gc2l6ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCB0ZXh0ID0gYCR7dmFsdWUuc2xpY2UoMCwgc2l6ZSAvIDIpfVxcdTIwMjYke3ZhbHVlLnNsaWNlKC0oc2l6ZSAvIDIpICsgMSl9YDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGaWxlTGluayBocmVmPXt2YWx1ZX0gcmVsPVwibm9vcGVuZXJcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9GaWxlTGluaz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxGaWxlTGlua3M+XG4gICAgICAgICAgICA8RmlsZUxpbmtMaXN0PlxuICAgICAgICAgICAgICB7dmFsdWUubWFwKHZhbCA9PiAoXG4gICAgICAgICAgICAgICAgPGxpIGtleT17dmFsfT57dGhpcy5yZW5kZXJGaWxlTGluayh2YWwpfTwvbGk+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9GaWxlTGlua0xpc3Q+XG4gICAgICAgICAgPC9GaWxlTGlua3M+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPEZpbGVMaW5rcz57dGhpcy5yZW5kZXJGaWxlTGluayh2YWx1ZSl9PC9GaWxlTGlua3M+O1xuICAgIH07XG5cbiAgICByZW5kZXJJbWFnZXMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFzc2V0LCB2YWx1ZSwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpdGVtcyA9IHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpc011bHRpcGxlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyXG4gICAgICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgICAgICBvblNvcnRFbmQ9e3RoaXMub25Tb3J0RW5kfVxuICAgICAgICAgICAgb25SZW1vdmVPbmU9e3RoaXMub25SZW1vdmVPbmV9XG4gICAgICAgICAgICBvblJlcGxhY2VPbmU9e3RoaXMub25SZXBsYWNlT25lfVxuICAgICAgICAgICAgZGlzdGFuY2U9ezR9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBheGlzPVwieHlcIlxuICAgICAgICAgICAgbG9ja1RvQ29udGFpbmVyRWRnZXM9e3RydWV9XG4gICAgICAgICAgPjwvU29ydGFibGVNdWx0aUltYWdlV3JhcHBlcj5cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2UgdmFsdWU9e3ZhbHVlfSBmaWVsZD17ZmllbGR9IGdldEFzc2V0PXtnZXRBc3NldH0gLz5cbiAgICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJTZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBhbGxvd3NNdWx0aXBsZSA9IHRoaXMuYWxsb3dzTXVsdGlwbGUoKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2ZvckltYWdlID8gdGhpcy5yZW5kZXJJbWFnZXMoKSA6IG51bGx9XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtmb3JJbWFnZSA/IG51bGwgOiB0aGlzLnJlbmRlckZpbGVMaW5rcygpfVxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVDaGFuZ2V9PlxuICAgICAgICAgICAgICB7dChcbiAgICAgICAgICAgICAgICBgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS4ke1xuICAgICAgICAgICAgICAgICAgdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ2FkZE1vcmUnIDogJ2Nob29zZURpZmZlcmVudCdcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICAgIHtmaWVsZC5nZXQoJ2Nob29zZV91cmwnLCB0cnVlKSAmJiAhdGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gKFxuICAgICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVwbGFjZVVybGApfVxuICAgICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVtb3ZlfT5cbiAgICAgICAgICAgICAge3QoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucmVtb3ZlJHthbGxvd3NNdWx0aXBsZSA/ICdBbGwnIDogJyd9YCl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b25SZW1vdmU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyTm9TZWxlY3Rpb24gPSBzdWJqZWN0ID0+IHtcbiAgICAgIGNvbnN0IHsgdCwgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZSR7dGhpcy5hbGxvd3NNdWx0aXBsZSgpID8gJ011bHRpcGxlJyA6ICcnfWApfVxuICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgPyAoXG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZVVybChzdWJqZWN0KX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LmNob29zZVVybGApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gZm9ySW1hZ2UgPyAnaW1hZ2UnIDogJ2ZpbGUnO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lV3JhcHBlcn0+XG4gICAgICAgICAgPHNwYW4+e3ZhbHVlID8gdGhpcy5yZW5kZXJTZWxlY3Rpb24oc3ViamVjdCkgOiB0aGlzLnJlbmRlck5vU2VsZWN0aW9uKHN1YmplY3QpfTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ== */"));
216
+ })(buttons.button, ";", components.badgeDanger, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ000QyIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IG9uY2UgZnJvbSAnbG9kYXNoL29uY2UnO1xuaW1wb3J0IHsgb25lTGluZSB9IGZyb20gJ2NvbW1vbi10YWdzJztcbmltcG9ydCB7XG4gIGxlbmd0aHMsXG4gIGNvbXBvbmVudHMsXG4gIGJ1dHRvbnMsXG4gIGJvcmRlcnMsXG4gIGVmZmVjdHMsXG4gIHNoYWRvd3MsXG4gIEljb25CdXR0b24sXG59IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnZGVjYXAtY21zLWxpYi11dGlsJztcbmltcG9ydCB7IGFycmF5TW92ZUltbXV0YWJsZSBhcyBhcnJheU1vdmUgfSBmcm9tICdhcnJheS1tb3ZlJztcbmltcG9ydCB7XG4gIERuZENvbnRleHQsXG4gIE1vdXNlU2Vuc29yLFxuICBUb3VjaFNlbnNvcixcbiAgY2xvc2VzdENlbnRlcixcbiAgdXNlU2Vuc29yLFxuICB1c2VTZW5zb3JzLFxufSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7IFNvcnRhYmxlQ29udGV4dCwgdXNlU29ydGFibGUgfSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQgeyBDU1MgfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgcmVzdHJpY3RUb1BhcmVudEVsZW1lbnQgfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBNQVhfRElTUExBWV9MRU5HVEggPSA1MDtcblxuY29uc3QgSW1hZ2VXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZmxleC1iYXNpczogMTU1cHg7XG4gIHdpZHRoOiAxNTVweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6ICR7Ym9yZGVycy50ZXh0RmllbGR9O1xuICBib3JkZXItcmFkaXVzOiAke2xlbmd0aHMuYm9yZGVyUmFkaXVzfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgJHtlZmZlY3RzLmNoZWNrZXJib2FyZH07XG4gICR7c2hhZG93cy5pbnNldH07XG4gIGN1cnNvcjogJHtwcm9wcyA9PiAocHJvcHMuc29ydGFibGUgPyAncG9pbnRlcicgOiAnYXV0bycpfTtcbmA7XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2x1bW4tZ2FwOiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IC0xMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuYDtcblxuY29uc3QgU3R5bGVkSW1hZ2UgPSBzdHlsZWQuaW1nYFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuYDtcblxuZnVuY3Rpb24gSW1hZ2UoeyB2YWx1ZSwgZmllbGQsIGdldEFzc2V0IH0pIHtcbiAgY29uc3QgW2Fzc2V0LCBzZXRBc3NldF0gPSB1c2VTdGF0ZShudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgbmV3QXNzZXQgPSBnZXRBc3NldCh2YWx1ZSwgZmllbGQpO1xuICAgICAgc2V0QXNzZXQobmV3QXNzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBc3NldChudWxsKTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgZmllbGQsIGdldEFzc2V0XSk7XG5cbiAgcmV0dXJuIGFzc2V0ID8gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiBzcmM9e2Fzc2V0fSAvPiA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlSW1hZ2VCdXR0b25zKHsgb25SZW1vdmUsIG9uUmVwbGFjZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJtZWRpYVwiIG9uQ2xpY2s9e29uUmVwbGFjZX0+PC9JY29uQnV0dG9uPlxuICAgICAgPEljb25CdXR0b24gc2l6ZT1cInNtYWxsXCIgdHlwZT1cImNsb3NlXCIgb25DbGljaz17b25SZW1vdmV9PjwvSWNvbkJ1dHRvbj5cbiAgICA8L1NvcnRhYmxlSW1hZ2VCdXR0b25zV3JhcHBlcj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU29ydGFibGVJbWFnZShwcm9wcykge1xuICBjb25zdCB7IGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgaWQ6IHByb3BzLmlkLFxuICB9KTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06IENTUy5UcmFuc2Zvcm0udG9TdHJpbmcodHJhbnNmb3JtKSxcbiAgICB0cmFuc2l0aW9uLFxuICB9O1xuXG4gIGNvbnN0IHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3NldE5vZGVSZWZ9IHN0eWxlPXtzdHlsZX0gey4uLmF0dHJpYnV0ZXN9IHsuLi5saXN0ZW5lcnN9PlxuICAgICAgPEltYWdlV3JhcHBlciBzb3J0YWJsZT5cbiAgICAgICAgPEltYWdlIHZhbHVlPXtpdGVtVmFsdWV9IGZpZWxkPXtmaWVsZH0gZ2V0QXNzZXQ9e2dldEFzc2V0fSAvPlxuICAgICAgPC9JbWFnZVdyYXBwZXI+XG4gICAgICA8U29ydGFibGVJbWFnZUJ1dHRvbnNcbiAgICAgICAgaXRlbT17aXRlbVZhbHVlfVxuICAgICAgICBvblJlbW92ZT17b25SZW1vdmV9XG4gICAgICAgIG9uUmVwbGFjZT17b25SZXBsYWNlfVxuICAgICAgPjwvU29ydGFibGVJbWFnZUJ1dHRvbnM+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIoe1xuICBpdGVtcyxcbiAgZ2V0QXNzZXQsXG4gIGZpZWxkLFxuICBvblNvcnRFbmQsXG4gIG9uUmVtb3ZlT25lLFxuICBvblJlcGxhY2VPbmUsXG59KSB7XG4gIGNvbnN0IGFjdGl2YXRpb25Db25zdHJhaW50ID0geyBkaXN0YW5jZTogNCB9O1xuICBjb25zdCBzZW5zb3JzID0gdXNlU2Vuc29ycyhcbiAgICB1c2VTZW5zb3IoTW91c2VTZW5zb3IsIHsgYWN0aXZhdGlvbkNvbnN0cmFpbnQgfSksXG4gICAgdXNlU2Vuc29yKFRvdWNoU2Vuc29yLCB7IGFjdGl2YXRpb25Db25zdHJhaW50IH0pLFxuICApO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZVNvcnRFbmQoeyBhY3RpdmUsIG92ZXIgfSkge1xuICAgIG9uU29ydEVuZCh7XG4gICAgICBvbGRJbmRleDogaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWN0aXZlLmlkKSxcbiAgICAgIG5ld0luZGV4OiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBvdmVyLmlkKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLXVua25vd24tcHJvcGVydHlcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9QYXJlbnRFbGVtZW50XX1cbiAgICAgICAgY29sbGlzaW9uRGV0ZWN0aW9uPXtjbG9zZXN0Q2VudGVyfVxuICAgICAgICBzZW5zb3JzPXtzZW5zb3JzfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZVNvcnRFbmR9XG4gICAgICA+XG4gICAgICAgIDxTb3J0YWJsZUNvbnRleHQgaXRlbXM9e2l0ZW1zfT5cbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPFNvcnRhYmxlSW1hZ2VcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICBpZD17aXRlbS5pZH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBpdGVtVmFsdWU9e2l0ZW0udmFsdWV9XG4gICAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZU9uZShpbmRleCl9XG4gICAgICAgICAgICA+PC9Tb3J0YWJsZUltYWdlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuY29uc3QgRmlsZUxpbmsgPSBzdHlsZWQuYWBcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5gO1xuXG5jb25zdCBGaWxlTGlua3MgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZUxpbmtMaXN0ID0gc3R5bGVkLnVsYFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZX07XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5gO1xuXG5jb25zdCBGaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7Y29tcG9uZW50cy5iYWRnZURhbmdlcn07XG5gO1xuXG5mdW5jdGlvbiBpc011bHRpcGxlKHZhbHVlKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBMaXN0LmlzTGlzdCh2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHNpemVPZlZhbHVlKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gIH1cblxuICBpZiAoTGlzdC5pc0xpc3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNpemU7XG4gIH1cblxuICByZXR1cm4gdmFsdWUgPyAxIDogMDtcbn1cblxuZnVuY3Rpb24gdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSkge1xuICByZXR1cm4gTGlzdC5pc0xpc3QodmFsdWUpID8gdmFsdWUudG9BcnJheSgpIDogdmFsdWUgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvU29ydGFibGVBcnJheSh2YWx1ZSkge1xuICBpZiAoIWlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpLm1hcCh2YWx1ZSA9PiAoe1xuICAgIGlkOiBjcnlwdG8ucmFuZG9tVVVJRCgpLFxuICAgIHZhbHVlLFxuICB9KSk7XG5cbiAgcmV0dXJuIHZhbHVlQXJyYXk7XG59XG5cbmNvbnN0IHdhcm5EZXByZWNhdGVkT3B0aW9ucyA9IG9uY2UoZmllbGQgPT5cbiAgY29uc29sZS53YXJuKG9uZUxpbmVgXG4gIERlY2FwIENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAvLyBNYW51YWxseSB2YWxpZGF0ZSBQcm9wVHlwZXMgLSBSZWFjdCAxOSBicmVha2luZyBjaGFuZ2VcbiAgICAgIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyhGaWxlQ29udHJvbC5wcm9wVHlwZXMsIHRoaXMucHJvcHMsICdwcm9wJywgJ0ZpbGVDb250cm9sJyk7XG4gICAgfVxuXG4gICAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcykge1xuICAgICAgLyoqXG4gICAgICAgKiBBbHdheXMgdXBkYXRlIGlmIHRoZSB2YWx1ZSBvciBnZXRBc3NldCBjaGFuZ2VzLlxuICAgICAgICovXG4gICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gbmV4dFByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMuZ2V0QXNzZXQgIT09IG5leHRQcm9wcy5nZXRBc3NldCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBJZiB0aGVyZSBpcyBhIG1lZGlhIHBhdGggZm9yIHRoaXMgY29udHJvbCBpbiB0aGUgc3RhdGUgb2JqZWN0LCBhbmQgdGhhdFxuICAgICAgICogcGF0aCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgdmFsdWUgaW4gYG5leHRQcm9wc2AsIHVwZGF0ZS5cbiAgICAgICAqL1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbmV4dFByb3BzLm1lZGlhUGF0aHMuZ2V0KHRoaXMuY29udHJvbElEKTtcbiAgICAgIGlmIChtZWRpYVBhdGggJiYgbmV4dFByb3BzLnZhbHVlICE9PSBtZWRpYVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCB7IG1lZGlhUGF0aHMsIHZhbHVlLCBvblJlbW92ZUluc2VydGVkTWVkaWEsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbWVkaWFQYXRoID0gbWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggIT09IHZhbHVlKSB7XG4gICAgICAgIG9uQ2hhbmdlKG1lZGlhUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKG1lZGlhUGF0aCAmJiBtZWRpYVBhdGggPT09IHZhbHVlKSB7XG4gICAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UgPSBlID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIGFsbG93TXVsdGlwbGU6ICEhbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnYWxsb3dfbXVsdGlwbGUnLCB0cnVlKSxcbiAgICAgICAgY29uZmlnOiBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnKSxcbiAgICAgICAgZmllbGQsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgaGFuZGxlVXJsID0gc3ViamVjdCA9PiBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgdXJsID0gd2luZG93LnByb21wdCh0aGlzLnByb3BzLnQoYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0ucHJvbXB0VXJsYCkpO1xuXG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlTGlzdFRvQXJyYXkodGhpcy5wcm9wcy52YWx1ZSk7XG4gICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25DaGFuZ2Uoc2l6ZU9mVmFsdWUodmFsdWUpID4gMCA/IFsuLi52YWx1ZV0gOiBudWxsKTtcbiAgICB9O1xuXG4gICAgb25SZXBsYWNlT25lID0gaW5kZXggPT4gKCkgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgcmVwbGFjZUluZGV4OiBpbmRleCxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZzogbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJyksXG4gICAgICAgIGZpZWxkLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChmaWVsZC5oYXNJbihbJ29wdGlvbnMnLCAnbWVkaWFfbGlicmFyeSddKSkge1xuICAgICAgICB3YXJuRGVwcmVjYXRlZE9wdGlvbnMoZmllbGQpO1xuICAgICAgICByZXR1cm4gZmllbGQuZ2V0SW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSwgTWFwKCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQuZ2V0KCdtZWRpYV9saWJyYXJ5JywgTWFwKCkpO1xuICAgIH07XG5cbiAgICBhbGxvd3NNdWx0aXBsZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdjb25maWcnLCBmYWxzZSkgJiZcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJykuZ2V0KCdtdWx0aXBsZScsIGZhbHNlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgb25Tb3J0RW5kID0gKHsgb2xkSW5kZXgsIG5ld0luZGV4IH0pID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGFycmF5TW92ZSh2YWx1ZSwgb2xkSW5kZXgsIG5ld0luZGV4KTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcbiAgICB9O1xuXG4gICAgZ2V0VmFsaWRhdGVWYWx1ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzTXVsdGlwbGUodmFsdWUpID8gdmFsdWUubWFwKHYgPT4gYmFzZW5hbWUodikpIDogYmFzZW5hbWUodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHJlbmRlckZpbGVMaW5rID0gdmFsdWUgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IE1BWF9ESVNQTEFZX0xFTkdUSDtcbiAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoIDw9IHNpemUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdGV4dCA9IGAke3ZhbHVlLnNsaWNlKDAsIHNpemUgLyAyKX1cXHUyMDI2JHt2YWx1ZS5zbGljZSgtKHNpemUgLyAyKSArIDEpfWA7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RmlsZUxpbmsgaHJlZj17dmFsdWV9IHJlbD1cIm5vb3BlbmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmlsZUxpbms+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGlua3MgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RmlsZUxpbmtzPlxuICAgICAgICAgICAgPEZpbGVMaW5rTGlzdD5cbiAgICAgICAgICAgICAge3ZhbHVlLm1hcCh2YWwgPT4gKFxuICAgICAgICAgICAgICAgIDxsaSBrZXk9e3ZhbH0+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsKX08L2xpPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRmlsZUxpbmtMaXN0PlxuICAgICAgICAgIDwvRmlsZUxpbmtzPlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDxGaWxlTGlua3M+e3RoaXMucmVuZGVyRmlsZUxpbmsodmFsdWUpfTwvRmlsZUxpbmtzPjtcbiAgICB9O1xuXG4gICAgcmVuZGVySW1hZ2VzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBc3NldCwgdmFsdWUsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgaXRlbXMgPSB2YWx1ZUxpc3RUb1NvcnRhYmxlQXJyYXkodmFsdWUpO1xuXG4gICAgICBpZiAoaXNNdWx0aXBsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U29ydGFibGVNdWx0aUltYWdlV3JhcHBlclxuICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgICAgb25Tb3J0RW5kPXt0aGlzLm9uU29ydEVuZH1cbiAgICAgICAgICAgIG9uUmVtb3ZlT25lPXt0aGlzLm9uUmVtb3ZlT25lfVxuICAgICAgICAgICAgb25SZXBsYWNlT25lPXt0aGlzLm9uUmVwbGFjZU9uZX1cbiAgICAgICAgICAgIGRpc3RhbmNlPXs0fVxuICAgICAgICAgICAgZ2V0QXNzZXQ9e2dldEFzc2V0fVxuICAgICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgICAgYXhpcz1cInh5XCJcbiAgICAgICAgICAgIGxvY2tUb0NvbnRhaW5lckVkZ2VzPXt0cnVlfVxuICAgICAgICAgID48L1NvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxJbWFnZVdyYXBwZXI+XG4gICAgICAgICAgPEltYWdlIHZhbHVlPXt2YWx1ZX0gZmllbGQ9e2ZpZWxkfSBnZXRBc3NldD17Z2V0QXNzZXR9IC8+XG4gICAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgYWxsb3dzTXVsdGlwbGUgPSB0aGlzLmFsbG93c011bHRpcGxlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtmb3JJbWFnZSA/IHRoaXMucmVuZGVySW1hZ2VzKCkgOiBudWxsfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7Zm9ySW1hZ2UgPyBudWxsIDogdGhpcy5yZW5kZXJGaWxlTGlua3MoKX1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uJHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdhZGRNb3JlJyA6ICdjaG9vc2VEaWZmZXJlbnQnXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgJiYgIXRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/IChcbiAgICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlcGxhY2VVcmxgKX1cbiAgICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvblJlbW92ZSBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlbW92ZX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlbW92ZSR7YWxsb3dzTXVsdGlwbGUgPyAnQWxsJyA6ICcnfWApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlck5vU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2Uke3RoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdNdWx0aXBsZScgOiAnJ31gKX1cbiAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpID8gKFxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2VVcmxgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc3ViamVjdCA9IGZvckltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZVdyYXBwZXJ9PlxuICAgICAgICAgIDxzcGFuPnt2YWx1ZSA/IHRoaXMucmVuZGVyU2VsZWN0aW9uKHN1YmplY3QpIDogdGhpcy5yZW5kZXJOb1NlbGVjdGlvbihzdWJqZWN0KX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0= */"));
217
217
  function isMultiple(value) {
218
218
  return Array.isArray(value) || List.isList(value);
219
219
  }
@@ -248,7 +248,7 @@ const warnDeprecatedOptions = once(field => console.warn(oneLine`
248
248
  export default function withFileControl({
249
249
  forImage
250
250
  } = {}) {
251
- return class FileControl extends React.Component {
251
+ return class FileControl extends Component {
252
252
  static propTypes = {
253
253
  field: PropTypes.object.isRequired,
254
254
  getAsset: PropTypes.func.isRequired,