UNPKG

presta

Version:

Hyper minimal framework for the modern web.

3 lines (2 loc) 14.2 kB
var V=Object.create;var i=Object.defineProperty,L=Object.defineProperties,Q=Object.getOwnPropertyDescriptor,w=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertyNames,c=Object.getOwnPropertySymbols,B=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var f=(r,e,t)=>e in r?i(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,n=(r,e)=>{for(var t in e||(e={}))d.call(e,t)&&f(r,t,e[t]);if(c)for(var t of c(e))k.call(e,t)&&f(r,t,e[t]);return r},p=(r,e)=>L(r,w(e)),y=r=>i(r,"__esModule",{value:!0});var q=(r,e)=>{y(r);for(var t in e)i(r,t,{get:e[t],enumerable:!0})},C=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of H(e))!d.call(r,a)&&a!=="default"&&i(r,a,{get:()=>e[a],enumerable:!(t=Q(e,a))||t.enumerable});return r},P=r=>C(y(i(r!=null?V(B(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);q(exports,{wrapHandler:()=>F});var h=P(require("query-string"));function b(r){let e=(0,h.parse)(r,{arrayFormat:"comma"}),t={},a={};for(let s of Object.keys(e)){let o=e[s];Array.isArray(o)?a[s]=o:o&&(t[s]=o)}return{queryStringParameters:t,multiValueQueryStringParameters:a}}var O=/image|audio|video|application\/pdf|application\/zip|applicaton\/octet-stream/i;function R(r){return Boolean(r)&&O.test(r)}function g(r){var o,m;let e=r.rawQuery||r.path.split("?")[1],{queryStringParameters:t,multiValueQueryStringParameters:a}=b(e),s=(m=r.isBase64Encoded)!=null?m:R(((o=r==null?void 0:r.headers)==null?void 0:o["content-type"])||"");return{rawUrl:r.rawUrl||r.path,rawQuery:e,path:r.path,httpMethod:r.httpMethod||"GET",headers:r.headers||{},multiValueHeaders:r.multiValueHeaders||{},queryStringParameters:r.queryStringParameters||t,multiValueQueryStringParameters:r.multiValueQueryStringParameters||a,pathParameters:r.pathParameters||{},body:r.body||null,isBase64Encoded:s!=null?s:!1,requestContext:r.requestContext||{},resource:r.resource||""}}var x=P(require("regexparam"));function E(r,e){let[t]=r.split("?"),a=(0,x.default)(e),s=0,o={},m=a.pattern.exec(t)||[];for(;s<a.keys.length;)o[a.keys[s]]=m[++s];return o}function u(r){for(let e of Object.keys(r))r[e.toLowerCase()]=r[e]||"";return r}var l;(function(a){a.Html="text/html; charset=utf-8",a.Json="application/json; charset=utf-8",a.Xml="application/xml; charset=utf-8"})(l||(l={}));function j(r){return typeof r=="object"?JSON.stringify(r):r}function M(r,e){let t=e.statusCode||200,a=e.headers?u(e.headers):{};return t>299&&t<399||(a["content-type"]=r),{isBase64Encoded:e.isBase64Encoded||!1,statusCode:t,headers:a,multiValueHeaders:e.multiValueHeaders?u(e.multiValueHeaders):{},body:j(e.body||"")}}function S(r){return M(l.Html,r)}function z(r){return typeof r=="string"?S({body:r}):p(n({},r),{statusCode:r.statusCode||200})}function F(r){return async(e,t)=>{let a=g(e);return Object.keys(a.pathParameters||{}).length||(a.pathParameters=E(e.path,r.route)),z(await r.handler(a,t))}}0&&(module.exports={wrapHandler}); //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbGliL3J1bnRpbWUvd3JhcEhhbmRsZXIudHMiLCAiLi4vbGliL3J1bnRpbWUvcGFyc2VRdWVyeVN0cmluZ1BhcmFtZXRlcnMudHMiLCAiLi4vbGliL3J1bnRpbWUvaXNCYXNlNjRFbmNvZGVkQ29udGVudFR5cGUudHMiLCAiLi4vbGliL3J1bnRpbWUvbm9ybWFsaXplRXZlbnQudHMiLCAiLi4vbGliL3J1bnRpbWUvcGFyc2VQYXRoUGFyYW1ldGVycy50cyIsICIuLi9saWIvcnVudGltZS9ub3JtYWxpemVSZXNwb25zZUhlYWRlcnMudHMiLCAiLi4vbGliL3NlcmlhbGl6ZS50cyIsICIuLi9saWIvcnVudGltZS9ub3JtYWxpemVSZXNwb25zZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgUmVzcG9uc2UgYXMgTGFtYmRhUmVzcG9uc2UgfSBmcm9tICdsYW1iZGEtdHlwZXMnXG5cbmltcG9ydCB7IG5vcm1hbGl6ZUV2ZW50IH0gZnJvbSAnLi9ub3JtYWxpemVFdmVudCdcbmltcG9ydCB7IHBhcnNlUGF0aFBhcmFtZXRlcnMgfSBmcm9tICcuL3BhcnNlUGF0aFBhcmFtZXRlcnMnXG5pbXBvcnQgeyBub3JtYWxpemVSZXNwb25zZSB9IGZyb20gJy4vbm9ybWFsaXplUmVzcG9uc2UnXG5cbmltcG9ydCB0eXBlIHsgUHJlc3RhRnVuY3Rpb25GaWxlLCBFdmVudCwgQ29udGV4dCB9IGZyb20gJy4uL2NvcmUnXG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiB3cmFwcyBldmVyeSBQcmVzdGEgaGFuZGxlci4gUGx1Z2lucyB3cmFwIGFyb3VuZCB0aGlzLCBzbyBrZWVwXG4gKiBpbiBtaW5kIHRoYXQgc29tZSB3b3JrIGlzIGRvbmUgaGVyZSBhbHJlYWR5IGFuZCBkb2Vzbid0IG5lZWQgdG8gYmVcbiAqIGR1cGxpY2F0ZWQgaW4gb3RoZXIgYWRhcHRlcnMgYW5kIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cmFwSGFuZGxlcihmaWxlOiBQcmVzdGFGdW5jdGlvbkZpbGUpOiAoZXZlbnQ6IEV2ZW50LCBjb250ZXh0OiBDb250ZXh0KSA9PiBQcm9taXNlPExhbWJkYVJlc3BvbnNlPiB7XG4gIHJldHVybiBhc3luYyAoZXZlbnQ6IEV2ZW50LCBjb250ZXh0OiBDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgZXYgPSBub3JtYWxpemVFdmVudChldmVudClcblxuICAgIGlmICghT2JqZWN0LmtleXMoZXYucGF0aFBhcmFtZXRlcnMgfHwge30pLmxlbmd0aCkge1xuICAgICAgZXYucGF0aFBhcmFtZXRlcnMgPSBwYXJzZVBhdGhQYXJhbWV0ZXJzKGV2ZW50LnBhdGgsIGZpbGUucm91dGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZVJlc3BvbnNlKGF3YWl0IGZpbGUuaGFuZGxlcihldiwgY29udGV4dCkpXG4gIH1cbn1cbiIsICJpbXBvcnQgeyBwYXJzZSBhcyBwYXJzZVF1ZXJ5IH0gZnJvbSAncXVlcnktc3RyaW5nJ1xuaW1wb3J0IHsgUGFyYW1zLCBNdWx0aVZhbHVlUGFyYW1zIH0gZnJvbSAnbGFtYmRhLXR5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VRdWVyeVN0cmluZ1BhcmFtZXRlcnMocXVlcnk6IHN0cmluZykge1xuICBjb25zdCBwYXJhbXMgPSBwYXJzZVF1ZXJ5KHF1ZXJ5LCB7IGFycmF5Rm9ybWF0OiAnY29tbWEnIH0pXG5cbiAgY29uc3QgcXVlcnlTdHJpbmdQYXJhbWV0ZXJzOiBQYXJhbXMgPSB7fVxuICBjb25zdCBtdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzOiBNdWx0aVZhbHVlUGFyYW1zID0ge31cblxuICBmb3IgKGNvbnN0IHBhcmFtIG9mIE9iamVjdC5rZXlzKHBhcmFtcykpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtc1twYXJhbV1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIG11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnNbcGFyYW1dID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICBxdWVyeVN0cmluZ1BhcmFtZXRlcnNbcGFyYW1dID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBxdWVyeVN0cmluZ1BhcmFtZXRlcnMsIG11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnMgfVxufVxuIiwgIi8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25ldGxpZnkvY2xpL2Jsb2IvMjdiYjdiOWIzMGQ0NjVhYmU4NmY4N2Y0Mjc0ZGQ3YTcxYjFiMDAzYi9zcmMvdXRpbHMvc2VydmUtZnVuY3Rpb25zLmpzI0wxNjdcbmNvbnN0IEJBU0VfNjRfTUlNRV9SRUdFWFAgPSAvaW1hZ2V8YXVkaW98dmlkZW98YXBwbGljYXRpb25cXC9wZGZ8YXBwbGljYXRpb25cXC96aXB8YXBwbGljYXRvblxcL29jdGV0LXN0cmVhbS9pXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Jhc2U2NEVuY29kZWRDb250ZW50VHlwZShjb250ZW50VHlwZTogc3RyaW5nKSB7XG4gIHJldHVybiBCb29sZWFuKGNvbnRlbnRUeXBlKSAmJiBCQVNFXzY0X01JTUVfUkVHRVhQLnRlc3QoY29udGVudFR5cGUpXG59XG4iLCAiaW1wb3J0IHsgcGFyc2VRdWVyeVN0cmluZ1BhcmFtZXRlcnMgfSBmcm9tICcuL3BhcnNlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzJ1xuaW1wb3J0IHsgaXNCYXNlNjRFbmNvZGVkQ29udGVudFR5cGUgfSBmcm9tICcuL2lzQmFzZTY0RW5jb2RlZENvbnRlbnRUeXBlJ1xuaW1wb3J0IHsgRXZlbnQgfSBmcm9tICcuLi8nXG5cbi8qKlxuICogVGFrZXMgYSBgUGFydGlhbDxFdmVudD5gIGFuZCByZXR1cm5zIGBFdmVudGAuIFJlcXVpcmVzIGF0IGxlYXN0IGFuIGBldmVudC5wYXRoYCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUV2ZW50KGV2ZW50OiBQaWNrPEV2ZW50LCAncGF0aCc+ICYgUGFydGlhbDxPbWl0PEV2ZW50LCAncGF0aCc+Pik6IEV2ZW50IHtcbiAgY29uc3QgcmF3UXVlcnkgPSBldmVudC5yYXdRdWVyeSB8fCBldmVudC5wYXRoLnNwbGl0KCc/JylbMV1cbiAgY29uc3QgeyBxdWVyeVN0cmluZ1BhcmFtZXRlcnMsIG11bHRpVmFsdWVRdWVyeVN0cmluZ1BhcmFtZXRlcnMgfSA9IHBhcnNlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzKHJhd1F1ZXJ5KVxuICBjb25zdCBpc0Jhc2U2NEVuY29kZWQgPSBldmVudC5pc0Jhc2U2NEVuY29kZWQgPz8gaXNCYXNlNjRFbmNvZGVkQ29udGVudFR5cGUoZXZlbnQ/LmhlYWRlcnM/LlsnY29udGVudC10eXBlJ10gfHwgJycpXG5cbiAgcmV0dXJuIHtcbiAgICByYXdVcmw6IGV2ZW50LnJhd1VybCB8fCBldmVudC5wYXRoLFxuICAgIHJhd1F1ZXJ5LFxuICAgIHBhdGg6IGV2ZW50LnBhdGgsXG4gICAgaHR0cE1ldGhvZDogZXZlbnQuaHR0cE1ldGhvZCB8fCAnR0VUJyxcbiAgICBoZWFkZXJzOiBldmVudC5oZWFkZXJzIHx8IHt9LFxuICAgIG11bHRpVmFsdWVIZWFkZXJzOiBldmVudC5tdWx0aVZhbHVlSGVhZGVycyB8fCB7fSxcbiAgICBxdWVyeVN0cmluZ1BhcmFtZXRlcnM6IGV2ZW50LnF1ZXJ5U3RyaW5nUGFyYW1ldGVycyB8fCBxdWVyeVN0cmluZ1BhcmFtZXRlcnMsXG4gICAgbXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVyczogZXZlbnQubXVsdGlWYWx1ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVycyB8fCBtdWx0aVZhbHVlUXVlcnlTdHJpbmdQYXJhbWV0ZXJzLFxuICAgIHBhdGhQYXJhbWV0ZXJzOiBldmVudC5wYXRoUGFyYW1ldGVycyB8fCB7fSxcbiAgICBib2R5OiBldmVudC5ib2R5IHx8IG51bGwsXG4gICAgaXNCYXNlNjRFbmNvZGVkOiBpc0Jhc2U2NEVuY29kZWQgPz8gZmFsc2UsXG4gICAgcmVxdWVzdENvbnRleHQ6IGV2ZW50LnJlcXVlc3RDb250ZXh0IHx8IHt9LFxuICAgIHJlc291cmNlOiBldmVudC5yZXNvdXJjZSB8fCAnJyxcbiAgfVxufVxuIiwgImltcG9ydCB0b1JlZ0V4cCBmcm9tICdyZWdleHBhcmFtJ1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnbGFtYmRhLXR5cGVzJ1xuXG4vLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvcmVnZXhwYXJhbSN1c2FnZVxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0aFBhcmFtZXRlcnModXJsOiBzdHJpbmcsIHJvdXRlOiBzdHJpbmcpOiBQYXJhbXMge1xuICBjb25zdCBbcGF0aF0gPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCByZXN1bHQgPSB0b1JlZ0V4cChyb3V0ZSlcbiAgbGV0IGkgPSAwXG4gIGxldCBvdXQ6IFBhcmFtcyA9IHt9XG4gIGxldCBtYXRjaGVzID0gcmVzdWx0LnBhdHRlcm4uZXhlYyhwYXRoKSB8fCBbXVxuXG4gIHdoaWxlIChpIDwgcmVzdWx0LmtleXMubGVuZ3RoKSB7XG4gICAgb3V0W3Jlc3VsdC5rZXlzW2ldXSA9IG1hdGNoZXNbKytpXVxuICB9XG5cbiAgcmV0dXJuIG91dFxufVxuIiwgImltcG9ydCB7IFBhcmFtcyB9IGZyb20gJ2xhbWJkYS10eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlc3BvbnNlSGVhZGVyczxUID0gUGFyYW1zPihyZXNwb25zZUhlYWRlcnM6IFQpOiBUIHtcbiAgLy8gQHRzLWlnbm9yZVxuICBmb3IgKGNvbnN0IGhlYWRlciBvZiBPYmplY3Qua2V5cyhyZXNwb25zZUhlYWRlcnMpKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJlc3BvbnNlSGVhZGVyc1toZWFkZXIudG9Mb3dlckNhc2UoKV0gPSByZXNwb25zZUhlYWRlcnNbaGVhZGVyXSB8fCAnJ1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlSGVhZGVyc1xufVxuIiwgIi8qKlxuICogVGhpcyBpcyBwcm9kdWN0aW9uIGNvZGUsIHNvIGJlIGNhcmVmdWwgd2hhdCB5b3UgYWRkIHRvIHRoaXMgZmlsZSBiZWNhdXNlIHdlXG4gKiB3YW50IHRvIGtlZXAgaXQgc21hbGwuXG4gKlxuICogVGhpcyBmaWxlIGlzIHVzZWQgaW4gY29tcGlsZWQgUHJlc3RhIGZ1bmN0aW9ucyB0byBzZXJpYWxpemUgb3V0cHV0LlxuICovXG5pbXBvcnQgeyBSZXNwb25zZSBhcyBMYW1iZGFSZXNwb25zZSB9IGZyb20gJ2xhbWJkYS10eXBlcydcbmltcG9ydCB7IG5vcm1hbGl6ZVJlc3BvbnNlSGVhZGVycyB9IGZyb20gJy4vcnVudGltZS9ub3JtYWxpemVSZXNwb25zZUhlYWRlcnMnXG5cbmltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSAnLi9jb3JlJ1xuXG5lbnVtIENvbnRlbnRUeXBlIHtcbiAgSHRtbCA9ICd0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnLFxuICBKc29uID0gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnLFxuICBYbWwgPSAnYXBwbGljYXRpb24veG1sOyBjaGFyc2V0PXV0Zi04Jyxcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5T2JqZWN0KG9iajogb2JqZWN0IHwgc3RyaW5nKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KG9iaikgOiBvYmpcbn1cblxuZnVuY3Rpb24gYmFzZShjb250ZW50VHlwZTogQ29udGVudFR5cGUsIHJlc3BvbnNlOiBQYXJ0aWFsPFJlc3BvbnNlPik6IExhbWJkYVJlc3BvbnNlIHtcbiAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlc3BvbnNlLnN0YXR1c0NvZGUgfHwgMjAwXG4gIGNvbnN0IG5vcm1hbGl6ZWRIZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVycyA/IG5vcm1hbGl6ZVJlc3BvbnNlSGVhZGVycyhyZXNwb25zZS5oZWFkZXJzKSA6IHt9XG4gIGNvbnN0IHJlZGlyID0gc3RhdHVzQ29kZSA+IDI5OSAmJiBzdGF0dXNDb2RlIDwgMzk5XG5cbiAgaWYgKCFyZWRpcikge1xuICAgIG5vcm1hbGl6ZWRIZWFkZXJzWydjb250ZW50LXR5cGUnXSA9IGNvbnRlbnRUeXBlXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlzQmFzZTY0RW5jb2RlZDogcmVzcG9uc2UuaXNCYXNlNjRFbmNvZGVkIHx8IGZhbHNlLFxuICAgIHN0YXR1c0NvZGUsXG4gICAgaGVhZGVyczogbm9ybWFsaXplZEhlYWRlcnMsXG4gICAgbXVsdGlWYWx1ZUhlYWRlcnM6IHJlc3BvbnNlLm11bHRpVmFsdWVIZWFkZXJzID8gbm9ybWFsaXplUmVzcG9uc2VIZWFkZXJzKHJlc3BvbnNlLm11bHRpVmFsdWVIZWFkZXJzKSA6IHt9LFxuICAgIGJvZHk6IHN0cmluZ2lmeU9iamVjdChyZXNwb25zZS5ib2R5IHx8ICcnKSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbChyZXNwb25zZTogUGFydGlhbDxSZXNwb25zZT4pOiBMYW1iZGFSZXNwb25zZSB7XG4gIHJldHVybiBiYXNlKENvbnRlbnRUeXBlLkh0bWwsIHJlc3BvbnNlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24ganNvbihyZXNwb25zZTogT21pdDxQYXJ0aWFsPFJlc3BvbnNlPiwgJ2JvZHknPiAmIHsgYm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfSk6IExhbWJkYVJlc3BvbnNlIHtcbiAgcmV0dXJuIGJhc2UoQ29udGVudFR5cGUuSnNvbiwgeyAuLi5yZXNwb25zZSwgYm9keTogc3RyaW5naWZ5T2JqZWN0KHJlc3BvbnNlLmJvZHkpIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB4bWwocmVzcG9uc2U6IFBhcnRpYWw8UmVzcG9uc2U+KTogTGFtYmRhUmVzcG9uc2Uge1xuICByZXR1cm4gYmFzZShDb250ZW50VHlwZS5YbWwsIHJlc3BvbnNlKVxufVxuIiwgImltcG9ydCB7IFJlc3BvbnNlIGFzIExhbWJkYVJlc3BvbnNlIH0gZnJvbSAnbGFtYmRhLXR5cGVzJ1xuXG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnLi4vc2VyaWFsaXplJ1xuaW1wb3J0IHR5cGUgeyBSZXNwb25zZSB9IGZyb20gJy4uL2NvcmUnXG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXNwb25zZShyZXNwb25zZTogUmVzcG9uc2UgfCBzdHJpbmcpOiBMYW1iZGFSZXNwb25zZSB7XG4gIHJldHVybiB0eXBlb2YgcmVzcG9uc2UgPT09ICdzdHJpbmcnXG4gICAgPyBodG1sKHsgYm9keTogcmVzcG9uc2UgfSlcbiAgICA6IHtcbiAgICAgICAgLi4ucmVzcG9uc2UsXG4gICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1c0NvZGUgfHwgMjAwLFxuICAgICAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogInM2QkFBQSwrQkNBQSxNQUFvQywyQkFHN0IsV0FBb0MsRUFBZSxDQUN4RCxHQUFNLEdBQVMsWUFBVyxFQUFPLENBQUUsWUFBYSxVQUUxQyxFQUFnQyxHQUNoQyxFQUFvRCxHQUUxRCxPQUFXLEtBQVMsUUFBTyxLQUFLLEdBQVMsQ0FDdkMsR0FBTSxHQUFRLEVBQU8sR0FDckIsQUFBSSxNQUFNLFFBQVEsR0FDaEIsRUFBZ0MsR0FBUyxFQUNoQyxHQUNULEdBQXNCLEdBQVMsR0FJbkMsTUFBTyxDQUFFLHdCQUF1QixtQ0NqQmxDLEdBQU0sR0FBc0IsZ0ZBRXJCLFdBQW9DLEVBQXFCLENBQzlELE1BQU8sU0FBUSxJQUFnQixFQUFvQixLQUFLLEdDR25ELFdBQXdCLEVBQWtFLENBUGpHLFFBUUUsR0FBTSxHQUFXLEVBQU0sVUFBWSxFQUFNLEtBQUssTUFBTSxLQUFLLEdBQ25ELENBQUUsd0JBQXVCLG1DQUFvQyxFQUEyQixHQUN4RixFQUFrQixLQUFNLGtCQUFOLE9BQXlCLEVBQTJCLHFCQUFPLFVBQVAsY0FBaUIsa0JBQW1CLElBRWhILE1BQU8sQ0FDTCxPQUFRLEVBQU0sUUFBVSxFQUFNLEtBQzlCLFdBQ0EsS0FBTSxFQUFNLEtBQ1osV0FBWSxFQUFNLFlBQWMsTUFDaEMsUUFBUyxFQUFNLFNBQVcsR0FDMUIsa0JBQW1CLEVBQU0sbUJBQXFCLEdBQzlDLHNCQUF1QixFQUFNLHVCQUF5QixFQUN0RCxnQ0FBaUMsRUFBTSxpQ0FBbUMsRUFDMUUsZUFBZ0IsRUFBTSxnQkFBa0IsR0FDeEMsS0FBTSxFQUFNLE1BQVEsS0FDcEIsZ0JBQWlCLFVBQW1CLEdBQ3BDLGVBQWdCLEVBQU0sZ0JBQWtCLEdBQ3hDLFNBQVUsRUFBTSxVQUFZLElDekJoQyxNQUFxQix5QkFJZCxXQUE2QixFQUFhLEVBQXVCLENBQ3RFLEdBQU0sQ0FBQyxHQUFRLEVBQUksTUFBTSxLQUNuQixFQUFTLGNBQVMsR0FDcEIsRUFBSSxFQUNKLEVBQWMsR0FDZCxFQUFVLEVBQU8sUUFBUSxLQUFLLElBQVMsR0FFM0MsS0FBTyxFQUFJLEVBQU8sS0FBSyxRQUNyQixFQUFJLEVBQU8sS0FBSyxJQUFNLEVBQVEsRUFBRSxHQUdsQyxNQUFPLEdDYkYsV0FBOEMsRUFBdUIsQ0FFMUUsT0FBVyxLQUFVLFFBQU8sS0FBSyxHQUUvQixFQUFnQixFQUFPLGVBQWlCLEVBQWdCLElBQVcsR0FHckUsTUFBTyxHQ0VULEdBQUssR0FBTCxVQUFLLEVBQUwsQ0FDRSxPQUFPLDJCQUNQLE9BQU8sa0NBQ1AsTUFBTSxtQ0FISCxXQU1MLFdBQXlCLEVBQXNCLENBQzdDLE1BQU8sT0FBTyxJQUFRLFNBQVcsS0FBSyxVQUFVLEdBQU8sRUFHekQsV0FBYyxFQUEwQixFQUE2QyxDQUNuRixHQUFNLEdBQWEsRUFBUyxZQUFjLElBQ3BDLEVBQW9CLEVBQVMsUUFBVSxFQUF5QixFQUFTLFNBQVcsR0FHMUYsTUFBSyxBQUZTLEdBQWEsS0FBTyxFQUFhLEtBRzdDLEdBQWtCLGdCQUFrQixHQUcvQixDQUNMLGdCQUFpQixFQUFTLGlCQUFtQixHQUM3QyxhQUNBLFFBQVMsRUFDVCxrQkFBbUIsRUFBUyxrQkFBb0IsRUFBeUIsRUFBUyxtQkFBcUIsR0FDdkcsS0FBTSxFQUFnQixFQUFTLE1BQVEsS0FJcEMsV0FBYyxFQUE2QyxDQUNoRSxNQUFPLEdBQUssRUFBWSxLQUFNLEdDbkN6QixXQUEyQixFQUE2QyxDQUM3RSxNQUFPLE9BQU8sSUFBYSxTQUN2QixFQUFLLENBQUUsS0FBTSxJQUNiLE9BQ0ssR0FETCxDQUVFLFdBQVksRUFBUyxZQUFjLE1QR3BDLFdBQXFCLEVBQXVGLENBQ2pILE1BQU8sT0FBTyxFQUFjLElBQXFCLENBQy9DLEdBQU0sR0FBSyxFQUFlLEdBRTFCLE1BQUssUUFBTyxLQUFLLEVBQUcsZ0JBQWtCLElBQUksUUFDeEMsR0FBRyxlQUFpQixFQUFvQixFQUFNLEtBQU0sRUFBSyxRQUdwRCxFQUFrQixLQUFNLEdBQUssUUFBUSxFQUFJIiwKICAibmFtZXMiOiBbXQp9Cg==