@nodesuite/schemas
Version:
A collection of common constants and validation schemas.
7 lines (5 loc) • 13 kB
JavaScript
import { z, ZodObject } from 'zod';
var t=["AF","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","CV","KH","CM","CA","KY","CF","TD","CL","CN","CX","CC","CO","KM","CD","CG","CK","CR","HR","CU","CW","CY","CZ","CI","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","MK","RO","RU","RW","RE","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","UM","US","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AX"],c=(o="")=>t.includes(o),p=z.preprocess(o=>typeof o=="string"?o.toUpperCase():o,z.enum(t)),d=o=>p.parse(o);var r=["development","production","test"],N=(o="")=>r.includes(o),C=z.enum(r),i=o=>C.parse(o);var n=/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/,m=(o="")=>!!o.match(n),S=z.string().regex(n),x=o=>S.parse(o);var Z=o=>o&&(o instanceof ZodObject||Object.keys(o).includes("shape"));
export { p as CountryCodeSchema, n as IP_V4_REGEX, S as IpSchema, C as NodeEnvSchema, t as countryCodes, c as isCountryCode, m as isIp, N as isNodeEnv, Z as isZodObject, r as nodeEnvs, d as parseCountryCode, x as parseIp, i as parseNodeEnv };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vY291bnRyaWVzLnRzIiwiLi4vc3JjL2NvbW1vbi9lbnYudHMiLCIuLi9zcmMvY29tbW9uL2lwLnRzIiwiLi4vc3JjL3pvZC9ndWFyZHMudHMiXSwibmFtZXMiOlsieiIsImNvdW50cnlDb2RlcyIsImlzQ291bnRyeUNvZGUiLCJ2YWx1ZSIsIkNvdW50cnlDb2RlU2NoZW1hIiwicGFyc2VDb3VudHJ5Q29kZSIsIm5vZGVFbnZzIiwiaXNOb2RlRW52IiwiTm9kZUVudlNjaGVtYSIsInBhcnNlTm9kZUVudiIsIklQX1Y0X1JFR0VYIiwiaXNJcCIsIklwU2NoZW1hIiwicGFyc2VJcCIsIlpvZE9iamVjdCIsImlzWm9kT2JqZWN0Iiwic2NoZW1hIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFTLEtBQUFBLE1BQVMsTUFPWCxJQUFNQyxFQUFlLENBQzFCLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxJQUNGLEVBZ0JhQyxFQUFnQixDQUFDQyxFQUFnQixLQUMzQ0YsRUFBdUMsU0FBU0UsQ0FBSyxFQU8zQ0MsRUFBb0JKLEVBQUUsV0FDaENHLEdBQVcsT0FBT0EsR0FBVSxTQUFXQSxFQUFNLFlBQVksRUFBSUEsRUFDOURILEVBQUUsS0FBS0MsQ0FBWSxDQUNyQixFQVNhSSxFQUFvQkYsR0FDL0JDLEVBQWtCLE1BQU1ELENBQUssRUN0Uy9CLE9BQVMsS0FBQUgsTUFBUyxNQU9YLElBQU1NLEVBQVcsQ0FBQyxjQUFlLGFBQWMsTUFBTSxFQWdCL0NDLEVBQVksQ0FBQ0osRUFBZ0IsS0FDdkNHLEVBQW1DLFNBQVNILENBQUssRUFPdkNLLEVBQWdCUixFQUFFLEtBQUtNLENBQVEsRUFTL0JHLEVBQWdCTixHQUMzQkssRUFBYyxNQUFNTCxDQUFLLEVDekMzQixPQUFTLEtBQUFILE1BQVMsTUFPWCxJQUFNVSxFQUNYLDRHQVNXQyxFQUFPLENBQUNSLEVBQWdCLEtBQWdCLENBQUMsQ0FBQ0EsRUFBTSxNQUFNTyxDQUFXLEVBT2pFRSxFQUFXWixFQUFFLE9BQU8sRUFBRSxNQUFNVSxDQUFXLEVBU3ZDRyxFQUFXVixHQUEyQlMsRUFBUyxNQUFNVCxDQUFLLEVDakN2RSxPQUFTLGFBQUFXLE1BQWlCLE1BVW5CLElBQU1DLEVBQ1hDLEdBRUFBLElBQ0NBLGFBQWtCRixHQUFhLE9BQU8sS0FBS0UsQ0FBTSxFQUFFLFNBQVMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcblxuLyoqXG4gKiBSZWFkb25seSBhcnJheSBvZiBhbGwgdmFsaWQgY291bnRyeSBjb2Rlcy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBjb3VudHJ5Q29kZXMgPSBbXG4gIFwiQUZcIixcbiAgXCJBTFwiLFxuICBcIkRaXCIsXG4gIFwiQVNcIixcbiAgXCJBRFwiLFxuICBcIkFPXCIsXG4gIFwiQUlcIixcbiAgXCJBUVwiLFxuICBcIkFHXCIsXG4gIFwiQVJcIixcbiAgXCJBTVwiLFxuICBcIkFXXCIsXG4gIFwiQVVcIixcbiAgXCJBVFwiLFxuICBcIkFaXCIsXG4gIFwiQlNcIixcbiAgXCJCSFwiLFxuICBcIkJEXCIsXG4gIFwiQkJcIixcbiAgXCJCWVwiLFxuICBcIkJFXCIsXG4gIFwiQlpcIixcbiAgXCJCSlwiLFxuICBcIkJNXCIsXG4gIFwiQlRcIixcbiAgXCJCT1wiLFxuICBcIkJRXCIsXG4gIFwiQkFcIixcbiAgXCJCV1wiLFxuICBcIkJWXCIsXG4gIFwiQlJcIixcbiAgXCJJT1wiLFxuICBcIkJOXCIsXG4gIFwiQkdcIixcbiAgXCJCRlwiLFxuICBcIkJJXCIsXG4gIFwiQ1ZcIixcbiAgXCJLSFwiLFxuICBcIkNNXCIsXG4gIFwiQ0FcIixcbiAgXCJLWVwiLFxuICBcIkNGXCIsXG4gIFwiVERcIixcbiAgXCJDTFwiLFxuICBcIkNOXCIsXG4gIFwiQ1hcIixcbiAgXCJDQ1wiLFxuICBcIkNPXCIsXG4gIFwiS01cIixcbiAgXCJDRFwiLFxuICBcIkNHXCIsXG4gIFwiQ0tcIixcbiAgXCJDUlwiLFxuICBcIkhSXCIsXG4gIFwiQ1VcIixcbiAgXCJDV1wiLFxuICBcIkNZXCIsXG4gIFwiQ1pcIixcbiAgXCJDSVwiLFxuICBcIkRLXCIsXG4gIFwiREpcIixcbiAgXCJETVwiLFxuICBcIkRPXCIsXG4gIFwiRUNcIixcbiAgXCJFR1wiLFxuICBcIlNWXCIsXG4gIFwiR1FcIixcbiAgXCJFUlwiLFxuICBcIkVFXCIsXG4gIFwiU1pcIixcbiAgXCJFVFwiLFxuICBcIkZLXCIsXG4gIFwiRk9cIixcbiAgXCJGSlwiLFxuICBcIkZJXCIsXG4gIFwiRlJcIixcbiAgXCJHRlwiLFxuICBcIlBGXCIsXG4gIFwiVEZcIixcbiAgXCJHQVwiLFxuICBcIkdNXCIsXG4gIFwiR0VcIixcbiAgXCJERVwiLFxuICBcIkdIXCIsXG4gIFwiR0lcIixcbiAgXCJHUlwiLFxuICBcIkdMXCIsXG4gIFwiR0RcIixcbiAgXCJHUFwiLFxuICBcIkdVXCIsXG4gIFwiR1RcIixcbiAgXCJHR1wiLFxuICBcIkdOXCIsXG4gIFwiR1dcIixcbiAgXCJHWVwiLFxuICBcIkhUXCIsXG4gIFwiSE1cIixcbiAgXCJWQVwiLFxuICBcIkhOXCIsXG4gIFwiSEtcIixcbiAgXCJIVVwiLFxuICBcIklTXCIsXG4gIFwiSU5cIixcbiAgXCJJRFwiLFxuICBcIklSXCIsXG4gIFwiSVFcIixcbiAgXCJJRVwiLFxuICBcIklNXCIsXG4gIFwiSUxcIixcbiAgXCJJVFwiLFxuICBcIkpNXCIsXG4gIFwiSlBcIixcbiAgXCJKRVwiLFxuICBcIkpPXCIsXG4gIFwiS1pcIixcbiAgXCJLRVwiLFxuICBcIktJXCIsXG4gIFwiS1BcIixcbiAgXCJLUlwiLFxuICBcIktXXCIsXG4gIFwiS0dcIixcbiAgXCJMQVwiLFxuICBcIkxWXCIsXG4gIFwiTEJcIixcbiAgXCJMU1wiLFxuICBcIkxSXCIsXG4gIFwiTFlcIixcbiAgXCJMSVwiLFxuICBcIkxUXCIsXG4gIFwiTFVcIixcbiAgXCJNT1wiLFxuICBcIk1HXCIsXG4gIFwiTVdcIixcbiAgXCJNWVwiLFxuICBcIk1WXCIsXG4gIFwiTUxcIixcbiAgXCJNVFwiLFxuICBcIk1IXCIsXG4gIFwiTVFcIixcbiAgXCJNUlwiLFxuICBcIk1VXCIsXG4gIFwiWVRcIixcbiAgXCJNWFwiLFxuICBcIkZNXCIsXG4gIFwiTURcIixcbiAgXCJNQ1wiLFxuICBcIk1OXCIsXG4gIFwiTUVcIixcbiAgXCJNU1wiLFxuICBcIk1BXCIsXG4gIFwiTVpcIixcbiAgXCJNTVwiLFxuICBcIk5BXCIsXG4gIFwiTlJcIixcbiAgXCJOUFwiLFxuICBcIk5MXCIsXG4gIFwiTkNcIixcbiAgXCJOWlwiLFxuICBcIk5JXCIsXG4gIFwiTkVcIixcbiAgXCJOR1wiLFxuICBcIk5VXCIsXG4gIFwiTkZcIixcbiAgXCJNUFwiLFxuICBcIk5PXCIsXG4gIFwiT01cIixcbiAgXCJQS1wiLFxuICBcIlBXXCIsXG4gIFwiUFNcIixcbiAgXCJQQVwiLFxuICBcIlBHXCIsXG4gIFwiUFlcIixcbiAgXCJQRVwiLFxuICBcIlBIXCIsXG4gIFwiUE5cIixcbiAgXCJQTFwiLFxuICBcIlBUXCIsXG4gIFwiUFJcIixcbiAgXCJRQVwiLFxuICBcIk1LXCIsXG4gIFwiUk9cIixcbiAgXCJSVVwiLFxuICBcIlJXXCIsXG4gIFwiUkVcIixcbiAgXCJCTFwiLFxuICBcIlNIXCIsXG4gIFwiS05cIixcbiAgXCJMQ1wiLFxuICBcIk1GXCIsXG4gIFwiUE1cIixcbiAgXCJWQ1wiLFxuICBcIldTXCIsXG4gIFwiU01cIixcbiAgXCJTVFwiLFxuICBcIlNBXCIsXG4gIFwiU05cIixcbiAgXCJSU1wiLFxuICBcIlNDXCIsXG4gIFwiU0xcIixcbiAgXCJTR1wiLFxuICBcIlNYXCIsXG4gIFwiU0tcIixcbiAgXCJTSVwiLFxuICBcIlNCXCIsXG4gIFwiU09cIixcbiAgXCJaQVwiLFxuICBcIkdTXCIsXG4gIFwiU1NcIixcbiAgXCJFU1wiLFxuICBcIkxLXCIsXG4gIFwiU0RcIixcbiAgXCJTUlwiLFxuICBcIlNKXCIsXG4gIFwiU0VcIixcbiAgXCJDSFwiLFxuICBcIlNZXCIsXG4gIFwiVFdcIixcbiAgXCJUSlwiLFxuICBcIlRaXCIsXG4gIFwiVEhcIixcbiAgXCJUTFwiLFxuICBcIlRHXCIsXG4gIFwiVEtcIixcbiAgXCJUT1wiLFxuICBcIlRUXCIsXG4gIFwiVE5cIixcbiAgXCJUUlwiLFxuICBcIlRNXCIsXG4gIFwiVENcIixcbiAgXCJUVlwiLFxuICBcIlVHXCIsXG4gIFwiVUFcIixcbiAgXCJBRVwiLFxuICBcIkdCXCIsXG4gIFwiVU1cIixcbiAgXCJVU1wiLFxuICBcIlVZXCIsXG4gIFwiVVpcIixcbiAgXCJWVVwiLFxuICBcIlZFXCIsXG4gIFwiVk5cIixcbiAgXCJWR1wiLFxuICBcIlZJXCIsXG4gIFwiV0ZcIixcbiAgXCJFSFwiLFxuICBcIllFXCIsXG4gIFwiWk1cIixcbiAgXCJaV1wiLFxuICBcIkFYXCJcbl0gYXMgY29uc3RcblxuLyoqXG4gKiBVbmlvbiB0eXBlIG9mIGFsbCB2YWxpZCBjb3VudHJ5IGNvZGVzLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgQ291bnRyeUNvZGUgPSB0eXBlb2YgY291bnRyeUNvZGVzW251bWJlcl1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIHRlc3QgaWYgc3RyaW5nIHZhbHVlIGlzIGEgdmFsaWQgY291bnRyeSBjb2RlLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFN0cmluZyB2YWx1ZSB0byB0ZXN0LlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQ291bnRyeUNvZGUgPSAodmFsdWU6IHN0cmluZyA9IFwiXCIpOiB2YWx1ZSBpcyBDb3VudHJ5Q29kZSA9PlxuICAoY291bnRyeUNvZGVzIGFzIFJlYWRvbmx5QXJyYXk8c3RyaW5nPikuaW5jbHVkZXModmFsdWUpXG5cbi8qKlxuICogWm9kIHNjaGVtYSBmb3IgdmFsaWQgY291bnRyeSBjb2Rlcy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBDb3VudHJ5Q29kZVNjaGVtYSA9IHoucHJlcHJvY2VzcyhcbiAgKHZhbHVlKSA9PiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUudG9VcHBlckNhc2UoKSA6IHZhbHVlKSxcbiAgei5lbnVtKGNvdW50cnlDb2RlcylcbilcblxuLyoqXG4gKiBQYXJzZXMgYW4gdW5rbm93biB2YWx1ZSBhcyBjb3VudHJ5IGNvZGUuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gQW55IHZhbHVlIHRvIHBhcnNlIGFzIGNvdW50cnkgY29kZS5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUNvdW50cnlDb2RlID0gKHZhbHVlOiB1bmtub3duKTogQ291bnRyeUNvZGUgPT5cbiAgQ291bnRyeUNvZGVTY2hlbWEucGFyc2UodmFsdWUpXG4iLCJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiXG5cbi8qKlxuICogUmVhZG9ubHkgYXJyYXkgb2YgYWxsIHZhbGlkIE5vZGUgZW52aXJvbm1lbnQgdmFsdWVzLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IG5vZGVFbnZzID0gW1wiZGV2ZWxvcG1lbnRcIiwgXCJwcm9kdWN0aW9uXCIsIFwidGVzdFwiXSBhcyBjb25zdFxuXG4vKipcbiAqIFVuaW9uIHR5cGUgb2YgTm9kZSBlbnZpcm9ubWVudCB2YWx1ZXMuXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBOb2RlRW52ID0gdHlwZW9mIG5vZGVFbnZzW251bWJlcl1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIHN0cmluZyB2YWx1ZSBpcyBhIE5vZGUgZW52aXJvbm1lbnQgdmFsdWUuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gU3RyaW5nIHZhbHVlIHRvIGNoZWNrLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGlzTm9kZUVudiA9ICh2YWx1ZTogc3RyaW5nID0gXCJcIik6IHZhbHVlIGlzIE5vZGVFbnYgPT5cbiAgKG5vZGVFbnZzIGFzIFJlYWRvbmx5QXJyYXk8c3RyaW5nPikuaW5jbHVkZXModmFsdWUpXG5cbi8qKlxuICogWm9kIHNjaGVtYSB0byBwYXJzZSB2YWxpZCBOb2RlIGVudmlyb25tZW50IHZhbHVlcy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBOb2RlRW52U2NoZW1hID0gei5lbnVtKG5vZGVFbnZzKVxuXG4vKipcbiAqIFBhcnNlcyBhIHZhbHVlIGFzIGEgdmFsaWQgTm9kZSBlbnZpcm9ubWVudCB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBBbnkgdmFsdWUgdG8gcGFyc2UgYXMgYSBOb2RlIGVudmlyb25tZW50IHZhbHVlLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHBhcnNlTm9kZUVudiA9ICh2YWx1ZTogdW5rbm93bik6IE5vZGVFbnYgPT5cbiAgTm9kZUVudlNjaGVtYS5wYXJzZSh2YWx1ZSlcbiIsImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcblxuLyoqXG4gKiBSZWdleCBmb3IgdmFsaWRhdGluZyBJUCB2NCBhZGRyZXNzZXMuXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgSVBfVjRfUkVHRVg6IFJlZ0V4cCA9XG4gIC9eKChbMC05XXxbMS05XVswLTldfDFbMC05XXsyfXwyWzAtNF1bMC05XXwyNVswLTVdKVxcLil7M30oWzAtOV18WzEtOV1bMC05XXwxWzAtOV17Mn18MlswLTRdWzAtOV18MjVbMC01XSkkL1xuXG4vKipcbiAqIEd1YXJkIHRvIHRlc3QgaWYgdmFsdWUgaXMgYSB2YWxpZCBJUHY0IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBTdHJpbmcgdmFsdWUgdG8gdGVzdC5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBpc0lwID0gKHZhbHVlOiBzdHJpbmcgPSBcIlwiKTogYm9vbGVhbiA9PiAhIXZhbHVlLm1hdGNoKElQX1Y0X1JFR0VYKVxuXG4vKipcbiAqIFpvZCBzY2hlbWEgZm9yIHZhbGlkYXRpbmcgSVAgc3RyaW5ncy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBJcFNjaGVtYSA9IHouc3RyaW5nKCkucmVnZXgoSVBfVjRfUkVHRVgpXG5cbi8qKlxuICogUGFyc2UgYW4gdW5rbm93biB2YWx1ZSBhcyBhIHZhbGlkIElQdjQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIEFueSB2YWx1ZSB0byBwYXJzZSBhcyBJUHY0IHN0cmluZy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUlwID0gKHZhbHVlOiB1bmtub3duKTogc3RyaW5nID0+IElwU2NoZW1hLnBhcnNlKHZhbHVlKVxuIiwiaW1wb3J0IHsgWm9kT2JqZWN0IH0gZnJvbSBcInpvZFwiXG5pbXBvcnQgdHlwZSB7IFpvZFJhd1NoYXBlLCBab2RUeXBlQW55IH0gZnJvbSBcInpvZFwiXG5cbi8qKlxuICogVHlwZSBndWFyZCB0byB0ZXN0IGlmIGEgdmFsdWUgaXMgYSB2YWxpZCBab2RPYmplY3Qgc2NoZW1hLlxuICpcbiAqIEBwYXJhbSBzY2hlbWEgLSBQb3NzaWJsZSBzY2hlbWEgdG8gdGVzdC5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBpc1pvZE9iamVjdCA9IDxUIGV4dGVuZHMgb2JqZWN0PihcbiAgc2NoZW1hOiBvYmplY3Rcbik6IHNjaGVtYSBpcyBab2RPYmplY3Q8Wm9kUmF3U2hhcGUsIFwic3RyaXBcIiwgWm9kVHlwZUFueSwgVD4gPT5cbiAgc2NoZW1hICYmXG4gIChzY2hlbWEgaW5zdGFuY2VvZiBab2RPYmplY3QgfHwgT2JqZWN0LmtleXMoc2NoZW1hKS5pbmNsdWRlcyhcInNoYXBlXCIpKVxuIl19