'use strict'; var react = require('react'); var jsxRuntime = require('react/jsx-runtime'); var Q=Object.defineProperty,U=Object.defineProperties;var X=Object.getOwnPropertyDescriptors;var k=Object.getOwnPropertySymbols;var w=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;var I=(t,e,r)=>e in t?Q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,l=(t,e)=>{for(var r in e||(e={}))w.call(e,r)&&I(t,r,e[r]);if(k)for(var r of k(e))A.call(e,r)&&I(t,r,e[r]);return t},c=(t,e)=>U(t,X(e));var m=(t,e)=>{var r={};for(var o in t)w.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&k)for(var o of k(t))e.indexOf(o)<0&&A.call(t,o)&&(r[o]=t[o]);return r};var L=(t,e,r)=>(I(t,typeof e!="symbol"?e+"":e,r),r);function E(t){return t==null}var Y={Primary:"primary",Secondary:"secondary",Dark:"dark",Gray:"gray",Success:"success",Warning:"warning",Error:"error",Light:"light"};function a(t,e){return E(e)?t:`${t} ${e}`.trim()}function p(t){return e=>{e.key==="Enter"&&t(e);}}function T(r){var o=r,{block:t}=o,e=m(o,["block"]);let s=a("tab",e.className);return t&&(s=a(s,"tab-block")),s=a(s,e.className),jsxRuntime.jsx("ul",c(l({},e),{className:s}))}T.Heading=function(o){var s=o,{active:e}=s,r=m(s,["active"]);let i=a("tab-item",r.className);return e&&(i=a(i,"active")),i=a(i,r.className),jsxRuntime.jsx("li",c(l({},r),{className:i}))};var D,B=class extends react.Component{constructor(){super(...arguments);L(this,"state",{active:this.props.defaultActive||((D=this.props.options[0])==null?void 0:D.value)});L(this,"renderActive",()=>{let r=this.props.options.find(o=>this.state.active===o.value);return r?r.render():jsxRuntime.jsx(react.Fragment,{})});}render(){return jsxRuntime.jsxs(react.Fragment,{children:[jsxRuntime.jsx(T,{block:!0,children:this.props.options.map(({label:r,value:o})=>{let s=()=>{this.setState({active:o});};return jsxRuntime.jsx(react.Fragment,{children:jsxRuntime.jsx(T.Heading,{active:this.state.active===o,tabIndex:0,onClick:s,onKeyPress:p(s),children:jsxRuntime.jsx("a",{href:"#",children:r})})},o)})}),jsxRuntime.jsx("div",{style:{marginTop:10},children:this.renderActive()})]})}};var j=s=>{var i=s,{children:t,title:e,icon:r}=i,o=m(i,["children","title","icon"]);let n=a("empty",o.className);return jsxRuntime.jsxs("div",c(l({},o),{className:n,children:[r?jsxRuntime.jsx("div",{className:"empty-icon",children:r}):"",jsxRuntime.jsx("div",{className:"empty-title h5",children:e}),jsxRuntime.jsx("div",{className:"empty-action",children:t})]}))};var te=r=>{var o=r,{centered:t}=o,e=m(o,["centered"]);let s=a("page container",e.className);return t&&(s=a(s,"centered text-center")),jsxRuntime.jsx("div",c(l({},e),{className:s}))};var H=()=>{};function re(i){var n=i,{activePage:t=1,totalPages:e,centered:r,onClick:o}=n,s=m(n,["activePage","totalPages","centered","onClick"]);let f=a("pagination",s.className),b=Array.from(new Array(Math.ceil(e)),()=>{}),N=!(t<=1),g=!(t>=e),C={tabIndex:-1},S=u=>o(u,t-1),G=u=>o(u,t+1);return jsxRuntime.jsxs("ul",c(l({style:r?{justifyContent:"center"}:{}},s),{className:f,children:[jsxRuntime.jsx("li",{className:`page-item ${N?"":"disabled"}`,tabIndex:0,onClick:N?S:H,onKeyPress:N?p(S):H,children:jsxRuntime.jsx("a",c(l({href:"javascript:void(0);",style:{cursor:"pointer"}},N?{}:C),{children:"<"}))}),b.map((u,d)=>{let y=J=>o(J,d+1);return jsxRuntime.jsx("li",{className:`page-item ${d+1===t?"active":""}`,tabIndex:0,onClick:y,onKeyPress:p(y),children:jsxRuntime.jsx("a",{href:"javascript:void(0);",style:{cursor:"pointer"},children:d+1})},d)}),jsxRuntime.jsx("li",{className:`page-item ${g?"":"disabled"}`,tabIndex:0,onClick:g?G:H,onKeyPress:g?p(G):H,children:jsxRuntime.jsx("a",c(l({href:"javascript:void(0);",style:{cursor:"pointer"}},g?{}:C),{children:">"}))})]}))}var ne=s=>{var i=s,{children:t,title:e,footer:r}=i,o=m(i,["children","title","footer"]);let n=a("panel",o.className),f=E(e)?jsxRuntime.jsx(react.Fragment,{}):jsxRuntime.jsx("div",{className:"panel-header",children:jsxRuntime.jsx("div",{className:"panel-title",children:jsxRuntime.jsx("h5",{children:e})})});return jsxRuntime.jsxs("div",c(l({},o),{className:n,children:[f,jsxRuntime.jsx("div",{className:"panel-body",children:t}),r&&jsxRuntime.jsx("div",{className:"panel-footer",children:r})]}))};var le=o=>{var s=o,{primary:t,centered:e}=s,r=m(s,["primary","centered"]);let i=a("toast",r.className);return t&&(i=a(i,"btn-primary")),e&&(i=a(i,"centered text-center")),jsxRuntime.jsx("div",c(l({},r),{className:i}))};function F(G){var u=G,{small:t,large:e,block:r,primary:o,centered:s,disabled:i,success:n,error:f,loading:b,link:N,inputGroup:g,size:C}=u,S=m(u,["small","large","block","primary","centered","disabled","success","error","loading","link","inputGroup","size"]);let d="btn",y={disabled:!1,tabIndex:void 0};return C&&(d=`${d} col-${C.toString().trim()}`),e?d=a(d,"btn-lg"):t&&(d=a(d,"btn-sm")),r&&(d=a(d,"btn-block")),o&&(d=a(d,"btn-primary")),n&&(d=a(d,"btn-success")),f&&(d=a(d,"btn-error")),N&&(d=a(d,"btn-link")),b&&(d=a(d,"loading")),s&&(d=a(d,"centered text-center")),g&&(d=a(d,"input-group-btn")),i&&(y.disabled=!0,y.tabIndex=-1,d=a(d,"disabled")),d=a(d,S.className),jsxRuntime.jsx("button",c(l(l({type:"button"},S),y),{className:d}))}F.Group=function(o){var s=o,{block:e}=s,r=m(s,["block"]);let i="btn-group";return e&&(i=a(i,"btn-group-block")),i=a(i,r.className),jsxRuntime.jsx("div",c(l({},r),{className:i}))};function K(s){var i=s,{striped:t,hover:e,centered:r}=i,o=m(i,["striped","hover","centered"]);let n=a("table",o.className);return t&&(n=a(n,"table-striped")),e&&(n=a(n,"table-hover")),r&&(n=a(n,"text-center")),n=a(n,o.className),jsxRuntime.jsx("table",c(l({},o),{className:n}))}K.Head=function(i){var n=i,{headings:e,headingProps:r,onHeadingClick:o}=n,s=m(n,["headings","headingProps","onHeadingClick"]);return jsxRuntime.jsx("thead",c(l({},s),{children:jsxRuntime.jsx("tr",c(l({},r),{children:e.map((f,b)=>jsxRuntime.jsx("th",{onClick:o&&(()=>{o(f);}),children:f},`heading-${f}-${b}`))}))}))};K.Body=function(e){return jsxRuntime.jsx("tbody",l({},e))};K.Row=function(e){return jsxRuntime.jsx("tr",l({},e))};var de=f=>{var b=f,{children:t,title:e,topLeft:r,topRight:o,bottomLeft:s,bottomRight:i}=b,n=m(b,["children","title","topLeft","topRight","bottomLeft","bottomRight"]);let N=a("parallax",n.className);return jsxRuntime.jsxs("div",c(l({},n),{className:N,children:[jsxRuntime.jsx("div",{className:"parallax-top-left",role:"button",tabIndex:0,onClick:r,onKeyPress:r&&p(r)}),jsxRuntime.jsx("div",{className:"parallax-top-right",role:"button",tabIndex:0,onClick:o,onKeyPress:o&&p(o)}),jsxRuntime.jsx("div",{className:"parallax-bottom-left",role:"button",tabIndex:0,onClick:s,onKeyPress:s&&p(s)}),jsxRuntime.jsx("div",{className:"parallax-bottom-right",role:"button",tabIndex:0,onClick:i,onKeyPress:i&&p(i)}),jsxRuntime.jsxs("div",{className:"parallax-content",children:[jsxRuntime.jsx("div",{className:"parallax-front",children:jsxRuntime.jsx("h2",{children:e})}),jsxRuntime.jsx("div",{className:"parallax-back",children:t})]})]}))};function V(r){var o=r,{gapless:t}=o,e=m(o,["gapless"]);let s=a("columns",e.className);return t&&(s=a(s,"col-gapless")),jsxRuntime.jsx("div",c(l({},e),{className:s}))}V.Column=function(o){var s=o,{width:e}=s,r=m(s,["width"]);let i=a(`column col-${e}`,r.className);return jsxRuntime.jsx("div",c(l({},r),{className:i}))};var me=t=>{let e=a("divider",t.className);return t.size!==void 0&&(e=a(e,`col-${t.size.toString().trim()} centered`)),jsxRuntime.jsx("div",c(l({},t),{className:e}))};var fe=r=>{var o=r,{large:t}=o,e=m(o,["large"]);let s="loading";return t&&(s=a(s,"loading-lg")),s=a(s,e.className),jsxRuntime.jsx("div",c(l({},e),{className:s}))};var Ne=s=>{var i=s,{shape:t,backgroundColor:e,textColor:r}=i,o=m(i,["shape","backgroundColor","textColor"]);let n="centered text-center";return t==="rounded"&&(n=a(n,"s-rounded")),t==="circle"&&(n=a(n,"s-circle")),e?n=a(n,`bg-${e}`):n=a(n,"bg-primary"),r?n=a(n,`text-${r}`):n=a(n,"text-light"),n=a(n,o.className),jsxRuntime.jsx("div",c(l({},o),{className:n}))}; exports.Button = F; exports.Colors = Y; exports.ControlledTab = B; exports.Divider = me; exports.EmptyState = j; exports.Grid = V; exports.Loading = fe; exports.Page = te; exports.Pagination = re; exports.Panel = ne; exports.Parallax = de; exports.Shape = Ne; exports.Tab = T; exports.Table = K; exports.Toast = le; //# sourceMappingURL=out.js.map //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL0NvbnRyb2xsZWRUYWIudHN4IiwiLi4vc3JjL2NvbXBvbmVudHMvVGFiLnRzeCIsIi4uL3NyYy91dGlscy50cyIsIi4uL3NyYy9oZWxwZXJzL2luZGV4LnRzIiwiLi4vc3JjL2NvbXBvbmVudHMvRW1wdHlTdGF0ZS50c3giLCIuLi9zcmMvY29tcG9uZW50cy9QYWdlLnRzeCIsIi4uL3NyYy9jb21wb25lbnRzL1BhZ2luYXRpb24udHN4IiwiLi4vc3JjL2NvbXBvbmVudHMvUGFuZWwudHN4IiwiLi4vc3JjL2NvbXBvbmVudHMvVG9hc3QudHN4IiwiLi4vc3JjL2VsZW1lbnRzL0J1dHRvbi50c3giLCIuLi9zcmMvZWxlbWVudHMvVGFibGUudHN4IiwiLi4vc3JjL2V4cGVyaW1lbnRhbHMvUGFyYWxsYXgudHN4IiwiLi4vc3JjL2xheW91dC9HcmlkLnRzeCIsIi4uL3NyYy91dGlsaXRpZXMvRGl2aWRlci50c3giLCIuLi9zcmMvdXRpbGl0aWVzL0xvYWRpbmcudHN4IiwiLi4vc3JjL3V0aWxpdGllcy9TaGFwZS50c3giXSwibmFtZXMiOlsiQ29tcG9uZW50IiwiRnJhZ21lbnQiLCJpc05pbCIsInZhbCIsIkNvbG9ycyIsImFkZENsYXNzIiwiZGVmYXVsdENsYXNzIiwibmV3Q2xhc3MiLCJvbkVudGVyIiwiY2FsbGJhY2siLCJldmVudCIsImpzeCIsIlRhYiIsIl9hIiwiX2IiLCJibG9jayIsInByb3BzIiwiX19vYmpSZXN0IiwiY2xhc3NOYW1lIiwiX19zcHJlYWRQcm9wcyIsIl9fc3ByZWFkVmFsdWVzIiwiYWN0aXZlIiwianN4cyIsIkNvbnRyb2xsZWRUYWIiLCJfX3B1YmxpY0ZpZWxkIiwiYWN0aXZlT3B0aW9uIiwibGFiZWwiLCJ2YWx1ZSIsIm9uQ2xpY2siLCJFbXB0eVN0YXRlIiwiY2hpbGRyZW4iLCJ0aXRsZSIsImljb24iLCJQYWdlIiwiY2VudGVyZWQiLCJub29wIiwiUGFnaW5hdGlvbiIsImFjdGl2ZVBhZ2UiLCJ0b3RhbFBhZ2VzIiwicGFnZXMiLCJwcmV2RW5hYmxlZCIsIm5leHRFbmFibGVkIiwiZGlzYWJsZWRUYWIiLCJvbkNsaWNrQmFjayIsImUiLCJvbkNsaWNrRm9yd2FyZCIsImkiLCJpbmRleCIsIm9uUGFnZUNsaWNrIiwiUGFuZWwiLCJmb290ZXIiLCJoZWFkZXIiLCJUb2FzdCIsInByaW1hcnkiLCJCdXR0b24iLCJzbWFsbCIsImxhcmdlIiwiZGlzYWJsZWQiLCJzdWNjZXNzIiwiZXJyb3IiLCJsb2FkaW5nIiwibGluayIsImlucHV0R3JvdXAiLCJzaXplIiwib3RoZXJQcm9wcyIsIlRhYmxlIiwic3RyaXBlZCIsImhvdmVyIiwiaGVhZGluZ3MiLCJoZWFkaW5nUHJvcHMiLCJvbkhlYWRpbmdDbGljayIsImgiLCJQYXJhbGxheCIsInRvcExlZnQiLCJ0b3BSaWdodCIsImJvdHRvbUxlZnQiLCJib3R0b21SaWdodCIsIkdyaWQiLCJnYXBsZXNzIiwid2lkdGgiLCJEaXZpZGVyIiwiTG9hZGluZyIsIlNoYXBlIiwic2hhcGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJ0ZXh0Q29sb3IiXSwibWFwcGluZ3MiOiJtb0JBQUEsT0FBZ0IsYUFBQUEsRUFBVyxZQUFBQyxNQUFnQixRQ0EzQyxNQUFrQixRQ0VYLFNBQVNDLEVBQU1DLEVBQXVDLENBQzNELE9BQU9BLEdBQVEsSUFDakIsQ0FFTyxJQUFNQyxFQUFTLENBQ3BCLFFBQVMsVUFDVCxVQUFXLFlBQ1gsS0FBTSxPQUNOLEtBQU0sT0FDTixRQUFTLFVBQ1QsUUFBUyxVQUNULE1BQU8sUUFDUCxNQUFPLE9BQ1QsRUNOTyxTQUFTQyxFQUFTQyxFQUFzQkMsRUFBOEIsQ0FDM0UsT0FBSUwsRUFBTUssQ0FBUSxFQUFVRCxFQUNyQixHQUFHQSxDQUFZLElBQUlDLENBQVEsR0FBRyxLQUFLLENBQzVDLENBTU8sU0FBU0MsRUFHZEMsRUFBc0MsQ0FDdEMsT0FBUUMsR0FBeUIsQ0FDM0JBLEVBQU0sTUFBUSxTQUNoQkQsRUFBU0MsQ0FBSyxDQUVsQixDQUNGLENGTFMsY0FB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SUFBSUksRUFBWSxVQUVoQixPQUFJc0MsSUFDRnRDLEVBQVliLEVBQVNhLEVBQVcsWUFBWSxHQUc5Q0EsRUFBWWIsRUFBU2EsRUFBV0YsRUFBTSxTQUFTLEVBRXhDTCxHQUFDLE1BQUFRLEVBQUFDLEVBQUEsR0FBUUosR0FBUixDQUFlLFVBQVdFLEdBQVcsQ0FDL0MsRUMwQlMsY0FBQVAsT0FBQSxvQkE5QkYsSUFBTXVFLEdBQVNyRSxHQUtGLENBTEUsSUFBQUMsRUFBQUQsRUFDcEIsT0FBQXNFLEVBQ0EsZ0JBQUFDLEVBQ0EsVUFBQUMsQ0FuQkYsRUFnQnNCdkUsRUFJakJFLEVBQUFDLEVBSmlCSCxFQUlqQixDQUhILFFBQ0Esa0JBQ0EsY0FHQSxJQUFJSSxFQUFZLHVCQUVoQixPQUFJaUUsSUFBVSxZQUNaakUsRUFBWWIsRUFBU2EsRUFBVyxXQUFXLEdBR3pDaUUsSUFBVSxXQUNaakUsRUFBWWIsRUFBU2EsRUFBVyxVQUFVLEdBR3ZDa0UsRUFHSGxFLEVBQVliLEVBQVNhLEVBQVcsTUFBTWtFLENBQWUsRUFBRSxFQUZ2RGxFLEVBQVliLEVBQVNhLEVBQVcsWUFBWSxFQUt6Q21FLEVBR0huRSxFQUFZYixFQUFTYSxFQUFXLFFBQVFtRSxDQUFTLEVBQUUsRUFGbkRuRSxFQUFZYixFQUFTYSxFQUFXLFlBQVksRUFLOUNBLEVBQVliLEVBQVNhLEVBQVdGLEVBQU0sU0FBUyxFQUV4Q0wsR0FBQyxNQUFBUSxFQUFBQyxFQUFBLEdBQVFKLEdBQVIsQ0FBZSxVQUFXRSxHQUFXLENBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCwgRnJhZ21lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUYWIgfSBmcm9tICcuL1RhYic7XG5cbmltcG9ydCB7IG9uRW50ZXIgfSBmcm9tICcuLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgb3B0aW9uczoge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlO1xuICB9W107XG4gIGRlZmF1bHRBY3RpdmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDb250cm9sbGVkVGFiIGV4dGVuZHMgQ29tcG9uZW50PFByb3BzPiB7XG4gIHN0YXRlID0ge1xuICAgIGFjdGl2ZTogdGhpcy5wcm9wcy5kZWZhdWx0QWN0aXZlIHx8IHRoaXMucHJvcHMub3B0aW9uc1swXT8udmFsdWUsXG4gIH07XG5cbiAgcmVuZGVyQWN0aXZlID0gKCkgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IHRoaXMucHJvcHMub3B0aW9ucy5maW5kKFxuICAgICAgKG8pID0+IHRoaXMuc3RhdGUuYWN0aXZlID09PSBvLnZhbHVlXG4gICAgKTtcblxuICAgIHJldHVybiBhY3RpdmVPcHRpb24gPyBhY3RpdmVPcHRpb24ucmVuZGVyKCkgOiA8RnJhZ21lbnQgLz47XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8RnJhZ21lbnQ+XG4gICAgICAgIDxUYWIgYmxvY2s+XG4gICAgICAgICAge3RoaXMucHJvcHMub3B0aW9ucy5tYXAoKHsgbGFiZWwsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBhY3RpdmU6IHZhbHVlIH0pO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17dmFsdWV9PlxuICAgICAgICAgICAgICAgIDxUYWIuSGVhZGluZ1xuICAgICAgICAgICAgICAgICAgYWN0aXZlPXt0aGlzLnN0YXRlLmFjdGl2ZSA9PT0gdmFsdWV9XG4gICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBvbktleVByZXNzPXtvbkVudGVyKG9uQ2xpY2spfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCI+e2xhYmVsfTwvYT5cbiAgICAgICAgICAgICAgICA8L1RhYi5IZWFkaW5nPlxuICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9UYWI+XG4gICAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luVG9wOiAxMCB9fT57dGhpcy5yZW5kZXJBY3RpdmUoKX08L2Rpdj5cbiAgICAgIDwvRnJhZ21lbnQ+XG4gICAgKTtcbiAgfVxufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGFkZENsYXNzIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgYmxvY2s/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgdGFiIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiB2aWV3c1xuICovXG5leHBvcnQgZnVuY3Rpb24gVGFiKHsgYmxvY2ssIC4uLnByb3BzIH06IFByb3BzKSB7XG4gIGxldCBjbGFzc05hbWUgPSBhZGRDbGFzcygndGFiJywgcHJvcHMuY2xhc3NOYW1lKTtcblxuICBpZiAoYmxvY2spIHtcbiAgICBjbGFzc05hbWUgPSBhZGRDbGFzcyhjbGFzc05hbWUsICd0YWItYmxvY2snKTtcbiAgfVxuXG4gIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgcHJvcHMuY2xhc3NOYW1lKTtcblxuICByZXR1cm4gPHVsIHsuLi5wcm9wc30gY2xhc3NOYW1lPXtjbGFzc05hbWV9IC8+O1xufVxuXG5pbnRlcmZhY2UgVGFiSGVhZGluZ1Byb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBhY3RpdmU/OiBib29sZWFuO1xuICB0YWJJbmRleD86IG51bWJlcjtcbiAgb25DbGljaz86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyO1xuICBvbktleVByZXNzPzogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI7XG59XG5cblRhYi5IZWFkaW5nID0gZnVuY3Rpb24gVGFiSGVhZGluZyh7IGFjdGl2ZSwgLi4ucHJvcHMgfTogVGFiSGVhZGluZ1Byb3BzKSB7XG4gIGxldCBjbGFzc05hbWUgPSBhZGRDbGFzcygndGFiLWl0ZW0nLCBwcm9wcy5jbGFzc05hbWUpO1xuXG4gIGlmIChhY3RpdmUpIHtcbiAgICBjbGFzc05hbWUgPSBhZGRDbGFzcyhjbGFzc05hbWUsICdhY3RpdmUnKTtcbiAgfVxuXG4gIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgcHJvcHMuY2xhc3NOYW1lKTtcblxuICByZXR1cm4gPGxpIHsuLi5wcm9wc30gY2xhc3NOYW1lPXtjbGFzc05hbWV9IC8+O1xufTtcbiIsImltcG9ydCB0eXBlIHsgVmFsdWVPZiB9IGZyb20gJ3RzLWVzc2VudGlhbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNOaWwodmFsOiB1bmtub3duKTogdmFsIGlzIG51bGwgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY29uc3QgQ29sb3JzID0ge1xuICBQcmltYXJ5OiAncHJpbWFyeScsXG4gIFNlY29uZGFyeTogJ3NlY29uZGFyeScsXG4gIERhcms6ICdkYXJrJyxcbiAgR3JheTogJ2dyYXknLFxuICBTdWNjZXNzOiAnc3VjY2VzcycsXG4gIFdhcm5pbmc6ICd3YXJuaW5nJyxcbiAgRXJyb3I6ICdlcnJvcicsXG4gIExpZ2h0OiAnbGlnaHQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQ29sb3IgPSBWYWx1ZU9mPHR5cGVvZiBDb2xvcnM+O1xuIiwiaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbi8qKlxuICogUHJlcGVuZHMgdGhlIGNsYXNzTmFtZSBmcm9tIHByb3BzIHRvIHRoZSBjb21wb25lbnQgZGVmYXVsdCBjbGFzc05hbWUuXG4gKiBAcGFyYW0gZGVmYXVsdENsYXNzIC0gVGhlIGRlZmF1bHQgY2xhc3MgZm9yIHRoZSBjb21wb25lbnQuXG4gKiBAcGFyYW0gbmV3Q2xhc3MgLSBUaGUgY2xhc3MgbmFtZSB0byBwcmVwZW5kIHRvIHRoZSBkZWZhdWx0IGNsYXNzLiAoU28gdGhlIGRlZmF1bHQgY2xhc3Mgd2lsbCBvdmVycmlkZSBpdClcbiAqIEByZXR1cm5zIGNvbmNhdGVuYXRlZCBjbGFzcyBuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRDbGFzcyhkZWZhdWx0Q2xhc3M6IHN0cmluZywgbmV3Q2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICBpZiAoaXNOaWwobmV3Q2xhc3MpKSByZXR1cm4gZGVmYXVsdENsYXNzO1xuICByZXR1cm4gYCR7ZGVmYXVsdENsYXNzfSAke25ld0NsYXNzfWAudHJpbSgpO1xufVxuXG4vKipcbiAqIEEgaGlnaGVyLW9yZGVyIGZ1bmN0aW9uIGZvciBydW5uaW5nIGEgY2FsbGJhY2sgd2hlbiB0aGUgXCJFbnRlclwiIGtleSBpcyBwcmVzc2VkXG4gKiBAcGFyYW0gY2FsbGJhY2sgLSBDYWxsZWQgd2hlbiB0aGUgXCJFbnRlclwiIGtleSBpcyBwcmVzc2VkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbkVudGVyPFxuICBUIGV4dGVuZHMgRWxlbWVudCA9IEVsZW1lbnQsXG4gIEtleWJvYXJkRXZlbnQgZXh0ZW5kcyBSZWFjdC5LZXlib2FyZEV2ZW50PFQ+ID0gUmVhY3QuS2V5Ym9hcmRFdmVudDxUPixcbj4oY2FsbGJhY2s6IChlOiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkKSB7XG4gIHJldHVybiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfVxuICB9O1xufVxuIiwiaW1wb3J0IHsgYWRkQ2xhc3MgfSBmcm9tICcuLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgdGl0bGU/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIGljb24/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbi8qKlxuICogQSBwbGFjZWhvbGRlciBmb3IgZmlyc3QgdGltZSB1c2UsIGVtcHR5IGRhdGEgYW5kIGVycm9yIHNjcmVlbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBFbXB0eVN0YXRlID0gKHsgY2hpbGRyZW4sIHRpdGxlLCBpY29uLCAuLi5wcm9wcyB9OiBQcm9wcykgPT4ge1xuICBjb25zdCBjbGFzc05hbWUgPSBhZGRDbGFzcygnZW1wdHknLCBwcm9wcy5jbGFzc05hbWUpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiB7Li4ucHJvcHN9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIHshaWNvbiA/ICcnIDogPGRpdiBjbGFzc05hbWU9XCJlbXB0eS1pY29uXCI+e2ljb259PC9kaXY+fVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJlbXB0eS10aXRsZSBoNVwiPnt0aXRsZX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZW1wdHktYWN0aW9uXCI+e2NoaWxkcmVufTwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcbiIsImltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGFkZENsYXNzIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNlbnRlcmVkPzogYm9vbGVhbjtcbn1cblxuLyoqIEEgcGFnZSBmb3IgY29udGFpbmluZyBlbGVtZW50cy4gKi9cbmV4cG9ydCBjb25zdCBQYWdlID0gKHsgY2VudGVyZWQsIC4uLnByb3BzIH06IFByb3BzKSA9PiB7XG4gIGxldCBjbGFzc05hbWUgPSBhZGRDbGFzcygncGFnZSBjb250YWluZXInLCBwcm9wcy5jbGFzc05hbWUpO1xuXG4gIGlmIChjZW50ZXJlZCkge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2NlbnRlcmVkIHRleHQtY2VudGVyJyk7XG4gIH1cblxuICByZXR1cm4gPGRpdiB7Li4ucHJvcHN9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSAvPjtcbn07XG4iLCIvKiBlc2xpbnQgbm8tc2NyaXB0LXVybDogMCAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGFkZENsYXNzLCBvbkVudGVyIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fTtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBhY3RpdmVQYWdlPzogbnVtYmVyO1xuICBjZW50ZXJlZD86IGJvb2xlYW47XG4gIG9uQ2xpY2s6IChldmVudDogUmVhY3QuU3ludGhldGljRXZlbnQsIGFjdGl2ZVBhZ2U6IG51bWJlcikgPT4gdm9pZDtcbiAgdG90YWxQYWdlczogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUGFnaW5hdGlvbih7XG4gIGFjdGl2ZVBhZ2UgPSAxLFxuICB0b3RhbFBhZ2VzLFxuICBjZW50ZXJlZCxcbiAgb25DbGljayxcbiAgLi4ucHJvcHNcbn06IFByb3BzKSB7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IGFkZENsYXNzKCdwYWdpbmF0aW9uJywgcHJvcHMuY2xhc3NOYW1lKTtcblxuICBjb25zdCBwYWdlcyA9IEFycmF5LmZyb20obmV3IEFycmF5KE1hdGguY2VpbCh0b3RhbFBhZ2VzKSksICgpID0+IHVuZGVmaW5lZCk7XG5cbiAgY29uc3QgcHJldkVuYWJsZWQgPSAhKGFjdGl2ZVBhZ2UgPD0gMSk7XG4gIGNvbnN0IG5leHRFbmFibGVkID0gIShhY3RpdmVQYWdlID49IHRvdGFsUGFnZXMpO1xuICBjb25zdCBkaXNhYmxlZFRhYiA9IHsgdGFiSW5kZXg6IC0xIH07XG5cbiAgY29uc3Qgb25DbGlja0JhY2sgPSAoZTogUmVhY3QuU3ludGhldGljRXZlbnQpID0+IG9uQ2xpY2soZSwgYWN0aXZlUGFnZSAtIDEpO1xuICBjb25zdCBvbkNsaWNrRm9yd2FyZCA9IChlOiBSZWFjdC5TeW50aGV0aWNFdmVudCkgPT5cbiAgICBvbkNsaWNrKGUsIGFjdGl2ZVBhZ2UgKyAxKTtcblxuICByZXR1cm4gKFxuICAgIDx1bFxuICAgICAgc3R5bGU9e2NlbnRlcmVkID8geyBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicgfSA6IHt9fVxuICAgICAgey4uLnByb3BzfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzTmFtZT17YHBhZ2UtaXRlbSAke3ByZXZFbmFibGVkID8gJycgOiAnZGlzYWJsZWQnfWB9XG4gICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICBvbkNsaWNrPXshcHJldkVuYWJsZWQgPyBub29wIDogb25DbGlja0JhY2t9XG4gICAgICAgIG9uS2V5UHJlc3M9eyFwcmV2RW5hYmxlZCA/IG5vb3AgOiBvbkVudGVyKG9uQ2xpY2tCYWNrKX1cbiAgICAgID5cbiAgICAgICAgPGFcbiAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXG4gICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgICB7Li4uKHByZXZFbmFibGVkID8ge30gOiBkaXNhYmxlZFRhYil9XG4gICAgICAgID5cbiAgICAgICAgICB7JzwnfVxuICAgICAgICA8L2E+XG4gICAgICA8L2xpPlxuICAgICAge3BhZ2VzLm1hcCgoaSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qgb25QYWdlQ2xpY2sgPSAoZTogUmVhY3QuU3ludGhldGljRXZlbnQpID0+IG9uQ2xpY2soZSwgaW5kZXggKyAxKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxsaVxuICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17YHBhZ2UtaXRlbSAke2luZGV4ICsgMSA9PT0gYWN0aXZlUGFnZSA/ICdhY3RpdmUnIDogJyd9YH1cbiAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgb25DbGljaz17b25QYWdlQ2xpY2t9XG4gICAgICAgICAgICBvbktleVByZXNzPXtvbkVudGVyKG9uUGFnZUNsaWNrKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIHN0eWxlPXt7IGN1cnNvcjogJ3BvaW50ZXInIH19PlxuICAgICAgICAgICAgICB7aW5kZXggKyAxfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICk7XG4gICAgICB9KX1cbiAgICAgIDxsaVxuICAgICAgICBjbGFzc05hbWU9e2BwYWdlLWl0ZW0gJHtuZXh0RW5hYmxlZCA/ICcnIDogJ2Rpc2FibGVkJ31gfVxuICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgb25DbGljaz17IW5leHRFbmFibGVkID8gbm9vcCA6IG9uQ2xpY2tGb3J3YXJkfVxuICAgICAgICBvbktleVByZXNzPXshbmV4dEVuYWJsZWQgPyBub29wIDogb25FbnRlcihvbkNsaWNrRm9yd2FyZCl9XG4gICAgICA+XG4gICAgICAgIDxhXG4gICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIlxuICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogJ3BvaW50ZXInIH19XG4gICAgICAgICAgey4uLihuZXh0RW5hYmxlZCA/IHt9IDogZGlzYWJsZWRUYWIpfVxuICAgICAgICA+XG4gICAgICAgICAgeyc+J31cbiAgICAgICAgPC9hPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBQYWdpbmF0aW9uO1xuIiwiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBhZGRDbGFzcyB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhbmVsUHJvcHMge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgdGl0bGU/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIGZvb3Rlcj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbi8qKlxuICogQSBmbGV4aWJsZSB2aWV3IGNvbnRhaW5lciB3aXRoIGFuIGF1dG8tZXhwYW5kIGNvbnRlbnQgc2VjdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFBhbmVsID0gKHsgY2hpbGRyZW4sIHRpdGxlLCBmb290ZXIsIC4uLnByb3BzIH06IFBhbmVsUHJvcHMpID0+IHtcbiAgY29uc3QgY2xhc3NOYW1lID0gYWRkQ2xhc3MoJ3BhbmVsJywgcHJvcHMuY2xhc3NOYW1lKTtcblxuICBjb25zdCBoZWFkZXIgPSBpc05pbCh0aXRsZSkgPyAoXG4gICAgPEZyYWdtZW50IC8+XG4gICkgOiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwYW5lbC1oZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFuZWwtdGl0bGVcIj5cbiAgICAgICAgPGg1Pnt0aXRsZX08L2g1PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHsuLi5wcm9wc30gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAge2hlYWRlcn1cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFuZWwtYm9keVwiPntjaGlsZHJlbn08L2Rpdj5cbiAgICAgIHtmb290ZXIgJiYgPGRpdiBjbGFzc05hbWU9XCJwYW5lbC1mb290ZXJcIj57Zm9vdGVyfTwvZGl2Pn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgYWRkQ2xhc3MgfSBmcm9tICcuLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIFRvYXN0UHJvcHMge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHByaW1hcnk/OiBib29sZWFuO1xuICBjZW50ZXJlZD86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG59XG5cbi8qKlxuICogQSB0b2FzdCB0byBzaG93IGFuIGFsZXJ0IG9yIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgVG9hc3QgPSAoeyBwcmltYXJ5LCBjZW50ZXJlZCwgLi4ucHJvcHMgfTogVG9hc3RQcm9wcykgPT4ge1xuICBsZXQgY2xhc3NOYW1lID0gYWRkQ2xhc3MoJ3RvYXN0JywgcHJvcHMuY2xhc3NOYW1lKTtcblxuICBpZiAocHJpbWFyeSkge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2J0bi1wcmltYXJ5Jyk7XG4gIH1cblxuICBpZiAoY2VudGVyZWQpIHtcbiAgICBjbGFzc05hbWUgPSBhZGRDbGFzcyhjbGFzc05hbWUsICdjZW50ZXJlZCB0ZXh0LWNlbnRlcicpO1xuICB9XG5cbiAgcmV0dXJuIDxkaXYgey4uLnByb3BzfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gLz47XG59O1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGFkZENsYXNzIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmV4cG9ydCB0eXBlIFNpemUgPVxuICB8IDFcbiAgfCAyXG4gIHwgM1xuICB8IDRcbiAgfCA1XG4gIHwgNlxuICB8IDdcbiAgfCA4XG4gIHwgOVxuICB8IDEwXG4gIHwgMTFcbiAgfCAxMlxuICB8ICcxJ1xuICB8ICcyJ1xuICB8ICczJ1xuICB8ICc0J1xuICB8ICc1J1xuICB8ICc2J1xuICB8ICc3J1xuICB8ICc4J1xuICB8ICc5J1xuICB8ICcxMCdcbiAgfCAnMTEnXG4gIHwgJzEyJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBsYXJnZT86IGJvb2xlYW47XG4gIHNtYWxsPzogYm9vbGVhbjtcbiAgYmxvY2s/OiBib29sZWFuO1xuICBwcmltYXJ5PzogYm9vbGVhbjtcbiAgc3VjY2Vzcz86IGJvb2xlYW47XG4gIGVycm9yPzogYm9vbGVhbjtcbiAgbGluaz86IGJvb2xlYW47XG4gIGxvYWRpbmc/OiBib29sZWFuO1xuICBjZW50ZXJlZD86IGJvb2xlYW47XG4gIGlucHV0R3JvdXA/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHNpemU/OiBTaXplO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQnV0dG9uKHtcbiAgc21hbGwsXG4gIGxhcmdlLFxuICBibG9jayxcbiAgcHJpbWFyeSxcbiAgY2VudGVyZWQsXG4gIGRpc2FibGVkLFxuICBzdWNjZXNzLFxuICBlcnJvcixcbiAgbG9hZGluZyxcbiAgbGluayxcbiAgaW5wdXRHcm91cCxcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IFByb3BzKSB7XG4gIGxldCBjbGFzc05hbWUgPSAnYnRuJztcblxuICBjb25zdCBvdGhlclByb3BzID0ge1xuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICB0YWJJbmRleDogdW5kZWZpbmVkLFxuICB9IGFzIFBpY2s8XG4gICAgUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgICBSZWFjdC5CdXR0b25IVE1MQXR0cmlidXRlczxIVE1MQnV0dG9uRWxlbWVudD4sXG4gICAgICBIVE1MQnV0dG9uRWxlbWVudFxuICAgID4sXG4gICAgJ2Rpc2FibGVkJyB8ICd0YWJJbmRleCdcbiAgPjtcblxuICAvLyBhbGxvdyBzaXplIHRvIGJlIHBhc3NlZCBhcyBhIHN0cmluZyBvciBhIG51bWJlclxuICBpZiAoc2l6ZSkge1xuICAgIGNsYXNzTmFtZSA9IGAke2NsYXNzTmFtZX0gY29sLSR7c2l6ZS50b1N0cmluZygpLnRyaW0oKX1gO1xuICB9XG5cbiAgaWYgKGxhcmdlKSB7XG4gICAgY2xhc3NOYW1lID0gYWRkQ2xhc3MoY2xhc3NOYW1lLCAnYnRuLWxnJyk7XG4gIH0gZWxzZSBpZiAoc21hbGwpIHtcbiAgICBjbGFzc05hbWUgPSBhZGRDbGFzcyhjbGFzc05hbWUsICdidG4tc20nKTtcbiAgfVxuXG4gIGlmIChibG9jaykge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2J0bi1ibG9jaycpO1xuICB9XG5cbiAgaWYgKHByaW1hcnkpIHtcbiAgICBjbGFzc05hbWUgPSBhZGRDbGFzcyhjbGFzc05hbWUsICdidG4tcHJpbWFyeScpO1xuICB9XG5cbiAgaWYgKHN1Y2Nlc3MpIHtcbiAgICBjbGFzc05hbWUgPSBhZGRDbGFzcyhjbGFzc05hbWUsICdidG4tc3VjY2VzcycpO1xuICB9XG5cbiAgaWYgKGVycm9yKSB7XG4gICAgY2xhc3NOYW1lID0gYWRkQ2xhc3MoY2xhc3NOYW1lLCAnYnRuLWVycm9yJyk7XG4gIH1cblxuICBpZiAobGluaykge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2J0bi1saW5rJyk7XG4gIH1cblxuICBpZiAobG9hZGluZykge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2xvYWRpbmcnKTtcbiAgfVxuXG4gIGlmIChjZW50ZXJlZCkge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2NlbnRlcmVkIHRleHQtY2VudGVyJyk7XG4gIH1cblxuICBpZiAoaW5wdXRHcm91cCkge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2lucHV0LWdyb3VwLWJ0bicpO1xuICB9XG5cbiAgaWYgKGRpc2FibGVkKSB7XG4gICAgb3RoZXJQcm9wcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgb3RoZXJQcm9wcy50YWJJbmRleCA9IC0xO1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2Rpc2FibGVkJyk7XG4gIH1cblxuICBjbGFzc05hbWUgPSBhZGRDbGFzcyhjbGFzc05hbWUsIHByb3BzLmNsYXNzTmFtZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB7Li4ucHJvcHN9IHsuLi5vdGhlclByb3BzfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gLz5cbiAgKTtcbn1cblxuaW50ZXJmYWNlIEJ1dHRvbkdyb3VwUHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBibG9jaz86IGJvb2xlYW47XG59XG5cbkJ1dHRvbi5Hcm91cCA9IGZ1bmN0aW9uIEJ1dHRvbkdyb3VwKHsgYmxvY2ssIC4uLnByb3BzIH06IEJ1dHRvbkdyb3VwUHJvcHMpIHtcbiAgbGV0IGNsYXNzTmFtZSA9ICdidG4tZ3JvdXAnO1xuXG4gIGlmIChibG9jaykge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2J0bi1ncm91cC1ibG9jaycpO1xuICB9XG5cbiAgY2xhc3NOYW1lID0gYWRkQ2xhc3MoY2xhc3NOYW1lLCBwcm9wcy5jbGFzc05hbWUpO1xuXG4gIHJldHVybiA8ZGl2IHsuLi5wcm9wc30gY2xhc3NOYW1lPXtjbGFzc05hbWV9IC8+O1xufTtcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBhZGRDbGFzcyB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHN0cmlwZWQ/OiBib29sZWFuO1xuICBob3Zlcj86IGJvb2xlYW47XG4gIGNlbnRlcmVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRhYmxlKHsgc3RyaXBlZCwgaG92ZXIsIGNlbnRlcmVkLCAuLi5wcm9wcyB9OiBQcm9wcykge1xuICBsZXQgY2xhc3NOYW1lID0gYWRkQ2xhc3MoJ3RhYmxlJywgcHJvcHMuY2xhc3NOYW1lKTtcblxuICBpZiAoc3RyaXBlZCkge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ3RhYmxlLXN0cmlwZWQnKTtcbiAgfVxuXG4gIGlmIChob3Zlcikge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ3RhYmxlLWhvdmVyJyk7XG4gIH1cblxuICBpZiAoY2VudGVyZWQpIHtcbiAgICBjbGFzc05hbWUgPSBhZGRDbGFzcyhjbGFzc05hbWUsICd0ZXh0LWNlbnRlcicpO1xuICB9XG5cbiAgY2xhc3NOYW1lID0gYWRkQ2xhc3MoY2xhc3NOYW1lLCBwcm9wcy5jbGFzc05hbWUpO1xuXG4gIHJldHVybiA8dGFibGUgey4uLnByb3BzfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gLz47XG59XG5cbmludGVyZmFjZSBUYWJsZUhlYWRQcm9wcyB7XG4gIGhlYWRpbmdzOiBzdHJpbmdbXTtcbiAgb25IZWFkaW5nQ2xpY2s/KGhlYWRpbmc6IHN0cmluZyk6IHZvaWQ7XG4gIGhlYWRpbmdQcm9wcz86IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxUYWJsZVJvd0VsZW1lbnQ+LFxuICAgIEhUTUxUYWJsZVJvd0VsZW1lbnRcbiAgPjtcbn1cblxuVGFibGUuSGVhZCA9IGZ1bmN0aW9uIFRhYmxlSGVhZCh7XG4gIGhlYWRpbmdzLFxuICBoZWFkaW5nUHJvcHMsXG4gIG9uSGVhZGluZ0NsaWNrLFxuICAuLi5wcm9wc1xufTogVGFibGVIZWFkUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8dGhlYWQgey4uLnByb3BzfT5cbiAgICAgIDx0ciB7Li4uaGVhZGluZ1Byb3BzfT5cbiAgICAgICAge2hlYWRpbmdzLm1hcCgoaCwgaW5kZXgpID0+IChcbiAgICAgICAgICA8dGhcbiAgICAgICAgICAgIGtleT17YGhlYWRpbmctJHtofS0ke2luZGV4fWB9XG4gICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgb25IZWFkaW5nQ2xpY2sgJiZcbiAgICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICBvbkhlYWRpbmdDbGljayhoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aH1cbiAgICAgICAgICA8L3RoPlxuICAgICAgICApKX1cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBQcm9wc1dpdGhDaGlsZHJlbiB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn1cblxuVGFibGUuQm9keSA9IGZ1bmN0aW9uIFRhYmxlQm9keShwcm9wczogUHJvcHNXaXRoQ2hpbGRyZW4pIHtcbiAgcmV0dXJuIDx0Ym9keSB7Li4ucHJvcHN9IC8+O1xufTtcblxuVGFibGUuUm93ID0gZnVuY3Rpb24gVGFibGVSb3cocHJvcHM6IFByb3BzV2l0aENoaWxkcmVuKSB7XG4gIHJldHVybiA8dHIgey4uLnByb3BzfSAvPjtcbn07XG4iLCJpbXBvcnQgdHlwZSBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBhZGRDbGFzcywgb25FbnRlciB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5pbnRlcmZhY2UgUGFyYWxsYXhQcm9wcyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHRvcExlZnQ/OiAoZXZlbnQ6IFJlYWN0LlN5bnRoZXRpY0V2ZW50KSA9PiB2b2lkO1xuICB0b3BSaWdodD86IChldmVudDogUmVhY3QuU3ludGhldGljRXZlbnQpID0+IHZvaWQ7XG4gIGJvdHRvbUxlZnQ/OiAoZXZlbnQ6IFJlYWN0LlN5bnRoZXRpY0V2ZW50KSA9PiB2b2lkO1xuICBib3R0b21SaWdodD86IChldmVudDogUmVhY3QuU3ludGhldGljRXZlbnQpID0+IHZvaWQ7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG4vKipcbiAqIEEgaG92ZXIgcGFyYWxsYXggZWZmZWN0LlxuICovXG5leHBvcnQgY29uc3QgUGFyYWxsYXggPSAoe1xuICBjaGlsZHJlbixcbiAgdGl0bGUsXG4gIHRvcExlZnQsXG4gIHRvcFJpZ2h0LFxuICBib3R0b21MZWZ0LFxuICBib3R0b21SaWdodCxcbiAgLi4ucHJvcHNcbn06IFBhcmFsbGF4UHJvcHMpID0+IHtcbiAgY29uc3QgY2xhc3NOYW1lID0gYWRkQ2xhc3MoJ3BhcmFsbGF4JywgcHJvcHMuY2xhc3NOYW1lKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgey4uLnByb3BzfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInBhcmFsbGF4LXRvcC1sZWZ0XCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICBvbkNsaWNrPXt0b3BMZWZ0fVxuICAgICAgICBvbktleVByZXNzPXt0b3BMZWZ0ICYmIG9uRW50ZXIodG9wTGVmdCl9XG4gICAgICAvPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJwYXJhbGxheC10b3AtcmlnaHRcIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgIG9uQ2xpY2s9e3RvcFJpZ2h0fVxuICAgICAgICBvbktleVByZXNzPXt0b3BSaWdodCAmJiBvbkVudGVyKHRvcFJpZ2h0KX1cbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInBhcmFsbGF4LWJvdHRvbS1sZWZ0XCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICBvbkNsaWNrPXtib3R0b21MZWZ0fVxuICAgICAgICBvbktleVByZXNzPXtib3R0b21MZWZ0ICYmIG9uRW50ZXIoYm90dG9tTGVmdCl9XG4gICAgICAvPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJwYXJhbGxheC1ib3R0b20tcmlnaHRcIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgIG9uQ2xpY2s9e2JvdHRvbVJpZ2h0fVxuICAgICAgICBvbktleVByZXNzPXtib3R0b21SaWdodCAmJiBvbkVudGVyKGJvdHRvbVJpZ2h0KX1cbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhcmFsbGF4LWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYXJhbGxheC1mcm9udFwiPlxuICAgICAgICAgIDxoMj57dGl0bGV9PC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFyYWxsYXgtYmFja1wiPntjaGlsZHJlbn08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcbiIsImltcG9ydCB7IGFkZENsYXNzIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgdHlwZSB7IFNpemUgfSBmcm9tICcuLi9lbGVtZW50cy9CdXR0b24nO1xuXG5pbnRlcmZhY2UgR3JpZFByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBnYXBsZXNzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdyaWQoeyBnYXBsZXNzLCAuLi5wcm9wcyB9OiBHcmlkUHJvcHMpIHtcbiAgbGV0IGNsYXNzTmFtZSA9IGFkZENsYXNzKCdjb2x1bW5zJywgcHJvcHMuY2xhc3NOYW1lKTtcblxuICBpZiAoZ2FwbGVzcykge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2NvbC1nYXBsZXNzJyk7XG4gIH1cblxuICByZXR1cm4gPGRpdiB7Li4ucHJvcHN9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSAvPjtcbn1cblxuaW50ZXJmYWNlIEdyaWRDb2x1bW5Qcm9wcyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgd2lkdGg6IFNpemU7XG59XG5cbkdyaWQuQ29sdW1uID0gZnVuY3Rpb24gR3JpZENvbHVtbih7IHdpZHRoLCAuLi5wcm9wcyB9OiBHcmlkQ29sdW1uUHJvcHMpIHtcbiAgY29uc3QgY2xhc3NOYW1lID0gYWRkQ2xhc3MoYGNvbHVtbiBjb2wtJHt3aWR0aH1gLCBwcm9wcy5jbGFzc05hbWUpO1xuICByZXR1cm4gPGRpdiB7Li4ucHJvcHN9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSAvPjtcbn07XG4iLCJpbXBvcnQgeyBhZGRDbGFzcyB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5pbnRlcmZhY2UgRGl2aWRlclByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBzaXplPzogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgZGl2aWRlciBmb3Igc2VwYXJhdGluZyBlbGVtZW50cy5cbiAqL1xuZXhwb3J0IGNvbnN0IERpdmlkZXIgPSAocHJvcHM6IERpdmlkZXJQcm9wcykgPT4ge1xuICBsZXQgY2xhc3NOYW1lID0gYWRkQ2xhc3MoJ2RpdmlkZXInLCBwcm9wcy5jbGFzc05hbWUpO1xuXG4gIGlmIChwcm9wcy5zaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGFzc05hbWUgPSBhZGRDbGFzcyhcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGBjb2wtJHtwcm9wcy5zaXplLnRvU3RyaW5nKCkudHJpbSgpfSBjZW50ZXJlZGBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIDxkaXYgey4uLnByb3BzfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gLz47XG59O1xuIiwiaW1wb3J0IHsgYWRkQ2xhc3MgfSBmcm9tICcuLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIExvYWRpbmdQcm9wcyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgbGFyZ2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgbG9hZGluZyBpbmRpY2F0b3IuXG4gKi9cbmV4cG9ydCBjb25zdCBMb2FkaW5nID0gKHsgbGFyZ2UsIC4uLnByb3BzIH06IExvYWRpbmdQcm9wcykgPT4ge1xuICBsZXQgY2xhc3NOYW1lID0gJ2xvYWRpbmcnO1xuXG4gIGlmIChsYXJnZSkge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgJ2xvYWRpbmctbGcnKTtcbiAgfVxuXG4gIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgcHJvcHMuY2xhc3NOYW1lKTtcblxuICByZXR1cm4gPGRpdiB7Li4ucHJvcHN9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSAvPjtcbn07XG4iLCJpbXBvcnQgdHlwZSBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBhZGRDbGFzcyB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gJy4uL3V0aWxzJztcblxuaW50ZXJmYWNlIExvYWRpbmdQcm9wcyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgc2hhcGU6ICdyb3VuZGVkJyB8ICdjaXJjbGUnO1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBDb2xvcjtcbiAgdGV4dENvbG9yPzogQ29sb3I7XG59XG5cbi8qKlxuICogU2hhcGUgdXRpbGl0aWVzIGFyZSB1c2VkIGZvciBjaGFuZ2luZyBlbGVtZW50IHNoYXBlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFNoYXBlID0gKHtcbiAgc2hhcGUsXG4gIGJhY2tncm91bmRDb2xvcixcbiAgdGV4dENvbG9yLFxuICAuLi5wcm9wc1xufTogTG9hZGluZ1Byb3BzKSA9PiB7XG4gIGxldCBjbGFzc05hbWUgPSAnY2VudGVyZWQgdGV4dC1jZW50ZXInO1xuXG4gIGlmIChzaGFwZSA9PT0gJ3JvdW5kZWQnKSB7XG4gICAgY2xhc3NOYW1lID0gYWRkQ2xhc3MoY2xhc3NOYW1lLCAncy1yb3VuZGVkJyk7XG4gIH1cblxuICBpZiAoc2hhcGUgPT09ICdjaXJjbGUnKSB7XG4gICAgY2xhc3NOYW1lID0gYWRkQ2xhc3MoY2xhc3NOYW1lLCAncy1jaXJjbGUnKTtcbiAgfVxuXG4gIGlmICghYmFja2dyb3VuZENvbG9yKSB7XG4gICAgY2xhc3NOYW1lID0gYWRkQ2xhc3MoY2xhc3NOYW1lLCAnYmctcHJpbWFyeScpO1xuICB9IGVsc2Uge1xuICAgIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgYGJnLSR7YmFja2dyb3VuZENvbG9yfWApO1xuICB9XG5cbiAgaWYgKCF0ZXh0Q29sb3IpIHtcbiAgICBjbGFzc05hbWUgPSBhZGRDbGFzcyhjbGFzc05hbWUsICd0ZXh0LWxpZ2h0Jyk7XG4gIH0gZWxzZSB7XG4gICAgY2xhc3NOYW1lID0gYWRkQ2xhc3MoY2xhc3NOYW1lLCBgdGV4dC0ke3RleHRDb2xvcn1gKTtcbiAgfVxuXG4gIGNsYXNzTmFtZSA9IGFkZENsYXNzKGNsYXNzTmFtZSwgcHJvcHMuY2xhc3NOYW1lKTtcblxuICByZXR1cm4gPGRpdiB7Li4ucHJvcHN9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSAvPjtcbn07XG4iXX0=