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}`); } import{G as m}from"./chunk-LR52PZTP.js";var g=1024,u=50*g,d=new Set(["delete","insert","select","update","values","with"]);function q(e){let t=e.trim();if(t.length===0)return{diagnostic:{from:0,message:"Type a SQL statement to lint.",severity:"info",to:0},ok:!1};if(t.length>u)return{diagnostic:{from:0,message:`SQL lint limit exceeded (${u} characters).`,severity:"error",to:Math.min(1,t.length)},ok:!1};let n=m(e);if(n.length===0)return{diagnostic:{from:0,message:"Type a SQL statement to lint.",severity:"info",to:0},ok:!1};for(let r of n){let o=p(r.statement);if(!o||!d.has(o))return{diagnostic:{from:r.from,message:"SQL lint supports SELECT, WITH, VALUES, INSERT, UPDATE, and DELETE statements.",severity:"error",to:Math.min(e.length,r.from+1)},ok:!1}}return{ok:!0,statements:n}}function T(e){let{error:t,sql:n}=e,r=Math.max(0,e.positionOffset??0),o=f({sql:n,position:void 0,sqlLength:n.length});if(!(t instanceof Error))return[{from:o.from,message:"SQL lint failed.",severity:"error",source:"postgres",to:o.to}];let i=L(t),s=h(t),{from:a,to:c}=f({message:t.message,position:S(t),sql:n,sqlLength:n.length}),l=i==="57014"?"Lint query timed out. Simplify the statement and try again.":t.message;return[{code:i,from:a+r,message:l,severity:s,source:"postgres",to:c+r}]}function p(e){return/^\s*([A-Za-z_]+)/.exec(e)?.[1]?.toLowerCase()??null}function L(e){let t=e;return typeof t.code=="string"?t.code:void 0}function S(e){let t=e,{position:n}=t;if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"){let r=Number.parseInt(n,10);return Number.isFinite(r)?r:void 0}}function h(e){return e.severity==="WARNING"?"warning":"error"}function f(e){let{message:t,position:n,sql:r,sqlLength:o}=e;if(n==null&&t){let a=E(r,t);if(a)return a}let i=Math.max(o-1,0),s=Math.min(i,Math.max(0,(Number.isFinite(n)?n:1)-1));return o===0?{from:0,to:0}:{from:s,to:Math.max(s+1,s)}}function E(e,t){let r=/"([^"]+)"/.exec(t)?.[1];if(!r)return null;let o=e.toLowerCase(),i=r.toLowerCase(),s=o.indexOf(i);return s<0?null:{from:s,to:Math.min(e.length,s+r.length)}}export{u as a,d as b,q as c,T as d}; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vZGF0YS9wb3N0Z3Jlcy1jb3JlL3NxbC1saW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7IEFkYXB0ZXJTcWxMaW50RGlhZ25vc3RpYyB9IGZyb20gXCIuLi9hZGFwdGVyXCI7XG5pbXBvcnQgeyBzcGxpdFRvcExldmVsU3FsU3RhdGVtZW50cyB9IGZyb20gXCIuLi9zcWwtc3RhdGVtZW50c1wiO1xuXG5jb25zdCBCWVRFU19QRVJfS0lMT0JZVEUgPSAxMDI0O1xuXG5leHBvcnQgY29uc3QgU1FMX0xJTlRfTUFYX0xFTkdUSCA9IDUwICogQllURVNfUEVSX0tJTE9CWVRFO1xuZXhwb3J0IGNvbnN0IFNRTF9MSU5UX0FMTE9XRURfU1RBVEVNRU5UX0tFWVdPUkRTID0gbmV3IFNldChbXG4gIFwiZGVsZXRlXCIsXG4gIFwiaW5zZXJ0XCIsXG4gIFwic2VsZWN0XCIsXG4gIFwidXBkYXRlXCIsXG4gIFwidmFsdWVzXCIsXG4gIFwid2l0aFwiLFxuXSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3FsTGludFZhbGlkYXRlZFN0YXRlbWVudCB7XG4gIGZyb206IG51bWJlcjtcbiAgc3RhdGVtZW50OiBzdHJpbmc7XG4gIHRvOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIFNxbExpbnRWYWxpZGF0aW9uUmVzdWx0ID1cbiAgfCB7IG9rOiB0cnVlOyBzdGF0ZW1lbnRzOiBTcWxMaW50VmFsaWRhdGVkU3RhdGVtZW50W10gfVxuICB8IHsgZGlhZ25vc3RpYzogQWRhcHRlclNxbExpbnREaWFnbm9zdGljOyBvazogZmFsc2UgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3FsRm9yTGludChzcWw6IHN0cmluZyk6IFNxbExpbnRWYWxpZGF0aW9uUmVzdWx0IHtcbiAgY29uc3Qgbm9ybWFsaXplZFNxbCA9IHNxbC50cmltKCk7XG5cbiAgaWYgKG5vcm1hbGl6ZWRTcWwubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpYWdub3N0aWM6IHtcbiAgICAgICAgZnJvbTogMCxcbiAgICAgICAgbWVzc2FnZTogXCJUeXBlIGEgU1FMIHN0YXRlbWVudCB0byBsaW50LlwiLFxuICAgICAgICBzZXZlcml0eTogXCJpbmZvXCIsXG4gICAgICAgIHRvOiAwLFxuICAgICAgfSxcbiAgICAgIG9rOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKG5vcm1hbGl6ZWRTcWwubGVuZ3RoID4gU1FMX0xJTlRfTUFYX0xFTkdUSCkge1xuICAgIHJldHVybiB7XG4gICAgICBkaWFnbm9zdGljOiB7XG4gICAgICAgIGZyb206IDAsXG4gICAgICAgIG1lc3NhZ2U6IGBTUUwgbGludCBsaW1pdCBleGNlZWRlZCAoJHtTUUxfTElOVF9NQVhfTEVOR1RIfSBjaGFyYWN0ZXJzKS5gLFxuICAgICAgICBzZXZlcml0eTogXCJlcnJvclwiLFxuICAgICAgICB0bzogTWF0aC5taW4oMSwgbm9ybWFsaXplZFNxbC5sZW5ndGgpLFxuICAgICAgfSxcbiAgICAgIG9rOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50cyA9IHNwbGl0VG9wTGV2ZWxTcWxTdGF0ZW1lbnRzKHNxbCk7XG5cbiAgaWYgKHN0YXRlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpYWdub3N0aWM6IHtcbiAgICAgICAgZnJvbTogMCxcbiAgICAgICAgbWVzc2FnZTogXCJUeXBlIGEgU1FMIHN0YXRlbWVudCB0byBsaW50LlwiLFxuICAgICAgICBzZXZlcml0eTogXCJpbmZvXCIsXG4gICAgICAgIHRvOiAwLFxuICAgICAgfSxcbiAgICAgIG9rOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgZm9yIChjb25zdCBzdGF0ZW1lbnQgb2Ygc3RhdGVtZW50cykge1xuICAgIGNvbnN0IGZpcnN0S2V5d29yZCA9IGdldFN0YXRlbWVudEZpcnN0S2V5d29yZChzdGF0ZW1lbnQuc3RhdGVtZW50KTtcblxuICAgIGlmIChcbiAgICAgICFmaXJzdEtleXdvcmQgfHxcbiAgICAgICFTUUxfTElOVF9BTExPV0VEX1NUQVRFTUVOVF9LRVlXT1JEUy5oYXMoZmlyc3RLZXl3b3JkKVxuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGlhZ25vc3RpYzoge1xuICAgICAgICAgIGZyb206IHN0YXRlbWVudC5mcm9tLFxuICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICBcIlNRTCBsaW50IHN1cHBvcnRzIFNFTEVDVCwgV0lUSCwgVkFMVUVTLCBJTlNFUlQsIFVQREFURSwgYW5kIERFTEVURSBzdGF0ZW1lbnRzLlwiLFxuICAgICAgICAgIHNldmVyaXR5OiBcImVycm9yXCIsXG4gICAgICAgICAgdG86IE1hdGgubWluKHNxbC5sZW5ndGgsIHN0YXRlbWVudC5mcm9tICsgMSksXG4gICAgICAgIH0sXG4gICAgICAgIG9rOiBmYWxzZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgb2s6IHRydWUsIHN0YXRlbWVudHMgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpbnREaWFnbm9zdGljc0Zyb21Qb3N0Z3Jlc0Vycm9yKGFyZ3M6IHtcbiAgZXJyb3I6IHVua25vd247XG4gIHBvc2l0aW9uT2Zmc2V0PzogbnVtYmVyO1xuICBzcWw6IHN0cmluZztcbn0pOiBBZGFwdGVyU3FsTGludERpYWdub3N0aWNbXSB7XG4gIGNvbnN0IHsgZXJyb3IsIHNxbCB9ID0gYXJncztcbiAgY29uc3QgcG9zaXRpb25PZmZzZXQgPSBNYXRoLm1heCgwLCBhcmdzLnBvc2l0aW9uT2Zmc2V0ID8/IDApO1xuICBjb25zdCBmYWxsYmFja1JhbmdlID0gZ2V0RGlhZ25vc3RpY1JhbmdlKHtcbiAgICBzcWwsXG4gICAgcG9zaXRpb246IHVuZGVmaW5lZCxcbiAgICBzcWxMZW5ndGg6IHNxbC5sZW5ndGgsXG4gIH0pO1xuXG4gIGlmICghKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgZnJvbTogZmFsbGJhY2tSYW5nZS5mcm9tLFxuICAgICAgICBtZXNzYWdlOiBcIlNRTCBsaW50IGZhaWxlZC5cIixcbiAgICAgICAgc2V2ZXJpdHk6IFwiZXJyb3JcIixcbiAgICAgICAgc291cmNlOiBcInBvc3RncmVzXCIsXG4gICAgICAgIHRvOiBmYWxsYmFja1JhbmdlLnRvLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgY29uc3QgY29kZSA9IGdldFBvc3RncmVzRXJyb3JDb2RlKGVycm9yKTtcbiAgY29uc3Qgc2V2ZXJpdHkgPSBnZXRQb3N0Z3Jlc0Vycm9yU2V2ZXJpdHkoZXJyb3IpO1xuICBjb25zdCB7IGZyb20sIHRvIH0gPSBnZXREaWFnbm9zdGljUmFuZ2Uoe1xuICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgcG9zaXRpb246IGdldFBvc3RncmVzRXJyb3JQb3NpdGlvbihlcnJvciksXG4gICAgc3FsLFxuICAgIHNxbExlbmd0aDogc3FsLmxlbmd0aCxcbiAgfSk7XG5cbiAgY29uc3QgbWVzc2FnZSA9XG4gICAgY29kZSA9PT0gXCI1NzAxNFwiXG4gICAgICA/IFwiTGludCBxdWVyeSB0aW1lZCBvdXQuIFNpbXBsaWZ5IHRoZSBzdGF0ZW1lbnQgYW5kIHRyeSBhZ2Fpbi5cIlxuICAgICAgOiBlcnJvci5tZXNzYWdlO1xuXG4gIHJldHVybiBbXG4gICAge1xuICAgICAgY29kZSxcbiAgICAgIGZyb206IGZyb20gKyBwb3NpdGlvbk9mZnNldCxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBzZXZlcml0eSxcbiAgICAgIHNvdXJjZTogXCJwb3N0Z3Jlc1wiLFxuICAgICAgdG86IHRvICsgcG9zaXRpb25PZmZzZXQsXG4gICAgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhdGVtZW50Rmlyc3RLZXl3b3JkKHN0YXRlbWVudDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IG1hdGNoID0gL15cXHMqKFtBLVphLXpfXSspLy5leGVjKHN0YXRlbWVudCk7XG4gIHJldHVybiBtYXRjaD8uWzFdPy50b0xvd2VyQ2FzZSgpID8/IG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3RncmVzRXJyb3JDb2RlKGVycm9yOiBFcnJvcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHdpdGhDb2RlID0gZXJyb3IgYXMgRXJyb3IgJiB7IGNvZGU/OiB1bmtub3duIH07XG4gIHJldHVybiB0eXBlb2Ygd2l0aENvZGUuY29kZSA9PT0gXCJzdHJpbmdcIiA/IHdpdGhDb2RlLmNvZGUgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3RncmVzRXJyb3JQb3NpdGlvbihlcnJvcjogRXJyb3IpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCB3aXRoUG9zaXRpb24gPSBlcnJvciBhcyBFcnJvciAmIHsgcG9zaXRpb24/OiB1bmtub3duIH07XG4gIGNvbnN0IHsgcG9zaXRpb24gfSA9IHdpdGhQb3NpdGlvbjtcblxuICBpZiAodHlwZW9mIHBvc2l0aW9uID09PSBcIm51bWJlclwiICYmIE51bWJlci5pc0Zpbml0ZShwb3NpdGlvbikpIHtcbiAgICByZXR1cm4gcG9zaXRpb247XG4gIH1cblxuICBpZiAodHlwZW9mIHBvc2l0aW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcGFyc2VkID0gTnVtYmVyLnBhcnNlSW50KHBvc2l0aW9uLCAxMCk7XG4gICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShwYXJzZWQpID8gcGFyc2VkIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0UG9zdGdyZXNFcnJvclNldmVyaXR5KFxuICBlcnJvcjogRXJyb3IsXG4pOiBBZGFwdGVyU3FsTGludERpYWdub3N0aWNbXCJzZXZlcml0eVwiXSB7XG4gIGNvbnN0IHdpdGhTZXZlcml0eSA9IGVycm9yIGFzIEVycm9yICYgeyBzZXZlcml0eT86IHVua25vd24gfTtcbiAgcmV0dXJuIHdpdGhTZXZlcml0eS5zZXZlcml0eSA9PT0gXCJXQVJOSU5HXCIgPyBcIndhcm5pbmdcIiA6IFwiZXJyb3JcIjtcbn1cblxuZnVuY3Rpb24gZ2V0RGlhZ25vc3RpY1JhbmdlKGFyZ3M6IHtcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgcG9zaXRpb246IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgc3FsOiBzdHJpbmc7XG4gIHNxbExlbmd0aDogbnVtYmVyO1xufSk6IHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyIH0ge1xuICBjb25zdCB7IG1lc3NhZ2UsIHBvc2l0aW9uLCBzcWwsIHNxbExlbmd0aCB9ID0gYXJncztcblxuICBpZiAocG9zaXRpb24gPT0gbnVsbCAmJiBtZXNzYWdlKSB7XG4gICAgY29uc3QgaW5mZXJyZWRSYW5nZSA9IGluZmVyUmFuZ2VGcm9tTWVzc2FnZShzcWwsIG1lc3NhZ2UpO1xuXG4gICAgaWYgKGluZmVycmVkUmFuZ2UpIHtcbiAgICAgIHJldHVybiBpbmZlcnJlZFJhbmdlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG1heEZyb20gPSBNYXRoLm1heChzcWxMZW5ndGggLSAxLCAwKTtcbiAgY29uc3QgZnJvbSA9IE1hdGgubWluKFxuICAgIG1heEZyb20sXG4gICAgTWF0aC5tYXgoMCwgKE51bWJlci5pc0Zpbml0ZShwb3NpdGlvbikgPyAocG9zaXRpb24gYXMgbnVtYmVyKSA6IDEpIC0gMSksXG4gICk7XG5cbiAgaWYgKHNxbExlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7IGZyb206IDAsIHRvOiAwIH07XG4gIH1cblxuICByZXR1cm4geyBmcm9tLCB0bzogTWF0aC5tYXgoZnJvbSArIDEsIGZyb20pIH07XG59XG5cbmZ1bmN0aW9uIGluZmVyUmFuZ2VGcm9tTWVzc2FnZShcbiAgc3FsOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZyxcbik6IHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyIH0gfCBudWxsIHtcbiAgY29uc3QgcXVvdGVkVG9rZW5NYXRjaCA9IC9cIihbXlwiXSspXCIvLmV4ZWMobWVzc2FnZSk7XG4gIGNvbnN0IHRva2VuID0gcXVvdGVkVG9rZW5NYXRjaD8uWzFdO1xuXG4gIGlmICghdG9rZW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGxvd2VyU3FsID0gc3FsLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IGxvd2VyVG9rZW4gPSB0b2tlbi50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBmcm9tID0gbG93ZXJTcWwuaW5kZXhPZihsb3dlclRva2VuKTtcblxuICBpZiAoZnJvbSA8IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZnJvbSxcbiAgICB0bzogTWF0aC5taW4oc3FsLmxlbmd0aCwgZnJvbSArIHRva2VuLmxlbmd0aCksXG4gIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozt3Q0FHQSxJQUFNQSxFQUFxQixLQUVkQyxFQUFzQixHQUFLRCxFQUMzQkUsRUFBc0MsSUFBSSxJQUFJLENBQ3pELFNBQ0EsU0FDQSxTQUNBLFNBQ0EsU0FDQSxNQUNGLENBQUMsRUFZTSxTQUFTQyxFQUFtQkMsRUFBc0MsQ0FDdkUsSUFBTUMsRUFBZ0JELEVBQUksS0FBSyxFQUUvQixHQUFJQyxFQUFjLFNBQVcsRUFDM0IsTUFBTyxDQUNMLFdBQVksQ0FDVixLQUFNLEVBQ04sUUFBUyxnQ0FDVCxTQUFVLE9BQ1YsR0FBSSxDQUNOLEVBQ0EsR0FBSSxFQUNOLEVBR0YsR0FBSUEsRUFBYyxPQUFTSixFQUN6QixNQUFPLENBQ0wsV0FBWSxDQUNWLEtBQU0sRUFDTixRQUFTLDRCQUE0QkEsQ0FBbUIsZ0JBQ3hELFNBQVUsUUFDVixHQUFJLEtBQUssSUFBSSxFQUFHSSxFQUFjLE1BQU0sQ0FDdEMsRUFDQSxHQUFJLEVBQ04sRUFHRixJQUFNQyxFQUFhQyxFQUEyQkgsQ0FBRyxFQUVqRCxHQUFJRSxFQUFXLFNBQVcsRUFDeEIsTUFBTyxDQUNMLFdBQVksQ0FDVixLQUFNLEVBQ04sUUFBUyxnQ0FD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QUFJQSxFQUFPLEVBQUdBLENBQUksQ0FBRSxDQUM5QyxDQUVBLFNBQVNVLEVBQ1AzQixFQUNBb0IsRUFDcUMsQ0FFckMsSUFBTVMsRUFEbUIsWUFBWSxLQUFLVCxDQUFPLElBQ2hCLENBQUMsRUFFbEMsR0FBSSxDQUFDUyxFQUNILE9BQU8sS0FHVCxJQUFNQyxFQUFXOUIsRUFBSSxZQUFZLEVBQzNCK0IsRUFBYUYsRUFBTSxZQUFZLEVBQy9CWixFQUFPYSxFQUFTLFFBQVFDLENBQVUsRUFFeEMsT0FBSWQsRUFBTyxFQUNGLEtBR0YsQ0FDTCxLQUFBQSxFQUNBLEdBQUksS0FBSyxJQUFJakIsRUFBSSxPQUFRaUIsRUFBT1ksRUFBTSxNQUFNLENBQzlDLENBQ0YiLAogICJuYW1lcyI6IFsiQllURVNfUEVSX0tJTE9CWVRFIiwgIlNRTF9MSU5UX01BWF9MRU5HVEgiLCAiU1FMX0xJTlRfQUxMT1dFRF9TVEFURU1FTlRfS0VZV09SRFMiLCAidmFsaWRhdGVTcWxGb3JMaW50IiwgInNxbCIsICJub3JtYWxpemVkU3FsIiwgInN0YXRlbWVudHMiLCAic3BsaXRUb3BMZXZlbFNxbFN0YXRlbWVudHMiLCAic3RhdGVtZW50IiwgImZpcnN0S2V5d29yZCIsICJnZXRTdGF0ZW1lbnRGaXJzdEtleXdvcmQiLCAiY3JlYXRlTGludERpYWdub3N0aWNzRnJvbVBvc3RncmVzRXJyb3IiLCAiYXJncyIsICJlcnJvciIsICJwb3NpdGlvbk9mZnNldCIsICJmYWxsYmFja1JhbmdlIiwgImdldERpYWdub3N0aWNSYW5nZSIsICJjb2RlIiwgImdldFBvc3RncmVzRXJyb3JDb2RlIiwgInNldmVyaXR5IiwgImdldFBvc3RncmVzRXJyb3JTZXZlcml0eSIsICJmcm9tIiwgInRvIiwgImdldFBvc3RncmVzRXJyb3JQb3NpdGlvbiIsICJtZXNzYWdlIiwgIndpdGhDb2RlIiwgIndpdGhQb3NpdGlvbiIsICJwb3NpdGlvbiIsICJwYXJzZWQiLCAic3FsTGVuZ3RoIiwgImluZmVycmVkUmFuZ2UiLCAiaW5mZXJSYW5nZUZyb21NZXNzYWdlIiwgIm1heEZyb20iLCAidG9rZW4iLCAibG93ZXJTcWwiLCAibG93ZXJUb2tlbiJdCn0K