import * as ___react___ from 'react'; import * as ___react_dom___ from 'react-dom'; function require(mod) { if (mod === 'react') return ___react___; if (mod === 'react-dom') return ___react_dom___; throw new Error(`Unknown module ${mod}`); } var q=new WeakMap;function T(e){let r=q.get(e);return r==null?null:(q.delete(e),r)}function g(e){let{abortSignal:r,durationMs:t}=e;r&&q.set(r,t)}function F(e){if(typeof performance.getEntriesByType!="function")return null;let r=performance.getEntriesByType("resource"),t=R(e.requestUrl),n=null,c=Number.POSITIVE_INFINITY;for(let l of r){let i=l;if(i.initiatorType!=="fetch"||!x(t,i.name,e.requestUrl)||i.startTime+1c||(c=s,n=Math.round(i.duration))}return n}function R(e){try{let r=new URL(e);return{origin:r.origin,pathname:b(r.pathname)}}catch{return null}}function x(e,r,t){if(!e)return r===t;try{let n=new URL(r);return n.origin===e.origin&&b(n.pathname)===e.pathname}catch{return!1}}function b(e){return e.endsWith("/")&&e.length>1?e.slice(0,-1):e}async function y(e){let r=F({requestStartedAt:e.requestStartedAt,requestUrl:e.responseUrl});if(r!=null)return r;await new Promise(n=>{setTimeout(n,0)});let t=F({requestStartedAt:e.requestStartedAt,requestUrl:e.responseUrl});return t??Math.round(performance.now()-e.requestStartedAt)}function k(e){let{customHeaders:r,customPayload:t,resultDeserializerFn:n,url:c}=e,l=e.fetch||fetch;return{async execute(i,s){try{let u=performance.now(),o=await l(c,{body:JSON.stringify({customPayload:t,procedure:"query",query:i}),headers:{Accept:"application/json","Content-Type":"application/json",...r},method:"POST",signal:s?.abortSignal}),S=await y({requestStartedAt:u,responseUrl:o.url});if(g({abortSignal:s?.abortSignal,durationMs:S}),!o.ok){let a;try{a=await o.text()}catch{a="unknown error"}return[new Error(a)]}let[d,f]=await o.json();return d?[p(d)]:[null,n?.(f)||f]}catch(u){return[u]}},async executeSequence(i,s){try{let u=performance.now(),o=await l(c,{body:JSON.stringify({customPayload:t,procedure:"sequence",sequence:i}),headers:{Accept:"application/json","Content-Type":"application/json",...r},method:"POST",signal:s?.abortSignal}),S=await y({requestStartedAt:u,responseUrl:o.url});if(g({abortSignal:s?.abortSignal,durationMs:S}),!o.ok){let m;try{m=await o.text()}catch{m="unknown error"}return[[new Error(m)]]}let[[d,f],a]=await o.json();if(d)return[[p(d)]];let w=n?.(f)||f,[h,E]=a||[];return h?[[null,w],[p(h)]]:[[null,w],[null,n?.(E)||E]]}catch(u){return[[u]]}},async lintSql(i,s){try{let u=performance.now(),o=await l(c,{body:JSON.stringify({customPayload:t,procedure:"sql-lint",schemaVersion:i.schemaVersion,sql:i.sql}),headers:{Accept:"application/json","Content-Type":"application/json",...r},method:"POST",signal:s?.abortSignal}),S=await y({requestStartedAt:u,responseUrl:o.url});if(g({abortSignal:s?.abortSignal,durationMs:S}),!o.ok){let a;try{a=await o.text()}catch{a="unknown error"}return[new Error(a)]}let[d,f]=await o.json();return d?[p(d)]:[null,f]}catch(u){return[u]}}}}function B(e){if(e instanceof AggregateError){let{name:r,message:t}=e,n=e.errors.map(B);return{name:r,message:t,errors:n}}if(e instanceof Error){let{name:r,message:t}=e;return{name:r,message:t}}return{name:"UnknownError",message:JSON.stringify(e)}}function p(e){let{name:r,message:t}=e;if(e.errors!==void 0){let c=e.errors.map(p),l=new AggregateError(c,t);return l.name=e.name,l}let n=new Error(e.message);return e.name=r,n}export{T as a,k as b,B as c,p as d}; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vZGF0YS9iZmYvYmZmLWNsaWVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBBZGFwdGVyU3FsTGludERpYWdub3N0aWMgfSBmcm9tIFwiLi4vYWRhcHRlclwiO1xuaW1wb3J0IHR5cGUgeyBFeGVjdXRlT3B0aW9ucywgU2VxdWVuY2VFeGVjdXRvciB9IGZyb20gXCIuLi9leGVjdXRvclwiO1xuaW1wb3J0IHR5cGUgeyBRdWVyeSwgUXVlcnlSZXN1bHQgfSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCB0eXBlIHsgRWl0aGVyIH0gZnJvbSBcIi4uL3R5cGUtdXRpbHNcIjtcblxuY29uc3QgYmZmUmVxdWVzdER1cmF0aW9uQnlBYm9ydFNpZ25hbCA9IG5ldyBXZWFrTWFwPEFib3J0U2lnbmFsLCBudW1iZXI+KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdW1lQmZmUmVxdWVzdER1cmF0aW9uTXNGb3JTaWduYWwoXG4gIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCxcbik6IG51bWJlciB8IG51bGwge1xuICBjb25zdCBkdXJhdGlvbiA9IGJmZlJlcXVlc3REdXJhdGlvbkJ5QWJvcnRTaWduYWwuZ2V0KGFib3J0U2lnbmFsKTtcblxuICBpZiAoZHVyYXRpb24gPT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYmZmUmVxdWVzdER1cmF0aW9uQnlBYm9ydFNpZ25hbC5kZWxldGUoYWJvcnRTaWduYWwpO1xuICByZXR1cm4gZHVyYXRpb247XG59XG5cbmZ1bmN0aW9uIHJlY29yZEJmZlJlcXVlc3REdXJhdGlvbihhcmdzOiB7XG4gIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCB8IHVuZGVmaW5lZDtcbiAgZHVyYXRpb25NczogbnVtYmVyO1xufSk6IHZvaWQge1xuICBjb25zdCB7IGFib3J0U2lnbmFsLCBkdXJhdGlvbk1zIH0gPSBhcmdzO1xuXG4gIGlmICghYWJvcnRTaWduYWwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBiZmZSZXF1ZXN0RHVyYXRpb25CeUFib3J0U2lnbmFsLnNldChhYm9ydFNpZ25hbCwgZHVyYXRpb25Ncyk7XG59XG5cbmZ1bmN0aW9uIGdldEJmZk5ldHdvcmtEdXJhdGlvbk1zKGFyZ3M6IHtcbiAgcmVxdWVzdFN0YXJ0ZWRBdDogbnVtYmVyO1xuICByZXF1ZXN0VXJsOiBzdHJpbmc7XG59KTogbnVtYmVyIHwgbnVsbCB7XG4gIGlmICh0eXBlb2YgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBlbnRyaWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShcbiAgICBcInJlc291cmNlXCIsXG4gICkgYXMgUGVyZm9ybWFuY2VFbnRyeVtdO1xuICBjb25zdCBub3JtYWxpemVkUmVxdWVzdFVybCA9IG5vcm1hbGl6ZUNvbXBhcmFibGVSZXNvdXJjZVVybChhcmdzLnJlcXVlc3RVcmwpO1xuXG4gIGxldCBiZXN0RHVyYXRpb25NczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGxldCBiZXN0U3RhcnREZWx0YSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBmZXRjaEVudHJ5ID0gZW50cnkgYXMgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZztcblxuICAgIGlmIChmZXRjaEVudHJ5LmluaXRpYXRvclR5cGUgIT09IFwiZmV0Y2hcIikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIW1hdGNoZXNDb21wYXJhYmxlUmVzb3VyY2VVcmwoXG4gICAgICAgIG5vcm1hbGl6ZWRSZXF1ZXN0VXJsLFxuICAgICAgICBmZXRjaEVudHJ5Lm5hbWUsXG4gICAgICAgIGFyZ3MucmVxdWVzdFVybCxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChmZXRjaEVudHJ5LnN0YXJ0VGltZSArIDEgPCBhcmdzLnJlcXVlc3RTdGFydGVkQXQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0RGVsdGEgPSBNYXRoLmFicyhmZXRjaEVudHJ5LnN0YXJ0VGltZSAtIGFyZ3MucmVxdWVzdFN0YXJ0ZWRBdCk7XG5cbiAgICBpZiAoc3RhcnREZWx0YSA+IGJlc3RTdGFydERlbHRhKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBiZXN0U3RhcnREZWx0YSA9IHN0YXJ0RGVsdGE7XG4gICAgYmVzdER1cmF0aW9uTXMgPSBNYXRoLnJvdW5kKGZldGNoRW50cnkuZHVyYXRpb24pO1xuICB9XG5cbiAgcmV0dXJuIGJlc3REdXJhdGlvbk1zO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVDb21wYXJhYmxlUmVzb3VyY2VVcmwodXJsOiBzdHJpbmcpOiB7XG4gIG9yaWdpbjogc3RyaW5nO1xuICBwYXRobmFtZTogc3RyaW5nO1xufSB8IG51bGwge1xuICB0cnkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRVcmwgPSBuZXcgVVJMKHVybCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3JpZ2luOiBub3JtYWxpemVkVXJsLm9yaWdpbixcbiAgICAgIHBhdGhuYW1lOiB0cmltVHJhaWxpbmdTbGFzaChub3JtYWxpemVkVXJsLnBhdGhuYW1lKSxcbiAgICB9O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaGVzQ29tcGFyYWJsZVJlc291cmNlVXJsKFxuICBub3JtYWxpemVkUmVxdWVzdFVybDoge1xuICAgIG9yaWdpbjogc3RyaW5nO1xuICAgIHBhdGhuYW1lOiBzdHJpbmc7XG4gIH0gfCBudWxsLFxuICBjYW5kaWRhdGVVcmw6IHN0cmluZyxcbiAgZmFsbGJhY2tSZXF1ZXN0VXJsOiBzdHJpbmcsXG4pOiBib29sZWFuIHtcbiAgaWYgKCFub3JtYWxpemVkUmVxdWVzdFVybCkge1xuICAgIHJldHVybiBjYW5kaWRhdGVVcmwgPT09IGZhbGxiYWNrUmVxdWVzdFVybDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZENhbmRpZGF0ZVVybCA9IG5ldyBVUkwoY2FuZGlkYXRlVXJsKTtcblxuICAgIHJldHVybiAoXG4gICAgICBub3JtYWxpemVkQ2FuZGlkYXRlVXJsLm9yaWdpbiA9PT0gbm9ybWFsaXplZFJlcXVlc3RVcmwub3JpZ2luICYmXG4gICAgICB0cmltVHJhaWxpbmdTbGFzaChub3JtYWxpemVkQ2FuZGlkYXRlVXJsLnBhdGhuYW1lKSA9PT1cbiAgICAgICAgbm9ybWFsaXplZFJlcXVlc3RVcmwucGF0aG5hbWVcbiAgICApO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJpbVRyYWlsaW5nU2xhc2gocGF0aG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChwYXRobmFtZS5lbmRzV2l0aChcIi9cIikgJiYgcGF0aG5hbWUubGVuZ3RoID4gMSkge1xuICAgIHJldHVybiBwYXRobmFtZS5zbGljZSgwLCAtMSk7XG4gIH1cblxuICByZXR1cm4gcGF0aG5hbWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEJmZlJlcXVlc3REdXJhdGlvbk1zKGFyZ3M6IHtcbiAgcmVxdWVzdFN0YXJ0ZWRBdDogbnVtYmVyO1xuICByZXNwb25zZVVybDogc3RyaW5nO1xufSk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IGltbWVkaWF0ZUR1cmF0aW9uTXMgPSBnZXRCZmZOZXR3b3JrRHVyYXRpb25Ncyh7XG4gICAgcmVxdWVzdFN0YXJ0ZWRBdDogYXJncy5yZXF1ZXN0U3RhcnRlZEF0LFxuICAgIHJlcXVlc3RVcmw6IGFyZ3MucmVzcG9uc2VVcmwsXG4gIH0pO1xuXG4gIGlmIChpbW1lZGlhdGVEdXJhdGlvbk1zICE9IG51bGwpIHtcbiAgICByZXR1cm4gaW1tZWRpYXRlRHVyYXRpb25NcztcbiAgfVxuXG4gIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgc2V0VGltZW91dChyZXNvbHZlLCAwKTtcbiAgfSk7XG5cbiAgY29uc3QgZGVsYXllZER1cmF0aW9uTXMgPSBnZXRCZmZOZXR3b3JrRHVyYXRpb25Ncyh7XG4gICAgcmVxdWVzdFN0YXJ0ZWRBdDogYXJncy5yZXF1ZXN0U3RhcnRlZEF0LFxuICAgIHJlcXVlc3RVcmw6IGFyZ3MucmVzcG9uc2VVcmwsXG4gIH0pO1xuXG4gIGlmIChkZWxheWVkRHVyYXRpb25NcyAhPSBudWxsKSB7XG4gICAgcmV0dXJuIGRlbGF5ZWREdXJhdGlvbk1zO1xuICB9XG5cbiAgcmV0dXJuIE1hdGgucm91bmQocGVyZm9ybWFuY2Uubm93KCkgLSBhcmdzLnJlcXVlc3RTdGFydGVkQXQpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0dWRpb0JGRkNsaWVudFByb3BzIHtcbiAgLyoqXG4gICAqIEFsbG93cyBwYXNzaW5nIGN1c3RvbSBoZWFkZXJzIHRvIHRoZSBCRkYuXG4gICAqXG4gICAqIGUuZy4gYXV0aG9yaXphdGlvbiB0b2tlbi5cbiAgICovXG4gIGN1c3RvbUhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgcGFzc2luZyBjdXN0b20gcGF5bG9hZCB0byB0aGUgQkZGIHZpYSBgYm9keS5jdXN0b21QYXlsb2FkYC5cbiAgICpcbiAgICogZS5nLiB0ZW5hbnQgaWQuXG4gICAqL1xuICBjdXN0b21QYXlsb2FkPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEFsbG93cyBvdmVycmlkaW5nIHRoZSBmZXRjaCBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbi5cbiAgICpcbiAgICogZS5nLiBmb3IgdGVzdGluZywgb3Igb2xkZXIgTm9kZS5qcyB2ZXJzaW9ucy5cbiAgICovXG4gIGZldGNoPzogdHlwZW9mIGdsb2JhbFRoaXMuZmV0Y2g7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGVzZXJpYWxpemUgdGhlIHJlc3VsdHMgb2YgcXVlcmllcy5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIHJlc3VsdHMgYXJlIHJldHVybmVkIGFzIGlzIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgcHJvY2Vzc2luZy5cbiAgICovXG4gIHJlc3VsdERlc2VyaWFsaXplckZuPyh0aGlzOiB2b2lkLCByZXN1bHRzOiB1bmtub3duKTogdW5rbm93bltdO1xuXG4gIC8qKlxuICAgKiBCRkYgZW5kcG9pbnQgVVJMLlxuICAgKlxuICAgKiBlLmcuIGBodHRwczovL2FwaS5leGFtcGxlLmNvbS9zdHVkaW9gXG4gICAqL1xuICB1cmw6IHN0cmluZyB8IFVSTDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHVkaW9CRkZDbGllbnQgZXh0ZW5kcyBTZXF1ZW5jZUV4ZWN1dG9yIHtcbiAgLyoqXG4gICAqIFJlcXVlc3RzIEJGRiB0byBxdWVyeSB0aGUgZGF0YWJhc2UuXG4gICAqXG4gICAqIFRoZSBxdWVyeSBpcyBzZW50IGFzIGBib2R5LnF1ZXJ5YC5cbiAgICovXG4gIGV4ZWN1dGU8VD4oXG4gICAgdGhpczogdm9pZCxcbiAgICBxdWVyeTogUXVlcnk8VD4sXG4gICAgb3B0aW9ucz86IEV4ZWN1dGVPcHRpb25zLFxuICApOiBQcm9taXNlPEVpdGhlcjxFcnJvciwgUXVlcnlSZXN1bHQ8UXVlcnk8VD4+Pj47XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIEJGRiB0byBleGVjdXRlIGEgc2VxdWVuY2Ugb2YgcXVlcmllcy5cbiAgICpcbiAgICogVGhlIHNlcXVlbmNlIGlzIHNlbnQgYXMgYGJvZHkuc2VxdWVuY2VgLlxuICAgKi9cbiAgZXhlY3V0ZVNlcXVlbmNlPFQsIFM+KFxuICAgIHRoaXM6IHZvaWQsXG4gICAgc2VxdWVuY2U6IHJlYWRvbmx5IFtRdWVyeTxUPiwgUXVlcnk8Uz5dLFxuICAgIG9wdGlvbnM/OiBFeGVjdXRlT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxcbiAgICB8IFtbRXJyb3JdXVxuICAgIHwgW1tudWxsLCBRdWVyeVJlc3VsdDxRdWVyeTxUPj5dLCBFaXRoZXI8RXJyb3IsIFF1ZXJ5UmVzdWx0PFF1ZXJ5PFM+Pj5dXG4gID47XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIEJGRiB0byBsaW50IFNRTCB2aWEgcGFyc2UvcGxhbiBkaWFnbm9zdGljcy5cbiAgICovXG4gIGxpbnRTcWwoXG4gICAgdGhpczogdm9pZCxcbiAgICBkZXRhaWxzOiBTdHVkaW9CRkZTcWxMaW50RGV0YWlscyxcbiAgICBvcHRpb25zPzogRXhlY3V0ZU9wdGlvbnMsXG4gICk6IFByb21pc2U8RWl0aGVyPEVycm9yLCBTdHVkaW9CRkZTcWxMaW50UmVzdWx0Pj47XG59XG5cbmV4cG9ydCB0eXBlIFN0dWRpb0JGRlJlcXVlc3QgPVxuICB8IFN0dWRpb0JGRlF1ZXJ5UmVxdWVzdFxuICB8IFN0dWRpb0JGRlNlcXVlbmNlUmVxdWVzdFxuICB8IFN0dWRpb0JGRlNxbExpbnRSZXF1ZXN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0dWRpb0JGRlF1ZXJ5UmVxdWVzdCB7XG4gIGN1c3RvbVBheWxvYWQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcHJvY2VkdXJlOiBcInF1ZXJ5XCI7XG4gIHF1ZXJ5OiBRdWVyeTx1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHVkaW9CRkZTZXF1ZW5jZVJlcXVlc3Qge1xuICBjdXN0b21QYXlsb2FkPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHByb2NlZHVyZTogXCJzZXF1ZW5jZVwiO1xuICBzZXF1ZW5jZTogcmVhZG9ubHkgW1F1ZXJ5PHVua25vd24+LCBRdWVyeTx1bmtub3duPl07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3R1ZGlvQkZGU3FsTGludERldGFpbHMge1xuICBzY2hlbWFWZXJzaW9uPzogc3RyaW5nO1xuICBzcWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHVkaW9CRkZTcWxMaW50UmVzdWx0IHtcbiAgZGlhZ25vc3RpY3M6IEFkYXB0ZXJTcWxMaW50RGlhZ25vc3RpY1tdO1xuICBzY2hlbWFWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0dWRpb0JGRlNxbExpbnRSZXF1ZXN0IHtcbiAgY3VzdG9tUGF5bG9hZD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBwcm9jZWR1cmU6IFwic3FsLWxpbnRcIjtcbiAgc2NoZW1hVmVyc2lvbj86IHN0cmluZztcbiAgc3FsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFN0dWRpbyBCRkYgY2xpZW50LiBCRkYgc3RhbmRzIGZvciBcIkJhY2tlbmQgRm9yIEZyb250ZW5kXCIgYnR3LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3R1ZGlvQkZGQ2xpZW50KFxuICBwcm9wczogU3R1ZGlvQkZGQ2xpZW50UHJvcHMsXG4pOiBTdHVkaW9CRkZDbGllbnQge1xuICBjb25zdCB7IGN1c3RvbUhlYWRlcnMsIGN1c3RvbVBheWxvYWQsIHJlc3VsdERlc2VyaWFsaXplckZuLCB1cmwgfSA9IHByb3BzO1xuICBjb25zdCBmZXRjaEZuID0gcHJvcHMuZmV0Y2ggfHwgZmV0Y2g7XG5cbiAgcmV0dXJuIHtcbiAgICBhc3luYyBleGVjdXRlKHF1ZXJ5LCBvcHRpb25zKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXF1ZXN0U3RhcnRlZEF0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hGbih1cmwsIHtcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBjdXN0b21QYXlsb2FkLFxuICAgICAgICAgICAgcHJvY2VkdXJlOiBcInF1ZXJ5XCIsXG4gICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICB9IHNhdGlzZmllcyBTdHVkaW9CRkZRdWVyeVJlcXVlc3QpLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgIC4uLmN1c3RvbUhlYWRlcnMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgIHNpZ25hbDogb3B0aW9ucz8uYWJvcnRTaWduYWwsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZXF1ZXN0RHVyYXRpb25NcyA9IGF3YWl0IGdldEJmZlJlcXVlc3REdXJhdGlvbk1zKHtcbiAgICAgICAgICByZXF1ZXN0U3RhcnRlZEF0LFxuICAgICAgICAgIHJlc3BvbnNlVXJsOiByZXNwb25zZS51cmwsXG4gICAgICAgIH0pO1xuICAgICAgICByZWNvcmRCZmZSZXF1ZXN0RHVyYXRpb24oe1xuICAgICAgICAgIGFib3J0U2lnbmFsOiBvcHRpb25zPy5hYm9ydFNpZ25hbCxcbiAgICAgICAgICBkdXJhdGlvbk1zOiByZXF1ZXN0RHVyYXRpb25NcyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIGxldCBlcnJvclRleHQ6IHN0cmluZztcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBlcnJvclRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICBlcnJvclRleHQgPSBcInVua25vd24gZXJyb3JcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gW25ldyBFcnJvcihlcnJvclRleHQpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFtlcnJvciwgcmVzdWx0c10gPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyBbXG4gICAgICAgICAgU2VyaWFsaXplZEVycm9yLFxuICAgICAgICAgIHVua25vd24sXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIFtkZXNlcmlhbGl6ZUVycm9yKGVycm9yKV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW251bGwsIChyZXN1bHREZXNlcmlhbGl6ZXJGbj8uKHJlc3VsdHMpIHx8IHJlc3VsdHMpIGFzIG5ldmVyXTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgIHJldHVybiBbZXJyb3IgYXMgRXJyb3JdO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBhc3luYyBleGVjdXRlU2VxdWVuY2Uoc2VxdWVuY2UsIG9wdGlvbnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RTdGFydGVkQXQgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEZuKHVybCwge1xuICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGN1c3RvbVBheWxvYWQsXG4gICAgICAgICAgICBwcm9jZWR1cmU6IFwic2VxdWVuY2VcIixcbiAgICAgICAgICAgIHNlcXVlbmNlLFxuICAgICAgICAgIH0gc2F0aXNmaWVzIFN0dWRpb0JGRlNlcXVlbmNlUmVxdWVzdCksXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgLi4uY3VzdG9tSGVhZGVycyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgc2lnbmFsOiBvcHRpb25zPy5hYm9ydFNpZ25hbCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHJlcXVlc3REdXJhdGlvbk1zID0gYXdhaXQgZ2V0QmZmUmVxdWVzdER1cmF0aW9uTXMoe1xuICAgICAgICAgIHJlcXVlc3RTdGFydGVkQXQsXG4gICAgICAgICAgcmVzcG9uc2VVcmw6IHJlc3BvbnNlLnVybCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJlY29yZEJmZlJlcXVlc3REdXJhdGlvbih7XG4gICAgICAgICAgYWJvcnRTaWduYWw6IG9wdGlvbnM/LmFib3J0U2lnbmFsLFxuICAgICAgICAgIGR1cmF0aW9uTXM6IHJlcXVlc3REdXJhdGlvbk1zLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgbGV0IGVycm9yVGV4dDogc3RyaW5nO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGVycm9yVGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGVycm9yVGV4dCA9IFwidW5rbm93biBlcnJvclwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBbW25ldyBFcnJvcihlcnJvclRleHQpXV07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbW2ZpcnN0RXJyb3IsIGZpcnN0UmVzdWx0XSwgbWF5YmVTZWNvbmRSZXN1bHRdID1cbiAgICAgICAgICAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyBbXG4gICAgICAgICAgICBbU2VyaWFsaXplZEVycm9yLCB1bmtub3duXSxcbiAgICAgICAgICAgIC4uLltTZXJpYWxpemVkRXJyb3IsIHVua25vd25dW10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBpZiAoZmlyc3RFcnJvcikge1xuICAgICAgICAgIHJldHVybiBbW2Rlc2VyaWFsaXplRXJyb3IoZmlyc3RFcnJvcildXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpcnN0RGVzZXJpYWxpemVkUmVzdWx0ID0gKHJlc3VsdERlc2VyaWFsaXplckZuPy4oZmlyc3RSZXN1bHQpIHx8XG4gICAgICAgICAgZmlyc3RSZXN1bHQpIGFzIG5ldmVyO1xuXG4gICAgICAgIGNvbnN0IFtzZWNvbmRFcnJvciwgc2Vjb25kUmVzdWx0XSA9IG1heWJlU2Vjb25kUmVzdWx0IHx8IFtdO1xuXG4gICAgICAgIGlmIChzZWNvbmRFcnJvcikge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBbbnVsbCwgZmlyc3REZXNlcmlhbGl6ZWRSZXN1bHRdLFxuICAgICAgICAgICAgW2Rlc2VyaWFsaXplRXJyb3Ioc2Vjb25kRXJyb3IpXSxcbiAgICAgICAgICBdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBbbnVsbCwgZmlyc3REZXNlcmlhbGl6ZWRSZXN1bHRdLFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAocmVzdWx0RGVzZXJpYWxpemVyRm4/LihzZWNvbmRSZXN1bHQpIHx8IHNlY29uZFJlc3VsdCkgYXMgbmV2ZXIsXG4gICAgICAgICAgXSxcbiAgICAgICAgXTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgIHJldHVybiBbW2Vycm9yIGFzIEVycm9yXV07XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFzeW5jIGxpbnRTcWwoZGV0YWlscywgb3B0aW9ucykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdFN0YXJ0ZWRBdCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoRm4odXJsLCB7XG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgY3VzdG9tUGF5bG9hZCxcbiAgICAgICAgICAgIHByb2NlZHVyZTogXCJzcWwtbGludFwiLFxuICAgICAgICAgICAgc2NoZW1hVmVyc2lvbjogZGV0YWlscy5zY2hlbWFWZXJzaW9uLFxuICAgICAgICAgICAgc3FsOiBkZXRhaWxzLnNxbCxcbiAgICAgICAgICB9IHNhdGlzZmllcyBTdHVkaW9CRkZTcWxMaW50UmVxdWVzdCksXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgLi4uY3VzdG9tSGVhZGVycyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgc2lnbmFsOiBvcHRpb25zPy5hYm9ydFNpZ25hbCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHJlcXVlc3REdXJhdGlvbk1zID0gYXdhaXQgZ2V0QmZmUmVxdWVzdER1cmF0aW9uTXMoe1xuICAgICAgICAgIHJlcXVlc3RTdGFydGVkQXQsXG4gICAgICAgICAgcmVzcG9uc2VVcmw6IHJlc3BvbnNlLnVybCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJlY29yZEJmZlJlcXVlc3REdXJhdGlvbih7XG4gICAgICAgICAgYWJvcnRTaWduYWw6IG9wdGlvbnM/LmFib3J0U2lnbmFsLFxuICAgICAgICAgIGR1cmF0aW9uTXM6IHJlcXVlc3REdXJhdGlvbk1zLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgbGV0IGVycm9yVGV4dDogc3RyaW5nO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGVycm9yVGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGVycm9yVGV4dCA9IFwidW5rbm93biBlcnJvclwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBbbmV3IEVycm9yKGVycm9yVGV4dCldO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW2Vycm9yLCByZXN1bHRdID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgW1xuICAgICAgICAgIFNlcmlhbGl6ZWRFcnJvcixcbiAgICAgICAgICBTdHVkaW9CRkZTcWxMaW50UmVzdWx0LFxuICAgICAgICBdO1xuXG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBbZGVzZXJpYWxpemVFcnJvcihlcnJvcildO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtudWxsLCByZXN1bHRdO1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgcmV0dXJuIFtlcnJvciBhcyBFcnJvcl07XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkRXJyb3Ige1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZXJyb3JzPzogU2VyaWFsaXplZEVycm9yW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVFcnJvcihlcnJvcjogdW5rbm93bik6IFNlcmlhbGl6ZWRFcnJvciB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEFnZ3JlZ2F0ZUVycm9yKSB7XG4gICAgY29uc3QgeyBuYW1lLCBtZXNzYWdlIH0gPSBlcnJvcjtcbiAgICBjb25zdCBlcnJvcnMgPSBlcnJvci5lcnJvcnMubWFwKHNlcmlhbGl6ZUVycm9yKTtcbiAgICByZXR1cm4geyBuYW1lLCBtZXNzYWdlLCBlcnJvcnMgfTtcbiAgfVxuXG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgY29uc3QgeyBuYW1lLCBtZXNzYWdlIH0gPSBlcnJvcjtcbiAgICByZXR1cm4geyBuYW1lLCBtZXNzYWdlIH07XG4gIH1cblxuICByZXR1cm4geyBuYW1lOiBgVW5rbm93bkVycm9yYCwgbWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoZXJyb3IpIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZUVycm9yKGVycm9yOiBTZXJpYWxpemVkRXJyb3IpOiBFcnJvciB7XG4gIGNvbnN0IHsgbmFtZSwgbWVzc2FnZSB9ID0gZXJyb3I7XG5cbiAgaWYgKGVycm9yLmVycm9ycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZXJyb3JzID0gZXJyb3IuZXJyb3JzLm1hcChkZXNlcmlhbGl6ZUVycm9yKTtcbiAgICBjb25zdCBhZ2dyZWdhdGVFcnJvciA9IG5ldyBBZ2dyZWdhdGVFcnJvcihlcnJvcnMsIG1lc3NhZ2UpO1xuICAgIGFnZ3JlZ2F0ZUVycm9yLm5hbWUgPSBlcnJvci5uYW1lO1xuICAgIHJldHVybiBhZ2dyZWdhdGVFcnJvcjtcbiAgfVxuXG4gIGNvbnN0IHJlZ3VsYXJFcnJvciA9IG5ldyBFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgZXJyb3IubmFtZSA9IG5hbWU7XG4gIHJldHVybiByZWd1bGFyRXJyb3I7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7OztBQUtBLElBQU1BLEVBQWtDLElBQUksUUFFckMsU0FBU0MsRUFDZEMsRUFDZSxDQUNmLElBQU1DLEVBQVdILEVBQWdDLElBQUlFLENBQVcsRUFFaEUsT0FBSUMsR0FBWSxLQUNQLE1BR1RILEVBQWdDLE9BQU9FLENBQVcsRUFDM0NDLEVBQ1QsQ0FFQSxTQUFTQyxFQUF5QkMsRUFHekIsQ0FDUCxHQUFNLENBQUUsWUFBQUgsRUFBYSxXQUFBSSxDQUFXLEVBQUlELEVBRS9CSCxHQUlMRixFQUFnQyxJQUFJRSxFQUFhSSxDQUFVLENBQzdELENBRUEsU0FBU0MsRUFBd0JGLEVBR2YsQ0FDaEIsR0FBSSxPQUFPLFlBQVksa0JBQXFCLFdBQzFDLE9BQU8sS0FHVCxJQUFNRyxFQUFVLFlBQVksaUJBQzFCLFVBQ0YsRUFDTUMsRUFBdUJDLEVBQStCTCxFQUFLLFVBQVUsRUFFdkVNLEVBQWdDLEtBQ2hDQyxFQUFpQixPQUFPLGtCQUU1QixRQUFXQyxLQUFTTCxFQUFTLENBQzNCLElBQU1NLEVBQWFELEVBZ0JuQixHQWRJQyxFQUFXLGdCQUFrQixTQUsvQixDQUFDQyxFQUNDTixFQUNBSyxFQUFXLEtBQ1hULEVBQUssVUFDUCxHQUtFUyxFQUFXLFVBQVksRUFBSVQsRUFBSyxp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QUFFLEtBQUFhLEVBQU0sUUFBQUMsQ0FBUSxFQUFJZCxFQUMxQixNQUFPLENBQUUsS0FBQWEsRUFBTSxRQUFBQyxDQUFRLENBQ3pCLENBRUEsTUFBTyxDQUFFLEtBQU0sZUFBZ0IsUUFBUyxLQUFLLFVBQVVkLENBQUssQ0FBRSxDQUNoRSxDQUVPLFNBQVNFLEVBQWlCRixFQUErQixDQUM5RCxHQUFNLENBQUUsS0FBQWEsRUFBTSxRQUFBQyxDQUFRLEVBQUlkLEVBRTFCLEdBQUlBLEVBQU0sU0FBVyxPQUFXLENBQzlCLElBQU1lLEVBQVNmLEVBQU0sT0FBTyxJQUFJRSxDQUFnQixFQUMxQ2MsRUFBaUIsSUFBSSxlQUFlRCxFQUFRRCxDQUFPLEVBQ3pELE9BQUFFLEVBQWUsS0FBT2hCLEVBQU0sS0FDckJnQixDQUNULENBRUEsSUFBTUMsRUFBZSxJQUFJLE1BQU1qQixFQUFNLE9BQU8sRUFDNUMsT0FBQUEsRUFBTSxLQUFPYSxFQUNOSSxDQUNUIiwKICAibmFtZXMiOiBbImJmZlJlcXVlc3REdXJhdGlvbkJ5QWJvcnRTaWduYWwiLCAiY29uc3VtZUJmZlJlcXVlc3REdXJhdGlvbk1zRm9yU2lnbmFsIiwgImFib3J0U2lnbmFsIiwgImR1cmF0aW9uIiwgInJlY29yZEJmZlJlcXVlc3REdXJhdGlvbiIsICJhcmdzIiwgImR1cmF0aW9uTXMiLCAiZ2V0QmZmTmV0d29ya0R1cmF0aW9uTXMiLCAiZW50cmllcyIsICJub3JtYWxpemVkUmVxdWVzdFVybCIsICJub3JtYWxpemVDb21wYXJhYmxlUmVzb3VyY2VVcmwiLCAiYmVzdER1cmF0aW9uTXMiLCAiYmVzdFN0YXJ0RGVsdGEiLCAiZW50cnkiLCAiZmV0Y2hFbnRyeSIsICJtYXRjaGVzQ29tcGFyYWJsZVJlc291cmNlVXJsIiwgInN0YXJ0RGVsdGEiLCAidXJsIiwgIm5vcm1hbGl6ZWRVcmwiLCAidHJpbVRyYWlsaW5nU2xhc2giLCAiY2FuZGlkYXRlVXJsIiwgImZhbGxiYWNrUmVxdWVzdFVybCIsICJub3JtYWxpemVkQ2FuZGlkYXRlVXJsIiwgInBhdGhuYW1lIiwgImdldEJmZlJlcXVlc3REdXJhdGlvbk1zIiwgImltbWVkaWF0ZUR1cmF0aW9uTXMiLCAicmVzb2x2ZSIsICJkZWxheWVkRHVyYXRpb25NcyIsICJjcmVhdGVTdHVkaW9CRkZDbGllbnQiLCAicHJvcHMiLCAiY3VzdG9tSGVhZGVycyIsICJjdXN0b21QYXlsb2FkIiwgInJlc3VsdERlc2VyaWFsaXplckZuIiwgImZldGNoRm4iLCAicXVlcnkiLCAib3B0aW9ucyIsICJyZXF1ZXN0U3RhcnRlZEF0IiwgInJlc3BvbnNlIiwgInJlcXVlc3REdXJhdGlvbk1zIiwgImVycm9yVGV4dCIsICJlcnJvciIsICJyZXN1bHRzIiwgImRlc2VyaWFsaXplRXJyb3IiLCAic2VxdWVuY2UiLCAiZmlyc3RFcnJvciIsICJmaXJzdFJlc3VsdCIsICJtYXliZVNlY29uZFJlc3VsdCIsICJmaXJzdERlc2VyaWFsaXplZFJlc3VsdCIsICJzZWNvbmRFcnJvciIsICJzZWNvbmRSZXN1bHQiLCAiZGV0YWlscyIsICJyZXN1bHQiLCAic2VyaWFsaXplRXJyb3IiLCAibmFtZSIsICJtZXNzYWdlIiwgImVycm9ycyIsICJhZ2dyZWdhdGVFcnJvciIsICJyZWd1bGFyRXJyb3IiXQp9Cg==