UNPKG

15.9 kBJavaScriptView Raw
1var S=Object.create;var f=Object.defineProperty,D=Object.defineProperties,N=Object.getOwnPropertyDescriptor,W=Object.getOwnPropertyDescriptors,M=Object.getOwnPropertyNames,h=Object.getOwnPropertySymbols,k=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;var I=(e,r,t)=>r in e?f(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,l=(e,r)=>{for(var t in r||(r={}))T.call(r,t)&&I(e,t,r[t]);if(h)for(var t of h(r))A.call(r,t)&&I(e,t,r[t]);return e},R=(e,r)=>D(e,W(r)),C=e=>f(e,"__esModule",{value:!0});var O=(e,r)=>{C(e);for(var t in r)f(e,t,{get:r[t],enumerable:!0})},G=(e,r,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of M(r))!T.call(e,o)&&o!=="default"&&f(e,o,{get:()=>r[o],enumerable:!(t=N(r,o))||t.enumerable});return e},w=e=>G(C(f(e!=null?S(k(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);O(exports,{Env:()=>c,getCurrentPrestaInstance:()=>d,logger:()=>X,wrapHandler:()=>H});var P={};O(P,{Levels:()=>s,colors:()=>m.default,debug:()=>J,error:()=>y,getLogs:()=>B,info:()=>K,logger:()=>g,newline:()=>q,raw:()=>Y,warn:()=>V});var m=w(require("kleur"));var c={PRODUCTION:"production",DEVELOPMENT:"development"};var z={pid:process.pid,cwd:process.cwd(),env:c.PRODUCTION,debug:!1};function U(e){return global.__presta__=e,e}function d(){return global.__presta__||U(z),global.__presta__}var s;(function(n){n.Debug="debug",n.Info="info",n.Warn="warn",n.Err="error"})(s||(s={}));var x=[],$={[s.Debug]:"magenta",[s.Info]:"blue",[s.Warn]:"yellow",[s.Err]:"red"};function B(){if(!process.env.TESTING)throw new Error("Internal method was called outside test mode");return x}function g(e){if(process.env.TESTING)x.push(e);else{let r=d().debug,t=d().env===c.PRODUCTION?"prod":"dev";if(!r&&e.level===s.Debug)return;console.log([m.default.gray(t),m.default[$[e.level||"info"]](e.label),e.message,e.duration?m.default.gray("+"+e.duration):"",e.error?`
2
3${e.error.stack||e.error}
4
5`:""].filter(Boolean).join(" "))}}function J(e){g(l({level:s.Debug},e))}function K(e){g(l({level:s.Info},e))}function V(e){g(l({level:s.Warn},e))}function y(e){g(l({level:s.Err},e))}function Y(...e){process.env.TESTING?x.push(e):console.log(...e)}function q(){process.env.TESTING||console.log("")}var v=w(require("regexparam"));function j(e,r){let[t]=e.split("?"),o=(0,v.default)(r),n=0,a={},i=o.pattern.exec(t)||[];for(;n<o.keys.length;)a[o.keys[n]]=i[++n];return a}function F(e){return typeof e=="object"?JSON.stringify(e):e}function E(e){let{isBase64Encoded:r=!1,statusCode:t=200,headers:o={},multiValueHeaders:n={},body:a="",html:i=void 0,json:p=void 0,xml:u=void 0}=typeof e=="string"?{body:e}:e,b="text/html; charset=utf-8";return p?b="application/json; charset=utf-8":u&&(b="application/xml; charset=utf-8"),{isBase64Encoded:r,statusCode:t,headers:l({"Content-Type":b},o),multiValueHeaders:n,body:F(a||i||p||u||"")}}function _(e){return Object.entries(e).filter(([r,t])=>!!t).reduce((r,[t,o])=>(r[t]=o,r),{})}function Q({statusCode:e}){return`
6 <!DOCTYPE html>
7 <html>
8 <head><title>HTTP ${e}</title></head>
9 <body><h1>HTTP ${e}</h1></body>
10 </html>
11 `}function H(e){return async(r,t)=>{r=R(l({},r),{routeParameters:j(r.path,e.route)});let o;try{o=E(await e.handler(r,t))}catch(n){y({label:"serve",message:"lambda",error:n});let a=n,i=r.headers.Accept,p=i&&i.includes("json"),u=a.status||a.statusCode||500;o=E({statusCode:u,html:p?void 0:Q({statusCode:u}),json:p?{errors:[_({status:u,source:a.source,title:a.title,details:a.details||a.message})]}:void 0})}return o}}var X=P;0&&(module.exports={Env,getCurrentPrestaInstance,logger,wrapHandler});
12//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibGliL2luZGV4LnRzIiwgImxpYi9sb2cudHMiLCAibGliL2NvbnN0YW50cy50cyIsICJsaWIvY3VycmVudFByZXN0YUluc3RhbmNlLnRzIiwgImxpYi9nZXRSb3V0ZVBhcmFtcy50cyIsICJsaWIvbm9ybWFsaXplUmVzcG9uc2UudHMiLCAibGliL3BydW5lT2JqZWN0LnRzIiwgImxpYi93cmFwSGFuZGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLypcbiAqIEFueSB1c2VkIGV4cG9ydHMgb2YgdGhlIGNvcmUgbGlicmFyeSBnbyBoZXJlXG4gKi9cbmltcG9ydCAqIGFzIGxvZyBmcm9tICcuL2xvZydcblxuZXhwb3J0IGNvbnN0IGxvZ2dlciA9IGxvZ1xuZXhwb3J0IHsgRW52IH0gZnJvbSAnLi9jb25zdGFudHMnXG5leHBvcnQgeyB3cmFwSGFuZGxlciB9IGZyb20gJy4vd3JhcEhhbmRsZXInXG5leHBvcnQgeyBnZXRDdXJyZW50UHJlc3RhSW5zdGFuY2UgfSBmcm9tICcuL2N1cnJlbnRQcmVzdGFJbnN0YW5jZSdcbiIsICJpbXBvcnQgYywgeyBLbGV1ciB9IGZyb20gJ2tsZXVyJ1xuXG5pbXBvcnQgeyBnZXRDdXJyZW50UHJlc3RhSW5zdGFuY2UgfSBmcm9tICcuL2N1cnJlbnRQcmVzdGFJbnN0YW5jZSdcbmltcG9ydCB7IEVudiB9IGZyb20gJy4vY29uc3RhbnRzJ1xuXG5leHBvcnQgZW51bSBMZXZlbHMge1xuICBEZWJ1ZyA9ICdkZWJ1ZycsXG4gIEluZm8gPSAnaW5mbycsXG4gIFdhcm4gPSAnd2FybicsXG4gIEVyciA9ICdlcnJvcicsXG59XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2UgPSB7XG4gIGxldmVsPzogTGV2ZWxzXG4gIGxhYmVsOiBzdHJpbmcgfCBudW1iZXJcbiAgbWVzc2FnZT86IHN0cmluZ1xuICBkdXJhdGlvbj86IHN0cmluZyB8IG51bWJlclxuICBlcnJvcj86IEVycm9yXG59XG5cbmxldCBsb2dzOiBhbnlbXSA9IFtdXG5cbmNvbnN0IGNvbG9ycyA9IHtcbiAgW0xldmVscy5EZWJ1Z106ICdtYWdlbnRhJyxcbiAgW0xldmVscy5JbmZvXTogJ2JsdWUnLFxuICBbTGV2ZWxzLldhcm5dOiAneWVsbG93JyxcbiAgW0xldmVscy5FcnJdOiAncmVkJyxcbn1cblxuZXhwb3J0IHsgYyBhcyBjb2xvcnMgfVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9ncygpIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5URVNUSU5HKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBtZXRob2Qgd2FzIGNhbGxlZCBvdXRzaWRlIHRlc3QgbW9kZScpXG4gIH1cblxuICByZXR1cm4gbG9nc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nZ2VyKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgaWYgKHByb2Nlc3MuZW52LlRFU1RJTkcpIHtcbiAgICBsb2dzLnB1c2gobWVzc2FnZSlcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkZWJ1ZyA9IGdldEN1cnJlbnRQcmVzdGFJbnN0YW5jZSgpLmRlYnVnXG4gICAgY29uc3QgY29udGV4dCA9IGdldEN1cnJlbnRQcmVzdGFJbnN0YW5jZSgpLmVudiA9PT0gRW52LlBST0RVQ1RJT04gPyAncHJvZCcgOiAnZGV2J1xuXG4gICAgaWYgKCFkZWJ1ZyAmJiBtZXNzYWdlLmxldmVsID09PSBMZXZlbHMuRGVidWcpIHJldHVyblxuXG4gICAgY29uc29sZS5sb2coXG4gICAgICBbXG4gICAgICAgIGMuZ3JheShjb250ZXh0KSxcbiAgICAgICAgY1tjb2xvcnNbbWVzc2FnZS5sZXZlbCB8fCAnaW5mbyddIGFzIGtleW9mIEtsZXVyXShtZXNzYWdlLmxhYmVsKSxcbiAgICAgICAgbWVzc2FnZS5tZXNzYWdlLFxuICAgICAgICBtZXNzYWdlLmR1cmF0aW9uID8gYy5ncmF5KCcrJyArIG1lc3NhZ2UuZHVyYXRpb24pIDogJycsXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IgPyBgXFxuXFxuJHttZXNzYWdlLmVycm9yLnN0YWNrIHx8IG1lc3NhZ2UuZXJyb3J9XFxuXFxuYCA6ICcnLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJylcbiAgICApXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgbG9nZ2VyKHsgbGV2ZWw6IExldmVscy5EZWJ1ZywgLi4ubWVzc2FnZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5mbyhtZXNzYWdlOiBNZXNzYWdlKSB7XG4gIGxvZ2dlcih7IGxldmVsOiBMZXZlbHMuSW5mbywgLi4ubWVzc2FnZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd2FybihtZXNzYWdlOiBNZXNzYWdlKSB7XG4gIGxvZ2dlcih7IGxldmVsOiBMZXZlbHMuV2FybiwgLi4ubWVzc2FnZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXJyb3IobWVzc2FnZTogTWVzc2FnZSkge1xuICBsb2dnZXIoeyBsZXZlbDogTGV2ZWxzLkVyciwgLi4ubWVzc2FnZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmF3KC4uLmFyZ3M6IGFueVtdKSB7XG4gIGlmIChwcm9jZXNzLmVudi5URVNUSU5HKSB7XG4gICAgbG9ncy5wdXNoKGFyZ3MpXG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coLi4uYXJncylcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbmV3bGluZSgpIHtcbiAgaWYgKHByb2Nlc3MuZW52LlRFU1RJTkcpIHJldHVyblxuICBjb25zb2xlLmxvZygnJylcbn1cbiIsICJleHBvcnQgY29uc3QgRW52ID0ge1xuICBQUk9EVUNUSU9OOiAncHJvZHVjdGlvbicsXG4gIERFVkVMT1BNRU5UOiAnZGV2ZWxvcG1lbnQnLFxufVxuIiwgImltcG9ydCB7IFByZXN0YSB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBFbnYgfSBmcm9tICcuL2NvbnN0YW50cydcblxuY29uc3QgZGVmYXVsdENvbmZpZyA9IHtcbiAgcGlkOiBwcm9jZXNzLnBpZCxcbiAgY3dkOiBwcm9jZXNzLmN3ZCgpLFxuICBlbnY6IEVudi5QUk9EVUNUSU9OLFxuICBkZWJ1ZzogZmFsc2UsXG59IGFzIFByZXN0YVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q3VycmVudFByZXN0YUluc3RhbmNlKGNvbmZpZzogUHJlc3RhKTogUHJlc3RhIHtcbiAgLy8gQHRzLWlnbm9yZVxuICBnbG9iYWwuX19wcmVzdGFfXyA9IGNvbmZpZ1xuICByZXR1cm4gY29uZmlnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50UHJlc3RhSW5zdGFuY2UoKTogUHJlc3RhIHtcbiAgLy8gQHRzLWlnbm9yZVxuICBpZiAoIWdsb2JhbC5fX3ByZXN0YV9fKSB7XG4gICAgc2V0Q3VycmVudFByZXN0YUluc3RhbmNlKGRlZmF1bHRDb25maWcpXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBnbG9iYWwuX19wcmVzdGFfX1xufVxuIiwgImltcG9ydCB0b1JlZ0V4cCBmcm9tICdyZWdleHBhcmFtJ1xuXG5pbXBvcnQgeyBSb3V0ZVBhcmFtZXRlcnMgfSBmcm9tICcuL3R5cGVzJ1xuXG4vLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvcmVnZXhwYXJhbSN1c2FnZVxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlUGFyYW1zKHVybDogc3RyaW5nLCByb3V0ZTogc3RyaW5nKTogUm91dGVQYXJhbWV0ZXJzIHtcbiAgY29uc3QgW3BhdGhdID0gdXJsLnNwbGl0KCc/JylcbiAgY29uc3QgcmVzdWx0ID0gdG9SZWdFeHAocm91dGUpXG4gIGxldCBpID0gMFxuICBsZXQgb3V0OiBSb3V0ZVBhcmFtZXRlcnMgPSB7fVxuICBsZXQgbWF0Y2hlcyA9IHJlc3VsdC5wYXR0ZXJuLmV4ZWMocGF0aCkgfHwgW11cblxuICB3aGlsZSAoaSA8IHJlc3VsdC5rZXlzLmxlbmd0aCkge1xuICAgIG91dFtyZXN1bHQua2V5c1tpXV0gPSBtYXRjaGVzWysraV1cbiAgfVxuXG4gIHJldHVybiBvdXRcbn1cbiIsICJpbXBvcnQgeyBBV1MsIFJlc3BvbnNlIH0gZnJvbSAnLi90eXBlcydcblxuZnVuY3Rpb24gc3RyaW5naWZ5KG9iajogb2JqZWN0IHwgc3RyaW5nKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KG9iaikgOiBvYmpcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlc3BvbnNlKHJlc3BvbnNlOiBQYXJ0aWFsPFJlc3BvbnNlPiB8IHN0cmluZyk6IEFXU1snSGFuZGxlclJlc3BvbnNlJ10ge1xuICBjb25zdCB7XG4gICAgaXNCYXNlNjRFbmNvZGVkID0gZmFsc2UsXG4gICAgc3RhdHVzQ29kZSA9IDIwMCxcbiAgICBoZWFkZXJzID0ge30sXG4gICAgbXVsdGlWYWx1ZUhlYWRlcnMgPSB7fSxcbiAgICBib2R5ID0gJycsXG4gICAgaHRtbCA9IHVuZGVmaW5lZCxcbiAgICBqc29uID0gdW5kZWZpbmVkLFxuICAgIHhtbCA9IHVuZGVmaW5lZCxcbiAgfSA9IHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZydcbiAgICA/IHtcbiAgICAgICAgYm9keTogcmVzcG9uc2UsXG4gICAgICB9XG4gICAgOiByZXNwb25zZVxuXG4gIGxldCBjb250ZW50VHlwZSA9ICd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnXG5cbiAgaWYgKCEhanNvbikge1xuICAgIGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnXG4gIH0gZWxzZSBpZiAoISF4bWwpIHtcbiAgICBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi94bWw7IGNoYXJzZXQ9dXRmLTgnXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlzQmFzZTY0RW5jb2RlZCxcbiAgICBzdGF0dXNDb2RlLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiBjb250ZW50VHlwZSxcbiAgICAgIC4uLmhlYWRlcnMsXG4gICAgfSxcbiAgICBtdWx0aVZhbHVlSGVhZGVycyxcbiAgICBib2R5OiBzdHJpbmdpZnkoYm9keSB8fCBodG1sIHx8IGpzb24gfHwgeG1sIHx8ICcnKSxcbiAgfVxufVxuIiwgInR5cGUgT2JqID0geyBba2V5OiBzdHJpbmddOiBhbnkgfVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmVPYmplY3Qob2JqOiBPYmopIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iailcbiAgICAuZmlsdGVyKChba2V5LCB2YWxdKSA9PiAhIXZhbClcbiAgICAucmVkdWNlKChvLCBba2V5LCB2YWxdKSA9PiB7XG4gICAgICBvW2tleV0gPSB2YWxcbiAgICAgIHJldHVybiBvXG4gICAgfSwge30gYXMgT2JqKVxufVxuIiwgIi8qKlxuICogVEhJUyBJUyBQUk9EIENPREUsIEJFIENBUkVGVUwgV0hBVCBZT1UgQUREIFRPIFRISVMgRklMRVxuICovXG5cbmltcG9ydCB7IGdldFJvdXRlUGFyYW1zIH0gZnJvbSAnLi9nZXRSb3V0ZVBhcmFtcydcbmltcG9ydCB7IG5vcm1hbGl6ZVJlc3BvbnNlIH0gZnJvbSAnLi9ub3JtYWxpemVSZXNwb25zZSdcbmltcG9ydCB7IHBydW5lT2JqZWN0IH0gZnJvbSAnLi9wcnVuZU9iamVjdCdcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuL2xvZydcbmltcG9ydCB7IEFXUywgRXZlbnQsIENvbnRleHQsIExhbWJkYSwgUHJlc3RhRXJyb3IgfSBmcm9tICcuL3R5cGVzJ1xuXG5mdW5jdGlvbiBjcmVhdGVIVE1MRXJyb3JQYWdlKHsgc3RhdHVzQ29kZSB9OiB7IHN0YXR1c0NvZGU6IG51bWJlciB9KSB7XG4gIHJldHVybiBgXG4gICAgPCFET0NUWVBFIGh0bWw+XG4gICAgPGh0bWw+XG4gICAgICA8aGVhZD48dGl0bGU+SFRUUCAke3N0YXR1c0NvZGV9PC90aXRsZT48L2hlYWQ+XG4gICAgICA8Ym9keT48aDE+SFRUUCAke3N0YXR1c0NvZGV9PC9oMT48L2JvZHk+XG4gICAgPC9odG1sPlxuICBgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwSGFuZGxlcihcbiAgZmlsZTogTGFtYmRhXG4pOiAoZXZlbnQ6IEFXU1snSGFuZGxlckV2ZW50J10sIGNvbnRleHQ6IENvbnRleHQpID0+IFByb21pc2U8QVdTWydIYW5kbGVyUmVzcG9uc2UnXT4ge1xuICByZXR1cm4gYXN5bmMgKGV2ZW50OiBBV1NbJ0hhbmRsZXJFdmVudCddLCBjb250ZXh0OiBDb250ZXh0KSA9PiB7XG4gICAgZXZlbnQgPSB7XG4gICAgICAuLi5ldmVudCxcbiAgICAgIHJvdXRlUGFyYW1ldGVyczogZ2V0Um91dGVQYXJhbXMoZXZlbnQucGF0aCwgZmlsZS5yb3V0ZSksXG4gICAgfSBhcyBFdmVudFxuXG4gICAgbGV0IHJlc3BvbnNlXG5cbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBub3JtYWxpemVSZXNwb25zZShhd2FpdCBmaWxlLmhhbmRsZXIoZXZlbnQgYXMgRXZlbnQsIGNvbnRleHQpKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dlci5lcnJvcih7XG4gICAgICAgIGxhYmVsOiAnc2VydmUnLFxuICAgICAgICBtZXNzYWdlOiBgbGFtYmRhYCxcbiAgICAgICAgZXJyb3I6IGUgYXMgRXJyb3IsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBlcnIgPSBlIGFzIFByZXN0YUVycm9yXG4gICAgICBjb25zdCBhY2NlcHQgPSBldmVudC5oZWFkZXJzWydBY2NlcHQnXVxuICAgICAgY29uc3QgYWNjZXB0c0pzb24gPSBhY2NlcHQgJiYgYWNjZXB0LmluY2x1ZGVzKCdqc29uJylcbiAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBlcnIuc3RhdHVzIHx8IGVyci5zdGF0dXNDb2RlIHx8IDUwMFxuXG4gICAgICByZXNwb25zZSA9IG5vcm1hbGl6ZVJlc3BvbnNlKHtcbiAgICAgICAgc3RhdHVzQ29kZSxcbiAgICAgICAgaHRtbDogYWNjZXB0c0pzb24gPyB1bmRlZmluZWQgOiBjcmVhdGVIVE1MRXJyb3JQYWdlKHsgc3RhdHVzQ29kZSB9KSxcbiAgICAgICAganNvbjogYWNjZXB0c0pzb25cbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZXJyb3JzOiBbXG4gICAgICAgICAgICAgICAgcHJ1bmVPYmplY3Qoe1xuICAgICAgICAgICAgICAgICAgc3RhdHVzOiBzdGF0dXNDb2RlLFxuICAgICAgICAgICAgICAgICAgc291cmNlOiBlcnIuc291cmNlLFxuICAgICAgICAgICAgICAgICAgdGl0bGU6IGVyci50aXRsZSxcbiAgICAgICAgICAgICAgICAgIGRldGFpbHM6IGVyci5kZXRhaWxzIHx8IGVyci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogInM2QkFBQSxxRkNBQSx5SkFBeUIsb0JDQWxCLEdBQU0sR0FBTSxDQUNqQixXQUFZLGFBQ1osWUFBYSxlQ0NmLEdBQU0sR0FBZ0IsQ0FDcEIsSUFBSyxRQUFRLElBQ2IsSUFBSyxRQUFRLE1BQ2IsSUFBSyxFQUFJLFdBQ1QsTUFBTyxJQUdGLFdBQWtDLEVBQXdCLENBRS9ELGNBQU8sV0FBYSxFQUNiLEVBR0YsWUFBNEMsQ0FFakQsTUFBSyxRQUFPLFlBQ1YsRUFBeUIsR0FJcEIsT0FBTyxXRmxCVCxHQUFLLEdBQUwsVUFBSyxFQUFMLENBQ0wsUUFBUSxRQUNSLE9BQU8sT0FDUCxPQUFPLE9BQ1AsTUFBTSxVQUpJLFdBZVosR0FBSSxHQUFjLEdBRVosRUFBUyxFQUNaLEVBQU8sT0FBUSxXQUNmLEVBQU8sTUFBTyxRQUNkLEVBQU8sTUFBTyxVQUNkLEVBQU8sS0FBTSxPQUtULFlBQW1CLENBQ3hCLEdBQUksQ0FBQyxRQUFRLElBQUksUUFDZixLQUFNLElBQUksT0FBTSxnREFHbEIsTUFBTyxHQUdGLFdBQWdCLEVBQWtCLENBQ3ZDLEdBQUksUUFBUSxJQUFJ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